openapi: 3.0.0 info: title: APTrust Registry Member API description: Open API documentation for version 3 of the APTrust Member API. version: '3.0.1' contact: email: "help@aptrust.org" license: name: BSD 2-Clause "Simplified" License url: https://raw.githubusercontent.com/APTrust/registry/master/LICENSE servers: - url: https://demo.aptrust.org description: "APTrust demo server. Use this for testing." - url: https://repo.aptrust.org description: "APTrust production server." tags: - name: Alerts description: Alerts generated by the Registry - name: Checksums description: Checksums calculated at ingest and during file fixity checks - name: Deletion Requests description: File and object deletion requests - name: Generic Files description: Info about individual files - name: Intellectual Objects description: Info about objects - name: Premis Events description: Info about events pertaining to files and objects - name: Work Items description: Info about Work Items, including ingest, deletion, and restoration components: securitySchemes: apiKey: type: apiKey in: header name: X-Pharos-API-Key description: User's secret API key apiUser: type: apiKey in: header name: X-Pharos-API-User description: User's email address schemas: AlertView: type: object properties: id: type: integer format: int64 institution_id: type: integer format: int64 institution_name: type: string institution_identifier: type: string type: type: string description: The type of alert. enum: ["Deletion Cancelled", "Deletion Completed", "Deletion Confirmed", "Deletion Requested", "Failed Fixity Check", "Password Changed", "Password Reset", "Restoration Completed", "Stalled Work Items", "Welcome New User"] subject: type: string content: type: string description: The main body of the alert message. deletion_request_id: type: integer format: int64 nullable: true description: The id of the deletion request, if this alert pertains to a deletion request. created_at: type: string format: date-time description: Date and time the alert was generated. user_id: type: integer format: int64 description: The ID of the user to whom the alert was sent. user_name: type: string description: The name of the user to whom the alert was sent. sent_at: type: string format: date-time nullable: true description: Date and time this alert was sent to the user. This may be null if the system was unable to send the alert. read_at: type: string format: date-time nullable: true description: Date and time the recipient read this alert. This will be null if the recipient has not yet viewed the alert, or if the recipient manually set the message to 'unread' in the Web UI. AlertViewList: properties: count: type: integer format: int64 description: The total number of results matching your query. next: type: string description: The URL for the next page of results. previous: type: string description: The URL for the previous page of results. items: description: A list of alerts matching your query. type: array items: $ref: '#/components/schemas/AlertView' Checksum: type: object properties: id: type: integer format: int64 algorithm: type: string enum: ["md5", "sha1", "sha256", "sha512"] description: The algorithm used to calculate the digest. datetime: type: string format: date-time description: The date and time at which this digest was calculated. digest: type: string description: The checksum. generic_file_id: type: integer format: int64 description: The unique id of the GenericFile to which this checksum pertains. ChecksumView: type: object properties: id: type: integer format: int64 algorithm: type: string enum: ["md5", "sha1", "sha256", "sha512"] description: The algorithm used to calculate the digest. datetime: type: string format: date-time description: The date and time at which this digest was calculated. digest: type: string description: The checksum. state: type: string enum: ["A", "D"] description: The state of the GenericFile to which this checksum pertains. A = Active, D = Deleted generic_file_identifier: type: string description: "The identifier of the GenericFile to which this checksum pertains. GenericFile identifiers follow a semantic format: //" example: test.edu/SampleBag/data/document.pdf generic_file_id: type: integer format: int64 description: The unique id of the GenericFile to which this checksum pertains. intellectual_object_id: type: integer format: int64 description: The ID of the GenericFile's parent object. institution_id: type: integer format: int64 description: The ID of the institution that owns the GenericFile. created_at: type: string format: date-time description: The date and time at which the checksum record was created in the database. This will be later than the datetime field because checksums are calculated early in the ingest process and recorded near the end of ingest. updated_at: type: string format: date-time description: Since checksums cannot be updated, this should always match the value of created_at. ChecksumViewList: properties: count: type: integer format: int64 description: The total number of results matching your query. next: type: string description: The URL for the next page of results. previous: type: string description: The URL for the previous page of results. items: type: array description: An array of ChecksumView objects matching your query. items: $ref: '#/components/schemas/ChecksumView' DeletionRequestView: type: object properties: id: type: integer format: int64 institution_id: type: integer format: int64 description: The ID of the institution that owns the files or objects to which this deletion request pertains. institution_name: type: string description: The name of the institution that owns the files or objects to which this deletion request pertains. institution_identifier: type: string description: The identifier (domain name) of the institution that owns the files or objects to which this deletion request pertains. requested_by_id: type: integer format: int64 description: The id of the user who requested the deletion. requested_by_name: type: string description: The name of the user who requested this deletion. requested_by_email: type: string description: The email address of the user who requested this deletion. format: email requested_at: type: string format: date-time description: The date and time at which this deletion was requested. confirmed_by_id: type: integer format: int64 description: The id of the user who confirmed (approved) this deletion. This will be null if the deletion has not yet been approved or was cancelled. nullable: true confirmed_by_name: type: string description: The name of the user who confirmed (approved) this deletion. nullable: true confirmed_by_email: type: string description: The email address of the user who confirmed (approved) this deletion. format: email nullable: true confirmed_at: type: string format: date-time description: The date and time at which this deletion was approved. nullable: true cancelled_by_id: type: integer format: int64 description: The id of the user who cancelled (rejected) this deletion. nullable: true cancelled_by_name: type: string description: The name of the user who cancelled (rejected) this deletion. nullable: true cancelled_by_email: type: string description: The email address of the user who cancelled (rejected) this deletion. format: email nullable: true cancelled_at: type: string format: date-time description: The date and time at which this deletion was cancelled (rejected). nullable: true file_count: type: integer format: int64 description: The total number of files to be deleted in this request. If zero, this is an object deletion request. minimum: 0 object_count: type: integer format: int64 description: The total number of objects to be deleted in this request. If zero, this is a file deletion request. minimum: 0 status: type: string description: The status of the deletion request. enum: ["Approved", "Awaiting Approval", "Rejected"] nullable: true DeletionRequestViewList: properties: count: type: integer format: int64 description: The total number of results matching your query. next: type: string description: The URL for the next page of results. previous: type: string description: The URL for the previous page of results. items: description: A list of deletion requests matching your query. type: array items: $ref: '#/components/schemas/DeletionRequestView' GenericFile: type: object properties: id: type: integer format: int64 file_format: type: string description: The mime type of the file. size: type: integer format: int64 description: The size (in bytes) of the file. identifier: type: string description: The file's semantic identifier in the format //. intellectual_object_id: type: integer format: int64 description: The ID of the IntellectualObject to which this file belongs. state: type: string description: Indicates whether the file is Active (A) or Deleted (D). enum: ["A", "D"] last_fixity_check: type: string format: date-time description: The date and time of this file's last fixity check. institution_id: type: integer format: int64 description: The ID of the institution that owns this file. storage_option: type: string description: Indicates where the file is stored. enum: ["Glacier-Deep-OH", "Glacier-Deep-OR", "Glacier-Deep-VA", "Glacier-OH", "Glacier-OR", "Glacier-VA", "Standard", "Wasabi-OR", "Wasabi-VA"] uuid: type: string format: uuid description: The file's unique identifier in preserveration storage. This is its S3/Glacier key name. premis_events: description: Premis events pertaining to this file. type: array items: $ref: '#/components/schemas/PremisEvent' checksums: description: A list of checksums for this file. type: array items: $ref: '#/components/schemas/Checksum' storage_records: description: A list of storage records for this file. Each record points to a copy of this file in a preservation storage bucket. type: array items: $ref: '#/components/schemas/StorageRecord' created_at: type: string format: date-time description: The date and time at which the generic file record was created. This indicates the date of initial ingest. updated_at: type: string format: date-time description: The date and time at which the generic file was last updated. Updates may indicate re-ingest or changes to last fixity check date. GenericFileView: type: object properties: id: type: integer format: int64 file_format: type: string description: The mime type of the file. size: type: integer format: int64 description: The size (in bytes) of the file. identifier: type: string description: The file's semantic identifier in the format //. intellectual_object_id: type: integer format: int64 description: The ID of the IntellectualObject to which this file belongs. object_identifier: type: string description: The semantic identifier of the file's parent object, in the format / access: type: string description: Describes whether this files's metadata can be accessed by the APTrust consortia, by the institution, or only by admins at the institution (restricted). This is vestigial field. Access settings have never been fully implemented, and all objects are treated as access-level "institution". enum: ["consortia", "institution", "restricted"] state: type: string description: Indicates whether the file is Active (A) or Deleted (D). enum: ["A", "D"] last_fixity_check: type: string format: date-time description: The date and time of this file's last fixity check. institution_id: type: integer format: int64 description: The ID of the institution that owns this file. institution_name: type: string description: The name of the institution that deposited this file. institution_identifier: type: string description: The institution's unique identifier, usually a domain name. storage_option: type: string description: Indicates where the file is stored. enum: ["Glacier-Deep-OH", "Glacier-Deep-OR", "Glacier-Deep-VA", "Glacier-OH", "Glacier-OR", "Glacier-VA", "Standard", "Wasabi-OR", "Wasabi-VA"] uuid: type: string format: uuid description: The file's unique identifier in preserveration storage. This is its S3/Glacier key name. md5: type: string description: The most recent md5 digest for this file. sha1: type: string description: The most recent sha1 digest for this file. sha256: type: string description: The most recent sha256 digest for this file. sha512: type: string description: The most recent sha512 digest for this file. created_at: type: string format: date-time description: The date and time at which the generic file record was created. This indicates the date of initial ingest. updated_at: type: string format: date-time description: The date and time at which the generic file was last updated. Updates may indicate re-ingest or changes to last fixity check date. GenericFileViewList: properties: count: type: integer format: int64 description: The total number of results matching your query. next: type: string description: The URL for the next page of results. previous: type: string description: The URL for the previous page of results. items: description: A list of files matching your query. type: array items: $ref: '#/components/schemas/GenericFileView' IntellectualObjectView: type: object properties: id: type: integer format: int64 title: type: string description: The title should briefly describe the contents of the object. description: type: string description: A more detailed description of the object's contents. identifier: type: string description: A unique identifier for this object in the format /. alt_identifier: type: string description: An alternate identifier for this object, supplied by the depositor. nullable: true access: type: string description: Describes whether this object's metadata can be accessed by the APTrust consortia, by the institution, or only by admins at the institution (restricted). This is vestigial field. Access settings have never been fully implemented, and all objects are treated as access-level "institution". enum: ["consortia", "institution", "restricted"] bag_name: type: string description: The name of the bag when it was uploaded to the depositor's receiving bucket, minus the .tar extention. For example, bag "Photos_1945.tar" will have bag name "Photos_1945". institution_id: type: integer format: int64 description: The ID of the institution that owns this object. created_at: type: string format: date-time description: The date and time this record was created. updated_at: type: string format: date-time description: The date and time this record was last updated. state: type: string description: Indicates whether the object is Active (A) or Deleted (D). enum: ["A", "D"] etag: type: string description: The etag of last ingested version of this object. The etag is assinged by S3 upon upload to the depositor's receiving bucket. nullable: false bag_group_identifier: type: string description: An optional identifier naming the logical group to which this object belongs. For instance, if ten bags are all part of the same collection, the collection name may be used as the group identifier associating all ten bags. nullable: true storage_option: type: string description: Indicates where the object's files are stored. enum: ["Glacier-Deep-OH", "Glacier-Deep-OR", "Glacier-Deep-VA", "Glacier-OH", "Glacier-OR", "Glacier-VA", "Standard", "Wasabi-OR", "Wasabi-VA"] bagit_profile_identifier: type: string description: The identifier of the BagIt profile used to create this bag. This can be either the APTrust profile URL or the BTR profile URL. Bags will be restored using the same profile under which they were submitted. enum: ["https://github.com/dpscollaborative/btr_bagit_profile/releases/download/1.0/btr-bagit-profile.json", "https://raw.githubusercontent.com/APTrust/preservation-services/master/profiles/aptrust-v2.2.json"] source_organization: type: string description: The name of the institution that submitted the object for ingest. internal_sender_identifier: type: string description: An optional identifier for internal use by the depositor. nullable: true internal_sender_description: type: string description: An optional description for use by the depositor. nullable: true institution_name: type: string description: Name of the institution that deposited this object. institution_identifier: type: string description: Identifier of the institution that deposited this object. institution_type: type: string description: Indicates whether the institution that owns this object is a member institution (account) or subscribing institution (sub-account). enum: ["MemberInstitution", "SubscriptionInstitution"] institution_parent_id: type: integer format: int64 description: ID of this institution's parent. Applicable to subscriber institutions (sub-accounts) only. nullable: true file_count: type: integer format: int64 description: The total number of files preserved for this object. This includes payload files and preserved manifests. APTrust does not preserve manifests or tag manifests. This number can change over time as additional new files are ingested or existing ones are deleted. nullable: false size: type: integer format: int64 description: The total number of bytes for all files preserved for this object. This number can change over time as additional new files are ingested or existing ones are deleted. payload_file_count: type: integer format: int64 description: The total number of files in this object's payload. I.e., inside the data directory of the bag that was uploaded for deposit. This number can change over time as additional new files are ingested or existing ones are deleted. nullable: false payload_size: type: integer format: int64 description: Total size, in bytes, of the files in this object's payload directory (the data directory of the bag that was uploaded for ingest). This number can change over time as additional new files are ingested or existing ones are deleted. nullable: false IntellectualObjectViewList: properties: count: type: integer format: int64 description: The total number of results matching your query. next: type: string description: The URL for the next page of results. previous: type: string description: The URL for the previous page of results. items: description: A list of objects matching your query. type: array items: $ref: '#/components/schemas/IntellectualObjectView' PremisEvent: type: object properties: id: type: integer format: int64 agent: type: string description: The name of the software or service that performed the action this event is recording. date_time: type: string format: date-time description: The date and time at which the action was performed. detail: type: string description: A description of the event. event_type: type: string description: The type of event. enum: - access assignment - creation - deletion - fixity check - identifier assignment - ingestion - message digest calculation - replication generic_file_id: type: integer format: int64 description: The ID of the file with which this event is associated. This will be null for object-level events. nullable: true identifier: type: string format: uuid description: A unique identifier for this event. institution_id: type: integer format: int64 description: The ID of the institution that owns the file or object to which this event pertains. intellectual_object_id: type: integer format: int64 description: The ID of the IntellectualObject with which this event is associated. object: type: string description: More information about the agent that performed this action. old_uuid: type: string format: uuid description: Legacy UUID of events created before 2017. This will be empty for most events. nullable: true outcome: type: string description: Indicates the outcome of the action. enum: ["Failure", "Success"] outcome_detail: type: string description: Details of the action's outcome, such as what identifier was assigned, what digest was calculated, etc. outcome_information: type: string description: A summary of the action's outcome. created_at: type: string format: date-time description: The date and time this record was created. updated_at: type: string format: date-time description: Because Premis Events cannot be changed, this timestamp should always match created_at. PremisEventView: type: object properties: id: type: integer format: int64 agent: type: string description: The name of the software or service that performed the action this event is recording. created_at: type: string format: date-time description: The date and time this record was created. date_time: type: string format: date-time description: The date and time at which the action was performed. detail: type: string description: A description of the event. event_type: type: string description: The type of event. enum: - access assignment - creation - deletion - fixity check - identifier assignment - ingestion - message digest calculation - replication generic_file_id: type: integer format: int64 description: The ID of the file with which this event is associated. This will be null for object-level events. nullable: true generic_file_identifier: type: string description: The file's semantic identifier in the format //. nullable: true identifier: type: string format: uuid description: A unique identifier for this event. institution_id: type: integer format: int64 description: The ID of the institution that owns the file or object to which this event pertains. institution_name: type: string description: The name of the institution that owns the file or object to which the event pertains. intellectual_object_id: type: integer format: int64 description: The ID of the IntellectualObject with which this event is associated. intellectual_object_identifier: type: string description: A unique identifier for the object to which this event pertains in the format /. object: type: string description: More information about the agent that performed this action. old_uuid: type: string format: uuid description: Legacy UUID of events created before 2017. This will be empty for most events. nullable: true outcome: type: string description: Indicates the outcome of the action. enum: ["Failure", "Success"] outcome_detail: type: string description: Details of the action's outcome, such as what identifier was assigned, what digest was calculated, etc. outcome_information: type: string description: A summary of the action's outcome. updated_at: type: string format: date-time description: Because Premis Events cannot be changed, this timestamp should always match created_at. PremisEventViewList: properties: count: type: integer format: int64 description: The total number of results matching your query. next: type: string description: The URL for the next page of results. previous: type: string description: The URL for the previous page of results. items: description: A list of events matching your query. type: array items: $ref: '#/components/schemas/PremisEventView' StorageRecord: type: object properties: id: type: integer format: int64 generic_file_id: type: integer format: int64 description: The ID of the GenericFile stored in preservation. url: type: string description: The URL of the GenericFile in preservation storage. WorkItemView: type: object properties: id: type: integer format: int64 action: type: string description: The action being performed. enum: ["Delete", "Restore Object", "Restore File", "Glacier Restore", "Ingest"] alt_identifier: type: string description: An alternate identifier for this object, supplied by the depositor. nullable: true aptrust_approver: type: string format: email description: The email address of the APTrust admin who approved this item. In the past, this was used to only to approve bulk deletions. nullable: true bagit_profile_identifier: type: string description: The identifier of the BagIt profile used to create this bag. This can be either the APTrust profile URL or the BTR profile URL. Bags will be restored using the same profile under which they were submitted. enum: ["https://github.com/dpscollaborative/btr_bagit_profile/releases/download/1.0/btr-bagit-profile.json", "https://raw.githubusercontent.com/APTrust/preservation-services/master/profiles/aptrust-v2.2.json"] bag_date: type: string format: date-time description: The date on which the originally submitted bag appeared in the receiving bucket. bag_group_identifier: type: string description: An optional identifier naming the logical group to which this object belongs. For instance, if ten bags are all part of the same collection, the collection name may be used as the group identifier associating all ten bags. nullable: true bucket: type: string description: The name of the receiving bucket into which the original bag was uploaded for ingest. nullable: false created_at: type: string format: date-time description: The date and time this record was created. date_processed: type: string format: date-time description: The date and time of last known activity on this work item. This timestamp may change several times during multipart processes such as ingest. deletion_request_id: type: integer format: int64 description: The ID of the file or object deletion request related to this item. This will be null for all actions other than Delete. nullable: false etag: type: string description: The etag of tar file uploaded for ingest. nullable: false generic_file_id: type: integer format: int64 description: The ID of the GenericFile this work item pertains to. This will be null if the WorkItem pertains to an object. nullable: true generic_file_identifier: type: string description: The file's semantic identifier in the format //. nullable: true institution_id: type: integer format: int64 description: The ID of the institution that owns the file or object that is the subject of this work item. institution_name: type: string description: The name of the institution that owns the files or objects to which this work item pertains. institution_identifier: type: string description: The identifier (domain name) of the institution that owns the files or objects to which this work item pertains. inst_approver: type: string format: email description: The email address of the institutional admin who approved a deletion request. nullable: true intellectual_object_id: type: integer format: int64 description: The ID of the IntellectualObject being worked on. This will be null for ingest work items where the ingest is not yet complete. nullable: true internal_sender_identifier: type: string description: An optional identifier for internal use by the depositor. nullable: true name: type: string description: The name of the original tar file uploaded to the receiving bucket for ingest. nullable: false needs_admin_review: type: boolean description: Indicates whether an APTrust admin needs to review and possibly requeue this item. This flag is set after an item encounters too many transient errors. node: type: string description: The hostname of the microservice worker currently processing this item. nullable: true note: type: string description: A brief summary of the status of this item. nullable: false object_identifier: type: string description: A unique identifier for this object in the format /. nullable: true outcome: type: string description: The outcome of this item's activity. enum: ["Failure", "Success"] pid: type: integer format: int64 description: The process ID of the worker that is currently working on this item. queued_at: type: string format: date-time description: The date and time this item was queued for processing. nullable: true retry: type: boolean description: Indicates whether APTrust worker process should continue trying to process this work item. This is set to false only after certain fatal errors, or after too many transient errors. size: type: integer format: int64 description: The size (in bytes) of the bag, object, or file being worked on. nullable: false source_organization: type: string description: The name of the institution that submitted the object for ingest. stage: type: string description: The stage of processing. enum: - Available in S3 - Cleanup - Copy To Staging - Fetch - Format Identification - Package - Receive - Record - Reingest Check - Requested - Resolve - Restoring - Storage Validation - Store - Unpack - Validate stage_started_at: type: string format: date-time description: Indicates when the current stage of processing started for this item. nullable: true status: type: string description: The status of the current operation. enum: - Cancelled - Failed - Pending - Started - Success - Suspended storage_option: type: string description: Indicates where the object's files are stored. enum: ["Glacier-Deep-OH", "Glacier-Deep-OR", "Glacier-Deep-VA", "Glacier-OH", "Glacier-OR", "Glacier-VA", "Standard", "Wasabi-OR", "Wasabi-VA"] updated_at: type: string format: date-time description: The date and time this record was last updated. user: type: string format: email description: The email address of the user who initiated this work item. nullable: false WorkItemViewList: properties: count: type: integer format: int64 description: The total number of results matching your query. next: type: string description: The URL for the next page of results. previous: type: string description: The URL for the previous page of results. items: description: A list of items matching your query. type: array items: $ref: '#/components/schemas/WorkItemView' paths: /member-api/v3/alerts: get: summary: Returns a list of alerts for the currently authenticated user. tags: - Alerts parameters: - name: page in: query description: The page of results to fetch required: false schema: type: integer default: 1 format: int32 - name: per_page in: query description: The number of results to fetch per page. required: false schema: type: integer default: 20 format: int32 - name: sort in: query description: Sort the results in the specified column and direction. The format for this param is column__direction, where column is the column name and direction is either "asc" or "desc". required: false schema: type: string enum: ["created_at__asc", "created_at__desc", "type__asc", "type__desc"] - name: created_at__gteq in: query description: Return alerts created on or after the given timestamp. required: false schema: type: string format: date-time - name: created_at__lteq in: query description: Return alerts created on or before the given timestamp. required: false schema: type: string format: date-time - name: type in: query description: Return alerts of the specified type. required: false schema: type: string enum: ["Deletion Cancelled", "Deletion Completed", "Deletion Confirmed", "Deletion Requested", "Failed Fixity Check", "Password Changed", "Password Reset", "Restoration Completed", "Stalled Work Items", "Welcome New User"] responses: '200': description: A list of alerts for the currently authenticated user. content: application/json: schema: $ref: '#/components/schemas/AlertViewList' '401': description: Request is not authorized. Be sure you passed valid API credentials with your request. '403': description: The current user does not have permission to view alerts. You should not see this error if you've authenticated. /member-api/v3/alerts/show/{id}/{user_id}: get: summary: Returns an alert with the specified id for the specified user. tags: - Alerts parameters: - name: id in: path required: true description: The id of the alert. schema: type: integer format: int64 minimum: 1 - name: user_id in: path required: true description: The id of the alert. schema: type: integer format: int64 minimum: 1 responses: '200': description: An alert object with the requested user_id. content: application/json: schema: $ref: '#/components/schemas/AlertView' '400': description: Bad request. One or more required parameters are missing. '401': description: Request is not authorized. Be sure you passed valid API credentials with your request. '403': description: The current user does not have permission to view this alert. Typically, this means the current user's ID does not match the user_id param in the URL. '404': description: Either there is no alert with this ID, or the alert having this ID was never intended for the user identified by user_id. /member-api/v3/checksums: get: summary: Returns a list of checksums. Results are automatically limited to checksums for files that belong the current user's institution. tags: - Checksums parameters: - name: page in: query description: The page of results to fetch required: false schema: type: integer default: 1 format: int32 - name: per_page in: query description: The number of results to fetch per page. required: false schema: type: integer default: 20 format: int32 - name: sort in: query description: Sort the results in the specified column and direction. The format for this param is column__direction, where column is the column name and direction is either "asc" or "desc". required: false schema: type: string enum: ["algorithm__asc", "algorithm__desc", "datetime__asc", "datetime__desc", "digest__asc", "digest__desc", "generic_file_id__asc", "generic_file_id__desc", "generic_file_identfier__asc", "generic_file_identfier__desc", "intellectual_object_id__asc", "intellectual_object_id__desc", "state__asc", "state__desc"] default: datetime__desc - name: algorithm in: query description: Show only checksums using the specified algorithm. required: false schema: type: string enum: ["md5", "sha1", "sha256", "sha512"] - name: datetime__gteq in: query description: Return checksums calculated on or after the given timestamp. required: false schema: type: string format: date-time - name: datetime__lteq in: query description: Return checksums calculated on or before the given timestamp. required: false schema: type: string format: date-time - name: digest in: query description: Return checksums with this exact digest. required: false schema: type: string - name: generic_file_id in: query description: Return checksums for the specified file. required: false schema: type: integer format: int64 - name: generic_file_identifier in: query description: Return checksums for the specified file identifier. required: false schema: type: string - name: intellectual_object_id in: query description: Return checksums for files belonging to the specified intellectual object. required: false schema: type: integer format: int64 - name: state in: query description: Return checksums for active, deleted, or all files. If unspecified, the server will return checksums for both active and deleted files. required: false schema: type: string enum: ["A", "D"] default: empty responses: '200': description: A list of checksums for files belonging to the currently authenticated user's institution. content: application/json: schema: $ref: '#/components/schemas/ChecksumViewList' '401': description: Request is not authorized. Be sure you passed valid API credentials with your request. '403': description: The current user does not have permission to view the requested checksums. /member-api/v3/checksums/show/{id}: get: summary: Returns the checksum with the specified id. tags: - Checksums parameters: - name: id in: path required: true description: The id of the checksum. schema: type: integer format: int64 minimum: 1 responses: '200': description: An checksum object with the requested id. content: application/json: schema: $ref: '#/components/schemas/ChecksumView' '400': description: Bad request. One or more required parameters are missing. '401': description: Request is not authorized. Be sure you passed valid API credentials with your request. '403': description: The current user does not have permission to view this checksum. '404': description: There is no checksum with this ID. /member-api/v3/deletions: get: summary: Returns a list of deletion requests. tags: - Deletion Requests parameters: - name: page in: query description: The page of results to fetch required: false schema: type: integer default: 1 format: int32 - name: per_page in: query description: The number of results to fetch per page. required: false schema: type: integer default: 20 format: int32 - name: sort in: query description: Sort the results in the specified column and direction. The format for this param is column__direction, where column is the column name and direction is either "asc" or "desc". required: false schema: type: string enum: ["requested_at__asc", "requested_at__desc", "stage__asc", "stage__desc", "status__asc", "status__desc"] - name: requested_at__gteq in: query description: Return deletion requests made on or after the given timestamp. required: false schema: type: string format: date-time - name: requested_at__lteq in: query description: Return deletion requests made on or before the given timestamp. required: false schema: type: string format: date-time - name: stage in: query description: Return deletion requests in this stage of processing. required: false schema: type: string enum: ["Requested", "Resolve"] - name: status in: query description: Return deletion requests with this status. required: false schema: type: string enum: ["Cancelled", "Failed", "Pending", "Started", "Success"] responses: '200': description: A list of deletion requests belonging to the currently authenticated user's institution. content: application/json: schema: $ref: '#/components/schemas/DeletionRequestViewList' '401': description: Request is not authorized. Be sure you passed valid API credentials with your request. '403': description: The current user does not have permission to view the requested deletion requests. /member-api/v3/deletions/show/{id}: get: summary: Returns the deletion request with the specified id. tags: - Deletion Requests parameters: - name: id in: path required: true description: The id of the deletion request to show. schema: type: integer format: int64 minimum: 1 responses: '200': description: The deletion request with the requested id. content: application/json: schema: $ref: '#/components/schemas/DeletionRequestView' '400': description: Bad request. One or more required parameters are missing. '401': description: Request is not authorized. Be sure you passed valid API credentials with your request. '403': description: The current user does not have permission to view this deletion request. '404': description: There is no deletion request with this ID. /member-api/v3/files: get: summary: Returns a list of GenericFiles. tags: - Generic Files parameters: - name: page in: query description: The page of results to fetch required: false schema: type: integer default: 1 format: int32 - name: per_page in: query description: The number of results to fetch per page. required: false schema: type: integer default: 20 format: int32 - name: sort in: query description: Sort the results in the specified column and direction. The format for this param is column__direction, where column is the column name and direction is either "asc" or "desc". required: false schema: type: string enum: - created_at__asc - created_at__desc - identifier__asc - identifier__desc - intellectual_object_id__asc - intellectual_object_id__desc - last_fixity_check__asc - last_fixity_check__desc - size__asc - size__desc - state__asc - state__desc - storage_option__asc - storage_option__desc - updated_at__asc - updated_at__desc - uuid__asc - uuid__desc - name: created_at__gteq in: query description: Return files created on or after the given timestamp. required: false schema: type: string format: date-time - name: created_at__lteq in: query description: Return files created on or before the given timestamp. required: false schema: type: string format: date-time - name: identifier in: query description: Return the file with this identifier. required: false schema: type: string - name: intellectual_object_id in: query description: Return files belonging to the specified intellectual object. required: false schema: type: integer format: int64 - name: last_fixity_check__gteq in: query description: Return files whose last fixity check was on or after the given timestamp. required: false schema: type: string format: date-time - name: last_fixity_check__lteq in: query description: Return files whose last fixity check was on or before the given timestamp. required: false schema: type: string format: date-time - name: size__gteq in: query description: Return files whose size is at least this number of bytes. required: false schema: type: integer format: int64 - name: size__lteq in: query description: Return files whose size is less than or equal to this number of bytes. required: false schema: type: integer format: int64 - name: state in: query description: Return files with this state. A = Active, D = Deleted. required: false schema: type: string enum: ["A", "D"] - name: storage_option in: query description: Return files with the specified storage option. required: false schema: type: string enum: ["Glacier-Deep-OH", "Glacier-Deep-OR", "Glacier-Deep-VA", "Glacier-OH", "Glacier-OR", "Glacier-VA", "Standard", "Wasabi-OR", "Wasabi-VA"] - name: updated_at__gteq in: query description: Return files updated on or after the given timestamp. required: false schema: type: string format: date-time - name: updated_at__lteq in: query description: Return files updated on or before the given timestamp. required: false schema: type: string format: date-time - name: uuid in: query description: Return the file with this uuid. required: false schema: type: string format: uuid responses: '200': description: A list of generic files belonging to the currently authenticated user's institution. content: application/json: schema: $ref: '#/components/schemas/GenericFileViewList' '401': description: Request is not authorized. Be sure you passed valid API credentials with your request. '403': description: The current user does not have permission to view the requested files. /member-api/v3/files/show/{id}: get: summary: Returns the generic file with the speficied id. tags: - Generic Files parameters: - name: id in: path required: true description: The id of the file to show. schema: type: integer format: int64 minimum: 1 responses: '200': description: The generic file with the requested id. content: application/json: schema: $ref: '#/components/schemas/GenericFile' '400': description: Bad request. One or more required parameters are missing. '401': description: Request is not authorized. Be sure you passed valid API credentials with your request. '403': description: The current user does not have permission to view this file. '404': description: There is no generic file with this ID. /member-api/v3/objects: get: summary: Returns a list of intellectual objects. tags: - Intellectual Objects parameters: - name: page in: query description: The page of results to fetch required: false schema: type: integer default: 1 format: int32 - name: per_page in: query description: The number of results to fetch per page. required: false schema: type: integer default: 20 format: int32 - name: sort in: query description: Sort the results in the specified column and direction. The format for this param is column__direction, where column is the column name and direction is either "asc" or "desc". required: false schema: type: string enum: - access__asc - access__desc - alt_identifier__asc - alt_identifier__desc - bag_group_identifier__asc - bag_group_identifier__desc - bagit_profile_identifier__asc - bagit_profile_identifier__desc - created_at__asc - created_at__desc - etag__asc - etag__desc - file_count__asc - file_count__desc - identifier__asc - identifier__desc - internal_sender_identifier__asc - internal_sender_identifier__desc - size__asc - size__desc - state__asc - state__desc - storage_option__asc - storage_option__desc - updated_at__asc - updated_at__desc - name: access in: query description: Return objects with this access setting. required: false schema: type: string enum: ["consortia", "institution", "restricted"] - name: alt_identifier in: query description: Return objects with this alternate identifier. required: false schema: type: string - name: alt_identifier__starts_with in: query description: Return objects whose alternate identifier starts with the speficied string. required: false schema: type: string - name: bag_group_identifier in: query description: Return objects with this bag group identifier. required: false schema: type: string - name: bag_group_identifier__starts_with in: query description: Return objects whose bag group identifier starts with the specified string. required: false schema: type: string - name: bagit_profile_identifier in: query description: Return objects with this BagIt profile identifier. required: false schema: type: string enum: ["https://github.com/dpscollaborative/btr_bagit_profile/releases/download/1.0/btr-bagit-profile.json", "https://raw.githubusercontent.com/APTrust/preservation-services/master/profiles/aptrust-v2.2.json"] - name: created_at__gteq in: query description: Return objects created on or after the given timestamp. required: false schema: type: string format: date-time - name: created_at__lteq in: query description: Return objects created on or before the given timestamp. required: false schema: type: string format: date-time - name: etag in: query description: Return the object with this etag. required: false schema: type: string - name: file_count__gteq in: query description: Return objects containing at least this number of files. required: false schema: type: integer format: int64 - name: file_count__lteq in: query description: Return objects containing no more than this number of files. required: false schema: type: integer format: int64 - name: identifier in: query description: Return the object with this identifier. required: false schema: type: string - name: identifier__starts_with in: query description: Return intellectual objects whose identifiers match this prefix. required: false schema: type: string - name: internal_sender_identifier in: query description: Return objects with this internal sender identifier. required: false schema: type: string - name: size__gteq in: query description: Return objects whose size is at least this number of bytes. required: false schema: type: integer format: int64 - name: size__lteq in: query description: Return objects whose size is less than or equal to this number of bytes. required: false schema: type: integer format: int64 - name: state in: query description: Return objects with this state. A = Active, D = Deleted. required: false schema: type: string enum: ["A", "D"] - name: storage_option in: query description: Return objects with the specified storage option. required: false schema: type: string enum: ["Glacier-Deep-OH", "Glacier-Deep-OR", "Glacier-Deep-VA", "Glacier-OH", "Glacier-OR", "Glacier-VA", "Standard", "Wasabi-OR", "Wasabi-VA"] - name: updated_at__gteq in: query description: Return objects updated on or after the given timestamp. required: false schema: type: string format: date-time - name: updated_at__lteq in: query description: Return objects updated on or before the given timestamp. required: false schema: type: string format: date-time responses: '200': description: A list of intellectual objects belonging to the currently authenticated user's institution. content: application/json: schema: $ref: '#/components/schemas/IntellectualObjectViewList' '401': description: Request is not authorized. Be sure you passed valid API credentials with your request. '403': description: The current user does not have permission to view the requested objects. /member-api/v3/objects/show/{id}: get: summary: Returns the intellectual object with the specified id. tags: - Intellectual Objects parameters: - name: id in: path required: true description: The id of the object to show. schema: type: integer format: int64 minimum: 1 responses: '200': description: The intellectual object with the requested id. content: application/json: schema: $ref: '#/components/schemas/IntellectualObjectView' '400': description: Bad request. One or more required parameters are missing. '401': description: Request is not authorized. Be sure you passed valid API credentials with your request. '403': description: The current user does not have permission to view this object. '404': description: There is no object with this ID. /member-api/v3/events: get: summary: Returns a list of premis events. tags: - Premis Events parameters: - name: page in: query description: The page of results to fetch required: false schema: type: integer default: 1 format: int32 - name: per_page in: query description: The number of results to fetch per page. required: false schema: type: integer default: 20 format: int32 - name: sort in: query description: Sort the results in the specified column and direction. The format for this param is column__direction, where column is the column name and direction is either "asc" or "desc". required: false schema: type: string enum: - date_time__asc - date_time__desc - event_type__asc - event_type__desc - generic_file_id__asc - generic_file_id__desc - generic_file_identifier__asc - generic_file_identifier__desc - identifier__asc - identifier__desc - intellectual_object_id__asc - intellectual_object_id__desc - intellectual_object_identifier__asc - intellectual_object_identifier__desc - outcome__asc - outcome__desc - name: date_time__gteq in: query description: Return events that occurred on or after the given timestamp. required: false schema: type: string format: date-time - name: date_time__lteq in: query description: Return events that occurred on or before the given timestamp. required: false schema: type: string format: date-time - name: event_type in: query description: Return events of the specified type. required: false schema: type: string enum: - access assignment - creation - deletion - fixity check - identifier assignment - ingestion - message digest calculation - replication - name: generic_file_id in: query description: Return events for the specified file. required: false schema: type: integer format: int64 - name: generic_file_id__is_null in: query description: Return events that pertain to objects, not files. required: false schema: type: string enum: ["true"] - name: generic_file_identifier in: query description: Return events for the file with this identifier. required: false schema: type: string - name: identifier in: query description: Return the event with this identifier (uuid). required: false schema: type: string format: uuid - name: intellectual_object_id in: query description: Return events for the specified object. required: false schema: type: integer format: int64 - name: intellectual_object_identifier in: query description: Return events for the object with this identifier. This will include both object- and file-level events. required: false schema: type: string - name: outcome in: query description: Return events with the specified outcome. required: false schema: type: string enum: ["Failure", "Success"] responses: '200': description: A list of premis events belonging to the currently authenticated user's institution. content: application/json: schema: $ref: '#/components/schemas/PremisEventViewList' '401': description: Request is not authorized. Be sure you passed valid API credentials with your request. '403': description: The current user does not have permission to view the requested events. /member-api/v3/events/show/{id}: get: summary: Returns the premis event with the specified id. tags: - Premis Events parameters: - name: id in: path required: true description: The id of the event to show. schema: type: integer format: int64 minimum: 1 responses: '200': description: The premis event with the requested id. content: application/json: schema: $ref: '#/components/schemas/PremisEventView' '400': description: Bad request. One or more required parameters are missing. '401': description: Request is not authorized. Be sure you passed valid API credentials with your request. '403': description: The current user does not have permission to view this event. '404': description: There is no event with this ID. /member-api/v3/items: get: summary: Returns a list of work items tags: - Work Items parameters: - name: page in: query description: The page of results to fetch required: false schema: type: integer default: 1 format: int32 - name: per_page in: query description: The number of results to fetch per page. required: false schema: type: integer default: 20 format: int32 - name: sort in: query description: Sort the results in the specified column and direction. The format for this param is column__direction, where column is the column name and direction is either "asc" or "desc". required: false schema: type: string enum: - action__asc - action__desc - alt_identifier__asc - alt_identifier__desc - bag_date__asc - bag_date__desc - bag_group_identifier__asc - bag_group_identifier__desc - bagit_profile_identifier__asc - bagit_profile_identifier__desc - date_processed__asc - date_processed__desc - etag__asc - etag__desc - generic_file_id__asc - generic_file_id__desc - generic_file_identifier__asc - generic_file_identifier__desc - identifier__asc - identifier__desc - intellectual_object_id__asc - intellectual_object_id__desc - name__asc - name__desc - object_identifier__asc - object_identifier__desc - queued_at__asc - queued_at__desc - size__asc - size__desc - stage__asc - stage__desc - status__asc - status__desc - storage_option__asc - storage_option__desc - name: action in: query description: Return items with the specified action. required: false schema: type: string enum: ["Delete", "Restore Object", "Restore File", "Glacier Restore", "Ingest"] - name: alt_identifier in: query description: Return work items pertaining to objects with this alternate identifier. required: false schema: type: string - name: bag_date__gteq in: query description: Return items pertaining to bags uploaded on or after the given timestamp. required: false schema: type: string format: date-time - name: bag_date__lteq in: query description: Return items pertaining to bags uploaded on or before the given timestamp. required: false schema: type: string format: date-time - name: bag_group_identifier in: query description: Return items pertaining to objects with this bag group identifier. required: false schema: type: string - name: bagit_profile_identifier in: query description: Return items pertaining to objects with this BagIt profile identifier. required: false schema: type: string enum: ["https://github.com/dpscollaborative/btr_bagit_profile/releases/download/1.0/btr-bagit-profile.json", "https://raw.githubusercontent.com/APTrust/preservation-services/master/profiles/aptrust-v2.2.json"] - name: date_processed__gteq in: query description: Return items processed on or after the given timestamp. required: false schema: type: string format: date-time - name: date_processed__lteq in: query description: Return items processed on or before the given timestamp. required: false schema: type: string format: date-time - name: etag in: query description: Return the object with this etag. required: false schema: type: string - name: generic_file_id in: query description: Return work items pertaining to the specified file. required: false schema: type: integer format: int64 - name: generic_file_id__is_null in: query description: Return work items that pertain to objects, not files. required: false schema: type: string enum: ["true"] - name: generic_file_identifier in: query description: Return work items for the file with this identifier. required: false schema: type: string - name: intellectual_object_id in: query description: Return items related to the specified object. required: false schema: type: integer format: int64 - name: name in: query description: Return items for bags with the specified name. Name is the name of the original tar file uploaded to the receiving bucket for ingest. required: false schema: type: string - name: node__is_null in: query description: Return work items that are not currently being processed by any ingest, restoration, or deletion worker. required: false schema: type: string enum: ["true"] - name: node__is_not_null in: query description: Return work items that are currently being processed by any ingest, restoration, or deletion worker. required: false schema: type: string enum: ["true"] - name: object_identifier in: query description: Return work items for the object with this identifier. required: false schema: type: string - name: queued_at__is_null in: query description: Return work items that have not yet been queued for processing. required: false schema: type: string enum: ["true"] - name: queued_at__is_not_null in: query description: Return work items that have been queued for processing. required: false schema: type: string enum: ["true"] - name: retry in: query description: Return work items that are cleared for processing. required: false schema: type: string enum: ["true", "false"] - name: size__gteq in: query description: Return work items pertaining to files or objects whose size is at least this many bytes. required: false schema: type: integer format: int64 - name: size__lteq in: query description: Return work items pertaining to files or objects whose size is no more than this many bytes. required: false schema: type: integer format: int64 - name: stage in: query description: Return work items in this stage of processing. required: false schema: type: string enum: - Available in S3 - Cleanup - Copy To Staging - Fetch - Format Identification - Package - Receive - Record - Reingest Check - Requested - Resolve - Restoring - Storage Validation - Store - Unpack - Validate - name: status in: query description: Return work items with the specified status. required: false schema: type: string enum: - Cancelled - Failed - Pending - Started - Success - Suspended - name: storage_option in: query description: Return work items enacted on files or objects with the specified storage option. required: false schema: type: string enum: ["Glacier-Deep-OH", "Glacier-Deep-OR", "Glacier-Deep-VA", "Glacier-OH", "Glacier-OR", "Glacier-VA", "Standard", "Wasabi-OR", "Wasabi-VA"] - name: user in: query description: Return work items initiated by the specified user. required: false schema: type: string format: email responses: '200': description: A list of work items belonging to the currently authenticated user's institution. content: application/json: schema: $ref: '#/components/schemas/WorkItemViewList' '401': description: Request is not authorized. Be sure you passed valid API credentials with your request. '403': description: The current user does not have permission to view the requested work items. /member-api/v3/items/show/{id}: get: summary: Returns the work item with the specified id. tags: - Work Items parameters: - name: id in: path required: true description: The id of the work item to show. schema: type: integer format: int64 minimum: 1 responses: '200': description: The work item with the requested id. content: application/json: schema: $ref: '#/components/schemas/WorkItemView' '400': description: Bad request. One or more required parameters are missing. '401': description: Request is not authorized. Be sure you passed valid API credentials with your request. '403': description: The current user does not have permission to view this work item. '404': description: There is no work item with this ID.