{
  "components": {
    "schemas": {
      "AIPCollection": {
        "example": [
          {
            "created_at": "1970-01-01T00:00:01Z",
            "deletion_report_key": "abc123",
            "location_uuid": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5",
            "name": "abc123",
            "object_key": "abc123",
            "status": "stored",
            "uuid": "abc123"
          }
        ],
        "items": {
          "$ref": "#/components/schemas/EnduroStorageAip"
        },
        "type": "array"
      },
      "AIPCreatedEvent": {
        "example": {
          "item": {
            "created_at": "1970-01-01T00:00:01Z",
            "deletion_report_key": "abc123",
            "location_uuid": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5",
            "name": "abc123",
            "object_key": "abc123",
            "status": "stored",
            "uuid": "abc123"
          },
          "uuid": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5"
        },
        "properties": {
          "item": {
            "$ref": "#/components/schemas/EnduroStorageAip"
          },
          "uuid": {
            "description": "Identifier of AIP",
            "example": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5",
            "type": "string"
          }
        },
        "required": [
          "uuid",
          "item"
        ],
        "type": "object"
      },
      "AIPLocationUpdatedEvent": {
        "example": {
          "location_uuid": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5",
          "uuid": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5"
        },
        "properties": {
          "location_uuid": {
            "description": "Identifier of Location",
            "example": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5",
            "type": "string"
          },
          "uuid": {
            "description": "Identifier of AIP",
            "example": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5",
            "type": "string"
          }
        },
        "required": [
          "uuid",
          "location_uuid"
        ],
        "type": "object"
      },
      "AIPNotFound": {
        "description": "AIP not found",
        "example": {
          "message": "abc123",
          "uuid": "abc123"
        },
        "properties": {
          "message": {
            "description": "Message of error",
            "example": "abc123",
            "type": "string"
          },
          "uuid": {
            "description": "Identifier of missing AIP",
            "example": "abc123",
            "type": "string"
          }
        },
        "required": [
          "message",
          "uuid"
        ],
        "type": "object"
      },
      "AIPResponse": {
        "description": "An AIP describes an AIP retrieved by the storage service. (default view)",
        "example": {
          "created_at": "1970-01-01T00:00:01Z",
          "deletion_report_key": "abc123",
          "location_uuid": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5",
          "name": "abc123",
          "object_key": "abc123",
          "status": "stored",
          "uuid": "abc123"
        },
        "properties": {
          "created_at": {
            "description": "Creation datetime",
            "example": "1970-01-01T00:00:01Z",
            "format": "date-time",
            "type": "string"
          },
          "deletion_report_key": {
            "description": "Deletion report key",
            "example": "abc123",
            "type": "string"
          },
          "location_uuid": {
            "description": "Identifier of storage location",
            "example": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5",
            "type": "string"
          },
          "name": {
            "example": "abc123",
            "type": "string"
          },
          "object_key": {
            "example": "abc123",
            "type": "string"
          },
          "status": {
            "default": "unspecified",
            "description": "Status of the AIP",
            "enum": [
              "unspecified",
              "stored",
              "pending",
              "processing",
              "deleted",
              "queued"
            ],
            "example": "stored",
            "type": "string"
          },
          "uuid": {
            "example": "abc123",
            "type": "string"
          }
        },
        "required": [
          "name",
          "uuid",
          "status",
          "object_key",
          "created_at"
        ],
        "type": "object"
      },
      "AIPResponseCollection": {
        "description": "list_location_aips_response_body is the result type for an array of AIPResponse (default view)",
        "example": [
          {
            "created_at": "1970-01-01T00:00:01Z",
            "deletion_report_key": "abc123",
            "location_uuid": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5",
            "name": "abc123",
            "object_key": "abc123",
            "status": "stored",
            "uuid": "abc123"
          }
        ],
        "items": {
          "$ref": "#/components/schemas/AIPResponse"
        },
        "type": "array"
      },
      "AIPStatusUpdatedEvent": {
        "example": {
          "status": "stored",
          "uuid": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5"
        },
        "properties": {
          "status": {
            "enum": [
              "unspecified",
              "stored",
              "pending",
              "processing",
              "deleted",
              "queued"
            ],
            "example": "stored",
            "type": "string"
          },
          "uuid": {
            "description": "Identifier of AIP",
            "example": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5",
            "type": "string"
          }
        },
        "required": [
          "uuid",
          "status"
        ],
        "type": "object"
      },
      "AIPTaskCollection": {
        "example": [
          {
            "completed_at": "1970-01-01T00:00:01Z",
            "name": "abc123",
            "note": "abc123",
            "started_at": "1970-01-01T00:00:01Z",
            "status": "in progress",
            "uuid": "abc123",
            "workflow_uuid": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5"
          }
        ],
        "items": {
          "$ref": "#/components/schemas/EnduroStorageAipTask"
        },
        "type": "array"
      },
      "AIPTaskCreatedEvent": {
        "example": {
          "item": {
            "completed_at": "1970-01-01T00:00:01Z",
            "name": "abc123",
            "note": "abc123",
            "started_at": "1970-01-01T00:00:01Z",
            "status": "in progress",
            "uuid": "abc123",
            "workflow_uuid": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5"
          },
          "uuid": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5"
        },
        "properties": {
          "item": {
            "$ref": "#/components/schemas/EnduroStorageAipTask"
          },
          "uuid": {
            "description": "Identifier of task",
            "example": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5",
            "type": "string"
          }
        },
        "required": [
          "uuid",
          "item"
        ],
        "type": "object"
      },
      "AIPTaskUpdatedEvent": {
        "example": {
          "item": {
            "completed_at": "1970-01-01T00:00:01Z",
            "name": "abc123",
            "note": "abc123",
            "started_at": "1970-01-01T00:00:01Z",
            "status": "in progress",
            "uuid": "abc123",
            "workflow_uuid": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5"
          },
          "uuid": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5"
        },
        "properties": {
          "item": {
            "$ref": "#/components/schemas/EnduroStorageAipTask"
          },
          "uuid": {
            "description": "Identifier of task",
            "example": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5",
            "type": "string"
          }
        },
        "required": [
          "uuid",
          "item"
        ],
        "type": "object"
      },
      "AIPUpdatedEvent": {
        "example": {
          "item": {
            "created_at": "1970-01-01T00:00:01Z",
            "deletion_report_key": "abc123",
            "location_uuid": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5",
            "name": "abc123",
            "object_key": "abc123",
            "status": "stored",
            "uuid": "abc123"
          },
          "uuid": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5"
        },
        "properties": {
          "item": {
            "$ref": "#/components/schemas/EnduroStorageAip"
          },
          "uuid": {
            "description": "Identifier of AIP",
            "example": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5",
            "type": "string"
          }
        },
        "required": [
          "uuid",
          "item"
        ],
        "type": "object"
      },
      "AIPWorkflowCollection": {
        "example": [
          {
            "aip_uuid": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5",
            "completed_at": "1970-01-01T00:00:01Z",
            "started_at": "1970-01-01T00:00:01Z",
            "status": "in progress",
            "tasks": [
              {
                "completed_at": "1970-01-01T00:00:01Z",
                "name": "abc123",
                "note": "abc123",
                "started_at": "1970-01-01T00:00:01Z",
                "status": "in progress",
                "uuid": "abc123",
                "workflow_uuid": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5"
              }
            ],
            "temporal_id": "abc123",
            "type": "upload aip",
            "uuid": "abc123"
          }
        ],
        "items": {
          "$ref": "#/components/schemas/EnduroStorageAipWorkflow"
        },
        "type": "array"
      },
      "AIPWorkflowCreatedEvent": {
        "example": {
          "item": {
            "aip_uuid": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5",
            "completed_at": "1970-01-01T00:00:01Z",
            "started_at": "1970-01-01T00:00:01Z",
            "status": "in progress",
            "tasks": [
              {
                "completed_at": "1970-01-01T00:00:01Z",
                "name": "abc123",
                "note": "abc123",
                "started_at": "1970-01-01T00:00:01Z",
                "status": "in progress",
                "uuid": "abc123",
                "workflow_uuid": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5"
              }
            ],
            "temporal_id": "abc123",
            "type": "upload aip",
            "uuid": "abc123"
          },
          "uuid": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5"
        },
        "properties": {
          "item": {
            "$ref": "#/components/schemas/EnduroStorageAipWorkflow"
          },
          "uuid": {
            "description": "Identifier of workflow",
            "example": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5",
            "type": "string"
          }
        },
        "required": [
          "uuid",
          "item"
        ],
        "type": "object"
      },
      "AIPWorkflowUpdatedEvent": {
        "example": {
          "item": {
            "aip_uuid": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5",
            "completed_at": "1970-01-01T00:00:01Z",
            "started_at": "1970-01-01T00:00:01Z",
            "status": "in progress",
            "tasks": [
              {
                "completed_at": "1970-01-01T00:00:01Z",
                "name": "abc123",
                "note": "abc123",
                "started_at": "1970-01-01T00:00:01Z",
                "status": "in progress",
                "uuid": "abc123",
                "workflow_uuid": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5"
              }
            ],
            "temporal_id": "abc123",
            "type": "upload aip",
            "uuid": "abc123"
          },
          "uuid": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5"
        },
        "properties": {
          "item": {
            "$ref": "#/components/schemas/EnduroStorageAipWorkflow"
          },
          "uuid": {
            "description": "Identifier of workflow",
            "example": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5",
            "type": "string"
          }
        },
        "required": [
          "uuid",
          "item"
        ],
        "type": "object"
      },
      "AMSSConfig": {
        "example": {
          "api_key": "abc123",
          "url": "abc123",
          "username": "abc123"
        },
        "properties": {
          "api_key": {
            "example": "abc123",
            "type": "string"
          },
          "url": {
            "example": "abc123",
            "type": "string"
          },
          "username": {
            "example": "abc123",
            "type": "string"
          }
        },
        "required": [
          "api_key",
          "url",
          "username"
        ],
        "type": "object"
      },
      "AddBatchRequestBody": {
        "description": "Request body for add_batch.",
        "example": {
          "identifier": "abc123",
          "keys": [
            "abc123"
          ],
          "source_id": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5"
        },
        "properties": {
          "identifier": {
            "description": "Optional Batch identifier assigned by the user",
            "example": "abc123",
            "type": "string"
          },
          "keys": {
            "description": "Key of the SIPs to ingest as part of the batch",
            "example": [
              "abc123"
            ],
            "items": {
              "example": "abc123",
              "type": "string"
            },
            "type": "array"
          },
          "source_id": {
            "description": "Identifier of SIP source -- CURRENTLY NOT USED",
            "example": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5",
            "format": "uuid",
            "type": "string"
          }
        },
        "required": [
          "source_id",
          "keys"
        ],
        "type": "object"
      },
      "AddSipRequestBody": {
        "description": "Request body for add_sip.",
        "example": {
          "key": "abc123",
          "source_id": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5"
        },
        "properties": {
          "key": {
            "description": "Key of the item to ingest",
            "example": "abc123",
            "type": "string"
          },
          "source_id": {
            "description": "Identifier of SIP source",
            "example": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5",
            "format": "uuid",
            "type": "string"
          }
        },
        "required": [
          "source_id",
          "key"
        ],
        "type": "object"
      },
      "AddSipResponseBody": {
        "example": {
          "uuid": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5"
        },
        "properties": {
          "uuid": {
            "description": "Identifier of the ingested SIP",
            "example": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5",
            "format": "uuid",
            "type": "string"
          }
        },
        "required": [
          "uuid"
        ],
        "type": "object"
      },
      "AipDeletionAutoRequestBody": {
        "description": "Request body for aip_deletion_auto.",
        "example": {
          "reason": "abc123",
          "skip_report": false
        },
        "properties": {
          "reason": {
            "example": "abc123",
            "type": "string"
          },
          "skip_report": {
            "description": "Skip AIP deletion report generation",
            "example": false,
            "type": "boolean"
          }
        },
        "required": [
          "reason"
        ],
        "type": "object"
      },
      "BatchCollection": {
        "example": [
          {
            "completed_at": "1970-01-01T00:00:01Z",
            "created_at": "1970-01-01T00:00:01Z",
            "identifier": "abc123",
            "sips_count": 1,
            "started_at": "1970-01-01T00:00:01Z",
            "status": "processing",
            "uploader_email": "abc123",
            "uploader_name": "abc123",
            "uploader_uuid": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5",
            "uuid": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5"
          }
        ],
        "items": {
          "$ref": "#/components/schemas/EnduroIngestBatch"
        },
        "type": "array"
      },
      "BatchCreatedEvent": {
        "example": {
          "item": {
            "completed_at": "1970-01-01T00:00:01Z",
            "created_at": "1970-01-01T00:00:01Z",
            "identifier": "abc123",
            "sips_count": 1,
            "started_at": "1970-01-01T00:00:01Z",
            "status": "processing",
            "uploader_email": "abc123",
            "uploader_name": "abc123",
            "uploader_uuid": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5",
            "uuid": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5"
          },
          "uuid": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5"
        },
        "properties": {
          "item": {
            "$ref": "#/components/schemas/EnduroIngestBatch"
          },
          "uuid": {
            "description": "Identifier of Batch",
            "example": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5",
            "type": "string"
          }
        },
        "required": [
          "uuid",
          "item"
        ],
        "type": "object"
      },
      "BatchNotFound": {
        "description": "Batch not found",
        "example": {
          "message": "abc123",
          "uuid": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5"
        },
        "properties": {
          "message": {
            "description": "Message of error",
            "example": "abc123",
            "type": "string"
          },
          "uuid": {
            "description": "Identifier of missing Batch",
            "example": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5",
            "format": "uuid",
            "type": "string"
          }
        },
        "required": [
          "message",
          "uuid"
        ],
        "type": "object"
      },
      "BatchUpdatedEvent": {
        "example": {
          "item": {
            "completed_at": "1970-01-01T00:00:01Z",
            "created_at": "1970-01-01T00:00:01Z",
            "identifier": "abc123",
            "sips_count": 1,
            "started_at": "1970-01-01T00:00:01Z",
            "status": "processing",
            "uploader_email": "abc123",
            "uploader_name": "abc123",
            "uploader_uuid": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5",
            "uuid": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5"
          },
          "uuid": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5"
        },
        "properties": {
          "item": {
            "$ref": "#/components/schemas/EnduroIngestBatch"
          },
          "uuid": {
            "description": "Identifier of Batch",
            "example": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5",
            "type": "string"
          }
        },
        "required": [
          "uuid",
          "item"
        ],
        "type": "object"
      },
      "CancelAipDeletionRequestBody": {
        "description": "Request body for cancel_aip_deletion.",
        "example": {
          "check": false
        },
        "properties": {
          "check": {
            "description": "If check is true, check user authorization to cancel deletion but don't execute the cancellation.",
            "example": false,
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "ConfirmSipRequestBody": {
        "description": "Request body for confirm_sip.",
        "example": {
          "location_uuid": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5"
        },
        "properties": {
          "location_uuid": {
            "description": "Identifier of storage location",
            "example": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5",
            "type": "string"
          }
        },
        "required": [
          "location_uuid"
        ],
        "type": "object"
      },
      "CreateAipRequestBody": {
        "description": "Request body for create_aip.",
        "example": {
          "location_uuid": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5",
          "name": "abc123",
          "object_key": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5",
          "status": "stored",
          "uuid": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5"
        },
        "properties": {
          "location_uuid": {
            "description": "Identifier of the AIP's storage location",
            "example": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5",
            "type": "string"
          },
          "name": {
            "description": "Name of the AIP",
            "example": "abc123",
            "type": "string"
          },
          "object_key": {
            "description": "ObjectKey of the AIP",
            "example": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5",
            "format": "uuid",
            "type": "string"
          },
          "status": {
            "default": "unspecified",
            "description": "Status of the the AIP",
            "enum": [
              "unspecified",
              "stored",
              "pending",
              "processing",
              "deleted",
              "queued"
            ],
            "example": "stored",
            "type": "string"
          },
          "uuid": {
            "description": "Identifier of the AIP",
            "example": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5",
            "format": "uuid",
            "type": "string"
          }
        },
        "required": [
          "uuid",
          "name",
          "object_key"
        ],
        "type": "object"
      },
      "CreateLocationRequestBody": {
        "description": "Request body for create_location.",
        "example": {
          "config": {
            "type": "s3",
            "value": {
              "bucket": "abc123",
              "endpoint": "abc123",
              "key": "abc123",
              "path_style": false,
              "profile": "abc123",
              "region": "abc123",
              "secret": "abc123",
              "token": "abc123"
            }
          },
          "description": "abc123",
          "name": "abc123",
          "purpose": "aip_store",
          "source": "s3"
        },
        "properties": {
          "config": {
            "anyOf": [
              {
                "properties": {
                  "type": {
                    "enum": [
                      "amss"
                    ],
                    "type": "string"
                  },
                  "value": {
                    "$ref": "#/components/schemas/AMSSConfig"
                  }
                },
                "required": [
                  "type",
                  "value"
                ],
                "type": "object"
              },
              {
                "properties": {
                  "type": {
                    "enum": [
                      "s3"
                    ],
                    "type": "string"
                  },
                  "value": {
                    "$ref": "#/components/schemas/S3Config"
                  }
                },
                "required": [
                  "type",
                  "value"
                ],
                "type": "object"
              },
              {
                "properties": {
                  "type": {
                    "enum": [
                      "sftp"
                    ],
                    "type": "string"
                  },
                  "value": {
                    "$ref": "#/components/schemas/SFTPConfig"
                  }
                },
                "required": [
                  "type",
                  "value"
                ],
                "type": "object"
              },
              {
                "properties": {
                  "type": {
                    "enum": [
                      "url"
                    ],
                    "type": "string"
                  },
                  "value": {
                    "$ref": "#/components/schemas/URLConfig"
                  }
                },
                "required": [
                  "type",
                  "value"
                ],
                "type": "object"
              }
            ],
            "example": {
              "type": "s3",
              "value": {
                "bucket": "abc123",
                "endpoint": "abc123",
                "key": "abc123",
                "path_style": false,
                "profile": "abc123",
                "region": "abc123",
                "secret": "abc123",
                "token": "abc123"
              }
            },
            "type": "object"
          },
          "description": {
            "example": "abc123",
            "type": "string"
          },
          "name": {
            "example": "abc123",
            "type": "string"
          },
          "purpose": {
            "enum": [
              "unspecified",
              "aip_store"
            ],
            "example": "aip_store",
            "type": "string"
          },
          "source": {
            "enum": [
              "unspecified",
              "s3",
              "sftp",
              "amss",
              "filesystem"
            ],
            "example": "s3",
            "type": "string"
          }
        },
        "required": [
          "name",
          "source",
          "purpose"
        ],
        "type": "object"
      },
      "CreateLocationResult": {
        "example": {
          "uuid": "abc123"
        },
        "properties": {
          "uuid": {
            "example": "abc123",
            "type": "string"
          }
        },
        "required": [
          "uuid"
        ],
        "type": "object"
      },
      "EnduroAbout": {
        "example": {
          "child_workflows": [
            {
              "task_queue": "abc123",
              "type": "poststorage",
              "workflow_name": "abc123"
            }
          ],
          "preservation_system": "abc123",
          "upload_max_size": 1,
          "version": "abc123"
        },
        "properties": {
          "child_workflows": {
            "$ref": "#/components/schemas/EnduroChildworkflowCollection"
          },
          "preservation_system": {
            "example": "abc123",
            "type": "string"
          },
          "upload_max_size": {
            "example": 1,
            "format": "int64",
            "type": "integer"
          },
          "version": {
            "example": "abc123",
            "type": "string"
          }
        },
        "required": [
          "version",
          "preservation_system",
          "upload_max_size"
        ],
        "type": "object"
      },
      "EnduroChildworkflow": {
        "example": {
          "task_queue": "abc123",
          "type": "poststorage",
          "workflow_name": "abc123"
        },
        "properties": {
          "task_queue": {
            "example": "abc123",
            "type": "string"
          },
          "type": {
            "enum": [
              "preprocessing",
              "poststorage",
              "postbatch"
            ],
            "example": "poststorage",
            "type": "string"
          },
          "workflow_name": {
            "example": "abc123",
            "type": "string"
          }
        },
        "required": [
          "type",
          "task_queue",
          "workflow_name"
        ],
        "type": "object"
      },
      "EnduroChildworkflowCollection": {
        "example": [
          {
            "task_queue": "abc123",
            "type": "poststorage",
            "workflow_name": "abc123"
          }
        ],
        "items": {
          "$ref": "#/components/schemas/EnduroChildworkflow"
        },
        "type": "array"
      },
      "EnduroIngestBatch": {
        "description": "Batch describes an ingest batch type.",
        "example": {
          "completed_at": "1970-01-01T00:00:01Z",
          "created_at": "1970-01-01T00:00:01Z",
          "identifier": "abc123",
          "sips_count": 1,
          "started_at": "1970-01-01T00:00:01Z",
          "status": "processing",
          "uploader_email": "abc123",
          "uploader_name": "abc123",
          "uploader_uuid": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5",
          "uuid": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5"
        },
        "properties": {
          "completed_at": {
            "description": "Completion datetime",
            "example": "1970-01-01T00:00:01Z",
            "format": "date-time",
            "type": "string"
          },
          "created_at": {
            "description": "Creation datetime",
            "example": "1970-01-01T00:00:01Z",
            "format": "date-time",
            "type": "string"
          },
          "identifier": {
            "description": "Identifier of the Batch",
            "example": "abc123",
            "type": "string"
          },
          "sips_count": {
            "description": "Number of SIPs in the Batch",
            "example": 1,
            "format": "int64",
            "type": "integer"
          },
          "started_at": {
            "description": "Start datetime",
            "example": "1970-01-01T00:00:01Z",
            "format": "date-time",
            "type": "string"
          },
          "status": {
            "description": "Status of the Batch",
            "enum": [
              "queued",
              "processing",
              "pending",
              "ingested",
              "canceled",
              "failed"
            ],
            "example": "processing",
            "type": "string"
          },
          "uploader_email": {
            "description": "Email of the user who uploaded the Batch",
            "example": "abc123",
            "type": "string"
          },
          "uploader_name": {
            "description": "Name of the user who uploaded the Batch",
            "example": "abc123",
            "type": "string"
          },
          "uploader_uuid": {
            "description": "UUID of the user who uploaded the Batch",
            "example": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5",
            "type": "string"
          },
          "uuid": {
            "description": "Identifier of Batch",
            "example": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5",
            "type": "string"
          }
        },
        "required": [
          "uuid",
          "identifier",
          "sips_count",
          "status",
          "created_at"
        ],
        "type": "object"
      },
      "EnduroIngestBatches": {
        "example": {
          "items": [
            {
              "completed_at": "1970-01-01T00:00:01Z",
              "created_at": "1970-01-01T00:00:01Z",
              "identifier": "abc123",
              "sips_count": 1,
              "started_at": "1970-01-01T00:00:01Z",
              "status": "processing",
              "uploader_email": "abc123",
              "uploader_name": "abc123",
              "uploader_uuid": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5",
              "uuid": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5"
            }
          ],
          "page": {
            "limit": 1,
            "offset": 1,
            "total": 1
          }
        },
        "properties": {
          "items": {
            "$ref": "#/components/schemas/BatchCollection"
          },
          "page": {
            "$ref": "#/components/schemas/EnduroPage"
          }
        },
        "required": [
          "items",
          "page"
        ],
        "type": "object"
      },
      "EnduroIngestSip": {
        "description": "SIP describes an ingest SIP type.",
        "example": {
          "aip_uuid": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5",
          "batch_identifier": "abc123",
          "batch_status": "processing",
          "batch_uuid": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5",
          "completed_at": "1970-01-01T00:00:01Z",
          "created_at": "1970-01-01T00:00:01Z",
          "failed_as": "PIP",
          "failed_key": "abc123",
          "file_count": 1,
          "name": "abc123",
          "started_at": "1970-01-01T00:00:01Z",
          "status": "failed",
          "uploader_email": "abc123",
          "uploader_name": "abc123",
          "uploader_uuid": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5",
          "uuid": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5"
        },
        "properties": {
          "aip_uuid": {
            "description": "Identifier of AIP",
            "example": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5",
            "format": "uuid",
            "type": "string"
          },
          "batch_identifier": {
            "description": "Identifier of the related Batch",
            "example": "abc123",
            "type": "string"
          },
          "batch_status": {
            "description": "Status of the related Batch",
            "enum": [
              "queued",
              "processing",
              "pending",
              "ingested",
              "canceled",
              "failed"
            ],
            "example": "processing",
            "type": "string"
          },
          "batch_uuid": {
            "description": "UUID of the related Batch",
            "example": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5",
            "type": "string"
          },
          "completed_at": {
            "description": "Completion datetime",
            "example": "1970-01-01T00:00:01Z",
            "format": "date-time",
            "type": "string"
          },
          "created_at": {
            "description": "Creation datetime",
            "example": "1970-01-01T00:00:01Z",
            "format": "date-time",
            "type": "string"
          },
          "failed_as": {
            "description": "Package type in case of failure (SIP or PIP)",
            "enum": [
              "SIP",
              "PIP"
            ],
            "example": "PIP",
            "type": "string"
          },
          "failed_key": {
            "description": "Object key of the failed package in the internal bucket",
            "example": "abc123",
            "type": "string"
          },
          "file_count": {
            "description": "Number of files in the SIP",
            "example": 1,
            "format": "int32",
            "type": "integer"
          },
          "name": {
            "description": "Name of the SIP",
            "example": "abc123",
            "type": "string"
          },
          "started_at": {
            "description": "Start datetime",
            "example": "1970-01-01T00:00:01Z",
            "format": "date-time",
            "type": "string"
          },
          "status": {
            "description": "Status of the SIP",
            "enum": [
              "error",
              "failed",
              "queued",
              "processing",
              "pending",
              "ingested",
              "validated",
              "canceled"
            ],
            "example": "failed",
            "type": "string"
          },
          "uploader_email": {
            "description": "Email of the user who uploaded the SIP",
            "example": "abc123",
            "type": "string"
          },
          "uploader_name": {
            "description": "Name of the user who uploaded the SIP",
            "example": "abc123",
            "type": "string"
          },
          "uploader_uuid": {
            "description": "UUID of the user who uploaded the SIP",
            "example": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5",
            "type": "string"
          },
          "uuid": {
            "description": "Identifier of SIP",
            "example": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5",
            "type": "string"
          }
        },
        "required": [
          "uuid",
          "status",
          "created_at"
        ],
        "type": "object"
      },
      "EnduroIngestSipDecision": {
        "description": "SIPDecision describes an active child workflow decision request.",
        "example": {
          "message": "abc123",
          "options": [
            "abc123"
          ]
        },
        "properties": {
          "message": {
            "example": "abc123",
            "type": "string"
          },
          "options": {
            "example": [
              "abc123"
            ],
            "items": {
              "example": "abc123",
              "type": "string"
            },
            "type": "array"
          }
        },
        "required": [
          "message",
          "options"
        ],
        "type": "object"
      },
      "EnduroIngestSipTask": {
        "description": "SIPTask describes a SIP workflow task.",
        "example": {
          "completed_at": "1970-01-01T00:00:01Z",
          "name": "abc123",
          "note": "abc123",
          "started_at": "1970-01-01T00:00:01Z",
          "status": "in progress",
          "uuid": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5",
          "workflow_uuid": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5"
        },
        "properties": {
          "completed_at": {
            "example": "1970-01-01T00:00:01Z",
            "format": "date-time",
            "type": "string"
          },
          "name": {
            "example": "abc123",
            "type": "string"
          },
          "note": {
            "example": "abc123",
            "type": "string"
          },
          "started_at": {
            "example": "1970-01-01T00:00:01Z",
            "format": "date-time",
            "type": "string"
          },
          "status": {
            "enum": [
              "unspecified",
              "in progress",
              "done",
              "error",
              "queued",
              "pending",
              "failed"
            ],
            "example": "in progress",
            "type": "string"
          },
          "uuid": {
            "description": "Identifier of the task",
            "example": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5",
            "type": "string"
          },
          "workflow_uuid": {
            "description": "Identifier of related workflow",
            "example": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5",
            "type": "string"
          }
        },
        "required": [
          "uuid",
          "name",
          "status",
          "workflow_uuid"
        ],
        "type": "object"
      },
      "EnduroIngestSipWorkflow": {
        "description": "SIPWorkflow describes a workflow of a SIP.",
        "example": {
          "completed_at": "1970-01-01T00:00:01Z",
          "sip_uuid": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5",
          "started_at": "1970-01-01T00:00:01Z",
          "status": "in progress",
          "tasks": [
            {
              "completed_at": "1970-01-01T00:00:01Z",
              "name": "abc123",
              "note": "abc123",
              "started_at": "1970-01-01T00:00:01Z",
              "status": "in progress",
              "uuid": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5",
              "workflow_uuid": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5"
            }
          ],
          "temporal_id": "abc123",
          "type": "create and review aip",
          "uuid": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5"
        },
        "properties": {
          "completed_at": {
            "example": "1970-01-01T00:00:01Z",
            "format": "date-time",
            "type": "string"
          },
          "sip_uuid": {
            "description": "Identifier of related SIP",
            "example": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5",
            "type": "string"
          },
          "started_at": {
            "example": "1970-01-01T00:00:01Z",
            "format": "date-time",
            "type": "string"
          },
          "status": {
            "enum": [
              "unspecified",
              "in progress",
              "done",
              "error",
              "queued",
              "pending",
              "failed",
              "canceled"
            ],
            "example": "in progress",
            "type": "string"
          },
          "tasks": {
            "$ref": "#/components/schemas/SIPTaskCollection"
          },
          "temporal_id": {
            "example": "abc123",
            "type": "string"
          },
          "type": {
            "enum": [
              "create aip",
              "create and review aip"
            ],
            "example": "create and review aip",
            "type": "string"
          },
          "uuid": {
            "description": "Identifier of the workflow",
            "example": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5",
            "type": "string"
          }
        },
        "required": [
          "uuid",
          "temporal_id",
          "type",
          "status",
          "started_at",
          "sip_uuid"
        ],
        "type": "object"
      },
      "EnduroIngestSipWorkflows": {
        "description": "SIPWorkflows describes the workflows of a SIP.",
        "example": {
          "workflows": [
            {
              "completed_at": "1970-01-01T00:00:01Z",
              "sip_uuid": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5",
              "started_at": "1970-01-01T00:00:01Z",
              "status": "in progress",
              "tasks": [
                {
                  "completed_at": "1970-01-01T00:00:01Z",
                  "name": "abc123",
                  "note": "abc123",
                  "started_at": "1970-01-01T00:00:01Z",
                  "status": "in progress",
                  "uuid": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5",
                  "workflow_uuid": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5"
                }
              ],
              "temporal_id": "abc123",
              "type": "create and review aip",
              "uuid": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5"
            }
          ]
        },
        "properties": {
          "workflows": {
            "$ref": "#/components/schemas/SIPWorkflowCollection"
          }
        },
        "type": "object"
      },
      "EnduroIngestSips": {
        "example": {
          "items": [
            {
              "aip_uuid": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5",
              "batch_identifier": "abc123",
              "batch_status": "processing",
              "batch_uuid": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5",
              "completed_at": "1970-01-01T00:00:01Z",
              "created_at": "1970-01-01T00:00:01Z",
              "failed_as": "PIP",
              "failed_key": "abc123",
              "file_count": 1,
              "name": "abc123",
              "started_at": "1970-01-01T00:00:01Z",
              "status": "failed",
              "uploader_email": "abc123",
              "uploader_name": "abc123",
              "uploader_uuid": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5",
              "uuid": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5"
            }
          ],
          "page": {
            "limit": 1,
            "offset": 1,
            "total": 1
          }
        },
        "properties": {
          "items": {
            "$ref": "#/components/schemas/SIPCollection"
          },
          "page": {
            "$ref": "#/components/schemas/EnduroPage"
          }
        },
        "required": [
          "items",
          "page"
        ],
        "type": "object"
      },
      "EnduroIngestSipsourceObject": {
        "description": "SIPSourceObject describes an object in a SIP source location.",
        "example": {
          "is_dir": false,
          "key": "abc123",
          "mod_time": "1970-01-01T00:00:01Z",
          "size": 1
        },
        "properties": {
          "is_dir": {
            "description": "True if the object is a directory, false if it is a file",
            "example": false,
            "type": "boolean"
          },
          "key": {
            "description": "Key of the object",
            "example": "abc123",
            "type": "string"
          },
          "mod_time": {
            "description": "Last modification time of the object",
            "example": "1970-01-01T00:00:01Z",
            "format": "date-time",
            "type": "string"
          },
          "size": {
            "description": "Size of the object in bytes",
            "example": 1,
            "format": "int64",
            "type": "integer"
          }
        },
        "required": [
          "key",
          "is_dir"
        ],
        "type": "object"
      },
      "EnduroIngestSipsourceObjects": {
        "example": {
          "limit": 1,
          "next": "abc123",
          "objects": [
            {
              "is_dir": false,
              "key": "abc123",
              "mod_time": "1970-01-01T00:00:01Z",
              "size": 1
            }
          ]
        },
        "properties": {
          "limit": {
            "description": "Limit of objects per page",
            "example": 1,
            "format": "int64",
            "type": "integer"
          },
          "next": {
            "description": "Token to get the next page of objects",
            "example": "abc123",
            "type": "string"
          },
          "objects": {
            "$ref": "#/components/schemas/SIPSourceObjectCollection"
          }
        },
        "required": [
          "objects",
          "limit"
        ],
        "type": "object"
      },
      "EnduroIngestUser": {
        "description": "User describes an Enduro user.",
        "example": {
          "created_at": "1970-01-01T00:00:01Z",
          "email": "nobody@example.com",
          "name": "Jane Doe",
          "uuid": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5"
        },
        "properties": {
          "created_at": {
            "description": "Creation date & time of the user",
            "example": "1970-01-01T00:00:01Z",
            "format": "date-time",
            "type": "string"
          },
          "email": {
            "description": "Email of the user",
            "example": "nobody@example.com",
            "type": "string"
          },
          "name": {
            "description": "Name of the user",
            "example": "Jane Doe",
            "type": "string"
          },
          "uuid": {
            "description": "Identifier of the user",
            "example": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5",
            "type": "string"
          }
        },
        "required": [
          "uuid",
          "email",
          "name",
          "created_at"
        ],
        "type": "object"
      },
      "EnduroIngestUsers": {
        "example": {
          "items": [
            {
              "created_at": "1970-01-01T00:00:01Z",
              "email": "nobody@example.com",
              "name": "Jane Doe",
              "uuid": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5"
            }
          ],
          "page": {
            "limit": 1,
            "offset": 1,
            "total": 1
          }
        },
        "properties": {
          "items": {
            "$ref": "#/components/schemas/UserCollection"
          },
          "page": {
            "$ref": "#/components/schemas/EnduroPage"
          }
        },
        "required": [
          "items",
          "page"
        ],
        "type": "object"
      },
      "EnduroPage": {
        "description": "Page represents a subset of search results.",
        "example": {
          "limit": 1,
          "offset": 1,
          "total": 1
        },
        "properties": {
          "limit": {
            "description": "Maximum items per page",
            "example": 1,
            "format": "int64",
            "type": "integer"
          },
          "offset": {
            "description": "Offset from first result to start of page",
            "example": 1,
            "format": "int64",
            "type": "integer"
          },
          "total": {
            "description": "Total result count before paging",
            "example": 1,
            "format": "int64",
            "type": "integer"
          }
        },
        "required": [
          "limit",
          "offset",
          "total"
        ],
        "type": "object"
      },
      "EnduroStorageAip": {
        "description": "An AIP describes an AIP retrieved by the storage service.",
        "example": {
          "created_at": "1970-01-01T00:00:01Z",
          "deletion_report_key": "abc123",
          "location_uuid": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5",
          "name": "abc123",
          "object_key": "abc123",
          "status": "stored",
          "uuid": "abc123"
        },
        "properties": {
          "created_at": {
            "description": "Creation datetime",
            "example": "1970-01-01T00:00:01Z",
            "format": "date-time",
            "type": "string"
          },
          "deletion_report_key": {
            "description": "Deletion report key",
            "example": "abc123",
            "type": "string"
          },
          "location_uuid": {
            "description": "Identifier of storage location",
            "example": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5",
            "type": "string"
          },
          "name": {
            "example": "abc123",
            "type": "string"
          },
          "object_key": {
            "example": "abc123",
            "type": "string"
          },
          "status": {
            "default": "unspecified",
            "description": "Status of the AIP",
            "enum": [
              "unspecified",
              "stored",
              "pending",
              "processing",
              "deleted",
              "queued"
            ],
            "example": "stored",
            "type": "string"
          },
          "uuid": {
            "example": "abc123",
            "type": "string"
          }
        },
        "required": [
          "name",
          "uuid",
          "status",
          "object_key",
          "created_at"
        ],
        "type": "object"
      },
      "EnduroStorageAipTask": {
        "description": "AIPTask describes an AIP workflow task.",
        "example": {
          "completed_at": "1970-01-01T00:00:01Z",
          "name": "abc123",
          "note": "abc123",
          "started_at": "1970-01-01T00:00:01Z",
          "status": "in progress",
          "uuid": "abc123",
          "workflow_uuid": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5"
        },
        "properties": {
          "completed_at": {
            "example": "1970-01-01T00:00:01Z",
            "format": "date-time",
            "type": "string"
          },
          "name": {
            "example": "abc123",
            "type": "string"
          },
          "note": {
            "example": "abc123",
            "type": "string"
          },
          "started_at": {
            "example": "1970-01-01T00:00:01Z",
            "format": "date-time",
            "type": "string"
          },
          "status": {
            "enum": [
              "unspecified",
              "in progress",
              "done",
              "error",
              "queued",
              "pending"
            ],
            "example": "in progress",
            "type": "string"
          },
          "uuid": {
            "example": "abc123",
            "type": "string"
          },
          "workflow_uuid": {
            "description": "Identifier of related workflow",
            "example": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5",
            "type": "string"
          }
        },
        "required": [
          "uuid",
          "name",
          "status",
          "workflow_uuid"
        ],
        "type": "object"
      },
      "EnduroStorageAipWorkflow": {
        "description": "AIPWorkflow describes a workflow of an AIP.",
        "example": {
          "aip_uuid": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5",
          "completed_at": "1970-01-01T00:00:01Z",
          "started_at": "1970-01-01T00:00:01Z",
          "status": "in progress",
          "tasks": [
            {
              "completed_at": "1970-01-01T00:00:01Z",
              "name": "abc123",
              "note": "abc123",
              "started_at": "1970-01-01T00:00:01Z",
              "status": "in progress",
              "uuid": "abc123",
              "workflow_uuid": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5"
            }
          ],
          "temporal_id": "abc123",
          "type": "upload aip",
          "uuid": "abc123"
        },
        "properties": {
          "aip_uuid": {
            "description": "Identifier of related AIP",
            "example": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5",
            "type": "string"
          },
          "completed_at": {
            "example": "1970-01-01T00:00:01Z",
            "format": "date-time",
            "type": "string"
          },
          "started_at": {
            "example": "1970-01-01T00:00:01Z",
            "format": "date-time",
            "type": "string"
          },
          "status": {
            "enum": [
              "unspecified",
              "in progress",
              "done",
              "error",
              "queued",
              "pending",
              "canceled"
            ],
            "example": "in progress",
            "type": "string"
          },
          "tasks": {
            "$ref": "#/components/schemas/AIPTaskCollection"
          },
          "temporal_id": {
            "example": "abc123",
            "type": "string"
          },
          "type": {
            "enum": [
              "unspecified",
              "upload aip",
              "move aip",
              "delete aip"
            ],
            "example": "upload aip",
            "type": "string"
          },
          "uuid": {
            "example": "abc123",
            "type": "string"
          }
        },
        "required": [
          "uuid",
          "temporal_id",
          "type",
          "status",
          "aip_uuid"
        ],
        "type": "object"
      },
      "EnduroStorageAipWorkflows": {
        "description": "AIPWorkflows describes the workflows of an AIP.",
        "example": {
          "workflows": [
            {
              "aip_uuid": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5",
              "completed_at": "1970-01-01T00:00:01Z",
              "started_at": "1970-01-01T00:00:01Z",
              "status": "in progress",
              "tasks": [
                {
                  "completed_at": "1970-01-01T00:00:01Z",
                  "name": "abc123",
                  "note": "abc123",
                  "started_at": "1970-01-01T00:00:01Z",
                  "status": "in progress",
                  "uuid": "abc123",
                  "workflow_uuid": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5"
                }
              ],
              "temporal_id": "abc123",
              "type": "upload aip",
              "uuid": "abc123"
            }
          ]
        },
        "properties": {
          "workflows": {
            "$ref": "#/components/schemas/AIPWorkflowCollection"
          }
        },
        "type": "object"
      },
      "EnduroStorageAips": {
        "example": {
          "items": [
            {
              "created_at": "1970-01-01T00:00:01Z",
              "deletion_report_key": "abc123",
              "location_uuid": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5",
              "name": "abc123",
              "object_key": "abc123",
              "status": "stored",
              "uuid": "abc123"
            }
          ],
          "page": {
            "limit": 1,
            "offset": 1,
            "total": 1
          }
        },
        "properties": {
          "items": {
            "$ref": "#/components/schemas/AIPCollection"
          },
          "page": {
            "$ref": "#/components/schemas/EnduroPage"
          }
        },
        "required": [
          "items",
          "page"
        ],
        "type": "object"
      },
      "EnduroStorageLocation": {
        "description": "A Location describes a location retrieved by the storage service.",
        "example": {
          "config": {
            "type": "s3",
            "value": {
              "bucket": "abc123",
              "endpoint": "abc123",
              "key": "abc123",
              "path_style": false,
              "profile": "abc123",
              "region": "abc123",
              "secret": "abc123",
              "token": "abc123"
            }
          },
          "created_at": "1970-01-01T00:00:01Z",
          "description": "abc123",
          "name": "abc123",
          "purpose": "aip_store",
          "source": "s3",
          "uuid": "abc123"
        },
        "properties": {
          "config": {
            "anyOf": [
              {
                "properties": {
                  "type": {
                    "enum": [
                      "amss"
                    ],
                    "type": "string"
                  },
                  "value": {
                    "$ref": "#/components/schemas/AMSSConfig"
                  }
                },
                "required": [
                  "type",
                  "value"
                ],
                "type": "object"
              },
              {
                "properties": {
                  "type": {
                    "enum": [
                      "s3"
                    ],
                    "type": "string"
                  },
                  "value": {
                    "$ref": "#/components/schemas/S3Config"
                  }
                },
                "required": [
                  "type",
                  "value"
                ],
                "type": "object"
              },
              {
                "properties": {
                  "type": {
                    "enum": [
                      "sftp"
                    ],
                    "type": "string"
                  },
                  "value": {
                    "$ref": "#/components/schemas/SFTPConfig"
                  }
                },
                "required": [
                  "type",
                  "value"
                ],
                "type": "object"
              },
              {
                "properties": {
                  "type": {
                    "enum": [
                      "url"
                    ],
                    "type": "string"
                  },
                  "value": {
                    "$ref": "#/components/schemas/URLConfig"
                  }
                },
                "required": [
                  "type",
                  "value"
                ],
                "type": "object"
              }
            ],
            "example": {
              "type": "s3",
              "value": {
                "bucket": "abc123",
                "endpoint": "abc123",
                "key": "abc123",
                "path_style": false,
                "profile": "abc123",
                "region": "abc123",
                "secret": "abc123",
                "token": "abc123"
              }
            },
            "type": "object"
          },
          "created_at": {
            "description": "Creation datetime",
            "example": "1970-01-01T00:00:01Z",
            "format": "date-time",
            "type": "string"
          },
          "description": {
            "description": "Description of the location",
            "example": "abc123",
            "type": "string"
          },
          "name": {
            "description": "Name of location",
            "example": "abc123",
            "type": "string"
          },
          "purpose": {
            "default": "unspecified",
            "description": "Purpose of the location",
            "enum": [
              "unspecified",
              "aip_store"
            ],
            "example": "aip_store",
            "type": "string"
          },
          "source": {
            "default": "unspecified",
            "description": "Data source of the location",
            "enum": [
              "unspecified",
              "s3",
              "sftp",
              "amss",
              "filesystem"
            ],
            "example": "s3",
            "type": "string"
          },
          "uuid": {
            "example": "abc123",
            "type": "string"
          }
        },
        "required": [
          "name",
          "source",
          "purpose",
          "uuid",
          "created_at"
        ],
        "type": "object"
      },
      "Error": {
        "description": "Error response result type",
        "example": {
          "fault": false,
          "id": "123abc",
          "message": "parameter 'p' must be an integer",
          "name": "bad_request",
          "temporary": false,
          "timeout": false
        },
        "properties": {
          "fault": {
            "description": "Is the error a server-side fault?",
            "example": false,
            "type": "boolean"
          },
          "id": {
            "description": "ID is a unique identifier for this particular occurrence of the problem.",
            "example": "123abc",
            "type": "string"
          },
          "message": {
            "description": "Message is a human-readable explanation specific to this occurrence of the problem.",
            "example": "parameter 'p' must be an integer",
            "type": "string"
          },
          "name": {
            "description": "Name is the name of this class of errors.",
            "example": "bad_request",
            "type": "string"
          },
          "temporary": {
            "description": "Is the error temporary?",
            "example": false,
            "type": "boolean"
          },
          "timeout": {
            "description": "Is the error a timeout?",
            "example": false,
            "type": "boolean"
          }
        },
        "required": [
          "name",
          "id",
          "message",
          "temporary",
          "timeout",
          "fault"
        ],
        "type": "object"
      },
      "IngestEvent": {
        "example": {
          "value": {
            "type": "sip_created_event",
            "value": {
              "item": {
                "aip_uuid": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5",
                "batch_identifier": "abc123",
                "batch_status": "processing",
                "batch_uuid": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5",
                "completed_at": "1970-01-01T00:00:01Z",
                "created_at": "1970-01-01T00:00:01Z",
                "failed_as": "PIP",
                "failed_key": "abc123",
                "file_count": 1,
                "name": "abc123",
                "started_at": "1970-01-01T00:00:01Z",
                "status": "failed",
                "uploader_email": "abc123",
                "uploader_name": "abc123",
                "uploader_uuid": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5",
                "uuid": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5"
              },
              "uuid": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5"
            }
          }
        },
        "properties": {
          "value": {
            "anyOf": [
              {
                "properties": {
                  "type": {
                    "enum": [
                      "ingest_ping_event"
                    ],
                    "type": "string"
                  },
                  "value": {
                    "$ref": "#/components/schemas/IngestPingEvent"
                  }
                },
                "required": [
                  "type",
                  "value"
                ],
                "type": "object"
              },
              {
                "properties": {
                  "type": {
                    "enum": [
                      "sip_created_event"
                    ],
                    "type": "string"
                  },
                  "value": {
                    "$ref": "#/components/schemas/SIPCreatedEvent"
                  }
                },
                "required": [
                  "type",
                  "value"
                ],
                "type": "object"
              },
              {
                "properties": {
                  "type": {
                    "enum": [
                      "sip_updated_event"
                    ],
                    "type": "string"
                  },
                  "value": {
                    "$ref": "#/components/schemas/SIPUpdatedEvent"
                  }
                },
                "required": [
                  "type",
                  "value"
                ],
                "type": "object"
              },
              {
                "properties": {
                  "type": {
                    "enum": [
                      "sip_status_updated_event"
                    ],
                    "type": "string"
                  },
                  "value": {
                    "$ref": "#/components/schemas/SIPStatusUpdatedEvent"
                  }
                },
                "required": [
                  "type",
                  "value"
                ],
                "type": "object"
              },
              {
                "properties": {
                  "type": {
                    "enum": [
                      "sip_workflow_created_event"
                    ],
                    "type": "string"
                  },
                  "value": {
                    "$ref": "#/components/schemas/SIPWorkflowCreatedEvent"
                  }
                },
                "required": [
                  "type",
                  "value"
                ],
                "type": "object"
              },
              {
                "properties": {
                  "type": {
                    "enum": [
                      "sip_workflow_updated_event"
                    ],
                    "type": "string"
                  },
                  "value": {
                    "$ref": "#/components/schemas/SIPWorkflowUpdatedEvent"
                  }
                },
                "required": [
                  "type",
                  "value"
                ],
                "type": "object"
              },
              {
                "properties": {
                  "type": {
                    "enum": [
                      "sip_task_created_event"
                    ],
                    "type": "string"
                  },
                  "value": {
                    "$ref": "#/components/schemas/SIPTaskCreatedEvent"
                  }
                },
                "required": [
                  "type",
                  "value"
                ],
                "type": "object"
              },
              {
                "properties": {
                  "type": {
                    "enum": [
                      "sip_task_updated_event"
                    ],
                    "type": "string"
                  },
                  "value": {
                    "$ref": "#/components/schemas/SIPTaskUpdatedEvent"
                  }
                },
                "required": [
                  "type",
                  "value"
                ],
                "type": "object"
              },
              {
                "properties": {
                  "type": {
                    "enum": [
                      "batch_created_event"
                    ],
                    "type": "string"
                  },
                  "value": {
                    "$ref": "#/components/schemas/BatchCreatedEvent"
                  }
                },
                "required": [
                  "type",
                  "value"
                ],
                "type": "object"
              },
              {
                "properties": {
                  "type": {
                    "enum": [
                      "batch_updated_event"
                    ],
                    "type": "string"
                  },
                  "value": {
                    "$ref": "#/components/schemas/BatchUpdatedEvent"
                  }
                },
                "required": [
                  "type",
                  "value"
                ],
                "type": "object"
              }
            ],
            "example": {
              "type": "sip_created_event",
              "value": {
                "item": {
                  "aip_uuid": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5",
                  "batch_identifier": "abc123",
                  "batch_status": "processing",
                  "batch_uuid": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5",
                  "completed_at": "1970-01-01T00:00:01Z",
                  "created_at": "1970-01-01T00:00:01Z",
                  "failed_as": "PIP",
                  "failed_key": "abc123",
                  "file_count": 1,
                  "name": "abc123",
                  "started_at": "1970-01-01T00:00:01Z",
                  "status": "failed",
                  "uploader_email": "abc123",
                  "uploader_name": "abc123",
                  "uploader_uuid": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5",
                  "uuid": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5"
                },
                "uuid": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5"
              }
            },
            "type": "object"
          }
        },
        "type": "object"
      },
      "IngestPingEvent": {
        "example": {
          "message": "abc123"
        },
        "properties": {
          "message": {
            "example": "abc123",
            "type": "string"
          }
        },
        "type": "object"
      },
      "LocationCreatedEvent": {
        "example": {
          "item": {
            "config": {
              "type": "s3",
              "value": {
                "bucket": "abc123",
                "endpoint": "abc123",
                "key": "abc123",
                "path_style": false,
                "profile": "abc123",
                "region": "abc123",
                "secret": "abc123",
                "token": "abc123"
              }
            },
            "created_at": "1970-01-01T00:00:01Z",
            "description": "abc123",
            "name": "abc123",
            "purpose": "aip_store",
            "source": "s3",
            "uuid": "abc123"
          },
          "uuid": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5"
        },
        "properties": {
          "item": {
            "$ref": "#/components/schemas/EnduroStorageLocation"
          },
          "uuid": {
            "description": "Identifier of Location",
            "example": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5",
            "type": "string"
          }
        },
        "required": [
          "uuid",
          "item"
        ],
        "type": "object"
      },
      "LocationNotFound": {
        "description": "Storage location not found",
        "example": {
          "message": "abc123",
          "uuid": "abc123"
        },
        "properties": {
          "message": {
            "description": "Message of error",
            "example": "abc123",
            "type": "string"
          },
          "uuid": {
            "example": "abc123",
            "type": "string"
          }
        },
        "required": [
          "message",
          "uuid"
        ],
        "type": "object"
      },
      "LocationResponse": {
        "description": "A Location describes a location retrieved by the storage service. (default view)",
        "example": {
          "created_at": "1970-01-01T00:00:01Z",
          "description": "abc123",
          "name": "abc123",
          "purpose": "aip_store",
          "source": "s3",
          "uuid": "abc123"
        },
        "properties": {
          "created_at": {
            "description": "Creation datetime",
            "example": "1970-01-01T00:00:01Z",
            "format": "date-time",
            "type": "string"
          },
          "description": {
            "description": "Description of the location",
            "example": "abc123",
            "type": "string"
          },
          "name": {
            "description": "Name of location",
            "example": "abc123",
            "type": "string"
          },
          "purpose": {
            "default": "unspecified",
            "description": "Purpose of the location",
            "enum": [
              "unspecified",
              "aip_store"
            ],
            "example": "aip_store",
            "type": "string"
          },
          "source": {
            "default": "unspecified",
            "description": "Data source of the location",
            "enum": [
              "unspecified",
              "s3",
              "sftp",
              "amss",
              "filesystem"
            ],
            "example": "s3",
            "type": "string"
          },
          "uuid": {
            "example": "abc123",
            "type": "string"
          }
        },
        "required": [
          "name",
          "source",
          "purpose",
          "uuid",
          "created_at"
        ],
        "type": "object"
      },
      "LocationResponseCollection": {
        "description": "list_locations_response_body is the result type for an array of LocationResponse (default view)",
        "example": [
          {
            "created_at": "1970-01-01T00:00:01Z",
            "description": "abc123",
            "name": "abc123",
            "purpose": "aip_store",
            "source": "s3",
            "uuid": "abc123"
          }
        ],
        "items": {
          "$ref": "#/components/schemas/LocationResponse"
        },
        "type": "array"
      },
      "MoveStatusResult": {
        "example": {
          "done": false
        },
        "properties": {
          "done": {
            "example": false,
            "type": "boolean"
          }
        },
        "required": [
          "done"
        ],
        "type": "object"
      },
      "RequestAipDeletionRequestBody": {
        "description": "Request body for request_aip_deletion.",
        "example": {
          "reason": "abc123"
        },
        "properties": {
          "reason": {
            "example": "abc123",
            "type": "string"
          }
        },
        "required": [
          "reason"
        ],
        "type": "object"
      },
      "ReviewAipDeletionRequestBody": {
        "description": "Request body for review_aip_deletion.",
        "example": {
          "approved": false
        },
        "properties": {
          "approved": {
            "example": false,
            "type": "boolean"
          }
        },
        "required": [
          "approved"
        ],
        "type": "object"
      },
      "ReviewBatchRequestBody": {
        "description": "Request body for review_batch.",
        "example": {
          "continue": false
        },
        "properties": {
          "continue": {
            "example": false,
            "type": "boolean"
          }
        },
        "required": [
          "continue"
        ],
        "type": "object"
      },
      "S3Config": {
        "example": {
          "bucket": "abc123",
          "endpoint": "abc123",
          "key": "abc123",
          "path_style": false,
          "profile": "abc123",
          "region": "abc123",
          "secret": "abc123",
          "token": "abc123"
        },
        "properties": {
          "bucket": {
            "example": "abc123",
            "type": "string"
          },
          "endpoint": {
            "example": "abc123",
            "type": "string"
          },
          "key": {
            "example": "abc123",
            "type": "string"
          },
          "path_style": {
            "example": false,
            "type": "boolean"
          },
          "profile": {
            "example": "abc123",
            "type": "string"
          },
          "region": {
            "example": "abc123",
            "type": "string"
          },
          "secret": {
            "example": "abc123",
            "type": "string"
          },
          "token": {
            "example": "abc123",
            "type": "string"
          }
        },
        "required": [
          "bucket",
          "region"
        ],
        "type": "object"
      },
      "SFTPConfig": {
        "example": {
          "address": "abc123",
          "directory": "abc123",
          "password": "abc123",
          "username": "abc123"
        },
        "properties": {
          "address": {
            "example": "abc123",
            "type": "string"
          },
          "directory": {
            "example": "abc123",
            "type": "string"
          },
          "password": {
            "example": "abc123",
            "type": "string"
          },
          "username": {
            "example": "abc123",
            "type": "string"
          }
        },
        "required": [
          "address",
          "username",
          "password",
          "directory"
        ],
        "type": "object"
      },
      "SIPCollection": {
        "example": [
          {
            "aip_uuid": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5",
            "batch_identifier": "abc123",
            "batch_status": "processing",
            "batch_uuid": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5",
            "completed_at": "1970-01-01T00:00:01Z",
            "created_at": "1970-01-01T00:00:01Z",
            "failed_as": "PIP",
            "failed_key": "abc123",
            "file_count": 1,
            "name": "abc123",
            "started_at": "1970-01-01T00:00:01Z",
            "status": "failed",
            "uploader_email": "abc123",
            "uploader_name": "abc123",
            "uploader_uuid": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5",
            "uuid": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5"
          }
        ],
        "items": {
          "$ref": "#/components/schemas/EnduroIngestSip"
        },
        "type": "array"
      },
      "SIPCreatedEvent": {
        "example": {
          "item": {
            "aip_uuid": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5",
            "batch_identifier": "abc123",
            "batch_status": "processing",
            "batch_uuid": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5",
            "completed_at": "1970-01-01T00:00:01Z",
            "created_at": "1970-01-01T00:00:01Z",
            "failed_as": "PIP",
            "failed_key": "abc123",
            "file_count": 1,
            "name": "abc123",
            "started_at": "1970-01-01T00:00:01Z",
            "status": "failed",
            "uploader_email": "abc123",
            "uploader_name": "abc123",
            "uploader_uuid": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5",
            "uuid": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5"
          },
          "uuid": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5"
        },
        "properties": {
          "item": {
            "$ref": "#/components/schemas/EnduroIngestSip"
          },
          "uuid": {
            "description": "Identifier of SIP",
            "example": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5",
            "type": "string"
          }
        },
        "required": [
          "uuid",
          "item"
        ],
        "type": "object"
      },
      "SIPNotFound": {
        "description": "SIP not found",
        "example": {
          "message": "abc123",
          "uuid": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5"
        },
        "properties": {
          "message": {
            "description": "Message of error",
            "example": "abc123",
            "type": "string"
          },
          "uuid": {
            "description": "Identifier of missing SIP",
            "example": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5",
            "format": "uuid",
            "type": "string"
          }
        },
        "required": [
          "message",
          "uuid"
        ],
        "type": "object"
      },
      "SIPSourceObjectCollection": {
        "example": [
          {
            "is_dir": false,
            "key": "abc123",
            "mod_time": "1970-01-01T00:00:01Z",
            "size": 1
          }
        ],
        "items": {
          "$ref": "#/components/schemas/EnduroIngestSipsourceObject"
        },
        "type": "array"
      },
      "SIPStatusUpdatedEvent": {
        "example": {
          "status": "failed",
          "uuid": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5"
        },
        "properties": {
          "status": {
            "enum": [
              "error",
              "failed",
              "queued",
              "processing",
              "pending",
              "ingested",
              "validated",
              "canceled"
            ],
            "example": "failed",
            "type": "string"
          },
          "uuid": {
            "description": "Identifier of SIP",
            "example": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5",
            "type": "string"
          }
        },
        "required": [
          "uuid",
          "status"
        ],
        "type": "object"
      },
      "SIPTaskCollection": {
        "example": [
          {
            "completed_at": "1970-01-01T00:00:01Z",
            "name": "abc123",
            "note": "abc123",
            "started_at": "1970-01-01T00:00:01Z",
            "status": "in progress",
            "uuid": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5",
            "workflow_uuid": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5"
          }
        ],
        "items": {
          "$ref": "#/components/schemas/EnduroIngestSipTask"
        },
        "type": "array"
      },
      "SIPTaskCreatedEvent": {
        "example": {
          "item": {
            "completed_at": "1970-01-01T00:00:01Z",
            "name": "abc123",
            "note": "abc123",
            "started_at": "1970-01-01T00:00:01Z",
            "status": "in progress",
            "uuid": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5",
            "workflow_uuid": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5"
          },
          "uuid": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5"
        },
        "properties": {
          "item": {
            "$ref": "#/components/schemas/EnduroIngestSipTask"
          },
          "uuid": {
            "description": "Identifier of task",
            "example": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5",
            "type": "string"
          }
        },
        "required": [
          "uuid",
          "item"
        ],
        "type": "object"
      },
      "SIPTaskUpdatedEvent": {
        "example": {
          "item": {
            "completed_at": "1970-01-01T00:00:01Z",
            "name": "abc123",
            "note": "abc123",
            "started_at": "1970-01-01T00:00:01Z",
            "status": "in progress",
            "uuid": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5",
            "workflow_uuid": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5"
          },
          "uuid": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5"
        },
        "properties": {
          "item": {
            "$ref": "#/components/schemas/EnduroIngestSipTask"
          },
          "uuid": {
            "description": "Identifier of task",
            "example": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5",
            "type": "string"
          }
        },
        "required": [
          "uuid",
          "item"
        ],
        "type": "object"
      },
      "SIPUpdatedEvent": {
        "example": {
          "item": {
            "aip_uuid": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5",
            "batch_identifier": "abc123",
            "batch_status": "processing",
            "batch_uuid": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5",
            "completed_at": "1970-01-01T00:00:01Z",
            "created_at": "1970-01-01T00:00:01Z",
            "failed_as": "PIP",
            "failed_key": "abc123",
            "file_count": 1,
            "name": "abc123",
            "started_at": "1970-01-01T00:00:01Z",
            "status": "failed",
            "uploader_email": "abc123",
            "uploader_name": "abc123",
            "uploader_uuid": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5",
            "uuid": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5"
          },
          "uuid": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5"
        },
        "properties": {
          "item": {
            "$ref": "#/components/schemas/EnduroIngestSip"
          },
          "uuid": {
            "description": "Identifier of SIP",
            "example": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5",
            "type": "string"
          }
        },
        "required": [
          "uuid",
          "item"
        ],
        "type": "object"
      },
      "SIPWorkflowCollection": {
        "example": [
          {
            "completed_at": "1970-01-01T00:00:01Z",
            "sip_uuid": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5",
            "started_at": "1970-01-01T00:00:01Z",
            "status": "in progress",
            "tasks": [
              {
                "completed_at": "1970-01-01T00:00:01Z",
                "name": "abc123",
                "note": "abc123",
                "started_at": "1970-01-01T00:00:01Z",
                "status": "in progress",
                "uuid": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5",
                "workflow_uuid": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5"
              }
            ],
            "temporal_id": "abc123",
            "type": "create and review aip",
            "uuid": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5"
          }
        ],
        "items": {
          "$ref": "#/components/schemas/EnduroIngestSipWorkflow"
        },
        "type": "array"
      },
      "SIPWorkflowCreatedEvent": {
        "example": {
          "item": {
            "completed_at": "1970-01-01T00:00:01Z",
            "sip_uuid": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5",
            "started_at": "1970-01-01T00:00:01Z",
            "status": "in progress",
            "tasks": [
              {
                "completed_at": "1970-01-01T00:00:01Z",
                "name": "abc123",
                "note": "abc123",
                "started_at": "1970-01-01T00:00:01Z",
                "status": "in progress",
                "uuid": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5",
                "workflow_uuid": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5"
              }
            ],
            "temporal_id": "abc123",
            "type": "create and review aip",
            "uuid": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5"
          },
          "uuid": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5"
        },
        "properties": {
          "item": {
            "$ref": "#/components/schemas/EnduroIngestSipWorkflow"
          },
          "uuid": {
            "description": "Identifier of workflow",
            "example": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5",
            "type": "string"
          }
        },
        "required": [
          "uuid",
          "item"
        ],
        "type": "object"
      },
      "SIPWorkflowUpdatedEvent": {
        "example": {
          "item": {
            "completed_at": "1970-01-01T00:00:01Z",
            "sip_uuid": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5",
            "started_at": "1970-01-01T00:00:01Z",
            "status": "in progress",
            "tasks": [
              {
                "completed_at": "1970-01-01T00:00:01Z",
                "name": "abc123",
                "note": "abc123",
                "started_at": "1970-01-01T00:00:01Z",
                "status": "in progress",
                "uuid": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5",
                "workflow_uuid": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5"
              }
            ],
            "temporal_id": "abc123",
            "type": "create and review aip",
            "uuid": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5"
          },
          "uuid": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5"
        },
        "properties": {
          "item": {
            "$ref": "#/components/schemas/EnduroIngestSipWorkflow"
          },
          "uuid": {
            "description": "Identifier of workflow",
            "example": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5",
            "type": "string"
          }
        },
        "required": [
          "uuid",
          "item"
        ],
        "type": "object"
      },
      "StorageEvent": {
        "example": {
          "value": {
            "type": "location_created_event",
            "value": {
              "item": {
                "config": {
                  "type": "s3",
                  "value": {
                    "bucket": "abc123",
                    "endpoint": "abc123",
                    "key": "abc123",
                    "path_style": false,
                    "profile": "abc123",
                    "region": "abc123",
                    "secret": "abc123",
                    "token": "abc123"
                  }
                },
                "created_at": "1970-01-01T00:00:01Z",
                "description": "abc123",
                "name": "abc123",
                "purpose": "aip_store",
                "source": "s3",
                "uuid": "abc123"
              },
              "uuid": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5"
            }
          }
        },
        "properties": {
          "value": {
            "anyOf": [
              {
                "properties": {
                  "type": {
                    "enum": [
                      "storage_ping_event"
                    ],
                    "type": "string"
                  },
                  "value": {
                    "$ref": "#/components/schemas/StoragePingEvent"
                  }
                },
                "required": [
                  "type",
                  "value"
                ],
                "type": "object"
              },
              {
                "properties": {
                  "type": {
                    "enum": [
                      "location_created_event"
                    ],
                    "type": "string"
                  },
                  "value": {
                    "$ref": "#/components/schemas/LocationCreatedEvent"
                  }
                },
                "required": [
                  "type",
                  "value"
                ],
                "type": "object"
              },
              {
                "properties": {
                  "type": {
                    "enum": [
                      "aip_created_event"
                    ],
                    "type": "string"
                  },
                  "value": {
                    "$ref": "#/components/schemas/AIPCreatedEvent"
                  }
                },
                "required": [
                  "type",
                  "value"
                ],
                "type": "object"
              },
              {
                "properties": {
                  "type": {
                    "enum": [
                      "aip_updated_event"
                    ],
                    "type": "string"
                  },
                  "value": {
                    "$ref": "#/components/schemas/AIPUpdatedEvent"
                  }
                },
                "required": [
                  "type",
                  "value"
                ],
                "type": "object"
              },
              {
                "properties": {
                  "type": {
                    "enum": [
                      "aip_status_updated_event"
                    ],
                    "type": "string"
                  },
                  "value": {
                    "$ref": "#/components/schemas/AIPStatusUpdatedEvent"
                  }
                },
                "required": [
                  "type",
                  "value"
                ],
                "type": "object"
              },
              {
                "properties": {
                  "type": {
                    "enum": [
                      "aip_location_updated_event"
                    ],
                    "type": "string"
                  },
                  "value": {
                    "$ref": "#/components/schemas/AIPLocationUpdatedEvent"
                  }
                },
                "required": [
                  "type",
                  "value"
                ],
                "type": "object"
              },
              {
                "properties": {
                  "type": {
                    "enum": [
                      "aip_workflow_created_event"
                    ],
                    "type": "string"
                  },
                  "value": {
                    "$ref": "#/components/schemas/AIPWorkflowCreatedEvent"
                  }
                },
                "required": [
                  "type",
                  "value"
                ],
                "type": "object"
              },
              {
                "properties": {
                  "type": {
                    "enum": [
                      "aip_workflow_updated_event"
                    ],
                    "type": "string"
                  },
                  "value": {
                    "$ref": "#/components/schemas/AIPWorkflowUpdatedEvent"
                  }
                },
                "required": [
                  "type",
                  "value"
                ],
                "type": "object"
              },
              {
                "properties": {
                  "type": {
                    "enum": [
                      "aip_task_created_event"
                    ],
                    "type": "string"
                  },
                  "value": {
                    "$ref": "#/components/schemas/AIPTaskCreatedEvent"
                  }
                },
                "required": [
                  "type",
                  "value"
                ],
                "type": "object"
              },
              {
                "properties": {
                  "type": {
                    "enum": [
                      "aip_task_updated_event"
                    ],
                    "type": "string"
                  },
                  "value": {
                    "$ref": "#/components/schemas/AIPTaskUpdatedEvent"
                  }
                },
                "required": [
                  "type",
                  "value"
                ],
                "type": "object"
              }
            ],
            "example": {
              "type": "location_created_event",
              "value": {
                "item": {
                  "config": {
                    "type": "s3",
                    "value": {
                      "bucket": "abc123",
                      "endpoint": "abc123",
                      "key": "abc123",
                      "path_style": false,
                      "profile": "abc123",
                      "region": "abc123",
                      "secret": "abc123",
                      "token": "abc123"
                    }
                  },
                  "created_at": "1970-01-01T00:00:01Z",
                  "description": "abc123",
                  "name": "abc123",
                  "purpose": "aip_store",
                  "source": "s3",
                  "uuid": "abc123"
                },
                "uuid": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5"
              }
            },
            "type": "object"
          }
        },
        "type": "object"
      },
      "StoragePingEvent": {
        "example": {
          "message": "abc123"
        },
        "properties": {
          "message": {
            "example": "abc123",
            "type": "string"
          }
        },
        "type": "object"
      },
      "SubmitSipDecisionRequestBody": {
        "description": "Request body for submit_sip_decision.",
        "example": {
          "option": "abc123"
        },
        "properties": {
          "option": {
            "description": "Selected decision option",
            "example": "abc123",
            "type": "string"
          }
        },
        "required": [
          "option"
        ],
        "type": "object"
      },
      "URLConfig": {
        "example": {
          "url": "abc123"
        },
        "properties": {
          "url": {
            "example": "abc123",
            "type": "string"
          }
        },
        "required": [
          "url"
        ],
        "type": "object"
      },
      "UserCollection": {
        "example": [
          {
            "created_at": "1970-01-01T00:00:01Z",
            "email": "nobody@example.com",
            "name": "Jane Doe",
            "uuid": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5"
          }
        ],
        "items": {
          "$ref": "#/components/schemas/EnduroIngestUser"
        },
        "type": "array"
      }
    },
    "securitySchemes": {
      "bearer_header_Authorization": {
        "description": "Secures endpoint by requiring a valid bearer token.",
        "scheme": "bearer",
        "type": "http"
      }
    }
  },
  "info": {
    "title": "Enduro API",
    "version": "0.0.1"
  },
  "openapi": "3.0.3",
  "paths": {
    "/about": {
      "get": {
        "description": "Get information about the system",
        "operationId": "about#about",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "example": {
                  "child_workflows": [
                    {
                      "task_queue": "abc123",
                      "type": "poststorage",
                      "workflow_name": "abc123"
                    }
                  ],
                  "preservation_system": "abc123",
                  "upload_max_size": 1,
                  "version": "abc123"
                },
                "schema": {
                  "$ref": "#/components/schemas/EnduroAbout"
                }
              }
            },
            "description": "OK response."
          },
          "401": {
            "content": {
              "application/json": {
                "example": "abc123",
                "schema": {
                  "description": "Unauthorized",
                  "example": "abc123",
                  "type": "string"
                }
              }
            },
            "description": "unauthorized: Unauthorized response."
          }
        },
        "security": [
          {
            "bearer_header_Authorization": []
          }
        ],
        "summary": "about about",
        "tags": [
          "about"
        ],
        "x-required-scopes": []
      }
    },
    "/ingest/batches": {
      "get": {
        "description": "List all ingested Batches",
        "operationId": "ingest#list_batches",
        "parameters": [
          {
            "allowEmptyValue": true,
            "example": "abc123",
            "in": "query",
            "name": "identifier",
            "schema": {
              "example": "abc123",
              "type": "string"
            }
          },
          {
            "allowEmptyValue": true,
            "example": "1970-01-01T00:00:01Z",
            "in": "query",
            "name": "earliest_created_time",
            "schema": {
              "example": "1970-01-01T00:00:01Z",
              "format": "date-time",
              "type": "string"
            }
          },
          {
            "allowEmptyValue": true,
            "example": "1970-01-01T00:00:01Z",
            "in": "query",
            "name": "latest_created_time",
            "schema": {
              "example": "1970-01-01T00:00:01Z",
              "format": "date-time",
              "type": "string"
            }
          },
          {
            "allowEmptyValue": true,
            "example": "processing",
            "in": "query",
            "name": "status",
            "schema": {
              "enum": [
                "queued",
                "processing",
                "pending",
                "ingested",
                "canceled",
                "failed"
              ],
              "example": "processing",
              "type": "string"
            }
          },
          {
            "allowEmptyValue": true,
            "description": "UUID of the Batch uploader",
            "example": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5",
            "in": "query",
            "name": "uploader_uuid",
            "schema": {
              "description": "UUID of the Batch uploader",
              "example": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5",
              "format": "uuid",
              "type": "string"
            }
          },
          {
            "allowEmptyValue": true,
            "description": "Limit number of results to return",
            "example": 1,
            "in": "query",
            "name": "limit",
            "schema": {
              "description": "Limit number of results to return",
              "example": 1,
              "format": "int64",
              "type": "integer"
            }
          },
          {
            "allowEmptyValue": true,
            "description": "Offset from the beginning of the found set",
            "example": 1,
            "in": "query",
            "name": "offset",
            "schema": {
              "description": "Offset from the beginning of the found set",
              "example": 1,
              "format": "int64",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "example": {
                  "items": [
                    {
                      "completed_at": "1970-01-01T00:00:01Z",
                      "created_at": "1970-01-01T00:00:01Z",
                      "identifier": "abc123",
                      "sips_count": 1,
                      "started_at": "1970-01-01T00:00:01Z",
                      "status": "processing",
                      "uploader_email": "abc123",
                      "uploader_name": "abc123",
                      "uploader_uuid": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5",
                      "uuid": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5"
                    }
                  ],
                  "page": {
                    "limit": 1,
                    "offset": 1,
                    "total": 1
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/EnduroIngestBatches"
                }
              }
            },
            "description": "OK response."
          },
          "400": {
            "content": {
              "application/vnd.goa.error": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "not_valid: Bad Request response."
          },
          "401": {
            "content": {
              "application/json": {
                "example": "abc123",
                "schema": {
                  "description": "Unauthorized",
                  "example": "abc123",
                  "type": "string"
                }
              }
            },
            "description": "unauthorized: Unauthorized response."
          },
          "403": {
            "content": {
              "application/json": {
                "example": "abc123",
                "schema": {
                  "description": "Forbidden",
                  "example": "abc123",
                  "type": "string"
                }
              }
            },
            "description": "forbidden: Forbidden response."
          },
          "500": {
            "content": {
              "application/vnd.goa.error": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "internal_error: Internal Server Error response."
          }
        },
        "security": [
          {
            "bearer_header_Authorization": []
          }
        ],
        "summary": "list_batches ingest",
        "tags": [
          "ingest"
        ],
        "x-required-scopes": [
          "ingest:batches:list"
        ]
      },
      "post": {
        "description": "Ingest a Batch from a SIP Source",
        "operationId": "ingest#add_batch",
        "requestBody": {
          "content": {
            "application/json": {
              "example": {
                "identifier": "abc123",
                "keys": [
                  "abc123"
                ],
                "source_id": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5"
              },
              "schema": {
                "$ref": "#/components/schemas/AddBatchRequestBody"
              }
            }
          },
          "description": "Request body for add_batch.",
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "example": {
                  "uuid": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5"
                },
                "schema": {
                  "$ref": "#/components/schemas/AddSipResponseBody"
                }
              }
            },
            "description": "Created response."
          },
          "400": {
            "content": {
              "application/vnd.goa.error": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "not_valid: Bad Request response."
          },
          "401": {
            "content": {
              "application/json": {
                "example": "abc123",
                "schema": {
                  "description": "Unauthorized",
                  "example": "abc123",
                  "type": "string"
                }
              }
            },
            "description": "unauthorized: Unauthorized response."
          },
          "403": {
            "content": {
              "application/json": {
                "example": "abc123",
                "schema": {
                  "description": "Forbidden",
                  "example": "abc123",
                  "type": "string"
                }
              }
            },
            "description": "forbidden: Forbidden response."
          },
          "500": {
            "content": {
              "application/vnd.goa.error": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "internal_error: Internal Server Error response."
          }
        },
        "security": [
          {
            "bearer_header_Authorization": []
          }
        ],
        "summary": "add_batch ingest",
        "tags": [
          "ingest"
        ],
        "x-required-scopes": [
          "ingest:batches:create"
        ]
      }
    },
    "/ingest/batches/{uuid}": {
      "get": {
        "description": "Show Batch by UUID",
        "operationId": "ingest#show_batch",
        "parameters": [
          {
            "description": "Identifier of Batch to show",
            "example": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5",
            "in": "path",
            "name": "uuid",
            "required": true,
            "schema": {
              "description": "Identifier of Batch to show",
              "example": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5",
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "example": {
                  "completed_at": "1970-01-01T00:00:01Z",
                  "created_at": "1970-01-01T00:00:01Z",
                  "identifier": "abc123",
                  "sips_count": 1,
                  "started_at": "1970-01-01T00:00:01Z",
                  "status": "processing",
                  "uploader_email": "abc123",
                  "uploader_name": "abc123",
                  "uploader_uuid": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5",
                  "uuid": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5"
                },
                "schema": {
                  "$ref": "#/components/schemas/EnduroIngestBatch"
                }
              }
            },
            "description": "OK response."
          },
          "400": {
            "content": {
              "application/vnd.goa.error": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "not_valid: Bad Request response."
          },
          "401": {
            "content": {
              "application/json": {
                "example": "abc123",
                "schema": {
                  "description": "Unauthorized",
                  "example": "abc123",
                  "type": "string"
                }
              }
            },
            "description": "unauthorized: Unauthorized response."
          },
          "403": {
            "content": {
              "application/json": {
                "example": "abc123",
                "schema": {
                  "description": "Forbidden",
                  "example": "abc123",
                  "type": "string"
                }
              }
            },
            "description": "forbidden: Forbidden response."
          },
          "404": {
            "content": {
              "application/json": {
                "example": {
                  "message": "abc123",
                  "uuid": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5"
                },
                "schema": {
                  "$ref": "#/components/schemas/BatchNotFound"
                }
              }
            },
            "description": "not_found: Batch not found"
          },
          "500": {
            "content": {
              "application/vnd.goa.error": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "internal_error: Internal Server Error response."
          }
        },
        "security": [
          {
            "bearer_header_Authorization": []
          }
        ],
        "summary": "show_batch ingest",
        "tags": [
          "ingest"
        ],
        "x-required-scopes": [
          "ingest:batches:read"
        ]
      }
    },
    "/ingest/batches/{uuid}/review": {
      "post": {
        "description": "Review a Batch awaiting user decision",
        "operationId": "ingest#review_batch",
        "parameters": [
          {
            "description": "Identifier of Batch to review",
            "example": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5",
            "in": "path",
            "name": "uuid",
            "required": true,
            "schema": {
              "description": "Identifier of Batch to review",
              "example": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5",
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "example": {
                "continue": false
              },
              "schema": {
                "$ref": "#/components/schemas/ReviewBatchRequestBody"
              }
            }
          },
          "description": "Request body for review_batch.",
          "required": true
        },
        "responses": {
          "202": {
            "description": "Accepted response."
          },
          "400": {
            "content": {
              "application/vnd.goa.error": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "not_valid: Bad Request response."
          },
          "401": {
            "content": {
              "application/json": {
                "example": "abc123",
                "schema": {
                  "description": "Unauthorized",
                  "example": "abc123",
                  "type": "string"
                }
              }
            },
            "description": "unauthorized: Unauthorized response."
          },
          "403": {
            "content": {
              "application/json": {
                "example": "abc123",
                "schema": {
                  "description": "Forbidden",
                  "example": "abc123",
                  "type": "string"
                }
              }
            },
            "description": "forbidden: Forbidden response."
          },
          "404": {
            "content": {
              "application/json": {
                "example": {
                  "message": "abc123",
                  "uuid": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5"
                },
                "schema": {
                  "$ref": "#/components/schemas/BatchNotFound"
                }
              }
            },
            "description": "not_found: Batch not found"
          },
          "500": {
            "content": {
              "application/vnd.goa.error": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "internal_error: Internal Server Error response."
          }
        },
        "security": [
          {
            "bearer_header_Authorization": []
          }
        ],
        "summary": "review_batch ingest",
        "tags": [
          "ingest"
        ],
        "x-required-scopes": [
          "ingest:batches:review"
        ]
      }
    },
    "/ingest/monitor": {
      "get": {
        "description": "Obtain access to the /monitor SSE event stream",
        "operationId": "ingest#monitor",
        "responses": {
          "200": {
            "content": {
              "text/event-stream": {
                "example": {
                  "value": {
                    "type": "sip_created_event",
                    "value": {
                      "item": {
                        "aip_uuid": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5",
                        "batch_identifier": "abc123",
                        "batch_status": "processing",
                        "batch_uuid": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5",
                        "completed_at": "1970-01-01T00:00:01Z",
                        "created_at": "1970-01-01T00:00:01Z",
                        "failed_as": "PIP",
                        "failed_key": "abc123",
                        "file_count": 1,
                        "name": "abc123",
                        "started_at": "1970-01-01T00:00:01Z",
                        "status": "failed",
                        "uploader_email": "abc123",
                        "uploader_name": "abc123",
                        "uploader_uuid": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5",
                        "uuid": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5"
                      },
                      "uuid": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5"
                    }
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/IngestEvent"
                }
              }
            },
            "description": "OK response."
          },
          "401": {
            "content": {
              "application/json": {
                "example": "abc123",
                "schema": {
                  "description": "Unauthorized",
                  "example": "abc123",
                  "type": "string"
                }
              }
            },
            "description": "unauthorized: Unauthorized response."
          },
          "403": {
            "content": {
              "application/json": {
                "example": "abc123",
                "schema": {
                  "description": "Forbidden",
                  "example": "abc123",
                  "type": "string"
                }
              }
            },
            "description": "forbidden: Forbidden response."
          },
          "500": {
            "content": {
              "application/vnd.goa.error": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "internal_error: Internal Server Error response."
          }
        },
        "security": [
          {
            "bearer_header_Authorization": []
          }
        ],
        "summary": "monitor ingest",
        "tags": [
          "ingest"
        ],
        "x-required-scopes": []
      }
    },
    "/ingest/sip-sources/{uuid}/objects": {
      "get": {
        "description": "List the objects in a SIP source",
        "operationId": "ingest#list_sip_source_objects",
        "parameters": [
          {
            "allowEmptyValue": true,
            "description": "Limit the number of results to return",
            "example": 1,
            "in": "query",
            "name": "limit",
            "schema": {
              "description": "Limit the number of results to return",
              "example": 1,
              "format": "int64",
              "type": "integer"
            }
          },
          {
            "allowEmptyValue": true,
            "description": "Cursor token to get subsequent pages",
            "example": "abc123",
            "in": "query",
            "name": "cursor",
            "schema": {
              "description": "Cursor token to get subsequent pages",
              "example": "abc123",
              "type": "string"
            }
          },
          {
            "description": "SIP source identifier -- CURRENTLY NOT USED",
            "example": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5",
            "in": "path",
            "name": "uuid",
            "required": true,
            "schema": {
              "description": "SIP source identifier -- CURRENTLY NOT USED",
              "example": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5",
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "example": {
                  "limit": 1,
                  "next": "abc123",
                  "objects": [
                    {
                      "is_dir": false,
                      "key": "abc123",
                      "mod_time": "1970-01-01T00:00:01Z",
                      "size": 1
                    }
                  ]
                },
                "schema": {
                  "$ref": "#/components/schemas/EnduroIngestSipsourceObjects"
                }
              }
            },
            "description": "OK response."
          },
          "400": {
            "content": {
              "application/vnd.goa.error": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "not_valid: Bad Request response."
          },
          "401": {
            "content": {
              "application/json": {
                "example": "abc123",
                "schema": {
                  "description": "Unauthorized",
                  "example": "abc123",
                  "type": "string"
                }
              }
            },
            "description": "unauthorized: Unauthorized response."
          },
          "403": {
            "content": {
              "application/json": {
                "example": "abc123",
                "schema": {
                  "description": "Forbidden",
                  "example": "abc123",
                  "type": "string"
                }
              }
            },
            "description": "forbidden: Forbidden response."
          },
          "404": {
            "content": {
              "application/vnd.goa.error": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "not_found: Not Found response."
          },
          "500": {
            "content": {
              "application/vnd.goa.error": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "internal_error: Internal Server Error response."
          }
        },
        "security": [
          {
            "bearer_header_Authorization": []
          }
        ],
        "summary": "list_sip_source_objects ingest",
        "tags": [
          "ingest"
        ],
        "x-required-scopes": [
          "ingest:sipsources:objects:list"
        ]
      }
    },
    "/ingest/sips": {
      "get": {
        "description": "List all ingested SIPs",
        "operationId": "ingest#list_sips",
        "parameters": [
          {
            "allowEmptyValue": true,
            "example": "abc123",
            "in": "query",
            "name": "name",
            "schema": {
              "example": "abc123",
              "type": "string"
            }
          },
          {
            "allowEmptyValue": true,
            "description": "Identifier of AIP",
            "example": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5",
            "in": "query",
            "name": "aip_uuid",
            "schema": {
              "description": "Identifier of AIP",
              "example": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5",
              "format": "uuid",
              "type": "string"
            }
          },
          {
            "allowEmptyValue": true,
            "example": "1970-01-01T00:00:01Z",
            "in": "query",
            "name": "earliest_created_time",
            "schema": {
              "example": "1970-01-01T00:00:01Z",
              "format": "date-time",
              "type": "string"
            }
          },
          {
            "allowEmptyValue": true,
            "example": "1970-01-01T00:00:01Z",
            "in": "query",
            "name": "latest_created_time",
            "schema": {
              "example": "1970-01-01T00:00:01Z",
              "format": "date-time",
              "type": "string"
            }
          },
          {
            "allowEmptyValue": true,
            "example": "failed",
            "in": "query",
            "name": "status",
            "schema": {
              "enum": [
                "error",
                "failed",
                "queued",
                "processing",
                "pending",
                "ingested",
                "validated",
                "canceled"
              ],
              "example": "failed",
              "type": "string"
            }
          },
          {
            "allowEmptyValue": true,
            "description": "UUID of the SIP uploader",
            "example": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5",
            "in": "query",
            "name": "uploader_uuid",
            "schema": {
              "description": "UUID of the SIP uploader",
              "example": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5",
              "format": "uuid",
              "type": "string"
            }
          },
          {
            "allowEmptyValue": true,
            "description": "UUID of the related Batch",
            "example": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5",
            "in": "query",
            "name": "batch_uuid",
            "schema": {
              "description": "UUID of the related Batch",
              "example": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5",
              "format": "uuid",
              "type": "string"
            }
          },
          {
            "allowEmptyValue": true,
            "description": "Limit number of results to return",
            "example": 1,
            "in": "query",
            "name": "limit",
            "schema": {
              "description": "Limit number of results to return",
              "example": 1,
              "format": "int64",
              "type": "integer"
            }
          },
          {
            "allowEmptyValue": true,
            "description": "Offset from the beginning of the found set",
            "example": 1,
            "in": "query",
            "name": "offset",
            "schema": {
              "description": "Offset from the beginning of the found set",
              "example": 1,
              "format": "int64",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "example": {
                  "items": [
                    {
                      "aip_uuid": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5",
                      "batch_identifier": "abc123",
                      "batch_status": "processing",
                      "batch_uuid": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5",
                      "completed_at": "1970-01-01T00:00:01Z",
                      "created_at": "1970-01-01T00:00:01Z",
                      "failed_as": "PIP",
                      "failed_key": "abc123",
                      "file_count": 1,
                      "name": "abc123",
                      "started_at": "1970-01-01T00:00:01Z",
                      "status": "failed",
                      "uploader_email": "abc123",
                      "uploader_name": "abc123",
                      "uploader_uuid": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5",
                      "uuid": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5"
                    }
                  ],
                  "page": {
                    "limit": 1,
                    "offset": 1,
                    "total": 1
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/EnduroIngestSips"
                }
              }
            },
            "description": "OK response."
          },
          "400": {
            "content": {
              "application/vnd.goa.error": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "not_valid: Bad Request response."
          },
          "401": {
            "content": {
              "application/json": {
                "example": "abc123",
                "schema": {
                  "description": "Unauthorized",
                  "example": "abc123",
                  "type": "string"
                }
              }
            },
            "description": "unauthorized: Unauthorized response."
          },
          "403": {
            "content": {
              "application/json": {
                "example": "abc123",
                "schema": {
                  "description": "Forbidden",
                  "example": "abc123",
                  "type": "string"
                }
              }
            },
            "description": "forbidden: Forbidden response."
          },
          "500": {
            "content": {
              "application/vnd.goa.error": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "internal_error: Internal Server Error response."
          }
        },
        "security": [
          {
            "bearer_header_Authorization": []
          }
        ],
        "summary": "list_sips ingest",
        "tags": [
          "ingest"
        ],
        "x-required-scopes": [
          "ingest:sips:list"
        ]
      },
      "post": {
        "description": "Ingest a SIP from a SIP Source",
        "operationId": "ingest#add_sip",
        "requestBody": {
          "content": {
            "application/json": {
              "example": {
                "key": "abc123",
                "source_id": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5"
              },
              "schema": {
                "$ref": "#/components/schemas/AddSipRequestBody"
              }
            }
          },
          "description": "Request body for add_sip.",
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "example": {
                  "uuid": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5"
                },
                "schema": {
                  "$ref": "#/components/schemas/AddSipResponseBody"
                }
              }
            },
            "description": "Created response."
          },
          "400": {
            "content": {
              "application/vnd.goa.error": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "not_valid: Bad Request response."
          },
          "401": {
            "content": {
              "application/json": {
                "example": "abc123",
                "schema": {
                  "description": "Unauthorized",
                  "example": "abc123",
                  "type": "string"
                }
              }
            },
            "description": "unauthorized: Unauthorized response."
          },
          "403": {
            "content": {
              "application/json": {
                "example": "abc123",
                "schema": {
                  "description": "Forbidden",
                  "example": "abc123",
                  "type": "string"
                }
              }
            },
            "description": "forbidden: Forbidden response."
          },
          "500": {
            "content": {
              "application/vnd.goa.error": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "internal_error: Internal Server Error response."
          }
        },
        "security": [
          {
            "bearer_header_Authorization": []
          }
        ],
        "summary": "add_sip ingest",
        "tags": [
          "ingest"
        ],
        "x-required-scopes": [
          "ingest:sips:create"
        ]
      }
    },
    "/ingest/sips/upload": {
      "post": {
        "description": "Upload a SIP to trigger an ingest workflow",
        "operationId": "ingest#upload_sip",
        "parameters": [
          {
            "description": "Content-Type header, must define value for multipart boundary.",
            "example": "multipart/form-data; boundary=goa",
            "in": "header",
            "name": "Content-Type",
            "schema": {
              "default": "multipart/form-data; boundary=goa",
              "description": "Content-Type header, must define value for multipart boundary.",
              "example": "multipart/form-data; boundary=goa",
              "pattern": "multipart/[^;]+; boundary=.+",
              "type": "string"
            }
          }
        ],
        "responses": {
          "202": {
            "content": {
              "application/json": {
                "example": {
                  "uuid": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5"
                },
                "schema": {
                  "$ref": "#/components/schemas/AddSipResponseBody"
                }
              }
            },
            "description": "Accepted response."
          },
          "400": {
            "content": {
              "application/vnd.goa.error": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "invalid_multipart_request: Error returned when the request body is not a valid multipart content."
          },
          "401": {
            "content": {
              "application/json": {
                "example": "abc123",
                "schema": {
                  "description": "Unauthorized",
                  "example": "abc123",
                  "type": "string"
                }
              }
            },
            "description": "unauthorized: Unauthorized response."
          },
          "403": {
            "content": {
              "application/json": {
                "example": "abc123",
                "schema": {
                  "description": "Forbidden",
                  "example": "abc123",
                  "type": "string"
                }
              }
            },
            "description": "forbidden: Forbidden response."
          },
          "500": {
            "content": {
              "application/vnd.goa.error": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "internal_error: Internal Server Error response."
          }
        },
        "security": [
          {
            "bearer_header_Authorization": []
          }
        ],
        "summary": "upload_sip ingest",
        "tags": [
          "ingest"
        ],
        "x-required-scopes": [
          "ingest:sips:upload"
        ]
      }
    },
    "/ingest/sips/{uuid}": {
      "get": {
        "description": "Show SIP by ID",
        "operationId": "ingest#show_sip",
        "parameters": [
          {
            "description": "Identifier of SIP to show",
            "example": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5",
            "in": "path",
            "name": "uuid",
            "required": true,
            "schema": {
              "description": "Identifier of SIP to show",
              "example": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5",
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "example": {
                  "aip_uuid": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5",
                  "batch_identifier": "abc123",
                  "batch_status": "processing",
                  "batch_uuid": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5",
                  "completed_at": "1970-01-01T00:00:01Z",
                  "created_at": "1970-01-01T00:00:01Z",
                  "failed_as": "PIP",
                  "failed_key": "abc123",
                  "file_count": 1,
                  "name": "abc123",
                  "started_at": "1970-01-01T00:00:01Z",
                  "status": "failed",
                  "uploader_email": "abc123",
                  "uploader_name": "abc123",
                  "uploader_uuid": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5",
                  "uuid": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5"
                },
                "schema": {
                  "$ref": "#/components/schemas/EnduroIngestSip"
                }
              }
            },
            "description": "OK response."
          },
          "401": {
            "content": {
              "application/json": {
                "example": "abc123",
                "schema": {
                  "description": "Unauthorized",
                  "example": "abc123",
                  "type": "string"
                }
              }
            },
            "description": "unauthorized: Unauthorized response."
          },
          "403": {
            "content": {
              "application/json": {
                "example": "abc123",
                "schema": {
                  "description": "Forbidden",
                  "example": "abc123",
                  "type": "string"
                }
              }
            },
            "description": "forbidden: Forbidden response."
          },
          "404": {
            "content": {
              "application/json": {
                "example": {
                  "message": "abc123",
                  "uuid": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5"
                },
                "schema": {
                  "$ref": "#/components/schemas/SIPNotFound"
                }
              }
            },
            "description": "not_found: SIP not found"
          },
          "500": {
            "content": {
              "application/vnd.goa.error": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "internal_error: Internal Server Error response."
          }
        },
        "security": [
          {
            "bearer_header_Authorization": []
          }
        ],
        "summary": "show_sip ingest",
        "tags": [
          "ingest"
        ],
        "x-required-scopes": [
          "ingest:sips:read"
        ]
      }
    },
    "/ingest/sips/{uuid}/confirm": {
      "post": {
        "description": "Signal the SIP has been reviewed and accepted",
        "operationId": "ingest#confirm_sip",
        "parameters": [
          {
            "description": "Identifier of SIP to look up",
            "example": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5",
            "in": "path",
            "name": "uuid",
            "required": true,
            "schema": {
              "description": "Identifier of SIP to look up",
              "example": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5",
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "example": {
                "location_uuid": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5"
              },
              "schema": {
                "$ref": "#/components/schemas/ConfirmSipRequestBody"
              }
            }
          },
          "description": "Request body for confirm_sip.",
          "required": true
        },
        "responses": {
          "202": {
            "description": "Accepted response."
          },
          "400": {
            "content": {
              "application/vnd.goa.error": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "not_valid: Bad Request response."
          },
          "401": {
            "content": {
              "application/json": {
                "example": "abc123",
                "schema": {
                  "description": "Unauthorized",
                  "example": "abc123",
                  "type": "string"
                }
              }
            },
            "description": "unauthorized: Unauthorized response."
          },
          "403": {
            "content": {
              "application/json": {
                "example": "abc123",
                "schema": {
                  "description": "Forbidden",
                  "example": "abc123",
                  "type": "string"
                }
              }
            },
            "description": "forbidden: Forbidden response."
          },
          "404": {
            "content": {
              "application/json": {
                "example": {
                  "message": "abc123",
                  "uuid": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5"
                },
                "schema": {
                  "$ref": "#/components/schemas/SIPNotFound"
                }
              }
            },
            "description": "not_found: SIP not found"
          },
          "409": {
            "content": {
              "application/vnd.goa.error": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "not_available: Conflict response."
          },
          "500": {
            "content": {
              "application/vnd.goa.error": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "internal_error: Internal Server Error response."
          }
        },
        "security": [
          {
            "bearer_header_Authorization": []
          }
        ],
        "summary": "confirm_sip ingest",
        "tags": [
          "ingest"
        ],
        "x-required-scopes": [
          "ingest:sips:review"
        ]
      }
    },
    "/ingest/sips/{uuid}/decision": {
      "get": {
        "description": "Show the active child workflow decision request for a SIP",
        "operationId": "ingest#show_sip_decision",
        "parameters": [
          {
            "description": "Identifier of SIP to look up",
            "example": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5",
            "in": "path",
            "name": "uuid",
            "required": true,
            "schema": {
              "description": "Identifier of SIP to look up",
              "example": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5",
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "example": {
                  "message": "abc123",
                  "options": [
                    "abc123"
                  ]
                },
                "schema": {
                  "$ref": "#/components/schemas/EnduroIngestSipDecision"
                }
              }
            },
            "description": "OK response."
          },
          "400": {
            "content": {
              "application/vnd.goa.error": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "not_valid: Bad Request response."
          },
          "401": {
            "content": {
              "application/json": {
                "example": "abc123",
                "schema": {
                  "description": "Unauthorized",
                  "example": "abc123",
                  "type": "string"
                }
              }
            },
            "description": "unauthorized: Unauthorized response."
          },
          "403": {
            "content": {
              "application/json": {
                "example": "abc123",
                "schema": {
                  "description": "Forbidden",
                  "example": "abc123",
                  "type": "string"
                }
              }
            },
            "description": "forbidden: Forbidden response."
          },
          "404": {
            "content": {
              "application/json": {
                "example": {
                  "message": "abc123",
                  "uuid": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5"
                },
                "schema": {
                  "$ref": "#/components/schemas/SIPNotFound"
                }
              }
            },
            "description": "not_found: SIP not found"
          },
          "409": {
            "content": {
              "application/vnd.goa.error": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "not_available: Conflict response."
          },
          "500": {
            "content": {
              "application/vnd.goa.error": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "internal_error: Internal Server Error response."
          }
        },
        "security": [
          {
            "bearer_header_Authorization": []
          }
        ],
        "summary": "show_sip_decision ingest",
        "tags": [
          "ingest"
        ],
        "x-required-scopes": [
          "ingest:sips:decision"
        ]
      },
      "post": {
        "description": "Submit a selected child workflow decision option for a SIP",
        "operationId": "ingest#submit_sip_decision",
        "parameters": [
          {
            "description": "Identifier of SIP to look up",
            "example": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5",
            "in": "path",
            "name": "uuid",
            "required": true,
            "schema": {
              "description": "Identifier of SIP to look up",
              "example": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5",
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "example": {
                "option": "abc123"
              },
              "schema": {
                "$ref": "#/components/schemas/SubmitSipDecisionRequestBody"
              }
            }
          },
          "description": "Request body for submit_sip_decision.",
          "required": true
        },
        "responses": {
          "202": {
            "description": "Accepted response."
          },
          "400": {
            "content": {
              "application/vnd.goa.error": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "not_valid: Bad Request response."
          },
          "401": {
            "content": {
              "application/json": {
                "example": "abc123",
                "schema": {
                  "description": "Unauthorized",
                  "example": "abc123",
                  "type": "string"
                }
              }
            },
            "description": "unauthorized: Unauthorized response."
          },
          "403": {
            "content": {
              "application/json": {
                "example": "abc123",
                "schema": {
                  "description": "Forbidden",
                  "example": "abc123",
                  "type": "string"
                }
              }
            },
            "description": "forbidden: Forbidden response."
          },
          "404": {
            "content": {
              "application/json": {
                "example": {
                  "message": "abc123",
                  "uuid": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5"
                },
                "schema": {
                  "$ref": "#/components/schemas/SIPNotFound"
                }
              }
            },
            "description": "not_found: SIP not found"
          },
          "409": {
            "content": {
              "application/vnd.goa.error": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "not_available: Conflict response."
          },
          "500": {
            "content": {
              "application/vnd.goa.error": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "internal_error: Internal Server Error response."
          }
        },
        "security": [
          {
            "bearer_header_Authorization": []
          }
        ],
        "summary": "submit_sip_decision ingest",
        "tags": [
          "ingest"
        ],
        "x-required-scopes": [
          "ingest:sips:decision"
        ]
      }
    },
    "/ingest/sips/{uuid}/download": {
      "get": {
        "description": "Download the failed package related to a SIP. It will be the original SIP or the transformed PIP, based on the SIP's `failed_as` value.",
        "operationId": "ingest#download_sip",
        "parameters": [
          {
            "description": "Identifier of the SIP to download",
            "example": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5",
            "in": "path",
            "name": "uuid",
            "required": true,
            "schema": {
              "description": "Identifier of the SIP to download",
              "example": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5",
              "format": "uuid",
              "type": "string"
            }
          },
          {
            "example": "abc123",
            "in": "cookie",
            "name": "enduro-sip-download-ticket",
            "schema": {
              "example": "abc123",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "format": "binary",
                  "type": "string"
                }
              }
            },
            "description": "OK response.",
            "headers": {
              "Content-Disposition": {
                "example": "abc123",
                "schema": {
                  "example": "abc123",
                  "type": "string"
                }
              },
              "Content-Length": {
                "example": 1,
                "schema": {
                  "example": 1,
                  "format": "int64",
                  "type": "integer"
                }
              },
              "Content-Type": {
                "example": "abc123",
                "schema": {
                  "example": "abc123",
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "content": {
              "application/vnd.goa.error": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "not_valid: Bad Request response."
          },
          "401": {
            "content": {
              "application/json": {
                "example": "abc123",
                "schema": {
                  "description": "Unauthorized",
                  "example": "abc123",
                  "type": "string"
                }
              }
            },
            "description": "unauthorized: Unauthorized response."
          },
          "403": {
            "content": {
              "application/json": {
                "example": "abc123",
                "schema": {
                  "description": "Forbidden",
                  "example": "abc123",
                  "type": "string"
                }
              }
            },
            "description": "forbidden: Forbidden response."
          },
          "404": {
            "content": {
              "application/json": {
                "example": {
                  "message": "abc123",
                  "uuid": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5"
                },
                "schema": {
                  "$ref": "#/components/schemas/SIPNotFound"
                }
              }
            },
            "description": "not_found: SIP not found"
          },
          "500": {
            "content": {
              "application/vnd.goa.error": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "internal_error: Internal Server Error response."
          }
        },
        "security": [],
        "summary": "download_sip ingest",
        "tags": [
          "ingest"
        ]
      },
      "post": {
        "description": "Request access to SIP download",
        "operationId": "ingest#download_sip_request",
        "parameters": [
          {
            "description": "Identifier of the SIP to download",
            "example": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5",
            "in": "path",
            "name": "uuid",
            "required": true,
            "schema": {
              "description": "Identifier of the SIP to download",
              "example": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5",
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK response.",
            "headers": {
              "Set-Cookie": {
                "example": "abc123",
                "schema": {
                  "example": "abc123",
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "content": {
              "application/vnd.goa.error": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "not_valid: Bad Request response."
          },
          "401": {
            "content": {
              "application/json": {
                "example": "abc123",
                "schema": {
                  "description": "Unauthorized",
                  "example": "abc123",
                  "type": "string"
                }
              }
            },
            "description": "unauthorized: Unauthorized response."
          },
          "403": {
            "content": {
              "application/json": {
                "example": "abc123",
                "schema": {
                  "description": "Forbidden",
                  "example": "abc123",
                  "type": "string"
                }
              }
            },
            "description": "forbidden: Forbidden response."
          },
          "404": {
            "content": {
              "application/json": {
                "example": {
                  "message": "abc123",
                  "uuid": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5"
                },
                "schema": {
                  "$ref": "#/components/schemas/SIPNotFound"
                }
              }
            },
            "description": "not_found: SIP not found"
          },
          "500": {
            "content": {
              "application/vnd.goa.error": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "internal_error: Internal Server Error response."
          }
        },
        "security": [
          {
            "bearer_header_Authorization": []
          }
        ],
        "summary": "download_sip_request ingest",
        "tags": [
          "ingest"
        ],
        "x-required-scopes": [
          "ingest:sips:download"
        ]
      }
    },
    "/ingest/sips/{uuid}/reject": {
      "post": {
        "description": "Signal the SIP has been reviewed and rejected",
        "operationId": "ingest#reject_sip",
        "parameters": [
          {
            "description": "Identifier of SIP to look up",
            "example": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5",
            "in": "path",
            "name": "uuid",
            "required": true,
            "schema": {
              "description": "Identifier of SIP to look up",
              "example": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5",
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "202": {
            "description": "Accepted response."
          },
          "400": {
            "content": {
              "application/vnd.goa.error": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "not_valid: Bad Request response."
          },
          "401": {
            "content": {
              "application/json": {
                "example": "abc123",
                "schema": {
                  "description": "Unauthorized",
                  "example": "abc123",
                  "type": "string"
                }
              }
            },
            "description": "unauthorized: Unauthorized response."
          },
          "403": {
            "content": {
              "application/json": {
                "example": "abc123",
                "schema": {
                  "description": "Forbidden",
                  "example": "abc123",
                  "type": "string"
                }
              }
            },
            "description": "forbidden: Forbidden response."
          },
          "404": {
            "content": {
              "application/json": {
                "example": {
                  "message": "abc123",
                  "uuid": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5"
                },
                "schema": {
                  "$ref": "#/components/schemas/SIPNotFound"
                }
              }
            },
            "description": "not_found: SIP not found"
          },
          "409": {
            "content": {
              "application/vnd.goa.error": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "not_available: Conflict response."
          },
          "500": {
            "content": {
              "application/vnd.goa.error": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "internal_error: Internal Server Error response."
          }
        },
        "security": [
          {
            "bearer_header_Authorization": []
          }
        ],
        "summary": "reject_sip ingest",
        "tags": [
          "ingest"
        ],
        "x-required-scopes": [
          "ingest:sips:review"
        ]
      }
    },
    "/ingest/sips/{uuid}/workflows": {
      "get": {
        "description": "List all workflows for a SIP",
        "operationId": "ingest#list_sip_workflows",
        "parameters": [
          {
            "description": "Identifier of SIP to look up",
            "example": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5",
            "in": "path",
            "name": "uuid",
            "required": true,
            "schema": {
              "description": "Identifier of SIP to look up",
              "example": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5",
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "example": {
                  "workflows": [
                    {
                      "completed_at": "1970-01-01T00:00:01Z",
                      "sip_uuid": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5",
                      "started_at": "1970-01-01T00:00:01Z",
                      "status": "in progress",
                      "tasks": [
                        {
                          "completed_at": "1970-01-01T00:00:01Z",
                          "name": "abc123",
                          "note": "abc123",
                          "started_at": "1970-01-01T00:00:01Z",
                          "status": "in progress",
                          "uuid": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5",
                          "workflow_uuid": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5"
                        }
                      ],
                      "temporal_id": "abc123",
                      "type": "create and review aip",
                      "uuid": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5"
                    }
                  ]
                },
                "schema": {
                  "$ref": "#/components/schemas/EnduroIngestSipWorkflows"
                }
              }
            },
            "description": "OK response."
          },
          "401": {
            "content": {
              "application/json": {
                "example": "abc123",
                "schema": {
                  "description": "Unauthorized",
                  "example": "abc123",
                  "type": "string"
                }
              }
            },
            "description": "unauthorized: Unauthorized response."
          },
          "403": {
            "content": {
              "application/json": {
                "example": "abc123",
                "schema": {
                  "description": "Forbidden",
                  "example": "abc123",
                  "type": "string"
                }
              }
            },
            "description": "forbidden: Forbidden response."
          },
          "404": {
            "content": {
              "application/json": {
                "example": {
                  "message": "abc123",
                  "uuid": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5"
                },
                "schema": {
                  "$ref": "#/components/schemas/SIPNotFound"
                }
              }
            },
            "description": "not_found: SIP not found"
          },
          "500": {
            "content": {
              "application/vnd.goa.error": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "internal_error: Internal Server Error response."
          }
        },
        "security": [
          {
            "bearer_header_Authorization": []
          }
        ],
        "summary": "list_sip_workflows ingest",
        "tags": [
          "ingest"
        ],
        "x-required-scopes": [
          "ingest:sips:workflows:list"
        ]
      }
    },
    "/ingest/users": {
      "get": {
        "description": "List all users",
        "operationId": "ingest#list_users",
        "parameters": [
          {
            "allowEmptyValue": true,
            "description": "Email of the user",
            "example": "nobody@example.com",
            "in": "query",
            "name": "email",
            "schema": {
              "description": "Email of the user",
              "example": "nobody@example.com",
              "type": "string"
            }
          },
          {
            "allowEmptyValue": true,
            "description": "Name of the user",
            "example": "Jane Doe",
            "in": "query",
            "name": "name",
            "schema": {
              "description": "Name of the user",
              "example": "Jane Doe",
              "type": "string"
            }
          },
          {
            "allowEmptyValue": true,
            "description": "Limit number of results to return",
            "example": 1,
            "in": "query",
            "name": "limit",
            "schema": {
              "description": "Limit number of results to return",
              "example": 1,
              "format": "int64",
              "type": "integer"
            }
          },
          {
            "allowEmptyValue": true,
            "description": "Offset from the beginning of the found set",
            "example": 1,
            "in": "query",
            "name": "offset",
            "schema": {
              "description": "Offset from the beginning of the found set",
              "example": 1,
              "format": "int64",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "example": {
                  "items": [
                    {
                      "created_at": "1970-01-01T00:00:01Z",
                      "email": "nobody@example.com",
                      "name": "Jane Doe",
                      "uuid": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5"
                    }
                  ],
                  "page": {
                    "limit": 1,
                    "offset": 1,
                    "total": 1
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/EnduroIngestUsers"
                }
              }
            },
            "description": "OK response."
          },
          "400": {
            "content": {
              "application/vnd.goa.error": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "not_valid: Bad Request response."
          },
          "401": {
            "content": {
              "application/json": {
                "example": "abc123",
                "schema": {
                  "description": "Unauthorized",
                  "example": "abc123",
                  "type": "string"
                }
              }
            },
            "description": "unauthorized: Unauthorized response."
          },
          "403": {
            "content": {
              "application/json": {
                "example": "abc123",
                "schema": {
                  "description": "Forbidden",
                  "example": "abc123",
                  "type": "string"
                }
              }
            },
            "description": "forbidden: Forbidden response."
          },
          "500": {
            "content": {
              "application/vnd.goa.error": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "internal_error: Internal Server Error response."
          }
        },
        "security": [
          {
            "bearer_header_Authorization": []
          }
        ],
        "summary": "list_users ingest",
        "tags": [
          "ingest"
        ],
        "x-required-scopes": [
          "ingest:users:list"
        ]
      }
    },
    "/storage/aips": {
      "get": {
        "description": "List all AIPs",
        "operationId": "storage#list_aips",
        "parameters": [
          {
            "allowEmptyValue": true,
            "description": "Search query to filter AIPs by name or UUID",
            "example": "abc123",
            "in": "query",
            "name": "query",
            "schema": {
              "description": "Search query to filter AIPs by name or UUID",
              "example": "abc123",
              "type": "string"
            }
          },
          {
            "allowEmptyValue": true,
            "example": "1970-01-01T00:00:01Z",
            "in": "query",
            "name": "earliest_created_time",
            "schema": {
              "example": "1970-01-01T00:00:01Z",
              "format": "date-time",
              "type": "string"
            }
          },
          {
            "allowEmptyValue": true,
            "example": "1970-01-01T00:00:01Z",
            "in": "query",
            "name": "latest_created_time",
            "schema": {
              "example": "1970-01-01T00:00:01Z",
              "format": "date-time",
              "type": "string"
            }
          },
          {
            "allowEmptyValue": true,
            "example": "stored",
            "in": "query",
            "name": "status",
            "schema": {
              "enum": [
                "unspecified",
                "stored",
                "pending",
                "processing",
                "deleted",
                "queued"
              ],
              "example": "stored",
              "type": "string"
            }
          },
          {
            "allowEmptyValue": true,
            "description": "Limit number of results to return",
            "example": 1,
            "in": "query",
            "name": "limit",
            "schema": {
              "description": "Limit number of results to return",
              "example": 1,
              "format": "int64",
              "type": "integer"
            }
          },
          {
            "allowEmptyValue": true,
            "description": "Offset from the beginning of the found set",
            "example": 1,
            "in": "query",
            "name": "offset",
            "schema": {
              "description": "Offset from the beginning of the found set",
              "example": 1,
              "format": "int64",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "example": {
                  "items": [
                    {
                      "created_at": "1970-01-01T00:00:01Z",
                      "deletion_report_key": "abc123",
                      "location_uuid": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5",
                      "name": "abc123",
                      "object_key": "abc123",
                      "status": "stored",
                      "uuid": "abc123"
                    }
                  ],
                  "page": {
                    "limit": 1,
                    "offset": 1,
                    "total": 1
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/EnduroStorageAips"
                }
              }
            },
            "description": "OK response."
          },
          "400": {
            "content": {
              "application/vnd.goa.error": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "not_valid: Bad Request response."
          },
          "401": {
            "content": {
              "application/json": {
                "example": "abc123",
                "schema": {
                  "description": "Unauthorized",
                  "example": "abc123",
                  "type": "string"
                }
              }
            },
            "description": "unauthorized: Unauthorized response."
          },
          "403": {
            "content": {
              "application/json": {
                "example": "abc123",
                "schema": {
                  "description": "Forbidden",
                  "example": "abc123",
                  "type": "string"
                }
              }
            },
            "description": "forbidden: Forbidden response."
          },
          "500": {
            "content": {
              "application/vnd.goa.error": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "internal_error: Internal Server Error response."
          }
        },
        "security": [
          {
            "bearer_header_Authorization": []
          }
        ],
        "summary": "list_aips storage",
        "tags": [
          "storage"
        ],
        "x-required-scopes": [
          "storage:aips:list"
        ]
      },
      "post": {
        "description": "Create a new AIP",
        "operationId": "storage#create_aip",
        "requestBody": {
          "content": {
            "application/json": {
              "example": {
                "location_uuid": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5",
                "name": "abc123",
                "object_key": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5",
                "status": "stored",
                "uuid": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5"
              },
              "schema": {
                "$ref": "#/components/schemas/CreateAipRequestBody"
              }
            }
          },
          "description": "Request body for create_aip.",
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "example": {
                  "created_at": "1970-01-01T00:00:01Z",
                  "deletion_report_key": "abc123",
                  "location_uuid": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5",
                  "name": "abc123",
                  "object_key": "abc123",
                  "status": "stored",
                  "uuid": "abc123"
                },
                "schema": {
                  "$ref": "#/components/schemas/EnduroStorageAip"
                }
              }
            },
            "description": "OK response."
          },
          "400": {
            "content": {
              "application/vnd.goa.error": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "not_valid: Bad Request response."
          },
          "401": {
            "content": {
              "application/json": {
                "example": "abc123",
                "schema": {
                  "description": "Unauthorized",
                  "example": "abc123",
                  "type": "string"
                }
              }
            },
            "description": "unauthorized: Unauthorized response."
          },
          "403": {
            "content": {
              "application/json": {
                "example": "abc123",
                "schema": {
                  "description": "Forbidden",
                  "example": "abc123",
                  "type": "string"
                }
              }
            },
            "description": "forbidden: Forbidden response."
          },
          "500": {
            "content": {
              "application/vnd.goa.error": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "internal_error: Internal Server Error response."
          }
        },
        "security": [
          {
            "bearer_header_Authorization": []
          }
        ],
        "summary": "create_aip storage",
        "tags": [
          "storage"
        ],
        "x-required-scopes": [
          "storage:aips:create"
        ]
      }
    },
    "/storage/aips/{uuid}": {
      "get": {
        "description": "Show AIP by AIPID",
        "operationId": "storage#show_aip",
        "parameters": [
          {
            "description": "Identifier of AIP",
            "example": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5",
            "in": "path",
            "name": "uuid",
            "required": true,
            "schema": {
              "description": "Identifier of AIP",
              "example": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5",
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "example": {
                  "created_at": "1970-01-01T00:00:01Z",
                  "deletion_report_key": "abc123",
                  "location_uuid": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5",
                  "name": "abc123",
                  "object_key": "abc123",
                  "status": "stored",
                  "uuid": "abc123"
                },
                "schema": {
                  "$ref": "#/components/schemas/EnduroStorageAip"
                }
              }
            },
            "description": "OK response."
          },
          "401": {
            "content": {
              "application/json": {
                "example": "abc123",
                "schema": {
                  "description": "Unauthorized",
                  "example": "abc123",
                  "type": "string"
                }
              }
            },
            "description": "unauthorized: Unauthorized response."
          },
          "403": {
            "content": {
              "application/json": {
                "example": "abc123",
                "schema": {
                  "description": "Forbidden",
                  "example": "abc123",
                  "type": "string"
                }
              }
            },
            "description": "forbidden: Forbidden response."
          },
          "404": {
            "content": {
              "application/json": {
                "example": {
                  "message": "abc123",
                  "uuid": "abc123"
                },
                "schema": {
                  "$ref": "#/components/schemas/AIPNotFound"
                }
              }
            },
            "description": "not_found: AIP not found"
          },
          "500": {
            "content": {
              "application/vnd.goa.error": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "internal_error: Internal Server Error response."
          }
        },
        "security": [
          {
            "bearer_header_Authorization": []
          }
        ],
        "summary": "show_aip storage",
        "tags": [
          "storage"
        ],
        "x-required-scopes": [
          "storage:aips:read"
        ]
      }
    },
    "/storage/aips/{uuid}/deletion-auto": {
      "post": {
        "description": "AIP deletion with auto-approval",
        "operationId": "storage#aip_deletion_auto",
        "parameters": [
          {
            "description": "Identifier of AIP",
            "example": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5",
            "in": "path",
            "name": "uuid",
            "required": true,
            "schema": {
              "description": "Identifier of AIP",
              "example": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5",
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "example": {
                "reason": "abc123",
                "skip_report": false
              },
              "schema": {
                "$ref": "#/components/schemas/AipDeletionAutoRequestBody"
              }
            }
          },
          "description": "Request body for aip_deletion_auto.",
          "required": true
        },
        "responses": {
          "202": {
            "description": "Accepted response."
          },
          "400": {
            "content": {
              "application/vnd.goa.error": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "not_valid: Bad Request response."
          },
          "401": {
            "content": {
              "application/json": {
                "example": "abc123",
                "schema": {
                  "description": "Unauthorized",
                  "example": "abc123",
                  "type": "string"
                }
              }
            },
            "description": "unauthorized: Unauthorized response."
          },
          "403": {
            "content": {
              "application/json": {
                "example": "abc123",
                "schema": {
                  "description": "Forbidden",
                  "example": "abc123",
                  "type": "string"
                }
              }
            },
            "description": "forbidden: Forbidden response."
          },
          "404": {
            "content": {
              "application/json": {
                "example": {
                  "message": "abc123",
                  "uuid": "abc123"
                },
                "schema": {
                  "$ref": "#/components/schemas/AIPNotFound"
                }
              }
            },
            "description": "not_found: AIP not found"
          },
          "500": {
            "content": {
              "application/vnd.goa.error": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "internal_error: Internal Server Error response."
          }
        },
        "security": [
          {
            "bearer_header_Authorization": []
          }
        ],
        "summary": "aip_deletion_auto storage",
        "tags": [
          "storage"
        ],
        "x-required-scopes": [
          "storage:aips:deletion:auto"
        ]
      }
    },
    "/storage/aips/{uuid}/deletion-cancel": {
      "post": {
        "description": "Cancel an AIP deletion request",
        "operationId": "storage#cancel_aip_deletion",
        "parameters": [
          {
            "description": "Identifier of AIP",
            "example": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5",
            "in": "path",
            "name": "uuid",
            "required": true,
            "schema": {
              "description": "Identifier of AIP",
              "example": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5",
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "example": {
                "check": false
              },
              "schema": {
                "$ref": "#/components/schemas/CancelAipDeletionRequestBody"
              }
            }
          },
          "description": "Request body for cancel_aip_deletion.",
          "required": true
        },
        "responses": {
          "202": {
            "description": "Accepted response."
          },
          "400": {
            "content": {
              "application/vnd.goa.error": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "not_valid: Bad Request response."
          },
          "401": {
            "content": {
              "application/json": {
                "example": "abc123",
                "schema": {
                  "description": "Unauthorized",
                  "example": "abc123",
                  "type": "string"
                }
              }
            },
            "description": "unauthorized: Unauthorized response."
          },
          "403": {
            "content": {
              "application/json": {
                "example": "abc123",
                "schema": {
                  "description": "Forbidden",
                  "example": "abc123",
                  "type": "string"
                }
              }
            },
            "description": "forbidden: Forbidden response."
          },
          "404": {
            "content": {
              "application/json": {
                "example": {
                  "message": "abc123",
                  "uuid": "abc123"
                },
                "schema": {
                  "$ref": "#/components/schemas/AIPNotFound"
                }
              }
            },
            "description": "not_found: AIP not found"
          },
          "500": {
            "content": {
              "application/vnd.goa.error": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "internal_error: Internal Server Error response."
          }
        },
        "security": [
          {
            "bearer_header_Authorization": []
          }
        ],
        "summary": "cancel_aip_deletion storage",
        "tags": [
          "storage"
        ],
        "x-required-scopes": [
          "storage:aips:deletion:request"
        ]
      }
    },
    "/storage/aips/{uuid}/deletion-report": {
      "get": {
        "description": "Download deletion report by UUID",
        "operationId": "storage#aip_deletion_report",
        "parameters": [
          {
            "description": "UUID of the AIP",
            "example": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5",
            "in": "path",
            "name": "uuid",
            "required": true,
            "schema": {
              "description": "UUID of the AIP",
              "example": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5",
              "format": "uuid",
              "type": "string"
            }
          },
          {
            "example": "abc123",
            "in": "cookie",
            "name": "enduro-delreport-ticket",
            "schema": {
              "example": "abc123",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "format": "binary",
                  "type": "string"
                }
              }
            },
            "description": "OK response.",
            "headers": {
              "Content-Disposition": {
                "example": "abc123",
                "schema": {
                  "example": "abc123",
                  "type": "string"
                }
              },
              "Content-Length": {
                "example": 1,
                "schema": {
                  "example": 1,
                  "format": "int64",
                  "type": "integer"
                }
              },
              "Content-Type": {
                "example": "abc123",
                "schema": {
                  "example": "abc123",
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "content": {
              "application/vnd.goa.error": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "not_valid: Bad Request response."
          },
          "401": {
            "content": {
              "application/json": {
                "example": "abc123",
                "schema": {
                  "description": "Unauthorized",
                  "example": "abc123",
                  "type": "string"
                }
              }
            },
            "description": "unauthorized: Unauthorized response."
          },
          "403": {
            "content": {
              "application/json": {
                "example": "abc123",
                "schema": {
                  "description": "Forbidden",
                  "example": "abc123",
                  "type": "string"
                }
              }
            },
            "description": "forbidden: Forbidden response."
          },
          "404": {
            "content": {
              "application/vnd.goa.error": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "not_found: Not Found response."
          },
          "500": {
            "content": {
              "application/vnd.goa.error": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "internal_error: Internal Server Error response."
          }
        },
        "security": [],
        "summary": "aip_deletion_report storage",
        "tags": [
          "storage"
        ]
      },
      "post": {
        "description": "Request access to download a deletion report",
        "operationId": "storage#aip_deletion_report_request",
        "parameters": [
          {
            "description": "UUID of the AIP",
            "example": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5",
            "in": "path",
            "name": "uuid",
            "required": true,
            "schema": {
              "description": "UUID of the AIP",
              "example": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5",
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK response.",
            "headers": {
              "Set-Cookie": {
                "example": "abc123",
                "schema": {
                  "example": "abc123",
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "content": {
              "application/vnd.goa.error": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "not_valid: Bad Request response."
          },
          "401": {
            "content": {
              "application/json": {
                "example": "abc123",
                "schema": {
                  "description": "Unauthorized",
                  "example": "abc123",
                  "type": "string"
                }
              }
            },
            "description": "unauthorized: Unauthorized response."
          },
          "403": {
            "content": {
              "application/json": {
                "example": "abc123",
                "schema": {
                  "description": "Forbidden",
                  "example": "abc123",
                  "type": "string"
                }
              }
            },
            "description": "forbidden: Forbidden response."
          },
          "404": {
            "content": {
              "application/vnd.goa.error": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "not_found: Not Found response."
          },
          "500": {
            "content": {
              "application/vnd.goa.error": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "internal_error: Internal Server Error response."
          }
        },
        "security": [
          {
            "bearer_header_Authorization": []
          }
        ],
        "summary": "aip_deletion_report_request storage",
        "tags": [
          "storage"
        ],
        "x-required-scopes": [
          "storage:aips:deletion:report"
        ]
      }
    },
    "/storage/aips/{uuid}/deletion-request": {
      "post": {
        "description": "Request an AIP deletion",
        "operationId": "storage#request_aip_deletion",
        "parameters": [
          {
            "description": "Identifier of AIP",
            "example": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5",
            "in": "path",
            "name": "uuid",
            "required": true,
            "schema": {
              "description": "Identifier of AIP",
              "example": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5",
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "example": {
                "reason": "abc123"
              },
              "schema": {
                "$ref": "#/components/schemas/RequestAipDeletionRequestBody"
              }
            }
          },
          "description": "Request body for request_aip_deletion.",
          "required": true
        },
        "responses": {
          "202": {
            "description": "Accepted response."
          },
          "400": {
            "content": {
              "application/vnd.goa.error": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "not_valid: Bad Request response."
          },
          "401": {
            "content": {
              "application/json": {
                "example": "abc123",
                "schema": {
                  "description": "Unauthorized",
                  "example": "abc123",
                  "type": "string"
                }
              }
            },
            "description": "unauthorized: Unauthorized response."
          },
          "403": {
            "content": {
              "application/json": {
                "example": "abc123",
                "schema": {
                  "description": "Forbidden",
                  "example": "abc123",
                  "type": "string"
                }
              }
            },
            "description": "forbidden: Forbidden response."
          },
          "404": {
            "content": {
              "application/json": {
                "example": {
                  "message": "abc123",
                  "uuid": "abc123"
                },
                "schema": {
                  "$ref": "#/components/schemas/AIPNotFound"
                }
              }
            },
            "description": "not_found: AIP not found"
          },
          "500": {
            "content": {
              "application/vnd.goa.error": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "internal_error: Internal Server Error response."
          }
        },
        "security": [
          {
            "bearer_header_Authorization": []
          }
        ],
        "summary": "request_aip_deletion storage",
        "tags": [
          "storage"
        ],
        "x-required-scopes": [
          "storage:aips:deletion:request"
        ]
      }
    },
    "/storage/aips/{uuid}/deletion-review": {
      "post": {
        "description": "Review an AIP deletion request",
        "operationId": "storage#review_aip_deletion",
        "parameters": [
          {
            "description": "Identifier of AIP",
            "example": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5",
            "in": "path",
            "name": "uuid",
            "required": true,
            "schema": {
              "description": "Identifier of AIP",
              "example": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5",
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "example": {
                "approved": false
              },
              "schema": {
                "$ref": "#/components/schemas/ReviewAipDeletionRequestBody"
              }
            }
          },
          "description": "Request body for review_aip_deletion.",
          "required": true
        },
        "responses": {
          "202": {
            "description": "Accepted response."
          },
          "400": {
            "content": {
              "application/vnd.goa.error": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "not_valid: Bad Request response."
          },
          "401": {
            "content": {
              "application/json": {
                "example": "abc123",
                "schema": {
                  "description": "Unauthorized",
                  "example": "abc123",
                  "type": "string"
                }
              }
            },
            "description": "unauthorized: Unauthorized response."
          },
          "403": {
            "content": {
              "application/json": {
                "example": "abc123",
                "schema": {
                  "description": "Forbidden",
                  "example": "abc123",
                  "type": "string"
                }
              }
            },
            "description": "forbidden: Forbidden response."
          },
          "404": {
            "content": {
              "application/json": {
                "example": {
                  "message": "abc123",
                  "uuid": "abc123"
                },
                "schema": {
                  "$ref": "#/components/schemas/AIPNotFound"
                }
              }
            },
            "description": "not_found: AIP not found"
          },
          "500": {
            "content": {
              "application/vnd.goa.error": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "internal_error: Internal Server Error response."
          }
        },
        "security": [
          {
            "bearer_header_Authorization": []
          }
        ],
        "summary": "review_aip_deletion storage",
        "tags": [
          "storage"
        ],
        "x-required-scopes": [
          "storage:aips:deletion:review"
        ]
      }
    },
    "/storage/aips/{uuid}/download": {
      "get": {
        "description": "Download AIP by AIPID",
        "operationId": "storage#download_aip",
        "parameters": [
          {
            "description": "Identifier of the AIP to download",
            "example": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5",
            "in": "path",
            "name": "uuid",
            "required": true,
            "schema": {
              "description": "Identifier of the AIP to download",
              "example": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5",
              "format": "uuid",
              "type": "string"
            }
          },
          {
            "example": "abc123",
            "in": "cookie",
            "name": "enduro-aip-download-ticket",
            "schema": {
              "example": "abc123",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "format": "binary",
                  "type": "string"
                }
              }
            },
            "description": "OK response.",
            "headers": {
              "Content-Disposition": {
                "example": "abc123",
                "schema": {
                  "example": "abc123",
                  "type": "string"
                }
              },
              "Content-Length": {
                "example": 1,
                "schema": {
                  "example": 1,
                  "format": "int64",
                  "type": "integer"
                }
              },
              "Content-Type": {
                "example": "abc123",
                "schema": {
                  "example": "abc123",
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "content": {
              "application/vnd.goa.error": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "not_valid: Bad Request response."
          },
          "401": {
            "content": {
              "application/json": {
                "example": "abc123",
                "schema": {
                  "description": "Unauthorized",
                  "example": "abc123",
                  "type": "string"
                }
              }
            },
            "description": "unauthorized: Unauthorized response."
          },
          "403": {
            "content": {
              "application/json": {
                "example": "abc123",
                "schema": {
                  "description": "Forbidden",
                  "example": "abc123",
                  "type": "string"
                }
              }
            },
            "description": "forbidden: Forbidden response."
          },
          "404": {
            "content": {
              "application/json": {
                "example": {
                  "message": "abc123",
                  "uuid": "abc123"
                },
                "schema": {
                  "$ref": "#/components/schemas/AIPNotFound"
                }
              }
            },
            "description": "not_found: AIP not found"
          },
          "500": {
            "content": {
              "application/vnd.goa.error": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "internal_error: Internal Server Error response."
          }
        },
        "security": [],
        "summary": "download_aip storage",
        "tags": [
          "storage"
        ]
      },
      "post": {
        "description": "Request access to AIP download",
        "operationId": "storage#download_aip_request",
        "parameters": [
          {
            "description": "Identifier of the AIP to download",
            "example": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5",
            "in": "path",
            "name": "uuid",
            "required": true,
            "schema": {
              "description": "Identifier of the AIP to download",
              "example": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5",
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK response.",
            "headers": {
              "Set-Cookie": {
                "example": "abc123",
                "schema": {
                  "example": "abc123",
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "content": {
              "application/vnd.goa.error": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "not_valid: Bad Request response."
          },
          "401": {
            "content": {
              "application/json": {
                "example": "abc123",
                "schema": {
                  "description": "Unauthorized",
                  "example": "abc123",
                  "type": "string"
                }
              }
            },
            "description": "unauthorized: Unauthorized response."
          },
          "403": {
            "content": {
              "application/json": {
                "example": "abc123",
                "schema": {
                  "description": "Forbidden",
                  "example": "abc123",
                  "type": "string"
                }
              }
            },
            "description": "forbidden: Forbidden response."
          },
          "404": {
            "content": {
              "application/json": {
                "example": {
                  "message": "abc123",
                  "uuid": "abc123"
                },
                "schema": {
                  "$ref": "#/components/schemas/AIPNotFound"
                }
              }
            },
            "description": "not_found: AIP not found"
          },
          "500": {
            "content": {
              "application/vnd.goa.error": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "internal_error: Internal Server Error response."
          }
        },
        "security": [
          {
            "bearer_header_Authorization": []
          }
        ],
        "summary": "download_aip_request storage",
        "tags": [
          "storage"
        ],
        "x-required-scopes": [
          "storage:aips:download"
        ]
      }
    },
    "/storage/aips/{uuid}/reject": {
      "post": {
        "description": "Reject an AIP",
        "operationId": "storage#reject_aip",
        "parameters": [
          {
            "description": "Identifier of AIP",
            "example": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5",
            "in": "path",
            "name": "uuid",
            "required": true,
            "schema": {
              "description": "Identifier of AIP",
              "example": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5",
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "202": {
            "description": "Accepted response."
          },
          "400": {
            "content": {
              "application/vnd.goa.error": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "not_valid: Bad Request response."
          },
          "401": {
            "content": {
              "application/json": {
                "example": "abc123",
                "schema": {
                  "description": "Unauthorized",
                  "example": "abc123",
                  "type": "string"
                }
              }
            },
            "description": "unauthorized: Unauthorized response."
          },
          "403": {
            "content": {
              "application/json": {
                "example": "abc123",
                "schema": {
                  "description": "Forbidden",
                  "example": "abc123",
                  "type": "string"
                }
              }
            },
            "description": "forbidden: Forbidden response."
          },
          "404": {
            "content": {
              "application/json": {
                "example": {
                  "message": "abc123",
                  "uuid": "abc123"
                },
                "schema": {
                  "$ref": "#/components/schemas/AIPNotFound"
                }
              }
            },
            "description": "not_found: AIP not found"
          },
          "500": {
            "content": {
              "application/vnd.goa.error": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "internal_error: Internal Server Error response."
          }
        },
        "security": [
          {
            "bearer_header_Authorization": []
          }
        ],
        "summary": "reject_aip storage",
        "tags": [
          "storage"
        ],
        "x-required-scopes": [
          "storage:aips:review"
        ]
      }
    },
    "/storage/aips/{uuid}/store": {
      "get": {
        "description": "Retrieve the status of a permanent storage location move of the AIP",
        "operationId": "storage#move_aip_status",
        "parameters": [
          {
            "description": "Identifier of AIP",
            "example": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5",
            "in": "path",
            "name": "uuid",
            "required": true,
            "schema": {
              "description": "Identifier of AIP",
              "example": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5",
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "example": {
                  "done": false
                },
                "schema": {
                  "$ref": "#/components/schemas/MoveStatusResult"
                }
              }
            },
            "description": "OK response."
          },
          "401": {
            "content": {
              "application/json": {
                "example": "abc123",
                "schema": {
                  "description": "Unauthorized",
                  "example": "abc123",
                  "type": "string"
                }
              }
            },
            "description": "unauthorized: Unauthorized response."
          },
          "403": {
            "content": {
              "application/json": {
                "example": "abc123",
                "schema": {
                  "description": "Forbidden",
                  "example": "abc123",
                  "type": "string"
                }
              }
            },
            "description": "forbidden: Forbidden response."
          },
          "404": {
            "content": {
              "application/json": {
                "example": {
                  "message": "abc123",
                  "uuid": "abc123"
                },
                "schema": {
                  "$ref": "#/components/schemas/AIPNotFound"
                }
              }
            },
            "description": "not_found: AIP not found"
          },
          "424": {
            "content": {
              "application/vnd.goa.error": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "failed_dependency: Failed Dependency response."
          },
          "500": {
            "content": {
              "application/vnd.goa.error": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "internal_error: Internal Server Error response."
          }
        },
        "security": [
          {
            "bearer_header_Authorization": []
          }
        ],
        "summary": "move_aip_status storage",
        "tags": [
          "storage"
        ],
        "x-required-scopes": [
          "storage:aips:move"
        ]
      },
      "post": {
        "description": "Move an AIP to a permanent storage location",
        "operationId": "storage#move_aip",
        "parameters": [
          {
            "description": "Identifier of AIP",
            "example": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5",
            "in": "path",
            "name": "uuid",
            "required": true,
            "schema": {
              "description": "Identifier of AIP",
              "example": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5",
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "example": {
                "location_uuid": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5"
              },
              "schema": {
                "$ref": "#/components/schemas/ConfirmSipRequestBody"
              }
            }
          },
          "description": "Request body for move_aip.",
          "required": true
        },
        "responses": {
          "202": {
            "description": "Accepted response."
          },
          "400": {
            "content": {
              "application/vnd.goa.error": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "not_valid: Bad Request response."
          },
          "401": {
            "content": {
              "application/json": {
                "example": "abc123",
                "schema": {
                  "description": "Unauthorized",
                  "example": "abc123",
                  "type": "string"
                }
              }
            },
            "description": "unauthorized: Unauthorized response."
          },
          "403": {
            "content": {
              "application/json": {
                "example": "abc123",
                "schema": {
                  "description": "Forbidden",
                  "example": "abc123",
                  "type": "string"
                }
              }
            },
            "description": "forbidden: Forbidden response."
          },
          "404": {
            "content": {
              "application/json": {
                "example": {
                  "message": "abc123",
                  "uuid": "abc123"
                },
                "schema": {
                  "$ref": "#/components/schemas/AIPNotFound"
                }
              }
            },
            "description": "not_found: AIP not found"
          },
          "500": {
            "content": {
              "application/vnd.goa.error": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "internal_error: Internal Server Error response."
          }
        },
        "security": [
          {
            "bearer_header_Authorization": []
          }
        ],
        "summary": "move_aip storage",
        "tags": [
          "storage"
        ],
        "x-required-scopes": [
          "storage:aips:move"
        ]
      }
    },
    "/storage/aips/{uuid}/workflows": {
      "get": {
        "description": "List workflows related to an AIP",
        "operationId": "storage#list_aip_workflows",
        "parameters": [
          {
            "allowEmptyValue": true,
            "example": "in progress",
            "in": "query",
            "name": "status",
            "schema": {
              "enum": [
                "unspecified",
                "in progress",
                "done",
                "error",
                "queued",
                "pending",
                "canceled"
              ],
              "example": "in progress",
              "type": "string"
            }
          },
          {
            "allowEmptyValue": true,
            "example": "upload aip",
            "in": "query",
            "name": "type",
            "schema": {
              "enum": [
                "unspecified",
                "upload aip",
                "move aip",
                "delete aip"
              ],
              "example": "upload aip",
              "type": "string"
            }
          },
          {
            "description": "Identifier of AIP",
            "example": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5",
            "in": "path",
            "name": "uuid",
            "required": true,
            "schema": {
              "description": "Identifier of AIP",
              "example": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5",
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "example": {
                  "workflows": [
                    {
                      "aip_uuid": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5",
                      "completed_at": "1970-01-01T00:00:01Z",
                      "started_at": "1970-01-01T00:00:01Z",
                      "status": "in progress",
                      "tasks": [
                        {
                          "completed_at": "1970-01-01T00:00:01Z",
                          "name": "abc123",
                          "note": "abc123",
                          "started_at": "1970-01-01T00:00:01Z",
                          "status": "in progress",
                          "uuid": "abc123",
                          "workflow_uuid": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5"
                        }
                      ],
                      "temporal_id": "abc123",
                      "type": "upload aip",
                      "uuid": "abc123"
                    }
                  ]
                },
                "schema": {
                  "$ref": "#/components/schemas/EnduroStorageAipWorkflows"
                }
              }
            },
            "description": "OK response."
          },
          "401": {
            "content": {
              "application/json": {
                "example": "abc123",
                "schema": {
                  "description": "Unauthorized",
                  "example": "abc123",
                  "type": "string"
                }
              }
            },
            "description": "unauthorized: Unauthorized response."
          },
          "403": {
            "content": {
              "application/json": {
                "example": "abc123",
                "schema": {
                  "description": "Forbidden",
                  "example": "abc123",
                  "type": "string"
                }
              }
            },
            "description": "forbidden: Forbidden response."
          },
          "404": {
            "content": {
              "application/json": {
                "example": {
                  "message": "abc123",
                  "uuid": "abc123"
                },
                "schema": {
                  "$ref": "#/components/schemas/AIPNotFound"
                }
              }
            },
            "description": "not_found: AIP not found"
          },
          "500": {
            "content": {
              "application/vnd.goa.error": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "internal_error: Internal Server Error response."
          }
        },
        "security": [
          {
            "bearer_header_Authorization": []
          }
        ],
        "summary": "list_aip_workflows storage",
        "tags": [
          "storage"
        ],
        "x-required-scopes": [
          "storage:aips:workflows:list"
        ]
      }
    },
    "/storage/locations": {
      "get": {
        "description": "List locations",
        "operationId": "storage#list_locations",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "example": [
                  {
                    "created_at": "1970-01-01T00:00:01Z",
                    "description": "abc123",
                    "name": "abc123",
                    "purpose": "aip_store",
                    "source": "s3",
                    "uuid": "abc123"
                  }
                ],
                "schema": {
                  "$ref": "#/components/schemas/LocationResponseCollection"
                }
              }
            },
            "description": "OK response."
          },
          "401": {
            "content": {
              "application/json": {
                "example": "abc123",
                "schema": {
                  "description": "Unauthorized",
                  "example": "abc123",
                  "type": "string"
                }
              }
            },
            "description": "unauthorized: Unauthorized response."
          },
          "403": {
            "content": {
              "application/json": {
                "example": "abc123",
                "schema": {
                  "description": "Forbidden",
                  "example": "abc123",
                  "type": "string"
                }
              }
            },
            "description": "forbidden: Forbidden response."
          },
          "500": {
            "content": {
              "application/vnd.goa.error": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "internal_error: Internal Server Error response."
          }
        },
        "security": [
          {
            "bearer_header_Authorization": []
          }
        ],
        "summary": "list_locations storage",
        "tags": [
          "storage"
        ],
        "x-required-scopes": [
          "storage:locations:list"
        ]
      },
      "post": {
        "description": "Create a storage location",
        "operationId": "storage#create_location",
        "requestBody": {
          "content": {
            "application/json": {
              "example": {
                "config": {
                  "type": "s3",
                  "value": {
                    "bucket": "abc123",
                    "endpoint": "abc123",
                    "key": "abc123",
                    "path_style": false,
                    "profile": "abc123",
                    "region": "abc123",
                    "secret": "abc123",
                    "token": "abc123"
                  }
                },
                "description": "abc123",
                "name": "abc123",
                "purpose": "aip_store",
                "source": "s3"
              },
              "schema": {
                "$ref": "#/components/schemas/CreateLocationRequestBody"
              }
            }
          },
          "description": "Request body for create_location.",
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "example": {
                  "uuid": "abc123"
                },
                "schema": {
                  "$ref": "#/components/schemas/CreateLocationResult"
                }
              }
            },
            "description": "Created response."
          },
          "400": {
            "content": {
              "application/vnd.goa.error": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "not_valid: Bad Request response."
          },
          "401": {
            "content": {
              "application/json": {
                "example": "abc123",
                "schema": {
                  "description": "Unauthorized",
                  "example": "abc123",
                  "type": "string"
                }
              }
            },
            "description": "unauthorized: Unauthorized response."
          },
          "403": {
            "content": {
              "application/json": {
                "example": "abc123",
                "schema": {
                  "description": "Forbidden",
                  "example": "abc123",
                  "type": "string"
                }
              }
            },
            "description": "forbidden: Forbidden response."
          },
          "500": {
            "content": {
              "application/vnd.goa.error": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "internal_error: Internal Server Error response."
          }
        },
        "security": [
          {
            "bearer_header_Authorization": []
          }
        ],
        "summary": "create_location storage",
        "tags": [
          "storage"
        ],
        "x-required-scopes": [
          "storage:locations:create"
        ]
      }
    },
    "/storage/locations/{uuid}": {
      "get": {
        "description": "Show location by UUID",
        "operationId": "storage#show_location",
        "parameters": [
          {
            "description": "Identifier of location",
            "example": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5",
            "in": "path",
            "name": "uuid",
            "required": true,
            "schema": {
              "description": "Identifier of location",
              "example": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5",
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "example": {
                  "config": {
                    "type": "s3",
                    "value": {
                      "bucket": "abc123",
                      "endpoint": "abc123",
                      "key": "abc123",
                      "path_style": false,
                      "profile": "abc123",
                      "region": "abc123",
                      "secret": "abc123",
                      "token": "abc123"
                    }
                  },
                  "created_at": "1970-01-01T00:00:01Z",
                  "description": "abc123",
                  "name": "abc123",
                  "purpose": "aip_store",
                  "source": "s3",
                  "uuid": "abc123"
                },
                "schema": {
                  "$ref": "#/components/schemas/EnduroStorageLocation"
                }
              }
            },
            "description": "OK response."
          },
          "401": {
            "content": {
              "application/json": {
                "example": "abc123",
                "schema": {
                  "description": "Unauthorized",
                  "example": "abc123",
                  "type": "string"
                }
              }
            },
            "description": "unauthorized: Unauthorized response."
          },
          "403": {
            "content": {
              "application/json": {
                "example": "abc123",
                "schema": {
                  "description": "Forbidden",
                  "example": "abc123",
                  "type": "string"
                }
              }
            },
            "description": "forbidden: Forbidden response."
          },
          "404": {
            "content": {
              "application/json": {
                "example": {
                  "message": "abc123",
                  "uuid": "abc123"
                },
                "schema": {
                  "$ref": "#/components/schemas/LocationNotFound"
                }
              }
            },
            "description": "not_found: Storage location not found"
          },
          "500": {
            "content": {
              "application/vnd.goa.error": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "internal_error: Internal Server Error response."
          }
        },
        "security": [
          {
            "bearer_header_Authorization": []
          }
        ],
        "summary": "show_location storage",
        "tags": [
          "storage"
        ],
        "x-required-scopes": [
          "storage:locations:read"
        ]
      }
    },
    "/storage/locations/{uuid}/aips": {
      "get": {
        "description": "List all the AIPs stored in the location with UUID",
        "operationId": "storage#list_location_aips",
        "parameters": [
          {
            "description": "Identifier of location",
            "example": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5",
            "in": "path",
            "name": "uuid",
            "required": true,
            "schema": {
              "description": "Identifier of location",
              "example": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5",
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "example": [
                  {
                    "created_at": "1970-01-01T00:00:01Z",
                    "deletion_report_key": "abc123",
                    "location_uuid": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5",
                    "name": "abc123",
                    "object_key": "abc123",
                    "status": "stored",
                    "uuid": "abc123"
                  }
                ],
                "schema": {
                  "$ref": "#/components/schemas/AIPResponseCollection"
                }
              }
            },
            "description": "OK response."
          },
          "400": {
            "content": {
              "application/vnd.goa.error": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "not_valid: Bad Request response."
          },
          "401": {
            "content": {
              "application/json": {
                "example": "abc123",
                "schema": {
                  "description": "Unauthorized",
                  "example": "abc123",
                  "type": "string"
                }
              }
            },
            "description": "unauthorized: Unauthorized response."
          },
          "403": {
            "content": {
              "application/json": {
                "example": "abc123",
                "schema": {
                  "description": "Forbidden",
                  "example": "abc123",
                  "type": "string"
                }
              }
            },
            "description": "forbidden: Forbidden response."
          },
          "404": {
            "content": {
              "application/json": {
                "example": {
                  "message": "abc123",
                  "uuid": "abc123"
                },
                "schema": {
                  "$ref": "#/components/schemas/LocationNotFound"
                }
              }
            },
            "description": "not_found: Storage location not found"
          },
          "500": {
            "content": {
              "application/vnd.goa.error": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "internal_error: Internal Server Error response."
          }
        },
        "security": [
          {
            "bearer_header_Authorization": []
          }
        ],
        "summary": "list_location_aips storage",
        "tags": [
          "storage"
        ],
        "x-required-scopes": [
          "storage:locations:aips:list"
        ]
      }
    },
    "/storage/monitor": {
      "get": {
        "description": "Obtain access to the /monitor SSE event stream",
        "operationId": "storage#monitor",
        "responses": {
          "200": {
            "content": {
              "text/event-stream": {
                "example": {
                  "value": {
                    "type": "location_created_event",
                    "value": {
                      "item": {
                        "config": {
                          "type": "s3",
                          "value": {
                            "bucket": "abc123",
                            "endpoint": "abc123",
                            "key": "abc123",
                            "path_style": false,
                            "profile": "abc123",
                            "region": "abc123",
                            "secret": "abc123",
                            "token": "abc123"
                          }
                        },
                        "created_at": "1970-01-01T00:00:01Z",
                        "description": "abc123",
                        "name": "abc123",
                        "purpose": "aip_store",
                        "source": "s3",
                        "uuid": "abc123"
                      },
                      "uuid": "d1845cb6-a5ea-474a-9ab8-26f9bcd919f5"
                    }
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/StorageEvent"
                }
              }
            },
            "description": "OK response."
          },
          "401": {
            "content": {
              "application/json": {
                "example": "abc123",
                "schema": {
                  "description": "Unauthorized",
                  "example": "abc123",
                  "type": "string"
                }
              }
            },
            "description": "unauthorized: Unauthorized response."
          },
          "403": {
            "content": {
              "application/json": {
                "example": "abc123",
                "schema": {
                  "description": "Forbidden",
                  "example": "abc123",
                  "type": "string"
                }
              }
            },
            "description": "forbidden: Forbidden response."
          },
          "500": {
            "content": {
              "application/vnd.goa.error": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "internal_error: Internal Server Error response."
          }
        },
        "security": [
          {
            "bearer_header_Authorization": []
          }
        ],
        "summary": "monitor storage",
        "tags": [
          "storage"
        ],
        "x-required-scopes": []
      }
    }
  },
  "security": [
    {
      "bearer_header_Authorization": []
    }
  ],
  "servers": [
    {
      "url": "http://localhost:9000"
    }
  ],
  "tags": [
    {
      "description": "The about service provides information about the system.",
      "name": "about"
    },
    {
      "description": "The ingest service manages ingested SIPs.",
      "name": "ingest"
    },
    {
      "description": "The storage service manages locations and AIPs.",
      "name": "storage"
    }
  ]
}
