GET /
Response Body: JSON
{ "bridge-version" : "", "supported-checksum-types" : "" # Possible values: MD5, SHA-256, SHA-512 } |
POST /register
Request Body: JSON
{ "gateway-url" : "", # Endpoint URL where the Bridge can call back to this OTM API "gateway-username" : "", # Credentials to allow the Bridge to make calls back into the OTM API "gateway-password" : "" # Credentials to allow the Bridge to make calls back into the OTM API } |
POST /deposit ? {checksum-type}
checksum-type
: (Optional) Applies to all file checksums (can be one of: MD5, SHA-256, SHA-512). Default is MD5.deposit-format
: (Optional) Format of content being depositedRequest Body: JSON
{ "filegroup-1-id" : { # filegroup is a generic grouping of files that can be used to capture structure such as in a digital object or work "version" : "", "files" : { "file-1-id" : "file-1-checksum", "file-2-id" : "file-2-checksum" } }, "filegroup-2-id" : { "version" : "", "files" : { "file-3-id" : "file-3-checksum", "file-4-id" : "file-4-checksum" } } } |
Notes:
There is no guarantee that all filegroups in a single deposit request will be deposited into the DDP at the same time. This allows the Bridge to manage transfers based on available resources (so as to not over-run local disk, for example).
GET /deposit ? {status}
status:
(Optional) Limit list to deposits in a specific statusResponse Body: JSON
{ "filegroup-1-id" : { "version : "", # Version identifier of filegroup "files" : "", # Number of files in deposit "status" : "" # Current deposit status }, # Additional filegroups listed here } |
GET /deposit/{filegroup-id}
Response Body: JSON
{ "filegroup-id" : { "deposit-state" : "", "files" : { "file-1-id" : { "status", # deposit status, one of: pending, retrieved, existing "size" : "", # file size in bytes "checksum" : "" # file checksum }, "file-2-id" : { "status" : "", "size" : "", "checksum" : "" }, } } } |
POST /delete ? {checksum-type}
# Using POST rather than DELETE, allows for deleting multiple files (and is consistent with Restore action)checksum-type
: (Optional) if provided, applies to all file checksums (can be one of: MD5, SHA-256, SHA-512). Default is MD5.Request Body: JSON
{ "filegroup-1-id" : { "version" : "", "files" : { "file-1-id" : "file-1-checksum", # Checksum is optional, can be included to verify correct file is being deleted "file-2-id" : "file-2-checksum" } }, # Additional filegroups listed here } |
Response Body: JSON
{ "delete-id" : "" } |
GET /delete ? {status}
status:
(Optional) Limit list to deletes actions with a specific statusResponse Body: JSON
{ "delete-id-1" : { "files" : "", # Number of files in delete action "status" : "" # Current delete status }, # Additional delete actions listed here } |
GET /delete/{delete-id}
Response Body: JSON
{ "status" : "" } # This could include a top level status or a per-file status (or both) |
GET /list
Response Body: JSON
{ "filegroup-1-id", "filegroup-2-id", ... } |
Notes:
This list would not include deleted filegroups
GET /list/{filegroup-id}/{file-id}
filegroup-id
: The identifier of the filegroup for which information is requestedfile-id
: (Optional) The identifier of the file for which information is requestedResponse Body: JSON
{ "checksum-type" : "" # Indicates type of checksums listed below, can be one of: MD5, SHA-256, SHA-512 "filegroup-1-id" : [ # filegroup is a generic grouping of files that can be used to capture structure such as in a digital object or work { "version" : "", # filegroup version "files" : { "file-1-id" : { "size" : "", # file size in bytes "checksum" : "" # file checksum }, "file-2-id" : { "size" : "", # file size in bytes "checksum" : "" # file checksum }, # Additional files listed here } }, # Additional filegroup versions listed here ] } |
Notes:
This list would not include deleted versions or files. A tombstone capability is possible, but not currently part of this specification.
POST /restore ? {checksum-type}
checksum-type
: (Optional) if provided, applies to all file checksums (can be one of: MD5, SHA-256, SHA-512). Default is MD5.Request Body: JSON
{ "filegroup-1-id" : { "version" : "", "files: { "file-1-id" : "file-1-checksum", # Checksum is optional, can be included to verify correct file is being restored "file-2-id" : "file-2-checksum" } }, # Additional filegroups listed here } |
Response Code: 202 (on success)
Response Body: JSON
{ "restore-id" : "" } |
GET /restore ? {status}
status:
(Optional) Limit list to restores actions with a specific statusResponse Body: JSON
{ "restore-id-1" : { "files" : "", # List of files in restore action "status" : "", # Current restore status "expiration" : "" # Date on which restored content will no longer be available }, # Additional restore actions listed here } |
GET /restore/{restore-id}
Response Body: JSON
{ "files" : "", # List of files in restore action "status" : "" # This could include a top level status or a per-file status (or both) "expiration" : "" # Date on which restored content will no longer be available } |
GET /restore/{restore-id}/{filegroup-id}/{file-id} ? {checksum-type}
filegroup-id:
The identifier of the filegroup for the restored filefile-id:
The identifier of the restored file to retrievechecksum-type
: (Optional) Defines the type of checksum to be included in the response ETag header. Can be one of: MD5, SHA-256, SHA-512. Default is MD5.Response: Restored file content stream
GET /audit/{filegroup-id}/{file-id}
filegroup-id:
The identifier of the filegroup for which an audit report is requestedfile-id:
(Optional) The identifier of the file for which an audit report is requested. If this is not provided the audit report is requested based on the filegroup-id.Response Body: JSON
{ "filegroup-id" : [ { "file-id" : [ { "date" : "", "type" : "", "event" : "" }, # Additional events for this file listed here ], # Additional files listed here } ] } |
POST /account/{account-name}
account-name:
The name associated with an accountResponse Body: JSON
{ "account-name" : "", # Name of the account "account-username" : "", # Credentials to allow calls to the Bridge for this account "account-password" : "" # Credentials to allow calls to the Bridge for this account } |
GET /account
Response Body: JSON
{ "account-1-name", "account-2-name" } |
POST /deposit/{filegroup-id}
POST /delete/{delete-id}
POST /restore/{restore-id}
POST /audit/{id}
id:
The identifier for the file or filegroup to which this audit event is to be appliedRequest Body: JSON
{ "audit-event" } |