openapi: 3.0.0 info: title: Archivematica Storage Service version: v1 tags: [] paths: /api/v2/file/{uuid}: get: operationId: Packages_read parameters: - name: uuid in: path required: true schema: $ref: '#/components/schemas/uuid' responses: '200': description: The request has succeeded. content: application/json: schema: $ref: '#/components/schemas/Package' '400': description: The server could not understand the request due to invalid syntax. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: The server cannot find the requested resource. /api/v2/file/{uuid}/check_fixity/: get: operationId: Packages_checkFixity description: Run a fixity check for the specified package. parameters: - name: uuid in: path required: true schema: $ref: '#/components/schemas/uuid' - name: force_local in: query required: false schema: type: boolean explode: false responses: '200': description: The request has succeeded. content: application/json: schema: $ref: '#/components/schemas/FixityResponse' '400': description: The server could not understand the request due to invalid syntax. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: The server cannot find the requested resource. /api/v2/file/{uuid}/move/: post: operationId: Packages_move description: Move the package to a different storage location. parameters: - name: uuid in: path required: true schema: $ref: '#/components/schemas/uuid' responses: '200': description: The request has succeeded. '400': description: The server could not understand the request due to invalid syntax. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: The server cannot find the requested resource. requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/PackageMoveRequest' /api/v2/file/{uuid}/review_aip_deletion/: post: operationId: Packages_reviewAipDeletion description: Approve or reject an AIP deletion request associated with this package. parameters: - name: uuid in: path required: true schema: $ref: '#/components/schemas/uuid' responses: '200': description: The request has succeeded. content: application/json: schema: $ref: '#/components/schemas/ReviewAipDeletionSuccess' '400': description: The server could not understand the request due to invalid syntax. content: application/json: schema: $ref: '#/components/schemas/ReviewAipDeletionFailure' '403': description: Access is forbidden. '404': description: The server cannot find the requested resource. content: application/json: schema: $ref: '#/components/schemas/ReviewAipDeletionFailure' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/ReviewAipDeletionRequest' /api/v2/location/: get: operationId: Locations_list parameters: - name: description in: query required: false schema: type: string explode: false - name: purpose in: query required: false schema: $ref: '#/components/schemas/LocationPurpose' explode: false - name: quota in: query required: false schema: type: integer explode: false - name: relative_path in: query required: false schema: type: string explode: false - name: used in: query required: false schema: type: integer explode: false - name: uuid in: query required: false schema: $ref: '#/components/schemas/uuid' explode: false - name: pipeline__uuid in: query required: false schema: $ref: '#/components/schemas/uuid' explode: false - $ref: '#/components/parameters/ListOpQueries.orderBy' - $ref: '#/components/parameters/ListOpQueries.limit' - $ref: '#/components/parameters/ListOpQueries.offset' responses: '200': description: The request has succeeded. content: application/json: schema: $ref: '#/components/schemas/LocationList' /api/v2/location/default/{purpose}/: get: operationId: Locations_default parameters: - name: purpose in: path required: true schema: $ref: '#/components/schemas/LocationPurpose' responses: '302': description: Redirection headers: Location: required: true schema: type: string '400': description: The server could not understand the request due to invalid syntax. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: The server cannot find the requested resource. /api/v2/location/{uuid}: get: operationId: Locations_read parameters: - name: uuid in: path required: true schema: $ref: '#/components/schemas/uuid' responses: '200': description: The request has succeeded. content: application/json: schema: $ref: '#/components/schemas/Location' '400': description: The server could not understand the request due to invalid syntax. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: The server cannot find the requested resource. post: operationId: Locations_move description: Move files to the specified location. parameters: - name: uuid in: path required: true schema: $ref: '#/components/schemas/uuid' responses: '200': description: The request has succeeded. '400': description: The server could not understand the request due to invalid syntax. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: The server cannot find the requested resource. requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/MoveRequest' /api/v2/pipeline/: get: operationId: Pipelines_list parameters: - name: description in: query required: false schema: type: string explode: false - name: uuid in: query required: false schema: $ref: '#/components/schemas/uuid' explode: false responses: '200': description: The request has succeeded. content: application/json: schema: $ref: '#/components/schemas/PipelineList' /api/v2/pipeline/{uuid}: get: operationId: Pipelines_read parameters: - name: uuid in: path required: true schema: type: string responses: '200': description: The request has succeeded. content: application/json: schema: $ref: '#/components/schemas/Pipeline' '400': description: The server could not understand the request due to invalid syntax. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: The server cannot find the requested resource. security: - ApiKeyAuth: [] components: parameters: ListOpQueries.limit: name: limit in: query required: false schema: type: integer explode: false ListOpQueries.offset: name: offset in: query required: false schema: type: integer explode: false ListOpQueries.orderBy: name: order_by in: query required: false schema: type: string explode: false schemas: Error: type: object required: - error properties: error: type: string FixityFailureFiles: type: object properties: missing: type: array items: type: string changed: type: array items: type: string untracked: type: array items: type: string FixityFailures: type: object properties: files: $ref: '#/components/schemas/FixityFailureFiles' FixityResponse: type: object required: - success - message - timestamp properties: success: type: boolean nullable: true message: type: string timestamp: type: string nullable: true failures: $ref: '#/components/schemas/FixityFailures' ListResponseMeta: type: object required: - limit - next - offset - previous - total_count properties: limit: type: integer next: type: string nullable: true offset: type: integer previous: type: string nullable: true total_count: type: integer Location: type: object required: - description - enabled - path - pipeline - purpose - quota - relative_path - resource_uri - space - used - uuid properties: description: type: string enabled: type: boolean path: type: string pipeline: type: array items: type: string purpose: $ref: '#/components/schemas/LocationPurpose' quota: type: integer nullable: true relative_path: type: string resource_uri: type: string space: type: string used: type: integer uuid: $ref: '#/components/schemas/uuid' LocationList: type: object required: - meta - objects properties: meta: $ref: '#/components/schemas/ListResponseMeta' objects: type: array items: $ref: '#/components/schemas/Location' LocationPurpose: type: string enum: - AR - AS - CP - DS - SD - SS - BL - TS - RP MoveRequest: type: object required: - origin_location - pipeline - files properties: origin_location: allOf: - $ref: '#/components/schemas/uri' description: URI of the Location the files should be moved from. pipeline: allOf: - $ref: '#/components/schemas/uri' description: URI of the pipeline. files: type: array items: $ref: '#/components/schemas/moveFile' description: List of objects containing `source` and `destination`. The source and destination are paths relative to their Location of the files to be moved. Package: type: object required: - uuid - current_full_path - current_location - current_path - encrypted - origin_pipeline - package_type - related_packages - replicas - replicated_package - resource_uri - size - status - stored_date properties: uuid: $ref: '#/components/schemas/uuid' current_full_path: type: string current_location: $ref: '#/components/schemas/uri' current_path: type: string encrypted: type: boolean origin_pipeline: $ref: '#/components/schemas/uri' package_type: $ref: '#/components/schemas/PackageType' related_packages: type: array items: type: string replicas: type: array items: type: string replicated_package: type: string nullable: true resource_uri: $ref: '#/components/schemas/uri' size: type: integer status: type: string stored_date: type: string nullable: true PackageMoveRequest: type: object required: - location_uuid properties: location_uuid: $ref: '#/components/schemas/uuid' PackageType: type: string enum: - AIP - AIC - DIP - transfer - SIP - file - deposit Pipeline: type: object required: - description - remote_name - resource_uri - uuid properties: description: type: string remote_name: type: string resource_uri: type: string uuid: $ref: '#/components/schemas/uuid' PipelineList: type: object required: - meta - objects properties: meta: $ref: '#/components/schemas/ListResponseMeta' objects: type: array items: $ref: '#/components/schemas/Pipeline' ReviewAipDeletionDecision: type: string enum: - approve - reject ReviewAipDeletionFailure: type: object required: - error_message properties: error_message: type: string detail: type: string ReviewAipDeletionRequest: type: object required: - event_id - decision - reason properties: event_id: type: integer format: int32 description: ID of the deletion request event to review. decision: allOf: - $ref: '#/components/schemas/ReviewAipDeletionDecision' description: Decision to record. Accepted values are "approve" and "reject". reason: type: string description: Explanation that will be stored alongside the decision. ReviewAipDeletionSuccess: type: object required: - message properties: message: type: string detail: type: string Versions: type: string enum: - v1 moveFile: type: object required: - source - destination properties: source: type: string destination: type: string uri: type: string description: Uniform Resource Identifier, e.g. "/api/v2/space/141593ff-2a27-44a1-9de1-917573fa0f4a/". uuid: type: string format: 'UUIDv4, e.g.: "e3bae040-7682-4457-aef8-20a419aed0bd".' securitySchemes: ApiKeyAuth: type: apiKey in: header name: ApiKey