26.3.0 26.2.0 26.1.0 25.4.0 25.3.0
26.3.0 26.2.0 26.1.0 25.4.0 25.3.0

Archive API

You can use the Archive API to look inside a package, move it through its lifecycle, and control who can reach it. Most calls act on one package, and you name it by its package ID in the path.

Two things to know first:

  • A role lets you call an endpoint, but the archive also checks your permissions on the package itself. For example, you can only get a package's AIP structure if you can read that package.

  • DIP exports and integrity reports run in the background. You start the job, poll its status, and then download the result. For the steps, see How a background job works.

Every call needs the headers in Common headers. To handle errors that any call can return, go to Errors.

How a background job works

A DIP export and an integrity report both follow the same three steps:

  1. Start the job. You get 202 Accepted and an executionId right away, before the work is done.

  2. Poll the status endpoint with that executionId until state is no longer RUNNING:

    • RUNNING: the job is still working.

    • COMPLETED: the result is ready to download.

    • ERROR: the job failed. There's no result to download.

  3. Download the result. You get a ZIP file.

Only the person who started a job, or an administrator, can see its status and download its result. For anyone else, the job doesn't exist, and they get 404. A job also stops existing a limited time after it ends, so download the result soon after the job completes.

Get the full AIP structure

Returns the package's parts, organized the E-ARK way, with a download link for each file that you can still download. For the parts, see EarkAip.

GET /v2/archive/{packageId}

Required role: none. You need read access to the package.

Name

Type

Required

Description

packageId

string, path

Yes

The package ID.

Response: 200 OK with an EarkAip object.

JSON
{
  "packageId": "HR-2019-0042",
  "profile": "urn:example:profiles:hr-files-1.0",
  "mets": {
    "name": "METS.xml",
    "mimeType": "text/xml",
    "length": 5996,
    "digest": "3f2a9c41d0b7e85a6c19f04e2b7d3a18",
    "data-url": "https://archive.example.com/v2/content/Q2hhbmdlTWU"
  },
  "representations": [
    {
      "representationId": "rep1",
      "data": [
        {
          "format": {
            "name": "JPEG File Interchange Format",
            "puid": "fmt/43",
            "mimeType": "image/jpeg",
            "extensionMismatch": false
          },
          "content": {
            "name": "scan-001.jpg",
            "length": 652810,
            "data-url": "https://archive.example.com/v2/content/U2NhbjAwMQ"
          }
        }
      ]
    }
  ],
  "submissions": [
    {
      "submissionDate": "2026-03-02T09:14:00Z",
      "submitter": "jdoe",
      "content": {
        "name": "HR-2019-0042.zip",
        "length": 2481337,
        "data-url": "https://archive.example.com/v2/content/SFItMjAxOQ"
      }
    }
  ]
}
  • 403 with DOCUMENT_ACCESS_DENIED: you can see the package, but you can't read it.

  • 404 with RESOURCE_NOT_FOUND: no package that you can see has this ID.

Browse a package's structure

Returns one node for the package, with its title and the type FOLDER. The node has no children, metadata, or download links. To see the package's files, use Get the full AIP structure.

GET /v2/archive/{packageId}/structure

Required role: none. You need read access to the package.

Name

Type

Required

Description

packageId

string, path

Yes

The package ID.

Response: 200 OK with a PackageStructure object.

JSON
{
  "packageId": "HR-2019-0042",
  "root": {
    "name": "Personnel file J. Doe",
    "type": "FOLDER"
  }
}
  • 403 with DOCUMENT_ACCESS_DENIED: you can see the package, but you can't read it.

  • 404 with RESOURCE_NOT_FOUND: no package that you can see has this ID.

Manage the trash

When you delete a package, it goes to the trash first. From there, you can restore it or delete it permanently. A package under legal hold or retention can't go to the trash, and it can't be deleted permanently.

To move a package to the trash, restore it, or delete it permanently, you also need the ArchiveManage permission on the package. Without it, you get 403 with PERMISSION_DENIED.

Move a package to the trash

DELETE /v2/archive/{packageId}/trash

Required role: archive-content-manager

Name

Type

Required

Description

packageId

string, path

Yes

The package ID.

Response: 204 No Content.

  • 404 with PACKAGE_NOT_FOUND: no package that you can see has this ID.

  • 409 with LEGAL_HOLD_ACTIVE: the package is under legal hold.

  • 409 with RETENTION_ACTIVE: the package is under retention.

List the packages in the trash

Returns the packages in the trash, most recently trashed first. All filters are optional, and you can combine them.

GET /v2/archive/trash

Required role: archive-content-manager

Name

Type

Required

Description

page

integer, query

No

The page to return, starting at 0. Default: 0.

pageSize

integer, query

No

The number of packages per page, from 1 to 1000. Default: 100.

sortBy

string, query

No

title, packageId, or createdBy. Any other value, or none, sorts by the date the package went to the trash.

sortOrder

string, query

No

asc or desc. Default: desc.

title

string, query

No

Returns packages whose title contains this text. Not case-sensitive.

packageId

string, query

No

Returns packages whose package ID contains this text. Not case-sensitive.

createdBy

string, query

No

Returns packages whose creator contains this text. Not case-sensitive. The creator is who created the package, not who trashed it.

from

string, query

No

Returns packages trashed on or after this moment.

to

string, query

No

Returns packages trashed on or before this moment. A date without a time, such as 2026-01-31, includes that whole day.

For from and to, you can send a date (2026-01-15), a date and time in UTC (2026-01-15T09:30:00), or a date and time with an offset (2026-01-15T09:30:00Z or 2026-01-15T09:30:00+01:00).

Response: 200 OK with a TrashedPackageList object.

JSON
{
  "totalResults": 1,
  "page": 0,
  "pageSize": 100,
  "items": [
    {
      "packageId": "HR-2019-0042",
      "title": "Personnel file J. Doe",
      "createdBy": "Human Resources",
      "trashedAt": "2026-09-14T13:02:11Z"
    }
  ]
}
  • 400 with OUT_OF_RANGE: page is below 0, or pageSize is outside 1 to 1000.

  • 400 with INVALID_SORT: sortOrder isn't asc or desc.

  • 400 with INVALID_DATE: from or to isn't in one of the accepted date formats.

  • 400 with INVALID_VALUE: from is later than to.

Restore a package from the trash

Takes the package out of the trash, so it's back in the archive.

POST /v2/archive/{packageId}/restore

Required role: archive-content-manager

Name

Type

Required

Description

packageId

string, path

Yes

The package ID.

Response: 204 No Content.

  • 404 with PACKAGE_NOT_FOUND: no package in the trash that you can see has this ID.

Delete a package permanently

Deletes a package from the trash permanently. You can't undo it. To delete a package that's still in the archive, move it to the trash first.

DELETE /v2/archive/{packageId}/permanent

Required role: archive-content-manager

Name

Type

Required

Description

packageId

string, path

Yes

The package ID.

Response: 204 No Content.

  • 404 with PACKAGE_NOT_FOUND: no package in the trash that you can see has this ID.

  • 409 with LEGAL_HOLD_ACTIVE: the package is under legal hold.

  • 409 with RETENTION_ACTIVE: the package is under retention.

A legal hold keeps a package from being deleted, for example while a case is open. It has two effects:

  • You can't move the package to the trash, or delete it permanently.

  • When the package's retention period ends, its end action waits. The archive also doesn't add the package to a deletion list.

If the package is on a deletion list when you place the hold, the archive takes it off that list.

POST /v2/archive/{packageId}/legalhold

Required role: archive-records-manager or archive-records-reviewer. You also need the ManageLegalHold permission on the package.

Name

Type

Required

Description

packageId

string, path

Yes

The package ID.

description

string, body

No

Why you place the hold, for example the case that it belongs to.

Send a JSON body, even if it's empty ({}).

JSON
{
  "description": "Case 2026-117, pending litigation"
}

Response: 204 No Content.

  • 403 with PERMISSION_DENIED: you don't have the ManageLegalHold permission on the package.

  • 404 with RESOURCE_NOT_FOUND: no package that you can see has this ID.

DELETE /v2/archive/{packageId}/legalhold

Required role: archive-records-manager or archive-records-reviewer. You also need the ManageLegalHold permission on the package.

Name

Type

Required

Description

packageId

string, path

Yes

The package ID.

Response: 204 No Content.

  • 403 with PERMISSION_DENIED: you don't have the ManageLegalHold permission on the package.

  • 404 with RESOURCE_NOT_FOUND: no package that you can see has this ID.

Decide on a package in QA review

When a package needs a QA review, it waits in the pending_qa state until a reviewer decides. You can send one of these decisions:

  • approve: accepts the package, and its state changes to approved. Works on a package in pending_qa, and on a rejected package, to overturn an earlier rejection.

  • reject: rejects the package, and its state changes to rejected. Works on a package in pending_qa.

  • resubmit: sends a rejected package back to pending_qa, and clears the earlier decision.

POST /v2/archive/{packageId}/qa-decision

Required role: archive-qa. You also need the ArchiveQA permission on the package.

Name

Type

Required

Description

packageId

string, path

Yes

The package ID.

transition

string, body

Yes

approve, reject, or resubmit.

reason

string, body

No

Why you reject the package. The archive keeps it with the package and in the audit trail.

JSON
{
  "transition": "reject",
  "reason": "The scan of page 4 is unreadable."
}

Response: 204 No Content.

  • 400 with VALIDATION_ERROR: transition is missing.

  • 403 with PERMISSION_DENIED: you don't have the ArchiveQA permission on the package.

  • 404 with RESOURCE_NOT_FOUND: no package that you can see has this ID.

  • 409 with STATE_CONFLICT: the package's state doesn't allow this decision, for example reject on a package that's already approved.

Transfer a package to another tenant

A tenant is a separate archive, with its own packages. When you transfer a package, the archive sends a copy of it to the target tenant, which ingests it as a new SIP. The package stays in your tenant too, and its sub-packages aren't transferred.

List the tenants that you can reach

Returns the tenants that you have access to, including the one that you're calling. Use an id from this list as the target of a transfer.

GET /v2/archive/tenants

Required role: none.

Response: 200 OK with a TenantList object.

JSON
{
  "items": [
    {
      "id": "acme-archive",
      "label": "ACME Archive",
      "current": true
    },
    {
      "id": "acme-records",
      "label": "ACME Records",
      "current": false
    }
  ]
}

Transfer a package

POST /v2/archive/{packageId}/transfer

Required role: archive-content-manager. You also need the ArchiveManage permission on the package.

Name

Type

Required

Description

packageId

string, path

Yes

The package ID.

targetTenantId

string, body

Yes

The id of the target tenant, from List the tenants that you can reach.

JSON
{
  "targetTenantId": "acme-records"
}

Response: 204 No Content.

  • 403 with PERMISSION_DENIED: you don't have the ArchiveManage permission on the package.

  • 404 with RESOURCE_NOT_FOUND: no package that you can see has this ID.

  • 409 with PACKAGE_ALREADY_TRANSFERRED: the package was already transferred to this tenant.

Export a package as a DIP

A DIP export runs in the background and gives you one ZIP file with the package's files and descriptive metadata, and those of its sub-packages. For the steps, see How a background job works.

Start a DIP export

POST /v2/archive/{packageId}/dip-export

Required role: none. You need the ArchiveManage permission on the package.

Name

Type

Required

Description

packageId

string, path

Yes

The package ID.

Response: 202 Accepted with the executionId of the export.

JSON
{
  "executionId": "6f1c2a7e-3b9d-4e15-a0c8-91d2f4b7e630"
}
  • 403 with PERMISSION_DENIED: you don't have the ArchiveManage permission on the package.

  • 404 with RESOURCE_NOT_FOUND: no package that you can see has this ID.

Get the status of a DIP export

GET /v2/archive/dip-exports/{executionId}/status

Required role: none. You must have started the export, or be an administrator: see How a background job works.

Name

Type

Required

Description

executionId

string, path

Yes

The executionId that you got when you started the export.

Response: 200 OK with the executionId and the state: RUNNING, COMPLETED, or ERROR.

JSON
{
  "executionId": "6f1c2a7e-3b9d-4e15-a0c8-91d2f4b7e630",
  "state": "COMPLETED"
}
  • 404 with RESOURCE_NOT_FOUND: the export doesn't exist for you.

Download a DIP export

GET /v2/archive/dip-exports/{executionId}/result

Required role: none. You must have started the export, or be an administrator.

Name

Type

Required

Description

executionId

string, path

Yes

The executionId that you got when you started the export.

Response: 200 OK with the ZIP file (application/zip), as an attachment named dip-export-{executionId}.zip.

Bash
curl -o dip-export.zip \
  -H "Authorization: Bearer $TOKEN" \
  -H "tenant: acme-archive" \
  https://archive.example.com/v2/archive/dip-exports/6f1c2a7e-3b9d-4e15-a0c8-91d2f4b7e630/result
  • 404 with RESOURCE_NOT_FOUND: the export doesn't exist for you, or the job hasn't completed.

Create an integrity report

An integrity report shows whether one or more packages are still intact. It does the following checks on each package, and the archive then seals the report:

  • Recalculates the checksum of each file, and compares it with the checksum recorded at ingest.

  • Checks the package's audit trail.

  • Validates the package's evidence records.

  • Validates the signatures in the package's files.

The report runs in the background. For the steps, see How a background job works.

Start an integrity report

POST /v2/archive/integrity-report

Required role: archive-content-manager. You also need the ArchiveManage permission on each package.

Name

Type

Required

Description

packageIds

array of strings, body

Yes

The package IDs to cover, at least one. If you list a package twice, the report covers it once. The report sections follow the order of your list.

qualified

boolean, body

No

true seals the report with a qualified electronic seal. false uses an advanced electronic seal. Default: false.

JSON
{
  "packageIds": ["HR-2019-0042", "HR-2019-0043"],
  "qualified": false
}

Response: 202 Accepted with the executionId of the report.

JSON
{
  "executionId": "b8e4d0f2-71a6-4c39-9e5d-2a0f6c8b1d47"
}
  • 400 with VALIDATION_ERROR: packageIds is missing.

  • 400 with OUT_OF_RANGE: packageIds is empty.

  • 403 with PERMISSION_DENIED: you don't have the ArchiveManage permission on one of the packages.

  • 404 with RESOURCE_NOT_FOUND: one of the package IDs isn't a package that you can see. The archive doesn't start the report.

Get the status of an integrity report

GET /v2/archive/integrity-reports/{executionId}/status

Required role: archive-content-manager. You must also have started the report, or be an administrator: see How a background job works.

Name

Type

Required

Description

executionId

string, path

Yes

The executionId that you got when you started the report.

Response: 200 OK with the executionId and the state: RUNNING, COMPLETED, or ERROR.

  • 404 with RESOURCE_NOT_FOUND: the report doesn't exist for you.

Download an integrity report

GET /v2/archive/integrity-reports/{executionId}/result

Required role: archive-content-manager. You must also have started the report, or be an administrator.

Name

Type

Required

Description

executionId

string, path

Yes

The executionId that you got when you started the report.

Response: 200 OK with a ZIP file (application/zip), as an attachment named integrity-report-{executionId}.zip. The ZIP contains the report as JSON and as a PDF. It also contains the detached electronic seal over the report, and the timestamp token over that seal.

  • 404 with RESOURCE_NOT_FOUND: the report doesn't exist for you, or the job hasn't completed.

Manage permissions on a package

Users normally reach packages through their roles, and through the permissions that a package inherits. You can also give a user or a group a permission on one package, permanently or for a time frame. You can also share the package with someone outside the archive by email.

Every permission call returns 200 OK with the package's permissions after the change, as a PermissionList object.

Most of these calls need no role, but they check your permissions on the package:

  • To see its permissions, you need read access to the package.

  • To change them, you need the ArchiveShare permission on the package. You can only grant a permission that you hold on the package yourself. Administrators are exempt from both rules.

  • Adding a permission and sharing by email also need a role, which the call states.

You can grant these permissions:

Permission

What it lets someone do

ArchiveBrowse

See the package when they browse or search, without opening it.

ArchiveRead

Open the package, and read and download its files, submissions, and evidence.

VersionAIP

Update the package with a new SIP. You also need ingest access.

ArchiveIngest

Everything in ArchiveRead, and ingest access, which an update of the package also needs.

ArchiveManage

Everything in ArchiveRead, and manage the package: for example move it to the trash, transfer it, or share it.

ArchiveManageRetention

Everything in ArchiveRead, and manage the package's retention and legal holds.

ManageLegalHold

Place and lift legal holds on the package.

Get the permissions

GET /v2/archive/{packageId}/permissions

Name

Type

Required

Description

packageId

string, path

Yes

The package ID.

JSON
{
  "blockInheritance": false,
  "entries": [
    {
      "principal": "hr-team",
      "permission": "ArchiveRead",
      "source": "LOCAL",
      "grantedBy": "jdoe",
      "timeframe": {
        "begin": "2026-10-01T00:00:00Z",
        "end": "2026-12-31T23:59:59Z"
      }
    },
    {
      "principal": "transient/auditor@example.com",
      "permission": "ArchiveRead",
      "source": "EXTERNAL",
      "grantedBy": "jdoe",
      "timeframe": {
        "end": "2026-11-30T23:59:59Z"
      }
    }
  ]
}
  • 403 with DOCUMENT_ACCESS_DENIED: you can see the package, but you can't read it.

  • 404 with RESOURCE_NOT_FOUND: no package that you can see has this ID.

Add a permission

Adds one entry to the package. The other entries stay as they are.

POST /v2/archive/{packageId}/permissions

Required role: archive-content-manager. You also need the ArchiveShare permission on the package.

Name

Type

Required

Description

packageId

string, path

Yes

The package ID.

principal

string, body

Yes

The user name or the group name.

permission

string, body

Yes

One of the permissions that you can grant.

timeframe

PermissionTimeframe, body

No

When the permission starts and ends. Without it, the permission has no end.

notify

boolean, body

No

true sends the user or the group an email about the permission. Default: false.

comment

string, body

No

A message that's included in the email, when notify is true.

JSON
{
  "principal": "hr-team",
  "permission": "ArchiveRead",
  "timeframe": {
    "begin": "2026-10-01T00:00:00Z",
    "end": "2026-12-31T23:59:59Z"
  },
  "notify": true,
  "comment": "Access for the yearly HR review."
}
  • 400 with VALIDATION_ERROR: principal or permission is missing.

  • 403 with PERMISSION_DENIED: you don't have the required role, you can't share permissions on this package, or you can't grant this permission.

  • 404 with RESOURCE_NOT_FOUND: no package that you can see has this ID.

Remove a permission

Removes the package's own entries for one user or group. Inherited entries stay. If nothing matches, you get the list unchanged.

DELETE /v2/archive/{packageId}/permissions?principal={principal}

Name

Type

Required

Description

packageId

string, path

Yes

The package ID.

principal

string, query

Yes

The user name or the group name.

permission

string, query

No

Removes only the entries that grant this permission. Without it, every entry of the user or group on this package goes.

  • 403 with PERMISSION_DENIED: there's an entry to remove, but you can't share permissions on this package.

  • 404 with RESOURCE_NOT_FOUND: no package that you can see has this ID.

Block or unblock inherited permissions

Blocking stops the package from inheriting permissions, so only its own entries (LOCAL and EXTERNAL) apply. Unblocking turns inheritance back on.

POST /v2/archive/{packageId}/permissions/block-inheritance
DELETE /v2/archive/{packageId}/permissions/block-inheritance

Name

Type

Required

Description

packageId

string, path

Yes

The package ID.

In the response, blockInheritance shows whether inheritance is blocked.

  • 403 with PERMISSION_DENIED: you can't share permissions on this package.

  • 404 with RESOURCE_NOT_FOUND: no package that you can see has this ID.

Share a package by email

Gives a permission to someone by email address, even if they don't have an account in the archive. A share needs an end date, and the recipient gets an email about it. They have the permission that you chose, from timeframe.begin (or right away) until timeframe.end.

POST /v2/archive/{packageId}/permissions/share

Required role: archive-content-manager. You also need the ArchiveShare permission on the package.

Name

Type

Required

Description

packageId

string, path

Yes

The package ID.

email

string, body

Yes

The email address of the person that you share with.

permission

string, body

Yes

One of the permissions that you can grant.

timeframe

PermissionTimeframe, body

Yes

When the share starts and ends. end is required.

comment

string, body

No

A message that's included in the email.

JSON
{
  "email": "auditor@example.com",
  "permission": "ArchiveRead",
  "timeframe": {
    "end": "2026-11-30T23:59:59Z"
  },
  "comment": "Here's the file for the external audit."
}

In the response, the share shows with source set to EXTERNAL, and a principal that starts with transient/ and the email address.

  • 400 with REQUIRED_FIELD: timeframe is sent without end.

  • 400 with VALIDATION_ERROR: email, permission, or timeframe is missing.

  • 403 with PERMISSION_DENIED: you don't have the required role, you can't share permissions on this package, or you can't grant this permission.

  • 404 with RESOURCE_NOT_FOUND: no package that you can see has this ID.

Revoke a share

Removes every share of the package with this email address. If there's none, you get the list unchanged.

DELETE /v2/archive/{packageId}/permissions/share?email={email}

Name

Type

Required

Description

packageId

string, path

Yes

The package ID.

email

string, query

Yes

The email address that you shared the package with.

  • 403 with PERMISSION_DENIED: there's a share to revoke, but you can't share permissions on this package.

  • 404 with RESOURCE_NOT_FOUND: no package that you can see has this ID.

Schemas

EarkAip

Field

Type

Description

packageId

string

The package ID.

profile

string

The package's archiving profile.

mets

ContentFile

The package's METS file.

schemas

array of objects

The XML schemas in the package. Each object has one field, content, a ContentFile.

metadata

EarkMetadata

The package-level metadata files.

representations

array of EarkRepresentation

The package's representations.

submissions

array of EarkSubmission

Each SIP that went into the package.

ContentFile

Field

Type

Description

name

string

The file name.

mimeType

string

The MIME type.

encoding

string

The character encoding.

length

integer

The size in bytes. Missing when the size isn't known.

digest

string

The file's checksum.

data-url

string

A link to download the file. By default, it's valid for 24 hours.

EarkMetadata

Field

Type

Description

descriptive

array of objects

The descriptive metadata files. Each object has one field, content, a ContentFile.

preservation

array of objects

The preservation metadata files, such as PREMIS, in the same shape.

other

array of objects

Any other metadata files, in the same shape.

EarkRepresentation

Field

Type

Description

representationId

string

The representation's ID.

type

string

The representation's type.

mets

ContentFile

The representation's METS file.

metadata

EarkMetadata

The representation's metadata files.

data

array of EarkDataFile

The representation's files.

signaturesInfos

array of SignaturesInfo

The digital signatures that the archive found in the files.

EarkDataFile

Field

Type

Description

content

ContentFile

The file.

format

EarkFormat

The file format that the archive identified.

relation

EarkFormat

A second set of format details, when the archive recorded one.

EarkFormat

Field

Type

Description

name

string

The format name, for example JPEG File Interchange Format.

version

string

The format version.

puid

string

The PRONOM ID, for example fmt/43.

mimeType

string

The MIME type of the format.

extensionMismatch

boolean

true when the file extension doesn't match the format.

EarkSubmission

Field

Type

Description

submissionDate

string (date-time)

When the SIP was submitted.

submitter

string

Who submitted the SIP.

removalDate

string (date-time)

When someone removed the submission. Only set for a removed submission.

content

ContentFile

The SIP file. A removed submission has no data-url.

SignaturesInfo

Field

Type

Description

filename

string

The signed file.

signatures

array of Signature

The signatures on that file.

Signature

Field

Type

Description

id

string

The signature's ID.

qualification

string

The signature's qualification level, from the validation.

indication

string

The overall validation result.

time

string (date-time)

When the file was signed.

signer

Signer

Who signed.

Signer

Each field comes from the signer's certificate, and is missing when the certificate doesn't hold it. Besides the fields in the table, a signer can have commonName, givenName, surname, pseudonym, title, email, organizationName, organizationalUnit, locality, state, and countryName, as strings.

Field

Type

Description

subjectDistinguishedName

string

The full subject name of the certificate.

serialNumber

string

The certificate's serial number.

subjectSerialNumber

string

The serial number of the subject.

organizationIdentifier

string

The organization's ID.

PackageStructure

Field

Type

Description

packageId

string

The package ID.

root

PackageNode

The package itself, the top of the tree.

PackageNode

Field

Type

Description

name

string

The package's title.

type

string

The node type. It's FOLDER for a package.

TrashedPackageList

Field

Type

Description

totalResults

number

The number of packages that match, on all pages.

page

number

The page in this response.

pageSize

number

The page size in this response.

items

array of TrashedPackage

The packages on this page.

TrashedPackage

Field

Type

Description

packageId

string

The package ID.

title

string

The package title.

createdBy

string

Who created the package, as the SIP declared it.

trashedAt

string (date-time)

When the package went to the trash.

TenantList

Field

Type

Description

items

array of Tenant

The tenants that you can reach.

Tenant

Field

Type

Description

id

string

The tenant ID. Use it as targetTenantId in a transfer.

label

string

The tenant's display name.

current

boolean

true for the tenant of this request.

DipExportStatus and IntegrityReportStatus

The status calls of a DIP export and of an integrity report return the same fields.

Field

Type

Description

executionId

string

The job's ID.

state

string

RUNNING, COMPLETED, or ERROR.

PermissionList

Field

Type

Description

entries

array of PermissionEntry

The permissions granted on the package.

blockInheritance

boolean

true when the package doesn't inherit permissions.

PermissionEntry

Field

Type

Description

principal

string

The user or group. For a share by email, transient/ followed by the email address.

permission

string

The permission granted.

source

string

LOCAL for an entry on the package itself, INHERITED for an entry that the package inherits, or EXTERNAL for a share by email.

grantedBy

string

The user name of whoever granted the permission.

timeframe

PermissionTimeframe

When the permission starts and ends. Missing when the permission has no start or end date.

PermissionTimeframe

Field

Type

Description

begin

string (date-time)

When the permission starts. Without it, the permission starts right away.

end

string (date-time)

When the permission ends. Without it, the permission has no end.