diff --git a/internal/api/api.go b/internal/api/api.go index 7cdc1fa4..f5555dc9 100644 --- a/internal/api/api.go +++ b/internal/api/api.go @@ -67,8 +67,7 @@ func HTTPServer( var collectionEndpoints *collection.Endpoints = collection.NewEndpoints(colsvc.Goa()) collectionErrorHandler := errorHandler(logger, "Collection error.") var collectionServer *collectionsvr.Server = collectionsvr.New(collectionEndpoints, mux, dec, enc, collectionErrorHandler, nil, websocketUpgrader, nil) - // Intercept request in Download endpoint so we can serve the file directly. - collectionServer.Download = writeTimeout(colsvc.HTTPDownload(mux, dec), 0) + collectionServer.Download = writeTimeout(collectionServer.Download, 0) collectionsvr.Mount(mux, collectionServer) // Swagger service. diff --git a/internal/api/design/collection.go b/internal/api/design/collection.go index 33ac8d3d..f5510ea6 100644 --- a/internal/api/design/collection.go +++ b/internal/api/design/collection.go @@ -135,11 +135,21 @@ var _ = Service("collection", func() { Attribute("id", UInt, "Identifier of collection to look up") Required("id") }) - Result(Bytes) + Result(func() { + Attribute("content_type", String) + Attribute("content_length", Int64) + Attribute("content_disposition", String) + Required("content_type", "content_length", "content_disposition") + }) Error("not_found", CollectionNotFound, "Collection not found") HTTP(func() { GET("/{id}/download") - Response(StatusOK) + SkipResponseBodyEncodeDecode() + Response(func() { + Header("content_type:Content-Type") + Header("content_length:Content-Length") + Header("content_disposition:Content-Disposition") + }) Response("not_found", StatusNotFound) }) }) diff --git a/internal/api/gen/collection/client.go b/internal/api/gen/collection/client.go index 1469656d..dbc3aacd 100644 --- a/internal/api/gen/collection/client.go +++ b/internal/api/gen/collection/client.go @@ -10,6 +10,7 @@ package collection import ( "context" + "io" goa "goa.design/goa/v3/pkg" ) @@ -125,13 +126,14 @@ func (c *Client) Workflow(ctx context.Context, p *WorkflowPayload) (res *EnduroC // Download may return the following errors: // - "not_found" (type *CollectionNotfound): Collection not found // - error: internal error -func (c *Client) Download(ctx context.Context, p *DownloadPayload) (res []byte, err error) { +func (c *Client) Download(ctx context.Context, p *DownloadPayload) (res *DownloadResult, resp io.ReadCloser, err error) { var ires any ires, err = c.DownloadEndpoint(ctx, p) if err != nil { return } - return ires.([]byte), nil + o := ires.(*DownloadResponseData) + return o.Result, o.Body, nil } // Decide calls the "decide" endpoint of the "collection" service. diff --git a/internal/api/gen/collection/endpoints.go b/internal/api/gen/collection/endpoints.go index 395fd714..9e9b261f 100644 --- a/internal/api/gen/collection/endpoints.go +++ b/internal/api/gen/collection/endpoints.go @@ -10,6 +10,7 @@ package collection import ( "context" + "io" goa "goa.design/goa/v3/pkg" ) @@ -36,6 +37,15 @@ type MonitorEndpointInput struct { Stream MonitorServerStream } +// DownloadResponseData holds both the result and the HTTP response body reader +// of the "download" method. +type DownloadResponseData struct { + // Result is the method result. + Result *DownloadResult + // Body streams the HTTP response body. + Body io.ReadCloser +} + // NewEndpoints wraps the methods of the "collection" service with endpoints. func NewEndpoints(s Service) *Endpoints { return &Endpoints{ @@ -146,7 +156,11 @@ func NewWorkflowEndpoint(s Service) goa.Endpoint { func NewDownloadEndpoint(s Service) goa.Endpoint { return func(ctx context.Context, req any) (any, error) { p := req.(*DownloadPayload) - return s.Download(ctx, p) + res, body, err := s.Download(ctx, p) + if err != nil { + return nil, err + } + return &DownloadResponseData{Result: res, Body: body}, nil } } diff --git a/internal/api/gen/collection/service.go b/internal/api/gen/collection/service.go index cb3597ae..2b207902 100644 --- a/internal/api/gen/collection/service.go +++ b/internal/api/gen/collection/service.go @@ -10,6 +10,7 @@ package collection import ( "context" + "io" collectionviews "github.com/artefactual-labs/enduro/internal/api/gen/collection/views" goa "goa.design/goa/v3/pkg" @@ -32,7 +33,7 @@ type Service interface { // Retrieve workflow status by ID Workflow(context.Context, *WorkflowPayload) (res *EnduroCollectionWorkflowStatus, err error) // Download collection by ID - Download(context.Context, *DownloadPayload) (res []byte, err error) + Download(context.Context, *DownloadPayload) (res *DownloadResult, body io.ReadCloser, err error) // Make decision for a pending collection by ID Decide(context.Context, *DecidePayload) (err error) // Bulk operations (retry, cancel...). @@ -126,6 +127,13 @@ type DownloadPayload struct { ID uint } +// DownloadResult is the result type of the collection service download method. +type DownloadResult struct { + ContentType string + ContentLength int64 + ContentDisposition string +} + // WorkflowHistoryEvent describes a history event in Temporal. type EnduroCollectionWorkflowHistory struct { // Identifier of collection diff --git a/internal/api/gen/http/cli/enduro/cli.go b/internal/api/gen/http/cli/enduro/cli.go index 9533173d..c985eb66 100644 --- a/internal/api/gen/http/cli/enduro/cli.go +++ b/internal/api/gen/http/cli/enduro/cli.go @@ -33,7 +33,7 @@ collection (monitor|list|show|delete|cancel|retry|workflow|download|decide|bulk| // UsageExamples produces an example of a valid invocation of the CLI tool. func UsageExamples() string { - return os.Args[0] + ` pipeline list --name "Eaque nemo quia." --status false` + "\n" + + return os.Args[0] + ` pipeline list --name "Repellendus quam vitae adipisci officiis." --status false` + "\n" + os.Args[0] + ` batch submit --body '{ "completed_dir": "Laboriosam odit.", "path": "Laboriosam nam sit nihil.", @@ -357,7 +357,7 @@ List all known pipelines -status BOOL: Example: - %[1]s pipeline list --name "Eaque nemo quia." --status false + %[1]s pipeline list --name "Repellendus quam vitae adipisci officiis." --status false `, os.Args[0]) } @@ -368,7 +368,7 @@ Show pipeline by ID -id STRING: Identifier of pipeline to show Example: - %[1]s pipeline show --id "3aa29fec-1c21-11ee-bb08-7085c27bdeb0" + %[1]s pipeline show --id "8042d327-1caf-11ee-b3da-7085c27bdeb0" `, os.Args[0]) } @@ -379,7 +379,7 @@ List all processing configurations of a pipeline given its ID -id STRING: Identifier of pipeline Example: - %[1]s pipeline processing --id "3aa2b5c8-1c21-11ee-bb08-7085c27bdeb0" + %[1]s pipeline processing --id "8042e9d7-1caf-11ee-b3da-7085c27bdeb0" `, os.Args[0]) } @@ -484,7 +484,7 @@ List all stored collections -cursor STRING: Example: - %[1]s collection list --name "Laudantium eos fugiat iure sit ea." --original-id "Et dolor ullam consequatur dignissimos." --transfer-id "3aa19814-1c21-11ee-bb08-7085c27bdeb0" --aip-id "3aa199c9-1c21-11ee-bb08-7085c27bdeb0" --pipeline-id "3aa19b92-1c21-11ee-bb08-7085c27bdeb0" --earliest-created-time "1996-05-01T14:23:24Z" --latest-created-time "1987-02-15T23:56:43Z" --status "error" --cursor "Sit et inventore et." + %[1]s collection list --name "Laudantium eos fugiat iure sit ea." --original-id "Et dolor ullam consequatur dignissimos." --transfer-id "8041914a-1caf-11ee-b3da-7085c27bdeb0" --aip-id "804192fd-1caf-11ee-b3da-7085c27bdeb0" --pipeline-id "804194b2-1caf-11ee-b3da-7085c27bdeb0" --earliest-created-time "1996-05-01T14:23:24Z" --latest-created-time "1987-02-15T23:56:43Z" --status "error" --cursor "Sit et inventore et." `, os.Args[0]) } @@ -563,8 +563,8 @@ Make decision for a pending collection by ID Example: %[1]s collection decide --body '{ - "option": "Nihil officiis et enim." - }' --id 3923434489665488889 + "option": "Ullam eos eius officiis rerum assumenda." + }' --id 17269801802435663434 `, os.Args[0]) } @@ -576,9 +576,9 @@ Bulk operations (retry, cancel...). Example: %[1]s collection bulk --body '{ - "operation": "cancel", - "size": 15492129042979125718, - "status": "in progress" + "operation": "retry", + "size": 15570024955802771098, + "status": "done" }' `, os.Args[0]) } diff --git a/internal/api/gen/http/collection/client/cli.go b/internal/api/gen/http/collection/client/cli.go index 2582c259..b52205d3 100644 --- a/internal/api/gen/http/collection/client/cli.go +++ b/internal/api/gen/http/collection/client/cli.go @@ -240,7 +240,7 @@ func BuildDecidePayload(collectionDecideBody string, collectionDecideID string) { err = json.Unmarshal([]byte(collectionDecideBody), &body) if err != nil { - return nil, fmt.Errorf("invalid JSON for body, \nerror: %s, \nexample of valid JSON:\n%s", err, "'{\n \"option\": \"Nihil officiis et enim.\"\n }'") + return nil, fmt.Errorf("invalid JSON for body, \nerror: %s, \nexample of valid JSON:\n%s", err, "'{\n \"option\": \"Ullam eos eius officiis rerum assumenda.\"\n }'") } } var id uint @@ -269,7 +269,7 @@ func BuildBulkPayload(collectionBulkBody string) (*collection.BulkPayload, error { err = json.Unmarshal([]byte(collectionBulkBody), &body) if err != nil { - return nil, fmt.Errorf("invalid JSON for body, \nerror: %s, \nexample of valid JSON:\n%s", err, "'{\n \"operation\": \"cancel\",\n \"size\": 15492129042979125718,\n \"status\": \"in progress\"\n }'") + return nil, fmt.Errorf("invalid JSON for body, \nerror: %s, \nexample of valid JSON:\n%s", err, "'{\n \"operation\": \"retry\",\n \"size\": 15570024955802771098,\n \"status\": \"done\"\n }'") } if !(body.Operation == "retry" || body.Operation == "cancel" || body.Operation == "abandon") { err = goa.MergeErrors(err, goa.InvalidEnumValueError("body.operation", body.Operation, []any{"retry", "cancel", "abandon"})) diff --git a/internal/api/gen/http/collection/client/client.go b/internal/api/gen/http/collection/client/client.go index 528630c8..6af1ff2f 100644 --- a/internal/api/gen/http/collection/client/client.go +++ b/internal/api/gen/http/collection/client/client.go @@ -13,6 +13,7 @@ import ( "net/http" "time" + collection "github.com/artefactual-labs/enduro/internal/api/gen/collection" "github.com/gorilla/websocket" goahttp "goa.design/goa/v3/http" goa "goa.design/goa/v3/pkg" @@ -280,7 +281,12 @@ func (c *Client) Download() goa.Endpoint { if err != nil { return nil, goahttp.ErrRequestError("collection", "download", err) } - return decodeResponse(resp) + res, err := decodeResponse(resp) + if err != nil { + resp.Body.Close() + return nil, err + } + return &collection.DownloadResponseData{Result: res.(*collection.DownloadResult), Body: resp.Body}, nil } } diff --git a/internal/api/gen/http/collection/client/encode_decode.go b/internal/api/gen/http/collection/client/encode_decode.go index de9c413d..aa17baf8 100644 --- a/internal/api/gen/http/collection/client/encode_decode.go +++ b/internal/api/gen/http/collection/client/encode_decode.go @@ -14,10 +14,12 @@ import ( "io" "net/http" "net/url" + "strconv" collection "github.com/artefactual-labs/enduro/internal/api/gen/collection" collectionviews "github.com/artefactual-labs/enduro/internal/api/gen/collection/views" goahttp "goa.design/goa/v3/http" + goa "goa.design/goa/v3/pkg" ) // BuildMonitorRequest instantiates a HTTP request object with method and path @@ -627,20 +629,41 @@ func DecodeDownloadResponse(decoder func(*http.Response) goahttp.Decoder, restor defer func() { resp.Body = io.NopCloser(bytes.NewBuffer(b)) }() - } else { - defer resp.Body.Close() } switch resp.StatusCode { case http.StatusOK: var ( - body []byte - err error + contentType string + contentLength int64 + contentDisposition string + err error ) - err = decoder(resp).Decode(&body) + contentTypeRaw := resp.Header.Get("Content-Type") + if contentTypeRaw == "" { + err = goa.MergeErrors(err, goa.MissingFieldError("Content-Type", "header")) + } + contentType = contentTypeRaw + { + contentLengthRaw := resp.Header.Get("Content-Length") + if contentLengthRaw == "" { + return nil, goahttp.ErrValidationError("collection", "download", goa.MissingFieldError("Content-Length", "header")) + } + v, err2 := strconv.ParseInt(contentLengthRaw, 10, 64) + if err2 != nil { + err = goa.MergeErrors(err, goa.InvalidFieldTypeError("contentLength", contentLengthRaw, "integer")) + } + contentLength = v + } + contentDispositionRaw := resp.Header.Get("Content-Disposition") + if contentDispositionRaw == "" { + err = goa.MergeErrors(err, goa.MissingFieldError("Content-Disposition", "header")) + } + contentDisposition = contentDispositionRaw if err != nil { - return nil, goahttp.ErrDecodingError("collection", "download", err) + return nil, goahttp.ErrValidationError("collection", "download", err) } - return body, nil + res := NewDownloadResultOK(contentType, contentLength, contentDisposition) + return res, nil case http.StatusNotFound: var ( body DownloadNotFoundResponseBody diff --git a/internal/api/gen/http/collection/client/types.go b/internal/api/gen/http/collection/client/types.go index 106485d0..8c28eeeb 100644 --- a/internal/api/gen/http/collection/client/types.go +++ b/internal/api/gen/http/collection/client/types.go @@ -460,6 +460,17 @@ func NewWorkflowNotFound(body *WorkflowNotFoundResponseBody) *collection.Collect return v } +// NewDownloadResultOK builds a "collection" service "download" endpoint result +// from a HTTP "OK" response. +func NewDownloadResultOK(contentType string, contentLength int64, contentDisposition string) *collection.DownloadResult { + v := &collection.DownloadResult{} + v.ContentType = contentType + v.ContentLength = contentLength + v.ContentDisposition = contentDisposition + + return v +} + // NewDownloadNotFound builds a collection service download endpoint not_found // error. func NewDownloadNotFound(body *DownloadNotFoundResponseBody) *collection.CollectionNotfound { diff --git a/internal/api/gen/http/collection/server/encode_decode.go b/internal/api/gen/http/collection/server/encode_decode.go index 06fa42d0..a3bd3a17 100644 --- a/internal/api/gen/http/collection/server/encode_decode.go +++ b/internal/api/gen/http/collection/server/encode_decode.go @@ -475,11 +475,16 @@ func EncodeWorkflowError(encoder func(context.Context, http.ResponseWriter) goah // collection download endpoint. func EncodeDownloadResponse(encoder func(context.Context, http.ResponseWriter) goahttp.Encoder) func(context.Context, http.ResponseWriter, any) error { return func(ctx context.Context, w http.ResponseWriter, v any) error { - res, _ := v.([]byte) - enc := encoder(ctx, w) - body := res + res, _ := v.(*collection.DownloadResult) + w.Header().Set("Content-Type", res.ContentType) + { + val := res.ContentLength + contentLengths := strconv.FormatInt(val, 10) + w.Header().Set("Content-Length", contentLengths) + } + w.Header().Set("Content-Disposition", res.ContentDisposition) w.WriteHeader(http.StatusOK) - return enc.Encode(body) + return nil } } diff --git a/internal/api/gen/http/collection/server/server.go b/internal/api/gen/http/collection/server/server.go index 69092b08..a6c2fbe5 100644 --- a/internal/api/gen/http/collection/server/server.go +++ b/internal/api/gen/http/collection/server/server.go @@ -10,6 +10,7 @@ package server import ( "context" + "io" "net/http" collection "github.com/artefactual-labs/enduro/internal/api/gen/collection" @@ -555,8 +556,16 @@ func NewDownloadHandler( } return } - if err := encodeResponse(ctx, w, res); err != nil { + o := res.(*collection.DownloadResponseData) + defer o.Body.Close() + if err := encodeResponse(ctx, w, o.Result); err != nil { errhandler(ctx, w, err) + return + } + if _, err := io.Copy(w, o.Body); err != nil { + if err := encodeError(ctx, w, err); err != nil { + errhandler(ctx, w, err) + } } }) } diff --git a/internal/api/gen/http/openapi.json b/internal/api/gen/http/openapi.json index b3f50f94..6b674da3 100644 --- a/internal/api/gen/http/openapi.json +++ b/internal/api/gen/http/openapi.json @@ -1 +1 @@ -{"swagger":"2.0","info":{"title":"Enduro API","version":""},"host":"localhost:9000","consumes":["application/json","application/xml","application/gob"],"produces":["application/json","application/xml","application/gob"],"paths":{"/batch":{"get":{"tags":["batch"],"summary":"status batch","description":"Retrieve status of current batch operation.","operationId":"batch#status","responses":{"200":{"description":"OK response.","schema":{"$ref":"#/definitions/BatchStatusResponseBody","required":["running"]}}},"schemes":["http"]},"post":{"tags":["batch"],"summary":"submit batch","description":"Submit a new batch","operationId":"batch#submit","parameters":[{"name":"SubmitRequestBody","in":"body","required":true,"schema":{"$ref":"#/definitions/BatchSubmitRequestBody","required":["path"]}}],"responses":{"202":{"description":"Accepted response.","schema":{"$ref":"#/definitions/BatchSubmitResponseBody","required":["workflow_id","run_id"]}},"400":{"description":"Bad Request response.","schema":{"$ref":"#/definitions/BatchSubmitNotValidResponseBody"}},"409":{"description":"Conflict response.","schema":{"$ref":"#/definitions/BatchSubmitNotAvailableResponseBody"}}},"schemes":["http"]}},"/batch/hints":{"get":{"tags":["batch"],"summary":"hints batch","description":"Retrieve form hints","operationId":"batch#hints","responses":{"200":{"description":"OK response.","schema":{"$ref":"#/definitions/BatchHintsResponseBody"}}},"schemes":["http"]}},"/collection":{"get":{"tags":["collection"],"summary":"list collection","description":"List all stored collections","operationId":"collection#list","parameters":[{"name":"name","in":"query","required":false,"type":"string"},{"name":"original_id","in":"query","required":false,"type":"string"},{"name":"transfer_id","in":"query","required":false,"type":"string","format":"uuid"},{"name":"aip_id","in":"query","required":false,"type":"string","format":"uuid"},{"name":"pipeline_id","in":"query","required":false,"type":"string","format":"uuid"},{"name":"earliest_created_time","in":"query","required":false,"type":"string","format":"date-time"},{"name":"latest_created_time","in":"query","required":false,"type":"string","format":"date-time"},{"name":"status","in":"query","required":false,"type":"string","enum":["new","in progress","done","error","unknown","queued","pending","abandoned"]},{"name":"cursor","in":"query","description":"Pagination cursor","required":false,"type":"string"}],"responses":{"200":{"description":"OK response.","schema":{"$ref":"#/definitions/CollectionListResponseBody","required":["items"]}}},"schemes":["http"]}},"/collection/bulk":{"get":{"tags":["collection"],"summary":"bulk_status collection","description":"Retrieve status of current bulk operation.","operationId":"collection#bulk_status","responses":{"200":{"description":"OK response.","schema":{"$ref":"#/definitions/CollectionBulkStatusResponseBody","required":["running"]}}},"schemes":["http"]},"post":{"tags":["collection"],"summary":"bulk collection","description":"Bulk operations (retry, cancel...).","operationId":"collection#bulk","parameters":[{"name":"BulkRequestBody","in":"body","required":true,"schema":{"$ref":"#/definitions/CollectionBulkRequestBody","required":["operation","status"]}}],"responses":{"202":{"description":"Accepted response.","schema":{"$ref":"#/definitions/CollectionBulkResponseBody","required":["workflow_id","run_id"]}},"400":{"description":"Bad Request response.","schema":{"$ref":"#/definitions/CollectionBulkNotValidResponseBody"}},"409":{"description":"Conflict response.","schema":{"$ref":"#/definitions/CollectionBulkNotAvailableResponseBody"}}},"schemes":["http"]}},"/collection/monitor":{"get":{"tags":["collection"],"summary":"monitor collection","operationId":"collection#monitor","responses":{"101":{"description":"Switching Protocols response.","schema":{"$ref":"#/definitions/CollectionMonitorResponseBody"}}},"schemes":["ws"]}},"/collection/{id}":{"get":{"tags":["collection"],"summary":"show collection","description":"Show collection by ID","operationId":"collection#show","parameters":[{"name":"id","in":"path","description":"Identifier of collection to show","required":true,"type":"integer"}],"responses":{"200":{"description":"OK response.","schema":{"$ref":"#/definitions/CollectionShowResponseBody"}},"404":{"description":"Not Found response.","schema":{"$ref":"#/definitions/CollectionShowNotFoundResponseBody","required":["message","id"]}}},"schemes":["http"]},"delete":{"tags":["collection"],"summary":"delete collection","description":"Delete collection by ID","operationId":"collection#delete","parameters":[{"name":"id","in":"path","description":"Identifier of collection to delete","required":true,"type":"integer"}],"responses":{"204":{"description":"No Content response."},"404":{"description":"Not Found response.","schema":{"$ref":"#/definitions/CollectionDeleteNotFoundResponseBody","required":["message","id"]}}},"schemes":["http"]}},"/collection/{id}/cancel":{"post":{"tags":["collection"],"summary":"cancel collection","description":"Cancel collection processing by ID","operationId":"collection#cancel","parameters":[{"name":"id","in":"path","description":"Identifier of collection to remove","required":true,"type":"integer"}],"responses":{"200":{"description":"OK response."},"400":{"description":"Bad Request response.","schema":{"$ref":"#/definitions/CollectionCancelNotRunningResponseBody"}},"404":{"description":"Not Found response.","schema":{"$ref":"#/definitions/CollectionCancelNotFoundResponseBody","required":["message","id"]}}},"schemes":["http"]}},"/collection/{id}/decision":{"post":{"tags":["collection"],"summary":"decide collection","description":"Make decision for a pending collection by ID","operationId":"collection#decide","parameters":[{"name":"id","in":"path","description":"Identifier of collection to look up","required":true,"type":"integer"},{"name":"object","in":"body","required":true,"schema":{"type":"object","properties":{"option":{"type":"string","description":"Decision option to proceed with","example":"Maiores aliquid voluptate necessitatibus iure sunt."}}}}],"responses":{"200":{"description":"OK response."},"400":{"description":"Bad Request response.","schema":{"$ref":"#/definitions/CollectionDecideNotValidResponseBody"}},"404":{"description":"Not Found response.","schema":{"$ref":"#/definitions/CollectionDecideNotFoundResponseBody","required":["message","id"]}}},"schemes":["http"]}},"/collection/{id}/download":{"get":{"tags":["collection"],"summary":"download collection","description":"Download collection by ID","operationId":"collection#download","parameters":[{"name":"id","in":"path","description":"Identifier of collection to look up","required":true,"type":"integer"}],"responses":{"200":{"description":"OK response.","schema":{"type":"string","format":"byte"}},"404":{"description":"Not Found response.","schema":{"$ref":"#/definitions/CollectionDownloadNotFoundResponseBody","required":["message","id"]}}},"schemes":["http"]}},"/collection/{id}/retry":{"post":{"tags":["collection"],"summary":"retry collection","description":"Retry collection processing by ID","operationId":"collection#retry","parameters":[{"name":"id","in":"path","description":"Identifier of collection to retry","required":true,"type":"integer"}],"responses":{"200":{"description":"OK response."},"400":{"description":"Bad Request response.","schema":{"$ref":"#/definitions/CollectionRetryNotRunningResponseBody"}},"404":{"description":"Not Found response.","schema":{"$ref":"#/definitions/CollectionRetryNotFoundResponseBody","required":["message","id"]}}},"schemes":["http"]}},"/collection/{id}/workflow":{"get":{"tags":["collection"],"summary":"workflow collection","description":"Retrieve workflow status by ID","operationId":"collection#workflow","parameters":[{"name":"id","in":"path","description":"Identifier of collection to look up","required":true,"type":"integer"}],"responses":{"200":{"description":"OK response.","schema":{"$ref":"#/definitions/CollectionWorkflowResponseBody"}},"404":{"description":"Not Found response.","schema":{"$ref":"#/definitions/CollectionWorkflowNotFoundResponseBody","required":["message","id"]}}},"schemes":["http"]}},"/pipeline":{"get":{"tags":["pipeline"],"summary":"list pipeline","description":"List all known pipelines","operationId":"pipeline#list","parameters":[{"name":"name","in":"query","required":false,"type":"string"},{"name":"status","in":"query","required":false,"type":"boolean","default":false}],"responses":{"200":{"description":"OK response.","schema":{"type":"array","items":{"$ref":"#/definitions/EnduroStoredPipelineResponse"}}}},"schemes":["http"]}},"/pipeline/{id}":{"get":{"tags":["pipeline"],"summary":"show pipeline","description":"Show pipeline by ID","operationId":"pipeline#show","parameters":[{"name":"id","in":"path","description":"Identifier of pipeline to show","required":true,"type":"string","format":"uuid"}],"responses":{"200":{"description":"OK response.","schema":{"$ref":"#/definitions/PipelineShowResponseBody"}},"404":{"description":"Not Found response.","schema":{"$ref":"#/definitions/PipelineShowNotFoundResponseBody","required":["message","id"]}}},"schemes":["http"]}},"/pipeline/{id}/processing":{"get":{"tags":["pipeline"],"summary":"processing pipeline","description":"List all processing configurations of a pipeline given its ID","operationId":"pipeline#processing","parameters":[{"name":"id","in":"path","description":"Identifier of pipeline","required":true,"type":"string","format":"uuid"}],"responses":{"200":{"description":"OK response.","schema":{"type":"array","items":{"type":"string","example":"Est praesentium officiis occaecati magnam est veritatis."}}},"404":{"description":"Not Found response.","schema":{"$ref":"#/definitions/PipelineProcessingNotFoundResponseBody","required":["message","id"]}}},"schemes":["http"]}},"/swagger/swagger.json":{"get":{"tags":["swagger"],"summary":"Download internal/api/gen/http/openapi.json","description":"JSON document containing the API swagger definition.","operationId":"swagger#/swagger/swagger.json","responses":{"200":{"description":"File downloaded","schema":{"type":"file"}}},"schemes":["http"]}}},"definitions":{"BatchHintsResponseBody":{"title":"BatchHintsResponseBody","type":"object","properties":{"completed_dirs":{"type":"array","items":{"type":"string","example":"Eligendi et."},"description":"A list of known values of completedDir used by existing watchers.","example":["Aspernatur enim fuga quam aut sit quo.","Est sed.","Ipsum dolores."]}},"example":{"completed_dirs":["Quibusdam aut magnam itaque occaecati.","Quo deserunt vitae suscipit quia ullam cumque.","Quae porro corporis blanditiis sequi rerum.","Non quas laborum eos."]}},"BatchStatusResponseBody":{"title":"BatchStatusResponseBody","type":"object","properties":{"run_id":{"type":"string","example":"Natus illum laborum."},"running":{"type":"boolean","example":true},"status":{"type":"string","example":"Omnis corporis et sunt ut esse consectetur."},"workflow_id":{"type":"string","example":"Quis accusamus enim consequatur laudantium."}},"example":{"run_id":"Doloribus sit corrupti veniam maiores ducimus.","running":false,"status":"Possimus fuga esse modi aut.","workflow_id":"Et quaerat tempore nostrum aliquid fugiat optio."},"required":["running"]},"BatchSubmitNotAvailableResponseBody":{"title":"Mediatype identifier: application/vnd.goa.error; view=default","type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?","example":true},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem.","example":"123abc"},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem.","example":"parameter 'p' must be an integer"},"name":{"type":"string","description":"Name is the name of this class of errors.","example":"bad_request"},"temporary":{"type":"boolean","description":"Is the error temporary?","example":true},"timeout":{"type":"boolean","description":"Is the error a timeout?","example":false}},"description":"submit_not_available_response_body result type (default view)","example":{"fault":true,"id":"123abc","message":"parameter 'p' must be an integer","name":"bad_request","temporary":true,"timeout":false},"required":["name","id","message","temporary","timeout","fault"]},"BatchSubmitNotValidResponseBody":{"title":"Mediatype identifier: application/vnd.goa.error; view=default","type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?","example":false},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem.","example":"123abc"},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem.","example":"parameter 'p' must be an integer"},"name":{"type":"string","description":"Name is the name of this class of errors.","example":"bad_request"},"temporary":{"type":"boolean","description":"Is the error temporary?","example":false},"timeout":{"type":"boolean","description":"Is the error a timeout?","example":true}},"description":"submit_not_valid_response_body result type (default view)","example":{"fault":false,"id":"123abc","message":"parameter 'p' must be an integer","name":"bad_request","temporary":true,"timeout":true},"required":["name","id","message","temporary","timeout","fault"]},"BatchSubmitRequestBody":{"title":"BatchSubmitRequestBody","type":"object","properties":{"completed_dir":{"type":"string","example":"Sint omnis dolor quas corrupti."},"path":{"type":"string","example":"Esse qui est."},"pipeline":{"type":"string","example":"Architecto optio."},"processing_config":{"type":"string","example":"Labore iste eveniet."},"retention_period":{"type":"string","example":"Cumque qui facilis omnis."}},"example":{"completed_dir":"Aperiam velit.","path":"Officia voluptate.","pipeline":"Sit sint est qui cum nihil quis.","processing_config":"Sit quibusdam quidem consectetur praesentium.","retention_period":"Nobis delectus."},"required":["path"]},"BatchSubmitResponseBody":{"title":"BatchSubmitResponseBody","type":"object","properties":{"run_id":{"type":"string","example":"Fugit ipsam."},"workflow_id":{"type":"string","example":"Aut aliquid enim ex sint laboriosam."}},"example":{"run_id":"Est iure optio suscipit.","workflow_id":"Ab consectetur."},"required":["workflow_id","run_id"]},"CollectionBulkNotAvailableResponseBody":{"title":"Mediatype identifier: application/vnd.goa.error; view=default","type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?","example":false},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem.","example":"123abc"},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem.","example":"parameter 'p' must be an integer"},"name":{"type":"string","description":"Name is the name of this class of errors.","example":"bad_request"},"temporary":{"type":"boolean","description":"Is the error temporary?","example":true},"timeout":{"type":"boolean","description":"Is the error a timeout?","example":true}},"description":"bulk_not_available_response_body result type (default view)","example":{"fault":true,"id":"123abc","message":"parameter 'p' must be an integer","name":"bad_request","temporary":false,"timeout":false},"required":["name","id","message","temporary","timeout","fault"]},"CollectionBulkNotValidResponseBody":{"title":"Mediatype identifier: application/vnd.goa.error; view=default","type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?","example":true},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem.","example":"123abc"},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem.","example":"parameter 'p' must be an integer"},"name":{"type":"string","description":"Name is the name of this class of errors.","example":"bad_request"},"temporary":{"type":"boolean","description":"Is the error temporary?","example":false},"timeout":{"type":"boolean","description":"Is the error a timeout?","example":true}},"description":"bulk_not_valid_response_body result type (default view)","example":{"fault":true,"id":"123abc","message":"parameter 'p' must be an integer","name":"bad_request","temporary":true,"timeout":false},"required":["name","id","message","temporary","timeout","fault"]},"CollectionBulkRequestBody":{"title":"CollectionBulkRequestBody","type":"object","properties":{"operation":{"type":"string","example":"abandon","enum":["retry","cancel","abandon"]},"size":{"type":"integer","default":100,"example":6372128085676335385,"format":"int64"},"status":{"type":"string","example":"pending","enum":["new","in progress","done","error","unknown","queued","pending","abandoned"]}},"example":{"operation":"retry","size":17066834106240065650,"status":"queued"},"required":["operation","status"]},"CollectionBulkResponseBody":{"title":"CollectionBulkResponseBody","type":"object","properties":{"run_id":{"type":"string","example":"Aut et."},"workflow_id":{"type":"string","example":"Voluptate minima."}},"example":{"run_id":"Facere omnis ab nihil magni.","workflow_id":"Harum quia."},"required":["workflow_id","run_id"]},"CollectionBulkStatusResponseBody":{"title":"CollectionBulkStatusResponseBody","type":"object","properties":{"closed_at":{"type":"string","example":"2000-07-10T03:42:21Z","format":"date-time"},"run_id":{"type":"string","example":"Quia odit."},"running":{"type":"boolean","example":false},"started_at":{"type":"string","example":"1977-11-07T02:10:43Z","format":"date-time"},"status":{"type":"string","example":"Ratione voluptatem nesciunt."},"workflow_id":{"type":"string","example":"Nihil veniam ipsa a et."}},"example":{"closed_at":"1987-12-11T01:45:20Z","run_id":"Culpa et.","running":false,"started_at":"1971-03-02T17:29:30Z","status":"Vel consequatur ut cum velit cumque quo.","workflow_id":"Inventore sit cumque necessitatibus soluta sapiente deleniti."},"required":["running"]},"CollectionCancelNotFoundResponseBody":{"title":"CollectionCancelNotFoundResponseBody","type":"object","properties":{"id":{"type":"integer","description":"Identifier of missing collection","example":8281239400323966825,"format":"int64"},"message":{"type":"string","description":"Message of error","example":"Quia et dolores rerum."}},"description":"Collection not found","example":{"id":7484765762935055342,"message":"Facilis exercitationem ducimus architecto magnam asperiores."},"required":["message","id"]},"CollectionCancelNotRunningResponseBody":{"title":"Mediatype identifier: application/vnd.goa.error; view=default","type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?","example":false},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem.","example":"123abc"},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem.","example":"parameter 'p' must be an integer"},"name":{"type":"string","description":"Name is the name of this class of errors.","example":"bad_request"},"temporary":{"type":"boolean","description":"Is the error temporary?","example":true},"timeout":{"type":"boolean","description":"Is the error a timeout?","example":true}},"description":"cancel_not_running_response_body result type (default view)","example":{"fault":true,"id":"123abc","message":"parameter 'p' must be an integer","name":"bad_request","temporary":true,"timeout":true},"required":["name","id","message","temporary","timeout","fault"]},"CollectionDecideNotFoundResponseBody":{"title":"CollectionDecideNotFoundResponseBody","type":"object","properties":{"id":{"type":"integer","description":"Identifier of missing collection","example":15909502977177845960,"format":"int64"},"message":{"type":"string","description":"Message of error","example":"Sed nam aliquid."}},"description":"Collection not found","example":{"id":10992204314310215240,"message":"Dignissimos accusamus distinctio omnis qui quidem."},"required":["message","id"]},"CollectionDecideNotValidResponseBody":{"title":"Mediatype identifier: application/vnd.goa.error; view=default","type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?","example":false},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem.","example":"123abc"},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem.","example":"parameter 'p' must be an integer"},"name":{"type":"string","description":"Name is the name of this class of errors.","example":"bad_request"},"temporary":{"type":"boolean","description":"Is the error temporary?","example":false},"timeout":{"type":"boolean","description":"Is the error a timeout?","example":false}},"description":"decide_not_valid_response_body result type (default view)","example":{"fault":false,"id":"123abc","message":"parameter 'p' must be an integer","name":"bad_request","temporary":true,"timeout":true},"required":["name","id","message","temporary","timeout","fault"]},"CollectionDeleteNotFoundResponseBody":{"title":"CollectionDeleteNotFoundResponseBody","type":"object","properties":{"id":{"type":"integer","description":"Identifier of missing collection","example":15719896702208706234,"format":"int64"},"message":{"type":"string","description":"Message of error","example":"Deserunt provident provident repellendus voluptatem exercitationem atque."}},"description":"Collection not found","example":{"id":10629914060260803936,"message":"Non dicta culpa id dolorem consequuntur fuga."},"required":["message","id"]},"CollectionDownloadNotFoundResponseBody":{"title":"CollectionDownloadNotFoundResponseBody","type":"object","properties":{"id":{"type":"integer","description":"Identifier of missing collection","example":3143202457039915320,"format":"int64"},"message":{"type":"string","description":"Message of error","example":"Et expedita distinctio voluptatem et."}},"description":"Collection not found","example":{"id":810008205606960290,"message":"Vel assumenda."},"required":["message","id"]},"CollectionListResponseBody":{"title":"CollectionListResponseBody","type":"object","properties":{"items":{"$ref":"#/definitions/EnduroStoredCollectionResponseBodyCollection"},"next_cursor":{"type":"string","example":"Cum in aliquam aliquid non tempore vel."}},"example":{"items":[{"aip_id":"3aa0d6b1-1c21-11ee-bb08-7085c27bdeb0","completed_at":"2014-01-26T22:52:33Z","created_at":"2006-09-07T19:48:15Z","id":5273261262554249024,"name":"Iusto laudantium assumenda.","original_id":"Voluptatem eum et rerum.","pipeline_id":"3aa0d854-1c21-11ee-bb08-7085c27bdeb0","run_id":"3aa0d415-1c21-11ee-bb08-7085c27bdeb0","started_at":"1986-05-13T23:32:21Z","status":"unknown","transfer_id":"3aa0d569-1c21-11ee-bb08-7085c27bdeb0","workflow_id":"3aa0be66-1c21-11ee-bb08-7085c27bdeb0"},{"aip_id":"3aa0d6b1-1c21-11ee-bb08-7085c27bdeb0","completed_at":"2014-01-26T22:52:33Z","created_at":"2006-09-07T19:48:15Z","id":5273261262554249024,"name":"Iusto laudantium assumenda.","original_id":"Voluptatem eum et rerum.","pipeline_id":"3aa0d854-1c21-11ee-bb08-7085c27bdeb0","run_id":"3aa0d415-1c21-11ee-bb08-7085c27bdeb0","started_at":"1986-05-13T23:32:21Z","status":"unknown","transfer_id":"3aa0d569-1c21-11ee-bb08-7085c27bdeb0","workflow_id":"3aa0be66-1c21-11ee-bb08-7085c27bdeb0"},{"aip_id":"3aa0d6b1-1c21-11ee-bb08-7085c27bdeb0","completed_at":"2014-01-26T22:52:33Z","created_at":"2006-09-07T19:48:15Z","id":5273261262554249024,"name":"Iusto laudantium assumenda.","original_id":"Voluptatem eum et rerum.","pipeline_id":"3aa0d854-1c21-11ee-bb08-7085c27bdeb0","run_id":"3aa0d415-1c21-11ee-bb08-7085c27bdeb0","started_at":"1986-05-13T23:32:21Z","status":"unknown","transfer_id":"3aa0d569-1c21-11ee-bb08-7085c27bdeb0","workflow_id":"3aa0be66-1c21-11ee-bb08-7085c27bdeb0"},{"aip_id":"3aa0d6b1-1c21-11ee-bb08-7085c27bdeb0","completed_at":"2014-01-26T22:52:33Z","created_at":"2006-09-07T19:48:15Z","id":5273261262554249024,"name":"Iusto laudantium assumenda.","original_id":"Voluptatem eum et rerum.","pipeline_id":"3aa0d854-1c21-11ee-bb08-7085c27bdeb0","run_id":"3aa0d415-1c21-11ee-bb08-7085c27bdeb0","started_at":"1986-05-13T23:32:21Z","status":"unknown","transfer_id":"3aa0d569-1c21-11ee-bb08-7085c27bdeb0","workflow_id":"3aa0be66-1c21-11ee-bb08-7085c27bdeb0"}],"next_cursor":"Non cupiditate."},"required":["items"]},"CollectionMonitorResponseBody":{"title":"Mediatype identifier: application/vnd.enduro.monitor-update; view=default","type":"object","properties":{"id":{"type":"integer","description":"Identifier of collection","example":17877819967277681986,"format":"int64"},"item":{"$ref":"#/definitions/EnduroStoredCollectionResponseBody"},"type":{"type":"string","description":"Type of the event","example":"Et qui expedita asperiores et."}},"description":"MonitorResponseBody result type (default view)","example":{"id":2274206577310456200,"item":{"aip_id":"3aa1790a-1c21-11ee-bb08-7085c27bdeb0","completed_at":"1997-08-27T00:00:04Z","created_at":"1989-09-24T08:53:28Z","id":4957819645449742263,"name":"Labore totam harum repellat.","original_id":"Nostrum delectus dolor nisi.","pipeline_id":"3aa17a49-1c21-11ee-bb08-7085c27bdeb0","run_id":"3aa17689-1c21-11ee-bb08-7085c27bdeb0","started_at":"1998-02-12T04:24:46Z","status":"unknown","transfer_id":"3aa177ba-1c21-11ee-bb08-7085c27bdeb0","workflow_id":"3aa1753b-1c21-11ee-bb08-7085c27bdeb0"},"type":"Quam vitae odio non laborum."},"required":["id","type"]},"CollectionRetryNotFoundResponseBody":{"title":"CollectionRetryNotFoundResponseBody","type":"object","properties":{"id":{"type":"integer","description":"Identifier of missing collection","example":1376202291394847879,"format":"int64"},"message":{"type":"string","description":"Message of error","example":"Quasi nihil corrupti repellat aut quibusdam."}},"description":"Collection not found","example":{"id":17034853208141038925,"message":"Magnam culpa."},"required":["message","id"]},"CollectionRetryNotRunningResponseBody":{"title":"Mediatype identifier: application/vnd.goa.error; view=default","type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?","example":true},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem.","example":"123abc"},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem.","example":"parameter 'p' must be an integer"},"name":{"type":"string","description":"Name is the name of this class of errors.","example":"bad_request"},"temporary":{"type":"boolean","description":"Is the error temporary?","example":true},"timeout":{"type":"boolean","description":"Is the error a timeout?","example":false}},"description":"retry_not_running_response_body result type (default view)","example":{"fault":true,"id":"123abc","message":"parameter 'p' must be an integer","name":"bad_request","temporary":false,"timeout":false},"required":["name","id","message","temporary","timeout","fault"]},"CollectionShowNotFoundResponseBody":{"title":"CollectionShowNotFoundResponseBody","type":"object","properties":{"id":{"type":"integer","description":"Identifier of missing collection","example":17409311576880797983,"format":"int64"},"message":{"type":"string","description":"Message of error","example":"Expedita aut."}},"description":"Collection not found","example":{"id":9420818705968035943,"message":"Nisi amet in accusamus eum dolores."},"required":["message","id"]},"CollectionShowResponseBody":{"title":"Mediatype identifier: application/vnd.enduro.stored-collection; view=default","type":"object","properties":{"aip_id":{"type":"string","description":"Identifier of Archivematica AIP","example":"3aa324e2-1c21-11ee-bb08-7085c27bdeb0","format":"uuid"},"completed_at":{"type":"string","description":"Completion datetime","example":"2011-05-16T16:36:29Z","format":"date-time"},"created_at":{"type":"string","description":"Creation datetime","example":"1973-03-21T19:25:16Z","format":"date-time"},"id":{"type":"integer","description":"Identifier of collection","example":15649628273186382483,"format":"int64"},"name":{"type":"string","description":"Name of the collection","example":"Voluptatem cum incidunt voluptatem error adipisci."},"original_id":{"type":"string","description":"Identifier provided by the client","example":"Voluptate consequatur illo."},"pipeline_id":{"type":"string","description":"Identifier of Archivematica pipeline","example":"3aa32634-1c21-11ee-bb08-7085c27bdeb0","format":"uuid"},"run_id":{"type":"string","description":"Identifier of latest processing workflow run","example":"3aa3229a-1c21-11ee-bb08-7085c27bdeb0","format":"uuid"},"started_at":{"type":"string","description":"Start datetime","example":"2001-08-02T19:18:49Z","format":"date-time"},"status":{"type":"string","description":"Status of the collection","default":"new","example":"new","enum":["new","in progress","done","error","unknown","queued","pending","abandoned"]},"transfer_id":{"type":"string","description":"Identifier of Archivematica transfer","example":"3aa323c5-1c21-11ee-bb08-7085c27bdeb0","format":"uuid"},"workflow_id":{"type":"string","description":"Identifier of processing workflow","example":"3aa32167-1c21-11ee-bb08-7085c27bdeb0","format":"uuid"}},"description":"ShowResponseBody result type (default view)","example":{"aip_id":"3aa32e79-1c21-11ee-bb08-7085c27bdeb0","completed_at":"2005-09-09T14:24:39Z","created_at":"2007-10-14T22:27:23Z","id":9029712482372070690,"name":"Ipsam adipisci voluptas fugit aut.","original_id":"Consequatur magnam.","pipeline_id":"3aa32fc2-1c21-11ee-bb08-7085c27bdeb0","run_id":"3aa32c4a-1c21-11ee-bb08-7085c27bdeb0","started_at":"1972-09-08T06:52:05Z","status":"pending","transfer_id":"3aa32d61-1c21-11ee-bb08-7085c27bdeb0","workflow_id":"3aa32b2a-1c21-11ee-bb08-7085c27bdeb0"},"required":["id","status","created_at"]},"CollectionWorkflowNotFoundResponseBody":{"title":"CollectionWorkflowNotFoundResponseBody","type":"object","properties":{"id":{"type":"integer","description":"Identifier of missing collection","example":5069398403880905247,"format":"int64"},"message":{"type":"string","description":"Message of error","example":"Iusto modi quis distinctio."}},"description":"Collection not found","example":{"id":6957179250620142883,"message":"A a odit architecto quisquam nisi recusandae."},"required":["message","id"]},"CollectionWorkflowResponseBody":{"title":"Mediatype identifier: application/vnd.enduro.collection-workflow-status; view=default","type":"object","properties":{"history":{"$ref":"#/definitions/EnduroCollectionWorkflowHistoryResponseBodyCollection"},"status":{"type":"string","example":"Aut voluptatibus."}},"description":"WorkflowResponseBody result type (default view)","example":{"history":[{"details":"Ut eveniet et rerum nemo corporis.","id":9720827093168823906,"type":"Omnis doloremque sint dolorum quasi ex labore."},{"details":"Ut eveniet et rerum nemo corporis.","id":9720827093168823906,"type":"Omnis doloremque sint dolorum quasi ex labore."},{"details":"Ut eveniet et rerum nemo corporis.","id":9720827093168823906,"type":"Omnis doloremque sint dolorum quasi ex labore."},{"details":"Ut eveniet et rerum nemo corporis.","id":9720827093168823906,"type":"Omnis doloremque sint dolorum quasi ex labore."}],"status":"Explicabo perferendis sunt quas eos odio aut."}},"EnduroCollectionWorkflowHistoryResponseBody":{"title":"Mediatype identifier: application/vnd.enduro.collection-workflow-history; view=default","type":"object","properties":{"details":{"type":"string","description":"Contents of the event","example":"Quis itaque.","format":"binary"},"id":{"type":"integer","description":"Identifier of collection","example":13704534446480092276,"format":"int64"},"type":{"type":"string","description":"Type of the event","example":"Quaerat voluptatum necessitatibus non cum."}},"description":"WorkflowHistoryEvent describes a history event in Temporal. (default view)","example":{"details":"Quibusdam natus aut animi praesentium cupiditate.","id":4511670572085541767,"type":"Quasi dolor veritatis voluptatem dicta."}},"EnduroCollectionWorkflowHistoryResponseBodyCollection":{"title":"Mediatype identifier: application/vnd.enduro.collection-workflow-history; type=collection; view=default","type":"array","items":{"$ref":"#/definitions/EnduroCollectionWorkflowHistoryResponseBody"},"description":"EnduroCollection-Workflow-HistoryCollectionResponseBody is the result type for an array of EnduroCollection-Workflow-HistoryResponseBody (default view)","example":[{"details":"Ut eveniet et rerum nemo corporis.","id":9720827093168823906,"type":"Omnis doloremque sint dolorum quasi ex labore."},{"details":"Ut eveniet et rerum nemo corporis.","id":9720827093168823906,"type":"Omnis doloremque sint dolorum quasi ex labore."},{"details":"Ut eveniet et rerum nemo corporis.","id":9720827093168823906,"type":"Omnis doloremque sint dolorum quasi ex labore."}]},"EnduroStoredCollectionResponseBody":{"title":"Mediatype identifier: application/vnd.enduro.stored-collection; view=default","type":"object","properties":{"aip_id":{"type":"string","description":"Identifier of Archivematica AIP","example":"3aa30d16-1c21-11ee-bb08-7085c27bdeb0","format":"uuid"},"completed_at":{"type":"string","description":"Completion datetime","example":"1978-11-18T10:22:37Z","format":"date-time"},"created_at":{"type":"string","description":"Creation datetime","example":"1992-11-28T22:46:05Z","format":"date-time"},"id":{"type":"integer","description":"Identifier of collection","example":16783261364902862921,"format":"int64"},"name":{"type":"string","description":"Name of the collection","example":"Quia ut commodi nihil."},"original_id":{"type":"string","description":"Identifier provided by the client","example":"Dolores ipsam facilis adipisci."},"pipeline_id":{"type":"string","description":"Identifier of Archivematica pipeline","example":"3aa30eaf-1c21-11ee-bb08-7085c27bdeb0","format":"uuid"},"run_id":{"type":"string","description":"Identifier of latest processing workflow run","example":"3aa30a79-1c21-11ee-bb08-7085c27bdeb0","format":"uuid"},"started_at":{"type":"string","description":"Start datetime","example":"1974-07-18T05:21:30Z","format":"date-time"},"status":{"type":"string","description":"Status of the collection","default":"new","example":"queued","enum":["new","in progress","done","error","unknown","queued","pending","abandoned"]},"transfer_id":{"type":"string","description":"Identifier of Archivematica transfer","example":"3aa30bda-1c21-11ee-bb08-7085c27bdeb0","format":"uuid"},"workflow_id":{"type":"string","description":"Identifier of processing workflow","example":"3aa30919-1c21-11ee-bb08-7085c27bdeb0","format":"uuid"}},"description":"StoredCollection describes a collection retrieved by the service. (default view)","example":{"aip_id":"3aa317af-1c21-11ee-bb08-7085c27bdeb0","completed_at":"1992-09-23T06:18:58Z","created_at":"1983-06-28T18:36:02Z","id":828828406215854043,"name":"Nostrum aut deserunt.","original_id":"Animi praesentium omnis dignissimos cumque omnis.","pipeline_id":"3aa318dd-1c21-11ee-bb08-7085c27bdeb0","run_id":"3aa3154d-1c21-11ee-bb08-7085c27bdeb0","started_at":"2007-09-04T21:44:52Z","status":"unknown","transfer_id":"3aa31673-1c21-11ee-bb08-7085c27bdeb0","workflow_id":"3aa31428-1c21-11ee-bb08-7085c27bdeb0"},"required":["id","status","created_at"]},"EnduroStoredCollectionResponseBodyCollection":{"title":"Mediatype identifier: application/vnd.enduro.stored-collection; type=collection; view=default","type":"array","items":{"$ref":"#/definitions/EnduroStoredCollectionResponseBody"},"description":"EnduroStored-CollectionCollectionResponseBody is the result type for an array of EnduroStored-CollectionResponseBody (default view)","example":[{"aip_id":"3aa1790a-1c21-11ee-bb08-7085c27bdeb0","completed_at":"1997-08-27T00:00:04Z","created_at":"1989-09-24T08:53:28Z","id":4957819645449742263,"name":"Labore totam harum repellat.","original_id":"Nostrum delectus dolor nisi.","pipeline_id":"3aa17a49-1c21-11ee-bb08-7085c27bdeb0","run_id":"3aa17689-1c21-11ee-bb08-7085c27bdeb0","started_at":"1998-02-12T04:24:46Z","status":"unknown","transfer_id":"3aa177ba-1c21-11ee-bb08-7085c27bdeb0","workflow_id":"3aa1753b-1c21-11ee-bb08-7085c27bdeb0"},{"aip_id":"3aa1790a-1c21-11ee-bb08-7085c27bdeb0","completed_at":"1997-08-27T00:00:04Z","created_at":"1989-09-24T08:53:28Z","id":4957819645449742263,"name":"Labore totam harum repellat.","original_id":"Nostrum delectus dolor nisi.","pipeline_id":"3aa17a49-1c21-11ee-bb08-7085c27bdeb0","run_id":"3aa17689-1c21-11ee-bb08-7085c27bdeb0","started_at":"1998-02-12T04:24:46Z","status":"unknown","transfer_id":"3aa177ba-1c21-11ee-bb08-7085c27bdeb0","workflow_id":"3aa1753b-1c21-11ee-bb08-7085c27bdeb0"},{"aip_id":"3aa1790a-1c21-11ee-bb08-7085c27bdeb0","completed_at":"1997-08-27T00:00:04Z","created_at":"1989-09-24T08:53:28Z","id":4957819645449742263,"name":"Labore totam harum repellat.","original_id":"Nostrum delectus dolor nisi.","pipeline_id":"3aa17a49-1c21-11ee-bb08-7085c27bdeb0","run_id":"3aa17689-1c21-11ee-bb08-7085c27bdeb0","started_at":"1998-02-12T04:24:46Z","status":"unknown","transfer_id":"3aa177ba-1c21-11ee-bb08-7085c27bdeb0","workflow_id":"3aa1753b-1c21-11ee-bb08-7085c27bdeb0"}]},"EnduroStoredPipelineResponse":{"title":"Mediatype identifier: application/vnd.enduro.stored-pipeline; view=default","type":"object","properties":{"capacity":{"type":"integer","description":"Maximum concurrent transfers","example":6985482064020189961,"format":"int64"},"current":{"type":"integer","description":"Current transfers","example":3701726448145747138,"format":"int64"},"id":{"type":"string","description":"Identifier of the pipeline","example":"3aa34822-1c21-11ee-bb08-7085c27bdeb0","format":"uuid"},"name":{"type":"string","description":"Name of the pipeline","example":"Veniam totam."},"status":{"type":"string","example":"Qui ipsa."}},"description":"StoredPipeline describes a pipeline retrieved by this service. (default view)","example":{"capacity":7322691743128068194,"current":72660884889227336,"id":"3aa34991-1c21-11ee-bb08-7085c27bdeb0","name":"Tempore et eligendi laudantium ea illo hic.","status":"Id minima velit provident explicabo consequatur."},"required":["name"]},"PipelineProcessingNotFoundResponseBody":{"title":"PipelineProcessingNotFoundResponseBody","type":"object","properties":{"id":{"type":"string","description":"Identifier of missing pipeline","example":"Inventore impedit voluptates vel omnis id."},"message":{"type":"string","description":"Message of error","example":"Autem adipisci suscipit distinctio qui harum totam."}},"description":"Pipeline not found","example":{"id":"Inventore hic voluptates eos distinctio sed.","message":"Quia praesentium incidunt."},"required":["message","id"]},"PipelineShowNotFoundResponseBody":{"title":"PipelineShowNotFoundResponseBody","type":"object","properties":{"id":{"type":"string","description":"Identifier of missing pipeline","example":"Ut tenetur dolorum error aut quibusdam."},"message":{"type":"string","description":"Message of error","example":"Veniam omnis dolores sed."}},"description":"Pipeline not found","example":{"id":"Sed sunt molestiae animi et aliquid voluptatem.","message":"Ut hic."},"required":["message","id"]},"PipelineShowResponseBody":{"title":"Mediatype identifier: application/vnd.enduro.stored-pipeline; view=default","type":"object","properties":{"capacity":{"type":"integer","description":"Maximum concurrent transfers","example":4612770856566959488,"format":"int64"},"current":{"type":"integer","description":"Current transfers","example":1302819909344103813,"format":"int64"},"id":{"type":"string","description":"Identifier of the pipeline","example":"3aa34bb3-1c21-11ee-bb08-7085c27bdeb0","format":"uuid"},"name":{"type":"string","description":"Name of the pipeline","example":"Illum autem accusamus."},"status":{"type":"string","example":"Qui tempora itaque illum vitae aliquid quia."}},"description":"ShowResponseBody result type (default view)","example":{"capacity":1349942446066623917,"current":3978574075782434602,"id":"3aa34d72-1c21-11ee-bb08-7085c27bdeb0","name":"Eveniet quam consequatur eveniet.","status":"Similique unde molestiae esse consequatur reprehenderit."},"required":["name"]}}} \ No newline at end of file +{"swagger":"2.0","info":{"title":"Enduro API","version":""},"host":"localhost:9000","consumes":["application/json","application/xml","application/gob"],"produces":["application/json","application/xml","application/gob"],"paths":{"/batch":{"get":{"tags":["batch"],"summary":"status batch","description":"Retrieve status of current batch operation.","operationId":"batch#status","responses":{"200":{"description":"OK response.","schema":{"$ref":"#/definitions/BatchStatusResponseBody","required":["running"]}}},"schemes":["http"]},"post":{"tags":["batch"],"summary":"submit batch","description":"Submit a new batch","operationId":"batch#submit","parameters":[{"name":"SubmitRequestBody","in":"body","required":true,"schema":{"$ref":"#/definitions/BatchSubmitRequestBody","required":["path"]}}],"responses":{"202":{"description":"Accepted response.","schema":{"$ref":"#/definitions/BatchSubmitResponseBody","required":["workflow_id","run_id"]}},"400":{"description":"Bad Request response.","schema":{"$ref":"#/definitions/BatchSubmitNotValidResponseBody"}},"409":{"description":"Conflict response.","schema":{"$ref":"#/definitions/BatchSubmitNotAvailableResponseBody"}}},"schemes":["http"]}},"/batch/hints":{"get":{"tags":["batch"],"summary":"hints batch","description":"Retrieve form hints","operationId":"batch#hints","responses":{"200":{"description":"OK response.","schema":{"$ref":"#/definitions/BatchHintsResponseBody"}}},"schemes":["http"]}},"/collection":{"get":{"tags":["collection"],"summary":"list collection","description":"List all stored collections","operationId":"collection#list","parameters":[{"name":"name","in":"query","required":false,"type":"string"},{"name":"original_id","in":"query","required":false,"type":"string"},{"name":"transfer_id","in":"query","required":false,"type":"string","format":"uuid"},{"name":"aip_id","in":"query","required":false,"type":"string","format":"uuid"},{"name":"pipeline_id","in":"query","required":false,"type":"string","format":"uuid"},{"name":"earliest_created_time","in":"query","required":false,"type":"string","format":"date-time"},{"name":"latest_created_time","in":"query","required":false,"type":"string","format":"date-time"},{"name":"status","in":"query","required":false,"type":"string","enum":["new","in progress","done","error","unknown","queued","pending","abandoned"]},{"name":"cursor","in":"query","description":"Pagination cursor","required":false,"type":"string"}],"responses":{"200":{"description":"OK response.","schema":{"$ref":"#/definitions/CollectionListResponseBody","required":["items"]}}},"schemes":["http"]}},"/collection/bulk":{"get":{"tags":["collection"],"summary":"bulk_status collection","description":"Retrieve status of current bulk operation.","operationId":"collection#bulk_status","responses":{"200":{"description":"OK response.","schema":{"$ref":"#/definitions/CollectionBulkStatusResponseBody","required":["running"]}}},"schemes":["http"]},"post":{"tags":["collection"],"summary":"bulk collection","description":"Bulk operations (retry, cancel...).","operationId":"collection#bulk","parameters":[{"name":"BulkRequestBody","in":"body","required":true,"schema":{"$ref":"#/definitions/CollectionBulkRequestBody","required":["operation","status"]}}],"responses":{"202":{"description":"Accepted response.","schema":{"$ref":"#/definitions/CollectionBulkResponseBody","required":["workflow_id","run_id"]}},"400":{"description":"Bad Request response.","schema":{"$ref":"#/definitions/CollectionBulkNotValidResponseBody"}},"409":{"description":"Conflict response.","schema":{"$ref":"#/definitions/CollectionBulkNotAvailableResponseBody"}}},"schemes":["http"]}},"/collection/monitor":{"get":{"tags":["collection"],"summary":"monitor collection","operationId":"collection#monitor","responses":{"101":{"description":"Switching Protocols response.","schema":{"$ref":"#/definitions/CollectionMonitorResponseBody"}}},"schemes":["ws"]}},"/collection/{id}":{"get":{"tags":["collection"],"summary":"show collection","description":"Show collection by ID","operationId":"collection#show","parameters":[{"name":"id","in":"path","description":"Identifier of collection to show","required":true,"type":"integer"}],"responses":{"200":{"description":"OK response.","schema":{"$ref":"#/definitions/CollectionShowResponseBody"}},"404":{"description":"Not Found response.","schema":{"$ref":"#/definitions/CollectionShowNotFoundResponseBody","required":["message","id"]}}},"schemes":["http"]},"delete":{"tags":["collection"],"summary":"delete collection","description":"Delete collection by ID","operationId":"collection#delete","parameters":[{"name":"id","in":"path","description":"Identifier of collection to delete","required":true,"type":"integer"}],"responses":{"204":{"description":"No Content response."},"404":{"description":"Not Found response.","schema":{"$ref":"#/definitions/CollectionDeleteNotFoundResponseBody","required":["message","id"]}}},"schemes":["http"]}},"/collection/{id}/cancel":{"post":{"tags":["collection"],"summary":"cancel collection","description":"Cancel collection processing by ID","operationId":"collection#cancel","parameters":[{"name":"id","in":"path","description":"Identifier of collection to remove","required":true,"type":"integer"}],"responses":{"200":{"description":"OK response."},"400":{"description":"Bad Request response.","schema":{"$ref":"#/definitions/CollectionCancelNotRunningResponseBody"}},"404":{"description":"Not Found response.","schema":{"$ref":"#/definitions/CollectionCancelNotFoundResponseBody","required":["message","id"]}}},"schemes":["http"]}},"/collection/{id}/decision":{"post":{"tags":["collection"],"summary":"decide collection","description":"Make decision for a pending collection by ID","operationId":"collection#decide","parameters":[{"name":"id","in":"path","description":"Identifier of collection to look up","required":true,"type":"integer"},{"name":"object","in":"body","required":true,"schema":{"type":"object","properties":{"option":{"type":"string","description":"Decision option to proceed with","example":"Maiores aliquid voluptate necessitatibus iure sunt."}}}}],"responses":{"200":{"description":"OK response."},"400":{"description":"Bad Request response.","schema":{"$ref":"#/definitions/CollectionDecideNotValidResponseBody"}},"404":{"description":"Not Found response.","schema":{"$ref":"#/definitions/CollectionDecideNotFoundResponseBody","required":["message","id"]}}},"schemes":["http"]}},"/collection/{id}/download":{"get":{"tags":["collection"],"summary":"download collection","description":"Download collection by ID","operationId":"collection#download","parameters":[{"name":"id","in":"path","description":"Identifier of collection to look up","required":true,"type":"integer"}],"responses":{"200":{"description":"OK response.","headers":{"Content-Disposition":{"type":"string"},"Content-Length":{"type":"int64"},"Content-Type":{"type":"string"}}},"404":{"description":"Not Found response.","schema":{"$ref":"#/definitions/CollectionDownloadNotFoundResponseBody","required":["message","id"]}}},"schemes":["http"]}},"/collection/{id}/retry":{"post":{"tags":["collection"],"summary":"retry collection","description":"Retry collection processing by ID","operationId":"collection#retry","parameters":[{"name":"id","in":"path","description":"Identifier of collection to retry","required":true,"type":"integer"}],"responses":{"200":{"description":"OK response."},"400":{"description":"Bad Request response.","schema":{"$ref":"#/definitions/CollectionRetryNotRunningResponseBody"}},"404":{"description":"Not Found response.","schema":{"$ref":"#/definitions/CollectionRetryNotFoundResponseBody","required":["message","id"]}}},"schemes":["http"]}},"/collection/{id}/workflow":{"get":{"tags":["collection"],"summary":"workflow collection","description":"Retrieve workflow status by ID","operationId":"collection#workflow","parameters":[{"name":"id","in":"path","description":"Identifier of collection to look up","required":true,"type":"integer"}],"responses":{"200":{"description":"OK response.","schema":{"$ref":"#/definitions/CollectionWorkflowResponseBody"}},"404":{"description":"Not Found response.","schema":{"$ref":"#/definitions/CollectionWorkflowNotFoundResponseBody","required":["message","id"]}}},"schemes":["http"]}},"/pipeline":{"get":{"tags":["pipeline"],"summary":"list pipeline","description":"List all known pipelines","operationId":"pipeline#list","parameters":[{"name":"name","in":"query","required":false,"type":"string"},{"name":"status","in":"query","required":false,"type":"boolean","default":false}],"responses":{"200":{"description":"OK response.","schema":{"type":"array","items":{"$ref":"#/definitions/EnduroStoredPipelineResponse"}}}},"schemes":["http"]}},"/pipeline/{id}":{"get":{"tags":["pipeline"],"summary":"show pipeline","description":"Show pipeline by ID","operationId":"pipeline#show","parameters":[{"name":"id","in":"path","description":"Identifier of pipeline to show","required":true,"type":"string","format":"uuid"}],"responses":{"200":{"description":"OK response.","schema":{"$ref":"#/definitions/PipelineShowResponseBody"}},"404":{"description":"Not Found response.","schema":{"$ref":"#/definitions/PipelineShowNotFoundResponseBody","required":["message","id"]}}},"schemes":["http"]}},"/pipeline/{id}/processing":{"get":{"tags":["pipeline"],"summary":"processing pipeline","description":"List all processing configurations of a pipeline given its ID","operationId":"pipeline#processing","parameters":[{"name":"id","in":"path","description":"Identifier of pipeline","required":true,"type":"string","format":"uuid"}],"responses":{"200":{"description":"OK response.","schema":{"type":"array","items":{"type":"string","example":"Est praesentium officiis occaecati magnam est veritatis."}}},"404":{"description":"Not Found response.","schema":{"$ref":"#/definitions/PipelineProcessingNotFoundResponseBody","required":["message","id"]}}},"schemes":["http"]}},"/swagger/swagger.json":{"get":{"tags":["swagger"],"summary":"Download internal/api/gen/http/openapi.json","description":"JSON document containing the API swagger definition.","operationId":"swagger#/swagger/swagger.json","responses":{"200":{"description":"File downloaded","schema":{"type":"file"}}},"schemes":["http"]}}},"definitions":{"BatchHintsResponseBody":{"title":"BatchHintsResponseBody","type":"object","properties":{"completed_dirs":{"type":"array","items":{"type":"string","example":"Eligendi et."},"description":"A list of known values of completedDir used by existing watchers.","example":["Aspernatur enim fuga quam aut sit quo.","Est sed.","Ipsum dolores."]}},"example":{"completed_dirs":["Quibusdam aut magnam itaque occaecati.","Quo deserunt vitae suscipit quia ullam cumque.","Quae porro corporis blanditiis sequi rerum.","Non quas laborum eos."]}},"BatchStatusResponseBody":{"title":"BatchStatusResponseBody","type":"object","properties":{"run_id":{"type":"string","example":"Natus illum laborum."},"running":{"type":"boolean","example":true},"status":{"type":"string","example":"Omnis corporis et sunt ut esse consectetur."},"workflow_id":{"type":"string","example":"Quis accusamus enim consequatur laudantium."}},"example":{"run_id":"Doloribus sit corrupti veniam maiores ducimus.","running":false,"status":"Possimus fuga esse modi aut.","workflow_id":"Et quaerat tempore nostrum aliquid fugiat optio."},"required":["running"]},"BatchSubmitNotAvailableResponseBody":{"title":"Mediatype identifier: application/vnd.goa.error; view=default","type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?","example":true},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem.","example":"123abc"},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem.","example":"parameter 'p' must be an integer"},"name":{"type":"string","description":"Name is the name of this class of errors.","example":"bad_request"},"temporary":{"type":"boolean","description":"Is the error temporary?","example":true},"timeout":{"type":"boolean","description":"Is the error a timeout?","example":false}},"description":"submit_not_available_response_body result type (default view)","example":{"fault":true,"id":"123abc","message":"parameter 'p' must be an integer","name":"bad_request","temporary":true,"timeout":false},"required":["name","id","message","temporary","timeout","fault"]},"BatchSubmitNotValidResponseBody":{"title":"Mediatype identifier: application/vnd.goa.error; view=default","type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?","example":false},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem.","example":"123abc"},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem.","example":"parameter 'p' must be an integer"},"name":{"type":"string","description":"Name is the name of this class of errors.","example":"bad_request"},"temporary":{"type":"boolean","description":"Is the error temporary?","example":false},"timeout":{"type":"boolean","description":"Is the error a timeout?","example":true}},"description":"submit_not_valid_response_body result type (default view)","example":{"fault":false,"id":"123abc","message":"parameter 'p' must be an integer","name":"bad_request","temporary":true,"timeout":true},"required":["name","id","message","temporary","timeout","fault"]},"BatchSubmitRequestBody":{"title":"BatchSubmitRequestBody","type":"object","properties":{"completed_dir":{"type":"string","example":"Sint omnis dolor quas corrupti."},"path":{"type":"string","example":"Esse qui est."},"pipeline":{"type":"string","example":"Architecto optio."},"processing_config":{"type":"string","example":"Labore iste eveniet."},"retention_period":{"type":"string","example":"Cumque qui facilis omnis."}},"example":{"completed_dir":"Aperiam velit.","path":"Officia voluptate.","pipeline":"Sit sint est qui cum nihil quis.","processing_config":"Sit quibusdam quidem consectetur praesentium.","retention_period":"Nobis delectus."},"required":["path"]},"BatchSubmitResponseBody":{"title":"BatchSubmitResponseBody","type":"object","properties":{"run_id":{"type":"string","example":"Fugit ipsam."},"workflow_id":{"type":"string","example":"Aut aliquid enim ex sint laboriosam."}},"example":{"run_id":"Est iure optio suscipit.","workflow_id":"Ab consectetur."},"required":["workflow_id","run_id"]},"CollectionBulkNotAvailableResponseBody":{"title":"Mediatype identifier: application/vnd.goa.error; view=default","type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?","example":false},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem.","example":"123abc"},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem.","example":"parameter 'p' must be an integer"},"name":{"type":"string","description":"Name is the name of this class of errors.","example":"bad_request"},"temporary":{"type":"boolean","description":"Is the error temporary?","example":true},"timeout":{"type":"boolean","description":"Is the error a timeout?","example":true}},"description":"bulk_not_available_response_body result type (default view)","example":{"fault":true,"id":"123abc","message":"parameter 'p' must be an integer","name":"bad_request","temporary":false,"timeout":false},"required":["name","id","message","temporary","timeout","fault"]},"CollectionBulkNotValidResponseBody":{"title":"Mediatype identifier: application/vnd.goa.error; view=default","type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?","example":true},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem.","example":"123abc"},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem.","example":"parameter 'p' must be an integer"},"name":{"type":"string","description":"Name is the name of this class of errors.","example":"bad_request"},"temporary":{"type":"boolean","description":"Is the error temporary?","example":false},"timeout":{"type":"boolean","description":"Is the error a timeout?","example":true}},"description":"bulk_not_valid_response_body result type (default view)","example":{"fault":true,"id":"123abc","message":"parameter 'p' must be an integer","name":"bad_request","temporary":true,"timeout":false},"required":["name","id","message","temporary","timeout","fault"]},"CollectionBulkRequestBody":{"title":"CollectionBulkRequestBody","type":"object","properties":{"operation":{"type":"string","example":"abandon","enum":["retry","cancel","abandon"]},"size":{"type":"integer","default":100,"example":6372128085676335385,"format":"int64"},"status":{"type":"string","example":"pending","enum":["new","in progress","done","error","unknown","queued","pending","abandoned"]}},"example":{"operation":"retry","size":17066834106240065650,"status":"queued"},"required":["operation","status"]},"CollectionBulkResponseBody":{"title":"CollectionBulkResponseBody","type":"object","properties":{"run_id":{"type":"string","example":"Aut et."},"workflow_id":{"type":"string","example":"Voluptate minima."}},"example":{"run_id":"Facere omnis ab nihil magni.","workflow_id":"Harum quia."},"required":["workflow_id","run_id"]},"CollectionBulkStatusResponseBody":{"title":"CollectionBulkStatusResponseBody","type":"object","properties":{"closed_at":{"type":"string","example":"2000-07-10T03:42:21Z","format":"date-time"},"run_id":{"type":"string","example":"Quia odit."},"running":{"type":"boolean","example":false},"started_at":{"type":"string","example":"1977-11-07T02:10:43Z","format":"date-time"},"status":{"type":"string","example":"Ratione voluptatem nesciunt."},"workflow_id":{"type":"string","example":"Nihil veniam ipsa a et."}},"example":{"closed_at":"1987-12-11T01:45:20Z","run_id":"Culpa et.","running":false,"started_at":"1971-03-02T17:29:30Z","status":"Vel consequatur ut cum velit cumque quo.","workflow_id":"Inventore sit cumque necessitatibus soluta sapiente deleniti."},"required":["running"]},"CollectionCancelNotFoundResponseBody":{"title":"CollectionCancelNotFoundResponseBody","type":"object","properties":{"id":{"type":"integer","description":"Identifier of missing collection","example":8281239400323966825,"format":"int64"},"message":{"type":"string","description":"Message of error","example":"Quia et dolores rerum."}},"description":"Collection not found","example":{"id":7484765762935055342,"message":"Facilis exercitationem ducimus architecto magnam asperiores."},"required":["message","id"]},"CollectionCancelNotRunningResponseBody":{"title":"Mediatype identifier: application/vnd.goa.error; view=default","type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?","example":false},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem.","example":"123abc"},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem.","example":"parameter 'p' must be an integer"},"name":{"type":"string","description":"Name is the name of this class of errors.","example":"bad_request"},"temporary":{"type":"boolean","description":"Is the error temporary?","example":true},"timeout":{"type":"boolean","description":"Is the error a timeout?","example":true}},"description":"cancel_not_running_response_body result type (default view)","example":{"fault":true,"id":"123abc","message":"parameter 'p' must be an integer","name":"bad_request","temporary":true,"timeout":true},"required":["name","id","message","temporary","timeout","fault"]},"CollectionDecideNotFoundResponseBody":{"title":"CollectionDecideNotFoundResponseBody","type":"object","properties":{"id":{"type":"integer","description":"Identifier of missing collection","example":15909502977177845960,"format":"int64"},"message":{"type":"string","description":"Message of error","example":"Sed nam aliquid."}},"description":"Collection not found","example":{"id":10992204314310215240,"message":"Dignissimos accusamus distinctio omnis qui quidem."},"required":["message","id"]},"CollectionDecideNotValidResponseBody":{"title":"Mediatype identifier: application/vnd.goa.error; view=default","type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?","example":false},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem.","example":"123abc"},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem.","example":"parameter 'p' must be an integer"},"name":{"type":"string","description":"Name is the name of this class of errors.","example":"bad_request"},"temporary":{"type":"boolean","description":"Is the error temporary?","example":false},"timeout":{"type":"boolean","description":"Is the error a timeout?","example":false}},"description":"decide_not_valid_response_body result type (default view)","example":{"fault":false,"id":"123abc","message":"parameter 'p' must be an integer","name":"bad_request","temporary":true,"timeout":true},"required":["name","id","message","temporary","timeout","fault"]},"CollectionDeleteNotFoundResponseBody":{"title":"CollectionDeleteNotFoundResponseBody","type":"object","properties":{"id":{"type":"integer","description":"Identifier of missing collection","example":15719896702208706234,"format":"int64"},"message":{"type":"string","description":"Message of error","example":"Deserunt provident provident repellendus voluptatem exercitationem atque."}},"description":"Collection not found","example":{"id":10629914060260803936,"message":"Non dicta culpa id dolorem consequuntur fuga."},"required":["message","id"]},"CollectionDownloadNotFoundResponseBody":{"title":"CollectionDownloadNotFoundResponseBody","type":"object","properties":{"id":{"type":"integer","description":"Identifier of missing collection","example":3143202457039915320,"format":"int64"},"message":{"type":"string","description":"Message of error","example":"Et expedita distinctio voluptatem et."}},"description":"Collection not found","example":{"id":810008205606960290,"message":"Vel assumenda."},"required":["message","id"]},"CollectionListResponseBody":{"title":"CollectionListResponseBody","type":"object","properties":{"items":{"$ref":"#/definitions/EnduroStoredCollectionResponseBodyCollection"},"next_cursor":{"type":"string","example":"Cum in aliquam aliquid non tempore vel."}},"example":{"items":[{"aip_id":"8040c16f-1caf-11ee-b3da-7085c27bdeb0","completed_at":"2014-01-26T22:52:33Z","created_at":"2006-09-07T19:48:15Z","id":5273261262554249024,"name":"Iusto laudantium assumenda.","original_id":"Voluptatem eum et rerum.","pipeline_id":"8040c2e5-1caf-11ee-b3da-7085c27bdeb0","run_id":"8040be91-1caf-11ee-b3da-7085c27bdeb0","started_at":"1986-05-13T23:32:21Z","status":"unknown","transfer_id":"8040c023-1caf-11ee-b3da-7085c27bdeb0","workflow_id":"8040a720-1caf-11ee-b3da-7085c27bdeb0"},{"aip_id":"8040c16f-1caf-11ee-b3da-7085c27bdeb0","completed_at":"2014-01-26T22:52:33Z","created_at":"2006-09-07T19:48:15Z","id":5273261262554249024,"name":"Iusto laudantium assumenda.","original_id":"Voluptatem eum et rerum.","pipeline_id":"8040c2e5-1caf-11ee-b3da-7085c27bdeb0","run_id":"8040be91-1caf-11ee-b3da-7085c27bdeb0","started_at":"1986-05-13T23:32:21Z","status":"unknown","transfer_id":"8040c023-1caf-11ee-b3da-7085c27bdeb0","workflow_id":"8040a720-1caf-11ee-b3da-7085c27bdeb0"},{"aip_id":"8040c16f-1caf-11ee-b3da-7085c27bdeb0","completed_at":"2014-01-26T22:52:33Z","created_at":"2006-09-07T19:48:15Z","id":5273261262554249024,"name":"Iusto laudantium assumenda.","original_id":"Voluptatem eum et rerum.","pipeline_id":"8040c2e5-1caf-11ee-b3da-7085c27bdeb0","run_id":"8040be91-1caf-11ee-b3da-7085c27bdeb0","started_at":"1986-05-13T23:32:21Z","status":"unknown","transfer_id":"8040c023-1caf-11ee-b3da-7085c27bdeb0","workflow_id":"8040a720-1caf-11ee-b3da-7085c27bdeb0"},{"aip_id":"8040c16f-1caf-11ee-b3da-7085c27bdeb0","completed_at":"2014-01-26T22:52:33Z","created_at":"2006-09-07T19:48:15Z","id":5273261262554249024,"name":"Iusto laudantium assumenda.","original_id":"Voluptatem eum et rerum.","pipeline_id":"8040c2e5-1caf-11ee-b3da-7085c27bdeb0","run_id":"8040be91-1caf-11ee-b3da-7085c27bdeb0","started_at":"1986-05-13T23:32:21Z","status":"unknown","transfer_id":"8040c023-1caf-11ee-b3da-7085c27bdeb0","workflow_id":"8040a720-1caf-11ee-b3da-7085c27bdeb0"}],"next_cursor":"Non cupiditate."},"required":["items"]},"CollectionMonitorResponseBody":{"title":"Mediatype identifier: application/vnd.enduro.monitor-update; view=default","type":"object","properties":{"id":{"type":"integer","description":"Identifier of collection","example":17877819967277681986,"format":"int64"},"item":{"$ref":"#/definitions/EnduroStoredCollectionResponseBody"},"type":{"type":"string","description":"Type of the event","example":"Et qui expedita asperiores et."}},"description":"MonitorResponseBody result type (default view)","example":{"id":2274206577310456200,"item":{"aip_id":"8041740a-1caf-11ee-b3da-7085c27bdeb0","completed_at":"1997-08-27T00:00:04Z","created_at":"1989-09-24T08:53:28Z","id":4957819645449742263,"name":"Labore totam harum repellat.","original_id":"Nostrum delectus dolor nisi.","pipeline_id":"8041753e-1caf-11ee-b3da-7085c27bdeb0","run_id":"80417126-1caf-11ee-b3da-7085c27bdeb0","started_at":"1998-02-12T04:24:46Z","status":"unknown","transfer_id":"804172a0-1caf-11ee-b3da-7085c27bdeb0","workflow_id":"80416fcd-1caf-11ee-b3da-7085c27bdeb0"},"type":"Quam vitae odio non laborum."},"required":["id","type"]},"CollectionRetryNotFoundResponseBody":{"title":"CollectionRetryNotFoundResponseBody","type":"object","properties":{"id":{"type":"integer","description":"Identifier of missing collection","example":1376202291394847879,"format":"int64"},"message":{"type":"string","description":"Message of error","example":"Quasi nihil corrupti repellat aut quibusdam."}},"description":"Collection not found","example":{"id":17034853208141038925,"message":"Magnam culpa."},"required":["message","id"]},"CollectionRetryNotRunningResponseBody":{"title":"Mediatype identifier: application/vnd.goa.error; view=default","type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?","example":true},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem.","example":"123abc"},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem.","example":"parameter 'p' must be an integer"},"name":{"type":"string","description":"Name is the name of this class of errors.","example":"bad_request"},"temporary":{"type":"boolean","description":"Is the error temporary?","example":true},"timeout":{"type":"boolean","description":"Is the error a timeout?","example":false}},"description":"retry_not_running_response_body result type (default view)","example":{"fault":true,"id":"123abc","message":"parameter 'p' must be an integer","name":"bad_request","temporary":false,"timeout":false},"required":["name","id","message","temporary","timeout","fault"]},"CollectionShowNotFoundResponseBody":{"title":"CollectionShowNotFoundResponseBody","type":"object","properties":{"id":{"type":"integer","description":"Identifier of missing collection","example":17409311576880797983,"format":"int64"},"message":{"type":"string","description":"Message of error","example":"Expedita aut."}},"description":"Collection not found","example":{"id":9420818705968035943,"message":"Nisi amet in accusamus eum dolores."},"required":["message","id"]},"CollectionShowResponseBody":{"title":"Mediatype identifier: application/vnd.enduro.stored-collection; view=default","type":"object","properties":{"aip_id":{"type":"string","description":"Identifier of Archivematica AIP","example":"804344b4-1caf-11ee-b3da-7085c27bdeb0","format":"uuid"},"completed_at":{"type":"string","description":"Completion datetime","example":"2011-05-16T16:36:29Z","format":"date-time"},"created_at":{"type":"string","description":"Creation datetime","example":"1973-03-21T19:25:16Z","format":"date-time"},"id":{"type":"integer","description":"Identifier of collection","example":15649628273186382483,"format":"int64"},"name":{"type":"string","description":"Name of the collection","example":"Voluptatem cum incidunt voluptatem error adipisci."},"original_id":{"type":"string","description":"Identifier provided by the client","example":"Voluptate consequatur illo."},"pipeline_id":{"type":"string","description":"Identifier of Archivematica pipeline","example":"80434978-1caf-11ee-b3da-7085c27bdeb0","format":"uuid"},"run_id":{"type":"string","description":"Identifier of latest processing workflow run","example":"80434265-1caf-11ee-b3da-7085c27bdeb0","format":"uuid"},"started_at":{"type":"string","description":"Start datetime","example":"2001-08-02T19:18:49Z","format":"date-time"},"status":{"type":"string","description":"Status of the collection","default":"new","example":"new","enum":["new","in progress","done","error","unknown","queued","pending","abandoned"]},"transfer_id":{"type":"string","description":"Identifier of Archivematica transfer","example":"80434394-1caf-11ee-b3da-7085c27bdeb0","format":"uuid"},"workflow_id":{"type":"string","description":"Identifier of processing workflow","example":"80434124-1caf-11ee-b3da-7085c27bdeb0","format":"uuid"}},"description":"ShowResponseBody result type (default view)","example":{"aip_id":"80436869-1caf-11ee-b3da-7085c27bdeb0","completed_at":"2005-09-09T14:24:39Z","created_at":"2007-10-14T22:27:23Z","id":9029712482372070690,"name":"Ipsam adipisci voluptas fugit aut.","original_id":"Consequatur magnam.","pipeline_id":"80436cbe-1caf-11ee-b3da-7085c27bdeb0","run_id":"80436056-1caf-11ee-b3da-7085c27bdeb0","started_at":"1972-09-08T06:52:05Z","status":"pending","transfer_id":"8043645a-1caf-11ee-b3da-7085c27bdeb0","workflow_id":"80435bb4-1caf-11ee-b3da-7085c27bdeb0"},"required":["id","status","created_at"]},"CollectionWorkflowNotFoundResponseBody":{"title":"CollectionWorkflowNotFoundResponseBody","type":"object","properties":{"id":{"type":"integer","description":"Identifier of missing collection","example":5069398403880905247,"format":"int64"},"message":{"type":"string","description":"Message of error","example":"Iusto modi quis distinctio."}},"description":"Collection not found","example":{"id":6957179250620142883,"message":"A a odit architecto quisquam nisi recusandae."},"required":["message","id"]},"CollectionWorkflowResponseBody":{"title":"Mediatype identifier: application/vnd.enduro.collection-workflow-status; view=default","type":"object","properties":{"history":{"$ref":"#/definitions/EnduroCollectionWorkflowHistoryResponseBodyCollection"},"status":{"type":"string","example":"Aut voluptatibus."}},"description":"WorkflowResponseBody result type (default view)","example":{"history":[{"details":"Ut eveniet et rerum nemo corporis.","id":9720827093168823906,"type":"Omnis doloremque sint dolorum quasi ex labore."},{"details":"Ut eveniet et rerum nemo corporis.","id":9720827093168823906,"type":"Omnis doloremque sint dolorum quasi ex labore."},{"details":"Ut eveniet et rerum nemo corporis.","id":9720827093168823906,"type":"Omnis doloremque sint dolorum quasi ex labore."},{"details":"Ut eveniet et rerum nemo corporis.","id":9720827093168823906,"type":"Omnis doloremque sint dolorum quasi ex labore."}],"status":"Explicabo perferendis sunt quas eos odio aut."}},"EnduroCollectionWorkflowHistoryResponseBody":{"title":"Mediatype identifier: application/vnd.enduro.collection-workflow-history; view=default","type":"object","properties":{"details":{"type":"string","description":"Contents of the event","example":"Quis itaque.","format":"binary"},"id":{"type":"integer","description":"Identifier of collection","example":13704534446480092276,"format":"int64"},"type":{"type":"string","description":"Type of the event","example":"Quaerat voluptatum necessitatibus non cum."}},"description":"WorkflowHistoryEvent describes a history event in Temporal. (default view)","example":{"details":"Quibusdam natus aut animi praesentium cupiditate.","id":4511670572085541767,"type":"Quasi dolor veritatis voluptatem dicta."}},"EnduroCollectionWorkflowHistoryResponseBodyCollection":{"title":"Mediatype identifier: application/vnd.enduro.collection-workflow-history; type=collection; view=default","type":"array","items":{"$ref":"#/definitions/EnduroCollectionWorkflowHistoryResponseBody"},"description":"EnduroCollection-Workflow-HistoryCollectionResponseBody is the result type for an array of EnduroCollection-Workflow-HistoryResponseBody (default view)","example":[{"details":"Ut eveniet et rerum nemo corporis.","id":9720827093168823906,"type":"Omnis doloremque sint dolorum quasi ex labore."},{"details":"Ut eveniet et rerum nemo corporis.","id":9720827093168823906,"type":"Omnis doloremque sint dolorum quasi ex labore."},{"details":"Ut eveniet et rerum nemo corporis.","id":9720827093168823906,"type":"Omnis doloremque sint dolorum quasi ex labore."}]},"EnduroStoredCollectionResponseBody":{"title":"Mediatype identifier: application/vnd.enduro.stored-collection; view=default","type":"object","properties":{"aip_id":{"type":"string","description":"Identifier of Archivematica AIP","example":"80432d2b-1caf-11ee-b3da-7085c27bdeb0","format":"uuid"},"completed_at":{"type":"string","description":"Completion datetime","example":"1978-11-18T10:22:37Z","format":"date-time"},"created_at":{"type":"string","description":"Creation datetime","example":"1992-11-28T22:46:05Z","format":"date-time"},"id":{"type":"integer","description":"Identifier of collection","example":16783261364902862921,"format":"int64"},"name":{"type":"string","description":"Name of the collection","example":"Quia ut commodi nihil."},"original_id":{"type":"string","description":"Identifier provided by the client","example":"Dolores ipsam facilis adipisci."},"pipeline_id":{"type":"string","description":"Identifier of Archivematica pipeline","example":"80432e77-1caf-11ee-b3da-7085c27bdeb0","format":"uuid"},"run_id":{"type":"string","description":"Identifier of latest processing workflow run","example":"80432aac-1caf-11ee-b3da-7085c27bdeb0","format":"uuid"},"started_at":{"type":"string","description":"Start datetime","example":"1974-07-18T05:21:30Z","format":"date-time"},"status":{"type":"string","description":"Status of the collection","default":"new","example":"queued","enum":["new","in progress","done","error","unknown","queued","pending","abandoned"]},"transfer_id":{"type":"string","description":"Identifier of Archivematica transfer","example":"80432bee-1caf-11ee-b3da-7085c27bdeb0","format":"uuid"},"workflow_id":{"type":"string","description":"Identifier of processing workflow","example":"80432955-1caf-11ee-b3da-7085c27bdeb0","format":"uuid"}},"description":"StoredCollection describes a collection retrieved by the service. (default view)","example":{"aip_id":"804336d7-1caf-11ee-b3da-7085c27bdeb0","completed_at":"1992-09-23T06:18:58Z","created_at":"1983-06-28T18:36:02Z","id":828828406215854043,"name":"Nostrum aut deserunt.","original_id":"Animi praesentium omnis dignissimos cumque omnis.","pipeline_id":"804337fe-1caf-11ee-b3da-7085c27bdeb0","run_id":"8043347d-1caf-11ee-b3da-7085c27bdeb0","started_at":"2007-09-04T21:44:52Z","status":"unknown","transfer_id":"804335b2-1caf-11ee-b3da-7085c27bdeb0","workflow_id":"80433365-1caf-11ee-b3da-7085c27bdeb0"},"required":["id","status","created_at"]},"EnduroStoredCollectionResponseBodyCollection":{"title":"Mediatype identifier: application/vnd.enduro.stored-collection; type=collection; view=default","type":"array","items":{"$ref":"#/definitions/EnduroStoredCollectionResponseBody"},"description":"EnduroStored-CollectionCollectionResponseBody is the result type for an array of EnduroStored-CollectionResponseBody (default view)","example":[{"aip_id":"8041740a-1caf-11ee-b3da-7085c27bdeb0","completed_at":"1997-08-27T00:00:04Z","created_at":"1989-09-24T08:53:28Z","id":4957819645449742263,"name":"Labore totam harum repellat.","original_id":"Nostrum delectus dolor nisi.","pipeline_id":"8041753e-1caf-11ee-b3da-7085c27bdeb0","run_id":"80417126-1caf-11ee-b3da-7085c27bdeb0","started_at":"1998-02-12T04:24:46Z","status":"unknown","transfer_id":"804172a0-1caf-11ee-b3da-7085c27bdeb0","workflow_id":"80416fcd-1caf-11ee-b3da-7085c27bdeb0"},{"aip_id":"8041740a-1caf-11ee-b3da-7085c27bdeb0","completed_at":"1997-08-27T00:00:04Z","created_at":"1989-09-24T08:53:28Z","id":4957819645449742263,"name":"Labore totam harum repellat.","original_id":"Nostrum delectus dolor nisi.","pipeline_id":"8041753e-1caf-11ee-b3da-7085c27bdeb0","run_id":"80417126-1caf-11ee-b3da-7085c27bdeb0","started_at":"1998-02-12T04:24:46Z","status":"unknown","transfer_id":"804172a0-1caf-11ee-b3da-7085c27bdeb0","workflow_id":"80416fcd-1caf-11ee-b3da-7085c27bdeb0"},{"aip_id":"8041740a-1caf-11ee-b3da-7085c27bdeb0","completed_at":"1997-08-27T00:00:04Z","created_at":"1989-09-24T08:53:28Z","id":4957819645449742263,"name":"Labore totam harum repellat.","original_id":"Nostrum delectus dolor nisi.","pipeline_id":"8041753e-1caf-11ee-b3da-7085c27bdeb0","run_id":"80417126-1caf-11ee-b3da-7085c27bdeb0","started_at":"1998-02-12T04:24:46Z","status":"unknown","transfer_id":"804172a0-1caf-11ee-b3da-7085c27bdeb0","workflow_id":"80416fcd-1caf-11ee-b3da-7085c27bdeb0"}]},"EnduroStoredPipelineResponse":{"title":"Mediatype identifier: application/vnd.enduro.stored-pipeline; view=default","type":"object","properties":{"capacity":{"type":"integer","description":"Maximum concurrent transfers","example":6985482064020189961,"format":"int64"},"current":{"type":"integer","description":"Current transfers","example":3701726448145747138,"format":"int64"},"id":{"type":"string","description":"Identifier of the pipeline","example":"8044489b-1caf-11ee-b3da-7085c27bdeb0","format":"uuid"},"name":{"type":"string","description":"Name of the pipeline","example":"Veniam totam."},"status":{"type":"string","example":"Qui ipsa."}},"description":"StoredPipeline describes a pipeline retrieved by this service. (default view)","example":{"capacity":7322691743128068194,"current":72660884889227336,"id":"80445c22-1caf-11ee-b3da-7085c27bdeb0","name":"Tempore et eligendi laudantium ea illo hic.","status":"Id minima velit provident explicabo consequatur."},"required":["name"]},"PipelineProcessingNotFoundResponseBody":{"title":"PipelineProcessingNotFoundResponseBody","type":"object","properties":{"id":{"type":"string","description":"Identifier of missing pipeline","example":"Inventore impedit voluptates vel omnis id."},"message":{"type":"string","description":"Message of error","example":"Autem adipisci suscipit distinctio qui harum totam."}},"description":"Pipeline not found","example":{"id":"Inventore hic voluptates eos distinctio sed.","message":"Quia praesentium incidunt."},"required":["message","id"]},"PipelineShowNotFoundResponseBody":{"title":"PipelineShowNotFoundResponseBody","type":"object","properties":{"id":{"type":"string","description":"Identifier of missing pipeline","example":"Ut tenetur dolorum error aut quibusdam."},"message":{"type":"string","description":"Message of error","example":"Veniam omnis dolores sed."}},"description":"Pipeline not found","example":{"id":"Sed sunt molestiae animi et aliquid voluptatem.","message":"Ut hic."},"required":["message","id"]},"PipelineShowResponseBody":{"title":"Mediatype identifier: application/vnd.enduro.stored-pipeline; view=default","type":"object","properties":{"capacity":{"type":"integer","description":"Maximum concurrent transfers","example":4612770856566959488,"format":"int64"},"current":{"type":"integer","description":"Current transfers","example":1302819909344103813,"format":"int64"},"id":{"type":"string","description":"Identifier of the pipeline","example":"804463a7-1caf-11ee-b3da-7085c27bdeb0","format":"uuid"},"name":{"type":"string","description":"Name of the pipeline","example":"Illum autem accusamus."},"status":{"type":"string","example":"Qui tempora itaque illum vitae aliquid quia."}},"description":"ShowResponseBody result type (default view)","example":{"capacity":1349942446066623917,"current":3978574075782434602,"id":"8044792b-1caf-11ee-b3da-7085c27bdeb0","name":"Eveniet quam consequatur eveniet.","status":"Similique unde molestiae esse consequatur reprehenderit."},"required":["name"]}}} \ No newline at end of file diff --git a/internal/api/gen/http/openapi.yaml b/internal/api/gen/http/openapi.yaml index f3057453..c351f74b 100644 --- a/internal/api/gen/http/openapi.yaml +++ b/internal/api/gen/http/openapi.yaml @@ -277,9 +277,13 @@ paths: responses: "200": description: OK response. - schema: - type: string - format: byte + headers: + Content-Disposition: + type: string + Content-Length: + type: int64 + Content-Type: + type: string "404": description: Not Found response. schema: @@ -1026,54 +1030,54 @@ definitions: example: Cum in aliquam aliquid non tempore vel. example: items: - - aip_id: 3aa0d6b1-1c21-11ee-bb08-7085c27bdeb0 + - aip_id: 8040c16f-1caf-11ee-b3da-7085c27bdeb0 completed_at: "2014-01-26T22:52:33Z" created_at: "2006-09-07T19:48:15Z" id: 5273261262554249024 name: Iusto laudantium assumenda. original_id: Voluptatem eum et rerum. - pipeline_id: 3aa0d854-1c21-11ee-bb08-7085c27bdeb0 - run_id: 3aa0d415-1c21-11ee-bb08-7085c27bdeb0 + pipeline_id: 8040c2e5-1caf-11ee-b3da-7085c27bdeb0 + run_id: 8040be91-1caf-11ee-b3da-7085c27bdeb0 started_at: "1986-05-13T23:32:21Z" status: unknown - transfer_id: 3aa0d569-1c21-11ee-bb08-7085c27bdeb0 - workflow_id: 3aa0be66-1c21-11ee-bb08-7085c27bdeb0 - - aip_id: 3aa0d6b1-1c21-11ee-bb08-7085c27bdeb0 + transfer_id: 8040c023-1caf-11ee-b3da-7085c27bdeb0 + workflow_id: 8040a720-1caf-11ee-b3da-7085c27bdeb0 + - aip_id: 8040c16f-1caf-11ee-b3da-7085c27bdeb0 completed_at: "2014-01-26T22:52:33Z" created_at: "2006-09-07T19:48:15Z" id: 5273261262554249024 name: Iusto laudantium assumenda. original_id: Voluptatem eum et rerum. - pipeline_id: 3aa0d854-1c21-11ee-bb08-7085c27bdeb0 - run_id: 3aa0d415-1c21-11ee-bb08-7085c27bdeb0 + pipeline_id: 8040c2e5-1caf-11ee-b3da-7085c27bdeb0 + run_id: 8040be91-1caf-11ee-b3da-7085c27bdeb0 started_at: "1986-05-13T23:32:21Z" status: unknown - transfer_id: 3aa0d569-1c21-11ee-bb08-7085c27bdeb0 - workflow_id: 3aa0be66-1c21-11ee-bb08-7085c27bdeb0 - - aip_id: 3aa0d6b1-1c21-11ee-bb08-7085c27bdeb0 + transfer_id: 8040c023-1caf-11ee-b3da-7085c27bdeb0 + workflow_id: 8040a720-1caf-11ee-b3da-7085c27bdeb0 + - aip_id: 8040c16f-1caf-11ee-b3da-7085c27bdeb0 completed_at: "2014-01-26T22:52:33Z" created_at: "2006-09-07T19:48:15Z" id: 5273261262554249024 name: Iusto laudantium assumenda. original_id: Voluptatem eum et rerum. - pipeline_id: 3aa0d854-1c21-11ee-bb08-7085c27bdeb0 - run_id: 3aa0d415-1c21-11ee-bb08-7085c27bdeb0 + pipeline_id: 8040c2e5-1caf-11ee-b3da-7085c27bdeb0 + run_id: 8040be91-1caf-11ee-b3da-7085c27bdeb0 started_at: "1986-05-13T23:32:21Z" status: unknown - transfer_id: 3aa0d569-1c21-11ee-bb08-7085c27bdeb0 - workflow_id: 3aa0be66-1c21-11ee-bb08-7085c27bdeb0 - - aip_id: 3aa0d6b1-1c21-11ee-bb08-7085c27bdeb0 + transfer_id: 8040c023-1caf-11ee-b3da-7085c27bdeb0 + workflow_id: 8040a720-1caf-11ee-b3da-7085c27bdeb0 + - aip_id: 8040c16f-1caf-11ee-b3da-7085c27bdeb0 completed_at: "2014-01-26T22:52:33Z" created_at: "2006-09-07T19:48:15Z" id: 5273261262554249024 name: Iusto laudantium assumenda. original_id: Voluptatem eum et rerum. - pipeline_id: 3aa0d854-1c21-11ee-bb08-7085c27bdeb0 - run_id: 3aa0d415-1c21-11ee-bb08-7085c27bdeb0 + pipeline_id: 8040c2e5-1caf-11ee-b3da-7085c27bdeb0 + run_id: 8040be91-1caf-11ee-b3da-7085c27bdeb0 started_at: "1986-05-13T23:32:21Z" status: unknown - transfer_id: 3aa0d569-1c21-11ee-bb08-7085c27bdeb0 - workflow_id: 3aa0be66-1c21-11ee-bb08-7085c27bdeb0 + transfer_id: 8040c023-1caf-11ee-b3da-7085c27bdeb0 + workflow_id: 8040a720-1caf-11ee-b3da-7085c27bdeb0 next_cursor: Non cupiditate. required: - items @@ -1096,18 +1100,18 @@ definitions: example: id: 2274206577310456200 item: - aip_id: 3aa1790a-1c21-11ee-bb08-7085c27bdeb0 + aip_id: 8041740a-1caf-11ee-b3da-7085c27bdeb0 completed_at: "1997-08-27T00:00:04Z" created_at: "1989-09-24T08:53:28Z" id: 4957819645449742263 name: Labore totam harum repellat. original_id: Nostrum delectus dolor nisi. - pipeline_id: 3aa17a49-1c21-11ee-bb08-7085c27bdeb0 - run_id: 3aa17689-1c21-11ee-bb08-7085c27bdeb0 + pipeline_id: 8041753e-1caf-11ee-b3da-7085c27bdeb0 + run_id: 80417126-1caf-11ee-b3da-7085c27bdeb0 started_at: "1998-02-12T04:24:46Z" status: unknown - transfer_id: 3aa177ba-1c21-11ee-bb08-7085c27bdeb0 - workflow_id: 3aa1753b-1c21-11ee-bb08-7085c27bdeb0 + transfer_id: 804172a0-1caf-11ee-b3da-7085c27bdeb0 + workflow_id: 80416fcd-1caf-11ee-b3da-7085c27bdeb0 type: Quam vitae odio non laborum. required: - id @@ -1202,7 +1206,7 @@ definitions: aip_id: type: string description: Identifier of Archivematica AIP - example: 3aa324e2-1c21-11ee-bb08-7085c27bdeb0 + example: 804344b4-1caf-11ee-b3da-7085c27bdeb0 format: uuid completed_at: type: string @@ -1230,12 +1234,12 @@ definitions: pipeline_id: type: string description: Identifier of Archivematica pipeline - example: 3aa32634-1c21-11ee-bb08-7085c27bdeb0 + example: 80434978-1caf-11ee-b3da-7085c27bdeb0 format: uuid run_id: type: string description: Identifier of latest processing workflow run - example: 3aa3229a-1c21-11ee-bb08-7085c27bdeb0 + example: 80434265-1caf-11ee-b3da-7085c27bdeb0 format: uuid started_at: type: string @@ -1259,27 +1263,27 @@ definitions: transfer_id: type: string description: Identifier of Archivematica transfer - example: 3aa323c5-1c21-11ee-bb08-7085c27bdeb0 + example: 80434394-1caf-11ee-b3da-7085c27bdeb0 format: uuid workflow_id: type: string description: Identifier of processing workflow - example: 3aa32167-1c21-11ee-bb08-7085c27bdeb0 + example: 80434124-1caf-11ee-b3da-7085c27bdeb0 format: uuid description: ShowResponseBody result type (default view) example: - aip_id: 3aa32e79-1c21-11ee-bb08-7085c27bdeb0 + aip_id: 80436869-1caf-11ee-b3da-7085c27bdeb0 completed_at: "2005-09-09T14:24:39Z" created_at: "2007-10-14T22:27:23Z" id: 9029712482372070690 name: Ipsam adipisci voluptas fugit aut. original_id: Consequatur magnam. - pipeline_id: 3aa32fc2-1c21-11ee-bb08-7085c27bdeb0 - run_id: 3aa32c4a-1c21-11ee-bb08-7085c27bdeb0 + pipeline_id: 80436cbe-1caf-11ee-b3da-7085c27bdeb0 + run_id: 80436056-1caf-11ee-b3da-7085c27bdeb0 started_at: "1972-09-08T06:52:05Z" status: pending - transfer_id: 3aa32d61-1c21-11ee-bb08-7085c27bdeb0 - workflow_id: 3aa32b2a-1c21-11ee-bb08-7085c27bdeb0 + transfer_id: 8043645a-1caf-11ee-b3da-7085c27bdeb0 + workflow_id: 80435bb4-1caf-11ee-b3da-7085c27bdeb0 required: - id - status @@ -1375,7 +1379,7 @@ definitions: aip_id: type: string description: Identifier of Archivematica AIP - example: 3aa30d16-1c21-11ee-bb08-7085c27bdeb0 + example: 80432d2b-1caf-11ee-b3da-7085c27bdeb0 format: uuid completed_at: type: string @@ -1403,12 +1407,12 @@ definitions: pipeline_id: type: string description: Identifier of Archivematica pipeline - example: 3aa30eaf-1c21-11ee-bb08-7085c27bdeb0 + example: 80432e77-1caf-11ee-b3da-7085c27bdeb0 format: uuid run_id: type: string description: Identifier of latest processing workflow run - example: 3aa30a79-1c21-11ee-bb08-7085c27bdeb0 + example: 80432aac-1caf-11ee-b3da-7085c27bdeb0 format: uuid started_at: type: string @@ -1432,27 +1436,27 @@ definitions: transfer_id: type: string description: Identifier of Archivematica transfer - example: 3aa30bda-1c21-11ee-bb08-7085c27bdeb0 + example: 80432bee-1caf-11ee-b3da-7085c27bdeb0 format: uuid workflow_id: type: string description: Identifier of processing workflow - example: 3aa30919-1c21-11ee-bb08-7085c27bdeb0 + example: 80432955-1caf-11ee-b3da-7085c27bdeb0 format: uuid description: StoredCollection describes a collection retrieved by the service. (default view) example: - aip_id: 3aa317af-1c21-11ee-bb08-7085c27bdeb0 + aip_id: 804336d7-1caf-11ee-b3da-7085c27bdeb0 completed_at: "1992-09-23T06:18:58Z" created_at: "1983-06-28T18:36:02Z" id: 828828406215854043 name: Nostrum aut deserunt. original_id: Animi praesentium omnis dignissimos cumque omnis. - pipeline_id: 3aa318dd-1c21-11ee-bb08-7085c27bdeb0 - run_id: 3aa3154d-1c21-11ee-bb08-7085c27bdeb0 + pipeline_id: 804337fe-1caf-11ee-b3da-7085c27bdeb0 + run_id: 8043347d-1caf-11ee-b3da-7085c27bdeb0 started_at: "2007-09-04T21:44:52Z" status: unknown - transfer_id: 3aa31673-1c21-11ee-bb08-7085c27bdeb0 - workflow_id: 3aa31428-1c21-11ee-bb08-7085c27bdeb0 + transfer_id: 804335b2-1caf-11ee-b3da-7085c27bdeb0 + workflow_id: 80433365-1caf-11ee-b3da-7085c27bdeb0 required: - id - status @@ -1464,42 +1468,42 @@ definitions: $ref: '#/definitions/EnduroStoredCollectionResponseBody' description: EnduroStored-CollectionCollectionResponseBody is the result type for an array of EnduroStored-CollectionResponseBody (default view) example: - - aip_id: 3aa1790a-1c21-11ee-bb08-7085c27bdeb0 + - aip_id: 8041740a-1caf-11ee-b3da-7085c27bdeb0 completed_at: "1997-08-27T00:00:04Z" created_at: "1989-09-24T08:53:28Z" id: 4957819645449742263 name: Labore totam harum repellat. original_id: Nostrum delectus dolor nisi. - pipeline_id: 3aa17a49-1c21-11ee-bb08-7085c27bdeb0 - run_id: 3aa17689-1c21-11ee-bb08-7085c27bdeb0 + pipeline_id: 8041753e-1caf-11ee-b3da-7085c27bdeb0 + run_id: 80417126-1caf-11ee-b3da-7085c27bdeb0 started_at: "1998-02-12T04:24:46Z" status: unknown - transfer_id: 3aa177ba-1c21-11ee-bb08-7085c27bdeb0 - workflow_id: 3aa1753b-1c21-11ee-bb08-7085c27bdeb0 - - aip_id: 3aa1790a-1c21-11ee-bb08-7085c27bdeb0 + transfer_id: 804172a0-1caf-11ee-b3da-7085c27bdeb0 + workflow_id: 80416fcd-1caf-11ee-b3da-7085c27bdeb0 + - aip_id: 8041740a-1caf-11ee-b3da-7085c27bdeb0 completed_at: "1997-08-27T00:00:04Z" created_at: "1989-09-24T08:53:28Z" id: 4957819645449742263 name: Labore totam harum repellat. original_id: Nostrum delectus dolor nisi. - pipeline_id: 3aa17a49-1c21-11ee-bb08-7085c27bdeb0 - run_id: 3aa17689-1c21-11ee-bb08-7085c27bdeb0 + pipeline_id: 8041753e-1caf-11ee-b3da-7085c27bdeb0 + run_id: 80417126-1caf-11ee-b3da-7085c27bdeb0 started_at: "1998-02-12T04:24:46Z" status: unknown - transfer_id: 3aa177ba-1c21-11ee-bb08-7085c27bdeb0 - workflow_id: 3aa1753b-1c21-11ee-bb08-7085c27bdeb0 - - aip_id: 3aa1790a-1c21-11ee-bb08-7085c27bdeb0 + transfer_id: 804172a0-1caf-11ee-b3da-7085c27bdeb0 + workflow_id: 80416fcd-1caf-11ee-b3da-7085c27bdeb0 + - aip_id: 8041740a-1caf-11ee-b3da-7085c27bdeb0 completed_at: "1997-08-27T00:00:04Z" created_at: "1989-09-24T08:53:28Z" id: 4957819645449742263 name: Labore totam harum repellat. original_id: Nostrum delectus dolor nisi. - pipeline_id: 3aa17a49-1c21-11ee-bb08-7085c27bdeb0 - run_id: 3aa17689-1c21-11ee-bb08-7085c27bdeb0 + pipeline_id: 8041753e-1caf-11ee-b3da-7085c27bdeb0 + run_id: 80417126-1caf-11ee-b3da-7085c27bdeb0 started_at: "1998-02-12T04:24:46Z" status: unknown - transfer_id: 3aa177ba-1c21-11ee-bb08-7085c27bdeb0 - workflow_id: 3aa1753b-1c21-11ee-bb08-7085c27bdeb0 + transfer_id: 804172a0-1caf-11ee-b3da-7085c27bdeb0 + workflow_id: 80416fcd-1caf-11ee-b3da-7085c27bdeb0 EnduroStoredPipelineResponse: title: 'Mediatype identifier: application/vnd.enduro.stored-pipeline; view=default' type: object @@ -1517,7 +1521,7 @@ definitions: id: type: string description: Identifier of the pipeline - example: 3aa34822-1c21-11ee-bb08-7085c27bdeb0 + example: 8044489b-1caf-11ee-b3da-7085c27bdeb0 format: uuid name: type: string @@ -1530,7 +1534,7 @@ definitions: example: capacity: 7322691743128068194 current: 72660884889227336 - id: 3aa34991-1c21-11ee-bb08-7085c27bdeb0 + id: 80445c22-1caf-11ee-b3da-7085c27bdeb0 name: Tempore et eligendi laudantium ea illo hic. status: Id minima velit provident explicabo consequatur. required: @@ -1590,7 +1594,7 @@ definitions: id: type: string description: Identifier of the pipeline - example: 3aa34bb3-1c21-11ee-bb08-7085c27bdeb0 + example: 804463a7-1caf-11ee-b3da-7085c27bdeb0 format: uuid name: type: string @@ -1603,7 +1607,7 @@ definitions: example: capacity: 1349942446066623917 current: 3978574075782434602 - id: 3aa34d72-1c21-11ee-bb08-7085c27bdeb0 + id: 8044792b-1caf-11ee-b3da-7085c27bdeb0 name: Eveniet quam consequatur eveniet. status: Similique unde molestiae esse consequatur reprehenderit. required: diff --git a/internal/api/gen/http/openapi3.json b/internal/api/gen/http/openapi3.json index 67545369..11a769da 100644 --- a/internal/api/gen/http/openapi3.json +++ b/internal/api/gen/http/openapi3.json @@ -1 +1 @@ -{"openapi":"3.0.3","info":{"title":"Enduro API","version":"1.0"},"servers":[{"url":"http://localhost:9000"}],"paths":{"/batch":{"get":{"tags":["batch"],"summary":"status batch","description":"Retrieve status of current batch operation.","operationId":"batch#status","responses":{"200":{"description":"OK response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BatchStatusResult"},"example":{"run_id":"Vel sint ducimus officia labore eius qui.","running":true,"status":"Nam sed nostrum enim laborum ea facilis.","workflow_id":"Dolor illum excepturi magni quidem."}}}}}},"post":{"tags":["batch"],"summary":"submit batch","description":"Submit a new batch","operationId":"batch#submit","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SubmitRequestBody"},"example":{"completed_dir":"Laboriosam odit.","path":"Laboriosam nam sit nihil.","pipeline":"Necessitatibus vel aut deleniti quia qui.","processing_config":"Vel voluptatem.","retention_period":"Sed perferendis illum illum omnis et officiis."}}}},"responses":{"202":{"description":"Accepted response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BatchResult"},"example":{"run_id":"Debitis rerum.","workflow_id":"Velit possimus et ea aut harum."}}}},"400":{"description":"not_valid: Bad Request response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"not_available: Conflict response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/batch/hints":{"get":{"tags":["batch"],"summary":"hints batch","description":"Retrieve form hints","operationId":"batch#hints","responses":{"200":{"description":"OK response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BatchHintsResult"},"example":{"completed_dirs":["Impedit vero ducimus.","Quo illo natus et.","Eaque suscipit in cum et quia facere.","Doloribus sed tempore voluptatum quo."]}}}}}}},"/collection":{"get":{"tags":["collection"],"summary":"list collection","description":"List all stored collections","operationId":"collection#list","parameters":[{"name":"name","in":"query","allowEmptyValue":true,"schema":{"type":"string","example":"Dolorem rerum ullam provident hic aut."},"example":"Magni blanditiis sequi sunt neque velit."},{"name":"original_id","in":"query","allowEmptyValue":true,"schema":{"type":"string","example":"Ducimus minima totam veritatis."},"example":"Aliquam unde sit omnis quos."},{"name":"transfer_id","in":"query","allowEmptyValue":true,"schema":{"type":"string","example":"3aa38b35-1c21-11ee-bb08-7085c27bdeb0","format":"uuid"},"example":"3aa38c90-1c21-11ee-bb08-7085c27bdeb0"},{"name":"aip_id","in":"query","allowEmptyValue":true,"schema":{"type":"string","example":"3aa38de7-1c21-11ee-bb08-7085c27bdeb0","format":"uuid"},"example":"3aa38f17-1c21-11ee-bb08-7085c27bdeb0"},{"name":"pipeline_id","in":"query","allowEmptyValue":true,"schema":{"type":"string","example":"3aa3903e-1c21-11ee-bb08-7085c27bdeb0","format":"uuid"},"example":"3aa3916a-1c21-11ee-bb08-7085c27bdeb0"},{"name":"earliest_created_time","in":"query","allowEmptyValue":true,"schema":{"type":"string","example":"1997-12-25T18:16:26Z","format":"date-time"},"example":"1979-05-02T21:10:22Z"},{"name":"latest_created_time","in":"query","allowEmptyValue":true,"schema":{"type":"string","example":"1999-12-17T11:47:57Z","format":"date-time"},"example":"2014-10-13T03:53:49Z"},{"name":"status","in":"query","allowEmptyValue":true,"schema":{"type":"string","example":"done","enum":["new","in progress","done","error","unknown","queued","pending","abandoned"]},"example":"in progress"},{"name":"cursor","in":"query","description":"Pagination cursor","allowEmptyValue":true,"schema":{"type":"string","description":"Pagination cursor","example":"In ut qui aut quo."},"example":"Sunt iste facilis rerum inventore architecto tempora."}],"responses":{"200":{"description":"OK response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListResponseBody"},"example":{"items":[{"aip_id":"3aa0d6b1-1c21-11ee-bb08-7085c27bdeb0","completed_at":"2014-01-26T22:52:33Z","created_at":"2006-09-07T19:48:15Z","id":5273261262554249024,"name":"Iusto laudantium assumenda.","original_id":"Voluptatem eum et rerum.","pipeline_id":"3aa0d854-1c21-11ee-bb08-7085c27bdeb0","run_id":"3aa0d415-1c21-11ee-bb08-7085c27bdeb0","started_at":"1986-05-13T23:32:21Z","status":"unknown","transfer_id":"3aa0d569-1c21-11ee-bb08-7085c27bdeb0","workflow_id":"3aa0be66-1c21-11ee-bb08-7085c27bdeb0"},{"aip_id":"3aa0d6b1-1c21-11ee-bb08-7085c27bdeb0","completed_at":"2014-01-26T22:52:33Z","created_at":"2006-09-07T19:48:15Z","id":5273261262554249024,"name":"Iusto laudantium assumenda.","original_id":"Voluptatem eum et rerum.","pipeline_id":"3aa0d854-1c21-11ee-bb08-7085c27bdeb0","run_id":"3aa0d415-1c21-11ee-bb08-7085c27bdeb0","started_at":"1986-05-13T23:32:21Z","status":"unknown","transfer_id":"3aa0d569-1c21-11ee-bb08-7085c27bdeb0","workflow_id":"3aa0be66-1c21-11ee-bb08-7085c27bdeb0"},{"aip_id":"3aa0d6b1-1c21-11ee-bb08-7085c27bdeb0","completed_at":"2014-01-26T22:52:33Z","created_at":"2006-09-07T19:48:15Z","id":5273261262554249024,"name":"Iusto laudantium assumenda.","original_id":"Voluptatem eum et rerum.","pipeline_id":"3aa0d854-1c21-11ee-bb08-7085c27bdeb0","run_id":"3aa0d415-1c21-11ee-bb08-7085c27bdeb0","started_at":"1986-05-13T23:32:21Z","status":"unknown","transfer_id":"3aa0d569-1c21-11ee-bb08-7085c27bdeb0","workflow_id":"3aa0be66-1c21-11ee-bb08-7085c27bdeb0"},{"aip_id":"3aa0d6b1-1c21-11ee-bb08-7085c27bdeb0","completed_at":"2014-01-26T22:52:33Z","created_at":"2006-09-07T19:48:15Z","id":5273261262554249024,"name":"Iusto laudantium assumenda.","original_id":"Voluptatem eum et rerum.","pipeline_id":"3aa0d854-1c21-11ee-bb08-7085c27bdeb0","run_id":"3aa0d415-1c21-11ee-bb08-7085c27bdeb0","started_at":"1986-05-13T23:32:21Z","status":"unknown","transfer_id":"3aa0d569-1c21-11ee-bb08-7085c27bdeb0","workflow_id":"3aa0be66-1c21-11ee-bb08-7085c27bdeb0"}],"next_cursor":"Ad aut rerum."}}}}}}},"/collection/bulk":{"get":{"tags":["collection"],"summary":"bulk_status collection","description":"Retrieve status of current bulk operation.","operationId":"collection#bulk_status","responses":{"200":{"description":"OK response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BulkStatusResult"},"example":{"closed_at":"1983-11-09T08:33:50Z","run_id":"Officiis eum pariatur.","running":false,"started_at":"2006-08-01T01:39:09Z","status":"Repellat architecto dolore harum.","workflow_id":"Excepturi dolor aut rerum."}}}}}},"post":{"tags":["collection"],"summary":"bulk collection","description":"Bulk operations (retry, cancel...).","operationId":"collection#bulk","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BulkRequestBody"},"example":{"operation":"cancel","size":15492129042979125718,"status":"in progress"}}}},"responses":{"202":{"description":"Accepted response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BatchResult"},"example":{"run_id":"Deserunt illum et tempora.","workflow_id":"Explicabo et numquam aut dolores et voluptas."}}}},"400":{"description":"not_valid: Bad Request response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"not_available: Conflict response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/collection/monitor":{"get":{"tags":["collection"],"summary":"monitor collection","operationId":"collection#monitor","responses":{"101":{"description":"Switching Protocols response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EnduroMonitorUpdate"},"example":{"id":2293355532387428117,"item":{"aip_id":"3aa0d6b1-1c21-11ee-bb08-7085c27bdeb0","completed_at":"2014-01-26T22:52:33Z","created_at":"2006-09-07T19:48:15Z","id":5273261262554249024,"name":"Iusto laudantium assumenda.","original_id":"Voluptatem eum et rerum.","pipeline_id":"3aa0d854-1c21-11ee-bb08-7085c27bdeb0","run_id":"3aa0d415-1c21-11ee-bb08-7085c27bdeb0","started_at":"1986-05-13T23:32:21Z","status":"unknown","transfer_id":"3aa0d569-1c21-11ee-bb08-7085c27bdeb0","workflow_id":"3aa0be66-1c21-11ee-bb08-7085c27bdeb0"},"type":"Deleniti ea tenetur deleniti."}}}}}}},"/collection/{id}":{"delete":{"tags":["collection"],"summary":"delete collection","description":"Delete collection by ID","operationId":"collection#delete","parameters":[{"name":"id","in":"path","description":"Identifier of collection to delete","required":true,"schema":{"type":"integer","description":"Identifier of collection to delete","example":17387408872735771929},"example":18321251186215423685}],"responses":{"204":{"description":"No Content response."},"404":{"description":"not_found: Collection not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CollectionNotfound"}}}}}},"get":{"tags":["collection"],"summary":"show collection","description":"Show collection by ID","operationId":"collection#show","parameters":[{"name":"id","in":"path","description":"Identifier of collection to show","required":true,"schema":{"type":"integer","description":"Identifier of collection to show","example":10131890621733502138},"example":12151494561344357633}],"responses":{"200":{"description":"OK response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EnduroStoredCollection"},"example":{"aip_id":"3aa1cccb-1c21-11ee-bb08-7085c27bdeb0","completed_at":"2000-10-04T09:57:15Z","created_at":"2010-07-22T22:55:51Z","id":12024565834601469556,"name":"Quam quas.","original_id":"Et consequatur aut enim consequuntur debitis temporibus.","pipeline_id":"3aa1ce07-1c21-11ee-bb08-7085c27bdeb0","run_id":"3aa1ca35-1c21-11ee-bb08-7085c27bdeb0","started_at":"2014-07-31T20:44:18Z","status":"queued","transfer_id":"3aa1cb70-1c21-11ee-bb08-7085c27bdeb0","workflow_id":"3aa1c8fb-1c21-11ee-bb08-7085c27bdeb0"}}}},"404":{"description":"not_found: Collection not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CollectionNotfound"}}}}}}},"/collection/{id}/cancel":{"post":{"tags":["collection"],"summary":"cancel collection","description":"Cancel collection processing by ID","operationId":"collection#cancel","parameters":[{"name":"id","in":"path","description":"Identifier of collection to remove","required":true,"schema":{"type":"integer","description":"Identifier of collection to remove","example":8238362425834670988},"example":7926296436146036015}],"responses":{"200":{"description":"OK response.","content":{"application/json":{"schema":{"type":"string","format":"binary"}}}},"400":{"description":"not_running: Bad Request response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"not_found: Collection not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CollectionNotfound"}}}}}}},"/collection/{id}/decision":{"post":{"tags":["collection"],"summary":"decide collection","description":"Make decision for a pending collection by ID","operationId":"collection#decide","parameters":[{"name":"id","in":"path","description":"Identifier of collection to look up","required":true,"schema":{"type":"integer","description":"Identifier of collection to look up","example":9198655460133316854},"example":7412982194674710965}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"option":{"type":"string","description":"Decision option to proceed with","example":"Aut dolorem praesentium asperiores commodi earum neque."}},"example":{"option":"Eaque ipsam."}},"example":{"option":"Excepturi architecto illum et consequatur optio corporis."}}}},"responses":{"200":{"description":"OK response.","content":{"application/json":{"schema":{"type":"string","format":"binary"}}}},"400":{"description":"not_valid: Bad Request response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"not_found: Collection not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CollectionNotfound"}}}}}}},"/collection/{id}/download":{"get":{"tags":["collection"],"summary":"download collection","description":"Download collection by ID","operationId":"collection#download","parameters":[{"name":"id","in":"path","description":"Identifier of collection to look up","required":true,"schema":{"type":"integer","description":"Identifier of collection to look up","example":17608551620639562459},"example":1156397374729870360}],"responses":{"200":{"description":"OK response.","content":{"application/json":{"schema":{"type":"string","example":"SXBzYW0gbmVjZXNzaXRhdGlidXMgc2ltaWxpcXVlIGFkaXBpc2NpIG1hZ25hbSBhbmltaSBhZGlwaXNjaS4=","format":"binary"},"example":"UmVpY2llbmRpcyB2b2x1cHRhcyBkb2xvcnVtLg=="}}},"404":{"description":"not_found: Collection not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CollectionNotfound"}}}}}}},"/collection/{id}/retry":{"post":{"tags":["collection"],"summary":"retry collection","description":"Retry collection processing by ID","operationId":"collection#retry","parameters":[{"name":"id","in":"path","description":"Identifier of collection to retry","required":true,"schema":{"type":"integer","description":"Identifier of collection to retry","example":1414840750630874316},"example":14468688610787245765}],"responses":{"200":{"description":"OK response.","content":{"application/json":{"schema":{"type":"string","format":"binary"}}}},"400":{"description":"not_running: Bad Request response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"not_found: Collection not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CollectionNotfound"}}}}}}},"/collection/{id}/workflow":{"get":{"tags":["collection"],"summary":"workflow collection","description":"Retrieve workflow status by ID","operationId":"collection#workflow","parameters":[{"name":"id","in":"path","description":"Identifier of collection to look up","required":true,"schema":{"type":"integer","description":"Identifier of collection to look up","example":17826339955967178467},"example":15122940082992273340}],"responses":{"200":{"description":"OK response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EnduroCollectionWorkflowStatus"},"example":{"history":[{"details":"In quis sed.","id":2015423930972900414,"type":"Enim esse aut accusantium deleniti beatae voluptas."},{"details":"In quis sed.","id":2015423930972900414,"type":"Enim esse aut accusantium deleniti beatae voluptas."},{"details":"In quis sed.","id":2015423930972900414,"type":"Enim esse aut accusantium deleniti beatae voluptas."},{"details":"In quis sed.","id":2015423930972900414,"type":"Enim esse aut accusantium deleniti beatae voluptas."}],"status":"Qui dolor."}}}},"404":{"description":"not_found: Collection not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CollectionNotfound"}}}}}}},"/pipeline":{"get":{"tags":["pipeline"],"summary":"list pipeline","description":"List all known pipelines","operationId":"pipeline#list","parameters":[{"name":"name","in":"query","allowEmptyValue":true,"schema":{"type":"string","example":"Excepturi vitae et saepe."},"example":"Quia perspiciatis."},{"name":"status","in":"query","allowEmptyValue":true,"schema":{"type":"boolean","default":false,"example":false},"example":true}],"responses":{"200":{"description":"OK response.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/EnduroStoredPipeline"},"example":[{"capacity":8406108818872523115,"current":1737602466879989319,"id":"3aa13013-1c21-11ee-bb08-7085c27bdeb0","name":"Eius perferendis et corrupti harum nisi voluptatibus.","status":"Qui explicabo qui error sint."},{"capacity":8406108818872523115,"current":1737602466879989319,"id":"3aa13013-1c21-11ee-bb08-7085c27bdeb0","name":"Eius perferendis et corrupti harum nisi voluptatibus.","status":"Qui explicabo qui error sint."}]},"example":[{"capacity":8406108818872523115,"current":1737602466879989319,"id":"3aa13013-1c21-11ee-bb08-7085c27bdeb0","name":"Eius perferendis et corrupti harum nisi voluptatibus.","status":"Qui explicabo qui error sint."},{"capacity":8406108818872523115,"current":1737602466879989319,"id":"3aa13013-1c21-11ee-bb08-7085c27bdeb0","name":"Eius perferendis et corrupti harum nisi voluptatibus.","status":"Qui explicabo qui error sint."},{"capacity":8406108818872523115,"current":1737602466879989319,"id":"3aa13013-1c21-11ee-bb08-7085c27bdeb0","name":"Eius perferendis et corrupti harum nisi voluptatibus.","status":"Qui explicabo qui error sint."},{"capacity":8406108818872523115,"current":1737602466879989319,"id":"3aa13013-1c21-11ee-bb08-7085c27bdeb0","name":"Eius perferendis et corrupti harum nisi voluptatibus.","status":"Qui explicabo qui error sint."}]}}}}}},"/pipeline/{id}":{"get":{"tags":["pipeline"],"summary":"show pipeline","description":"Show pipeline by ID","operationId":"pipeline#show","parameters":[{"name":"id","in":"path","description":"Identifier of pipeline to show","required":true,"schema":{"type":"string","description":"Identifier of pipeline to show","example":"3aa39b4b-1c21-11ee-bb08-7085c27bdeb0","format":"uuid"},"example":"3aa39c8c-1c21-11ee-bb08-7085c27bdeb0"}],"responses":{"200":{"description":"OK response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EnduroStoredPipeline"},"example":{"capacity":604697410197609923,"current":1321092956144830636,"id":"3aa2a8cf-1c21-11ee-bb08-7085c27bdeb0","name":"Tempora error inventore molestias animi asperiores blanditiis.","status":"Quam assumenda saepe omnis et eius."}}}},"404":{"description":"not_found: Pipeline not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PipelineNotFound"}}}}}}},"/pipeline/{id}/processing":{"get":{"tags":["pipeline"],"summary":"processing pipeline","description":"List all processing configurations of a pipeline given its ID","operationId":"pipeline#processing","parameters":[{"name":"id","in":"path","description":"Identifier of pipeline","required":true,"schema":{"type":"string","description":"Identifier of pipeline","example":"3aa39e15-1c21-11ee-bb08-7085c27bdeb0","format":"uuid"},"example":"3aa39f3a-1c21-11ee-bb08-7085c27bdeb0"}],"responses":{"200":{"description":"OK response.","content":{"application/json":{"schema":{"type":"array","items":{"type":"string","example":"Tenetur iste numquam rem quo eligendi."},"example":["Autem magnam.","In enim amet architecto non repudiandae."]},"example":["Maiores et dolores sed rerum est et.","Molestias natus aut."]}}},"404":{"description":"not_found: Pipeline not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PipelineNotFound"}}}}}}},"/swagger/swagger.json":{"get":{"tags":["swagger"],"summary":"Download internal/api/gen/http/openapi.json","description":"JSON document containing the API swagger definition.","operationId":"swagger#/swagger/swagger.json","responses":{"200":{"description":"File downloaded"}}}}},"components":{"schemas":{"BatchHintsResult":{"type":"object","properties":{"completed_dirs":{"type":"array","items":{"type":"string","example":"Suscipit tempore est quisquam ratione."},"description":"A list of known values of completedDir used by existing watchers.","example":["Perferendis maiores.","Praesentium voluptatum delectus commodi.","Non eos consequuntur aliquam."]}},"example":{"completed_dirs":["Aliquid perspiciatis aperiam.","Optio repellendus molestias.","Mollitia aut tempora quia aperiam saepe."]}},"BatchResult":{"type":"object","properties":{"run_id":{"type":"string","example":"Deserunt a enim cum ad quasi qui."},"workflow_id":{"type":"string","example":"Qui rerum asperiores qui."}},"example":{"run_id":"Beatae blanditiis qui et ut recusandae id.","workflow_id":"Vitae fugit quis tempore animi ad ab."},"required":["workflow_id","run_id"]},"BatchStatusResult":{"type":"object","properties":{"run_id":{"type":"string","example":"Et rem et."},"running":{"type":"boolean","example":false},"status":{"type":"string","example":"Dolor saepe dolores."},"workflow_id":{"type":"string","example":"Quis delectus quia."}},"example":{"run_id":"Et culpa beatae fuga.","running":false,"status":"Sunt laborum.","workflow_id":"In qui."},"required":["running"]},"BulkRequestBody":{"type":"object","properties":{"operation":{"type":"string","example":"abandon","enum":["retry","cancel","abandon"]},"size":{"type":"integer","default":100,"example":7049186774788407004},"status":{"type":"string","example":"unknown","enum":["new","in progress","done","error","unknown","queued","pending","abandoned"]}},"example":{"operation":"cancel","size":10756257245132189908,"status":"new"},"required":["operation","status"]},"BulkStatusResult":{"type":"object","properties":{"closed_at":{"type":"string","example":"1988-07-12T21:32:29Z","format":"date-time"},"run_id":{"type":"string","example":"Et molestiae alias qui omnis reiciendis quae."},"running":{"type":"boolean","example":true},"started_at":{"type":"string","example":"2004-09-15T21:11:47Z","format":"date-time"},"status":{"type":"string","example":"Mollitia est officiis nostrum dignissimos ut."},"workflow_id":{"type":"string","example":"Eligendi mollitia ut voluptate tempora iusto et."}},"example":{"closed_at":"1997-01-23T03:40:32Z","run_id":"Animi quia ut culpa aut explicabo placeat.","running":false,"started_at":"2010-10-16T14:05:06Z","status":"Similique assumenda doloremque cumque quia consequuntur.","workflow_id":"Nobis hic debitis."},"required":["running"]},"CollectionNotfound":{"type":"object","properties":{"id":{"type":"integer","description":"Identifier of missing collection","example":18225317793911514815},"message":{"type":"string","description":"Message of error","example":"Voluptas autem culpa quos tempore."}},"description":"Collection not found","example":{"id":13607598706967279877,"message":"Neque recusandae et perferendis."},"required":["message","id"]},"EnduroCollectionWorkflowHistory":{"type":"object","properties":{"details":{"type":"string","description":"Contents of the event","example":"Nobis maiores commodi odit iure unde.","format":"binary"},"id":{"type":"integer","description":"Identifier of collection","example":6353654755516871806},"type":{"type":"string","description":"Type of the event","example":"Possimus voluptatem."}},"description":"WorkflowHistoryEvent describes a history event in Temporal.","example":{"details":"Neque voluptas quasi deserunt excepturi tempora.","id":12911299265168543401,"type":"Rem quia qui omnis aut."}},"EnduroCollectionWorkflowHistoryCollection":{"type":"array","items":{"$ref":"#/components/schemas/EnduroCollectionWorkflowHistory"},"example":[{"details":"In quis sed.","id":2015423930972900414,"type":"Enim esse aut accusantium deleniti beatae voluptas."},{"details":"In quis sed.","id":2015423930972900414,"type":"Enim esse aut accusantium deleniti beatae voluptas."},{"details":"In quis sed.","id":2015423930972900414,"type":"Enim esse aut accusantium deleniti beatae voluptas."}]},"EnduroCollectionWorkflowStatus":{"type":"object","properties":{"history":{"$ref":"#/components/schemas/EnduroCollectionWorkflowHistoryCollection"},"status":{"type":"string","example":"Neque voluptatem porro omnis et distinctio vero."}},"example":{"history":[{"details":"In quis sed.","id":2015423930972900414,"type":"Enim esse aut accusantium deleniti beatae voluptas."},{"details":"In quis sed.","id":2015423930972900414,"type":"Enim esse aut accusantium deleniti beatae voluptas."},{"details":"In quis sed.","id":2015423930972900414,"type":"Enim esse aut accusantium deleniti beatae voluptas."},{"details":"In quis sed.","id":2015423930972900414,"type":"Enim esse aut accusantium deleniti beatae voluptas."}],"status":"Nulla quod sed."}},"EnduroMonitorUpdate":{"type":"object","properties":{"id":{"type":"integer","description":"Identifier of collection","example":17019269049155146495},"item":{"$ref":"#/components/schemas/EnduroStoredCollection"},"type":{"type":"string","description":"Type of the event","example":"Deserunt enim voluptas ut cupiditate expedita distinctio."}},"example":{"id":18173606350330826349,"item":{"aip_id":"3aa0d6b1-1c21-11ee-bb08-7085c27bdeb0","completed_at":"2014-01-26T22:52:33Z","created_at":"2006-09-07T19:48:15Z","id":5273261262554249024,"name":"Iusto laudantium assumenda.","original_id":"Voluptatem eum et rerum.","pipeline_id":"3aa0d854-1c21-11ee-bb08-7085c27bdeb0","run_id":"3aa0d415-1c21-11ee-bb08-7085c27bdeb0","started_at":"1986-05-13T23:32:21Z","status":"unknown","transfer_id":"3aa0d569-1c21-11ee-bb08-7085c27bdeb0","workflow_id":"3aa0be66-1c21-11ee-bb08-7085c27bdeb0"},"type":"Perspiciatis porro veritatis et."},"required":["id","type"]},"EnduroStoredCollection":{"type":"object","properties":{"aip_id":{"type":"string","description":"Identifier of Archivematica AIP","example":"3aa36a17-1c21-11ee-bb08-7085c27bdeb0","format":"uuid"},"completed_at":{"type":"string","description":"Completion datetime","example":"1985-09-21T14:48:23Z","format":"date-time"},"created_at":{"type":"string","description":"Creation datetime","example":"2011-02-18T18:59:59Z","format":"date-time"},"id":{"type":"integer","description":"Identifier of collection","example":4919145112566344839},"name":{"type":"string","description":"Name of the collection","example":"Dolor labore quis aut sint recusandae eum."},"original_id":{"type":"string","description":"Identifier provided by the client","example":"Assumenda qui assumenda suscipit."},"pipeline_id":{"type":"string","description":"Identifier of Archivematica pipeline","example":"3aa36b7e-1c21-11ee-bb08-7085c27bdeb0","format":"uuid"},"run_id":{"type":"string","description":"Identifier of latest processing workflow run","example":"3aa35efa-1c21-11ee-bb08-7085c27bdeb0","format":"uuid"},"started_at":{"type":"string","description":"Start datetime","example":"2006-08-17T11:55:03Z","format":"date-time"},"status":{"type":"string","description":"Status of the collection","default":"new","example":"pending","enum":["new","in progress","done","error","unknown","queued","pending","abandoned"]},"transfer_id":{"type":"string","description":"Identifier of Archivematica transfer","example":"3aa367ab-1c21-11ee-bb08-7085c27bdeb0","format":"uuid"},"workflow_id":{"type":"string","description":"Identifier of processing workflow","example":"3aa35c99-1c21-11ee-bb08-7085c27bdeb0","format":"uuid"}},"description":"StoredCollection describes a collection retrieved by the service.","example":{"aip_id":"3aa3743c-1c21-11ee-bb08-7085c27bdeb0","completed_at":"1986-04-15T08:25:16Z","created_at":"2002-08-25T21:29:42Z","id":3007180406968656670,"name":"Saepe officia veritatis.","original_id":"Reiciendis corporis recusandae optio possimus id et.","pipeline_id":"3aa37568-1c21-11ee-bb08-7085c27bdeb0","run_id":"3aa371fa-1c21-11ee-bb08-7085c27bdeb0","started_at":"2002-10-30T11:51:06Z","status":"error","transfer_id":"3aa37322-1c21-11ee-bb08-7085c27bdeb0","workflow_id":"3aa37096-1c21-11ee-bb08-7085c27bdeb0"},"required":["id","status","created_at"]},"EnduroStoredCollectionCollection":{"type":"array","items":{"$ref":"#/components/schemas/EnduroStoredCollection"},"example":[{"aip_id":"3aa0d6b1-1c21-11ee-bb08-7085c27bdeb0","completed_at":"2014-01-26T22:52:33Z","created_at":"2006-09-07T19:48:15Z","id":5273261262554249024,"name":"Iusto laudantium assumenda.","original_id":"Voluptatem eum et rerum.","pipeline_id":"3aa0d854-1c21-11ee-bb08-7085c27bdeb0","run_id":"3aa0d415-1c21-11ee-bb08-7085c27bdeb0","started_at":"1986-05-13T23:32:21Z","status":"unknown","transfer_id":"3aa0d569-1c21-11ee-bb08-7085c27bdeb0","workflow_id":"3aa0be66-1c21-11ee-bb08-7085c27bdeb0"},{"aip_id":"3aa0d6b1-1c21-11ee-bb08-7085c27bdeb0","completed_at":"2014-01-26T22:52:33Z","created_at":"2006-09-07T19:48:15Z","id":5273261262554249024,"name":"Iusto laudantium assumenda.","original_id":"Voluptatem eum et rerum.","pipeline_id":"3aa0d854-1c21-11ee-bb08-7085c27bdeb0","run_id":"3aa0d415-1c21-11ee-bb08-7085c27bdeb0","started_at":"1986-05-13T23:32:21Z","status":"unknown","transfer_id":"3aa0d569-1c21-11ee-bb08-7085c27bdeb0","workflow_id":"3aa0be66-1c21-11ee-bb08-7085c27bdeb0"}]},"EnduroStoredPipeline":{"type":"object","properties":{"capacity":{"type":"integer","description":"Maximum concurrent transfers","example":675308295529917391,"format":"int64"},"current":{"type":"integer","description":"Current transfers","example":1126670102776995078,"format":"int64"},"id":{"type":"string","description":"Identifier of the pipeline","example":"3aa3835f-1c21-11ee-bb08-7085c27bdeb0","format":"uuid"},"name":{"type":"string","description":"Name of the pipeline","example":"Est provident sint at modi est."},"status":{"type":"string","example":"Repellat inventore culpa qui sapiente inventore non."}},"description":"StoredPipeline describes a pipeline retrieved by this service.","example":{"capacity":3260630790103415086,"current":7000442574851704032,"id":"3aa386a1-1c21-11ee-bb08-7085c27bdeb0","name":"Ut corrupti velit enim.","status":"Illum voluptas vel nesciunt."},"required":["name"]},"Error":{"type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?","example":false},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem.","example":"123abc"},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem.","example":"parameter 'p' must be an integer"},"name":{"type":"string","description":"Name is the name of this class of errors.","example":"bad_request"},"temporary":{"type":"boolean","description":"Is the error temporary?","example":false},"timeout":{"type":"boolean","description":"Is the error a timeout?","example":false}},"example":{"id":"3F1FKVRR","message":"Value of ID must be an integer","name":"bad_request"},"required":["name","id","message","temporary","timeout","fault"]},"ListResponseBody":{"type":"object","properties":{"items":{"$ref":"#/components/schemas/EnduroStoredCollectionCollection"},"next_cursor":{"type":"string","example":"Reiciendis iste quis asperiores voluptate temporibus."}},"example":{"items":[{"aip_id":"3aa0d6b1-1c21-11ee-bb08-7085c27bdeb0","completed_at":"2014-01-26T22:52:33Z","created_at":"2006-09-07T19:48:15Z","id":5273261262554249024,"name":"Iusto laudantium assumenda.","original_id":"Voluptatem eum et rerum.","pipeline_id":"3aa0d854-1c21-11ee-bb08-7085c27bdeb0","run_id":"3aa0d415-1c21-11ee-bb08-7085c27bdeb0","started_at":"1986-05-13T23:32:21Z","status":"unknown","transfer_id":"3aa0d569-1c21-11ee-bb08-7085c27bdeb0","workflow_id":"3aa0be66-1c21-11ee-bb08-7085c27bdeb0"},{"aip_id":"3aa0d6b1-1c21-11ee-bb08-7085c27bdeb0","completed_at":"2014-01-26T22:52:33Z","created_at":"2006-09-07T19:48:15Z","id":5273261262554249024,"name":"Iusto laudantium assumenda.","original_id":"Voluptatem eum et rerum.","pipeline_id":"3aa0d854-1c21-11ee-bb08-7085c27bdeb0","run_id":"3aa0d415-1c21-11ee-bb08-7085c27bdeb0","started_at":"1986-05-13T23:32:21Z","status":"unknown","transfer_id":"3aa0d569-1c21-11ee-bb08-7085c27bdeb0","workflow_id":"3aa0be66-1c21-11ee-bb08-7085c27bdeb0"},{"aip_id":"3aa0d6b1-1c21-11ee-bb08-7085c27bdeb0","completed_at":"2014-01-26T22:52:33Z","created_at":"2006-09-07T19:48:15Z","id":5273261262554249024,"name":"Iusto laudantium assumenda.","original_id":"Voluptatem eum et rerum.","pipeline_id":"3aa0d854-1c21-11ee-bb08-7085c27bdeb0","run_id":"3aa0d415-1c21-11ee-bb08-7085c27bdeb0","started_at":"1986-05-13T23:32:21Z","status":"unknown","transfer_id":"3aa0d569-1c21-11ee-bb08-7085c27bdeb0","workflow_id":"3aa0be66-1c21-11ee-bb08-7085c27bdeb0"},{"aip_id":"3aa0d6b1-1c21-11ee-bb08-7085c27bdeb0","completed_at":"2014-01-26T22:52:33Z","created_at":"2006-09-07T19:48:15Z","id":5273261262554249024,"name":"Iusto laudantium assumenda.","original_id":"Voluptatem eum et rerum.","pipeline_id":"3aa0d854-1c21-11ee-bb08-7085c27bdeb0","run_id":"3aa0d415-1c21-11ee-bb08-7085c27bdeb0","started_at":"1986-05-13T23:32:21Z","status":"unknown","transfer_id":"3aa0d569-1c21-11ee-bb08-7085c27bdeb0","workflow_id":"3aa0be66-1c21-11ee-bb08-7085c27bdeb0"}],"next_cursor":"Facilis officiis dicta et vitae consequatur nihil."},"required":["items"]},"PipelineNotFound":{"type":"object","properties":{"id":{"type":"string","description":"Identifier of missing pipeline","example":"Beatae quidem illo ducimus et deleniti voluptatibus."},"message":{"type":"string","description":"Message of error","example":"Quis nisi ut."}},"description":"Pipeline not found","example":{"id":"Voluptatem ducimus aut at optio.","message":"Ut repellendus similique minima."},"required":["message","id"]},"SubmitRequestBody":{"type":"object","properties":{"completed_dir":{"type":"string","example":"Sunt ut."},"path":{"type":"string","example":"Qui non unde ut."},"pipeline":{"type":"string","example":"Et voluptatem quibusdam facilis magnam."},"processing_config":{"type":"string","example":"Veritatis vel eos."},"retention_period":{"type":"string","example":"Illum illum tenetur."}},"example":{"completed_dir":"Fugiat a officiis ipsum.","path":"Voluptates nulla autem et perspiciatis libero voluptas.","pipeline":"Voluptates et molestiae eum et occaecati.","processing_config":"Et et eligendi voluptatem.","retention_period":"Necessitatibus voluptas mollitia dolore."},"required":["path"]}}},"tags":[{"name":"batch","description":"The batch service manages batches of collections."},{"name":"collection","description":"The collection service manages packages being transferred to Archivematica."},{"name":"pipeline","description":"The pipeline service manages Archivematica pipelines."},{"name":"swagger","description":"The swagger service serves the API swagger definition."}]} \ No newline at end of file +{"openapi":"3.0.3","info":{"title":"Enduro API","version":"1.0"},"servers":[{"url":"http://localhost:9000"}],"paths":{"/batch":{"get":{"tags":["batch"],"summary":"status batch","description":"Retrieve status of current batch operation.","operationId":"batch#status","responses":{"200":{"description":"OK response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BatchStatusResult"},"example":{"run_id":"Vel sint ducimus officia labore eius qui.","running":true,"status":"Nam sed nostrum enim laborum ea facilis.","workflow_id":"Dolor illum excepturi magni quidem."}}}}}},"post":{"tags":["batch"],"summary":"submit batch","description":"Submit a new batch","operationId":"batch#submit","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SubmitRequestBody"},"example":{"completed_dir":"Laboriosam odit.","path":"Laboriosam nam sit nihil.","pipeline":"Necessitatibus vel aut deleniti quia qui.","processing_config":"Vel voluptatem.","retention_period":"Sed perferendis illum illum omnis et officiis."}}}},"responses":{"202":{"description":"Accepted response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BatchResult"},"example":{"run_id":"Debitis rerum.","workflow_id":"Velit possimus et ea aut harum."}}}},"400":{"description":"not_valid: Bad Request response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"not_available: Conflict response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/batch/hints":{"get":{"tags":["batch"],"summary":"hints batch","description":"Retrieve form hints","operationId":"batch#hints","responses":{"200":{"description":"OK response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BatchHintsResult"},"example":{"completed_dirs":["Impedit vero ducimus.","Quo illo natus et.","Eaque suscipit in cum et quia facere.","Doloribus sed tempore voluptatum quo."]}}}}}}},"/collection":{"get":{"tags":["collection"],"summary":"list collection","description":"List all stored collections","operationId":"collection#list","parameters":[{"name":"name","in":"query","allowEmptyValue":true,"schema":{"type":"string","example":"Autem magnam."},"example":"In enim amet architecto non repudiandae."},{"name":"original_id","in":"query","allowEmptyValue":true,"schema":{"type":"string","example":"Dolorem rerum ullam provident hic aut."},"example":"Magni blanditiis sequi sunt neque velit."},{"name":"transfer_id","in":"query","allowEmptyValue":true,"schema":{"type":"string","example":"8044a57e-1caf-11ee-b3da-7085c27bdeb0","format":"uuid"},"example":"8044a6cc-1caf-11ee-b3da-7085c27bdeb0"},{"name":"aip_id","in":"query","allowEmptyValue":true,"schema":{"type":"string","example":"8044a7f3-1caf-11ee-b3da-7085c27bdeb0","format":"uuid"},"example":"8044a91d-1caf-11ee-b3da-7085c27bdeb0"},{"name":"pipeline_id","in":"query","allowEmptyValue":true,"schema":{"type":"string","example":"8044aa5b-1caf-11ee-b3da-7085c27bdeb0","format":"uuid"},"example":"8044abb8-1caf-11ee-b3da-7085c27bdeb0"},{"name":"earliest_created_time","in":"query","allowEmptyValue":true,"schema":{"type":"string","example":"1997-08-02T15:59:16Z","format":"date-time"},"example":"2008-01-03T21:15:24Z"},{"name":"latest_created_time","in":"query","allowEmptyValue":true,"schema":{"type":"string","example":"1986-07-18T14:01:59Z","format":"date-time"},"example":"2009-03-08T19:06:41Z"},{"name":"status","in":"query","allowEmptyValue":true,"schema":{"type":"string","example":"abandoned","enum":["new","in progress","done","error","unknown","queued","pending","abandoned"]},"example":"in progress"},{"name":"cursor","in":"query","description":"Pagination cursor","allowEmptyValue":true,"schema":{"type":"string","description":"Pagination cursor","example":"In distinctio."},"example":"Aliquid consectetur."}],"responses":{"200":{"description":"OK response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListResponseBody"},"example":{"items":[{"aip_id":"8040c16f-1caf-11ee-b3da-7085c27bdeb0","completed_at":"2014-01-26T22:52:33Z","created_at":"2006-09-07T19:48:15Z","id":5273261262554249024,"name":"Iusto laudantium assumenda.","original_id":"Voluptatem eum et rerum.","pipeline_id":"8040c2e5-1caf-11ee-b3da-7085c27bdeb0","run_id":"8040be91-1caf-11ee-b3da-7085c27bdeb0","started_at":"1986-05-13T23:32:21Z","status":"unknown","transfer_id":"8040c023-1caf-11ee-b3da-7085c27bdeb0","workflow_id":"8040a720-1caf-11ee-b3da-7085c27bdeb0"},{"aip_id":"8040c16f-1caf-11ee-b3da-7085c27bdeb0","completed_at":"2014-01-26T22:52:33Z","created_at":"2006-09-07T19:48:15Z","id":5273261262554249024,"name":"Iusto laudantium assumenda.","original_id":"Voluptatem eum et rerum.","pipeline_id":"8040c2e5-1caf-11ee-b3da-7085c27bdeb0","run_id":"8040be91-1caf-11ee-b3da-7085c27bdeb0","started_at":"1986-05-13T23:32:21Z","status":"unknown","transfer_id":"8040c023-1caf-11ee-b3da-7085c27bdeb0","workflow_id":"8040a720-1caf-11ee-b3da-7085c27bdeb0"},{"aip_id":"8040c16f-1caf-11ee-b3da-7085c27bdeb0","completed_at":"2014-01-26T22:52:33Z","created_at":"2006-09-07T19:48:15Z","id":5273261262554249024,"name":"Iusto laudantium assumenda.","original_id":"Voluptatem eum et rerum.","pipeline_id":"8040c2e5-1caf-11ee-b3da-7085c27bdeb0","run_id":"8040be91-1caf-11ee-b3da-7085c27bdeb0","started_at":"1986-05-13T23:32:21Z","status":"unknown","transfer_id":"8040c023-1caf-11ee-b3da-7085c27bdeb0","workflow_id":"8040a720-1caf-11ee-b3da-7085c27bdeb0"},{"aip_id":"8040c16f-1caf-11ee-b3da-7085c27bdeb0","completed_at":"2014-01-26T22:52:33Z","created_at":"2006-09-07T19:48:15Z","id":5273261262554249024,"name":"Iusto laudantium assumenda.","original_id":"Voluptatem eum et rerum.","pipeline_id":"8040c2e5-1caf-11ee-b3da-7085c27bdeb0","run_id":"8040be91-1caf-11ee-b3da-7085c27bdeb0","started_at":"1986-05-13T23:32:21Z","status":"unknown","transfer_id":"8040c023-1caf-11ee-b3da-7085c27bdeb0","workflow_id":"8040a720-1caf-11ee-b3da-7085c27bdeb0"}],"next_cursor":"Ad aut rerum."}}}}}}},"/collection/bulk":{"get":{"tags":["collection"],"summary":"bulk_status collection","description":"Retrieve status of current bulk operation.","operationId":"collection#bulk_status","responses":{"200":{"description":"OK response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BulkStatusResult"},"example":{"closed_at":"1973-08-11T22:51:48Z","run_id":"Pariatur fugit eaque nemo quia consectetur et.","running":true,"started_at":"1983-04-26T16:46:49Z","status":"Harum tempore excepturi.","workflow_id":"Aut rerum harum officiis."}}}}}},"post":{"tags":["collection"],"summary":"bulk collection","description":"Bulk operations (retry, cancel...).","operationId":"collection#bulk","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BulkRequestBody"},"example":{"operation":"retry","size":15570024955802771098,"status":"done"}}}},"responses":{"202":{"description":"Accepted response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BatchResult"},"example":{"run_id":"Illum et tempora quae porro.","workflow_id":"Dolores et voluptas repellat."}}}},"400":{"description":"not_valid: Bad Request response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"not_available: Conflict response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/collection/monitor":{"get":{"tags":["collection"],"summary":"monitor collection","operationId":"collection#monitor","responses":{"101":{"description":"Switching Protocols response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EnduroMonitorUpdate"},"example":{"id":2293355532387428117,"item":{"aip_id":"8040c16f-1caf-11ee-b3da-7085c27bdeb0","completed_at":"2014-01-26T22:52:33Z","created_at":"2006-09-07T19:48:15Z","id":5273261262554249024,"name":"Iusto laudantium assumenda.","original_id":"Voluptatem eum et rerum.","pipeline_id":"8040c2e5-1caf-11ee-b3da-7085c27bdeb0","run_id":"8040be91-1caf-11ee-b3da-7085c27bdeb0","started_at":"1986-05-13T23:32:21Z","status":"unknown","transfer_id":"8040c023-1caf-11ee-b3da-7085c27bdeb0","workflow_id":"8040a720-1caf-11ee-b3da-7085c27bdeb0"},"type":"Deleniti ea tenetur deleniti."}}}}}}},"/collection/{id}":{"delete":{"tags":["collection"],"summary":"delete collection","description":"Delete collection by ID","operationId":"collection#delete","parameters":[{"name":"id","in":"path","description":"Identifier of collection to delete","required":true,"schema":{"type":"integer","description":"Identifier of collection to delete","example":13723768498999707294},"example":4281983801442889633}],"responses":{"204":{"description":"No Content response."},"404":{"description":"not_found: Collection not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CollectionNotfound"}}}}}},"get":{"tags":["collection"],"summary":"show collection","description":"Show collection by ID","operationId":"collection#show","parameters":[{"name":"id","in":"path","description":"Identifier of collection to show","required":true,"schema":{"type":"integer","description":"Identifier of collection to show","example":11152959749157106813},"example":2714760919191889086}],"responses":{"200":{"description":"OK response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EnduroStoredCollection"},"example":{"aip_id":"8041c617-1caf-11ee-b3da-7085c27bdeb0","completed_at":"2000-10-04T09:57:15Z","created_at":"2010-07-22T22:55:51Z","id":12024565834601469556,"name":"Quam quas.","original_id":"Et consequatur aut enim consequuntur debitis temporibus.","pipeline_id":"8041c781-1caf-11ee-b3da-7085c27bdeb0","run_id":"8041c3a5-1caf-11ee-b3da-7085c27bdeb0","started_at":"2014-07-31T20:44:18Z","status":"queued","transfer_id":"8041c4ef-1caf-11ee-b3da-7085c27bdeb0","workflow_id":"8041c263-1caf-11ee-b3da-7085c27bdeb0"}}}},"404":{"description":"not_found: Collection not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CollectionNotfound"}}}}}}},"/collection/{id}/cancel":{"post":{"tags":["collection"],"summary":"cancel collection","description":"Cancel collection processing by ID","operationId":"collection#cancel","parameters":[{"name":"id","in":"path","description":"Identifier of collection to remove","required":true,"schema":{"type":"integer","description":"Identifier of collection to remove","example":16600406390601565003},"example":7109129474441531445}],"responses":{"200":{"description":"OK response.","content":{"application/json":{"schema":{"type":"string","format":"binary"}}}},"400":{"description":"not_running: Bad Request response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"not_found: Collection not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CollectionNotfound"}}}}}}},"/collection/{id}/decision":{"post":{"tags":["collection"],"summary":"decide collection","description":"Make decision for a pending collection by ID","operationId":"collection#decide","parameters":[{"name":"id","in":"path","description":"Identifier of collection to look up","required":true,"schema":{"type":"integer","description":"Identifier of collection to look up","example":9198655460133316854},"example":7412982194674710965}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"option":{"type":"string","description":"Decision option to proceed with","example":"Ipsam necessitatibus similique adipisci magnam animi adipisci."}},"example":{"option":"Aut dolorem praesentium asperiores commodi earum neque."}},"example":{"option":"Excepturi architecto illum et consequatur optio corporis."}}}},"responses":{"200":{"description":"OK response.","content":{"application/json":{"schema":{"type":"string","format":"binary"}}}},"400":{"description":"not_valid: Bad Request response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"not_found: Collection not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CollectionNotfound"}}}}}}},"/collection/{id}/download":{"get":{"tags":["collection"],"summary":"download collection","description":"Download collection by ID","operationId":"collection#download","parameters":[{"name":"id","in":"path","description":"Identifier of collection to look up","required":true,"schema":{"type":"integer","description":"Identifier of collection to look up","example":10619197190842817831},"example":14672833274825296722}],"responses":{"200":{"description":"OK response.","headers":{"Content-Disposition":{"required":true,"schema":{"type":"string","example":"Cupiditate ex."},"example":"Assumenda porro velit ut reiciendis voluptas dolorum."},"Content-Length":{"required":true,"schema":{"type":"integer","example":351966788610772943,"format":"int64"},"example":4761892039764643891},"Content-Type":{"required":true,"schema":{"type":"string","example":"Voluptate est nihil in."},"example":"Iste facilis rerum."}},"content":{"application/json":{"schema":{"type":"string","format":"binary"}}}},"404":{"description":"not_found: Collection not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CollectionNotfound"}}}}}}},"/collection/{id}/retry":{"post":{"tags":["collection"],"summary":"retry collection","description":"Retry collection processing by ID","operationId":"collection#retry","parameters":[{"name":"id","in":"path","description":"Identifier of collection to retry","required":true,"schema":{"type":"integer","description":"Identifier of collection to retry","example":12725953428629027252},"example":12842452705283749677}],"responses":{"200":{"description":"OK response.","content":{"application/json":{"schema":{"type":"string","format":"binary"}}}},"400":{"description":"not_running: Bad Request response.","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"not_found: Collection not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CollectionNotfound"}}}}}}},"/collection/{id}/workflow":{"get":{"tags":["collection"],"summary":"workflow collection","description":"Retrieve workflow status by ID","operationId":"collection#workflow","parameters":[{"name":"id","in":"path","description":"Identifier of collection to look up","required":true,"schema":{"type":"integer","description":"Identifier of collection to look up","example":18388433154584481399},"example":3387093312747365124}],"responses":{"200":{"description":"OK response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EnduroCollectionWorkflowStatus"},"example":{"history":[{"details":"In quis sed.","id":2015423930972900414,"type":"Enim esse aut accusantium deleniti beatae voluptas."},{"details":"In quis sed.","id":2015423930972900414,"type":"Enim esse aut accusantium deleniti beatae voluptas."},{"details":"In quis sed.","id":2015423930972900414,"type":"Enim esse aut accusantium deleniti beatae voluptas."},{"details":"In quis sed.","id":2015423930972900414,"type":"Enim esse aut accusantium deleniti beatae voluptas."}],"status":"Qui dolor."}}}},"404":{"description":"not_found: Collection not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CollectionNotfound"}}}}}}},"/pipeline":{"get":{"tags":["pipeline"],"summary":"list pipeline","description":"List all known pipelines","operationId":"pipeline#list","parameters":[{"name":"name","in":"query","allowEmptyValue":true,"schema":{"type":"string","example":"Excepturi vitae et saepe."},"example":"Quia perspiciatis."},{"name":"status","in":"query","allowEmptyValue":true,"schema":{"type":"boolean","default":false,"example":false},"example":true}],"responses":{"200":{"description":"OK response.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/EnduroStoredPipeline"},"example":[{"capacity":8406108818872523115,"current":1737602466879989319,"id":"8040f76b-1caf-11ee-b3da-7085c27bdeb0","name":"Eius perferendis et corrupti harum nisi voluptatibus.","status":"Qui explicabo qui error sint."},{"capacity":8406108818872523115,"current":1737602466879989319,"id":"8040f76b-1caf-11ee-b3da-7085c27bdeb0","name":"Eius perferendis et corrupti harum nisi voluptatibus.","status":"Qui explicabo qui error sint."},{"capacity":8406108818872523115,"current":1737602466879989319,"id":"8040f76b-1caf-11ee-b3da-7085c27bdeb0","name":"Eius perferendis et corrupti harum nisi voluptatibus.","status":"Qui explicabo qui error sint."},{"capacity":8406108818872523115,"current":1737602466879989319,"id":"8040f76b-1caf-11ee-b3da-7085c27bdeb0","name":"Eius perferendis et corrupti harum nisi voluptatibus.","status":"Qui explicabo qui error sint."}]},"example":[{"capacity":8406108818872523115,"current":1737602466879989319,"id":"8040f76b-1caf-11ee-b3da-7085c27bdeb0","name":"Eius perferendis et corrupti harum nisi voluptatibus.","status":"Qui explicabo qui error sint."},{"capacity":8406108818872523115,"current":1737602466879989319,"id":"8040f76b-1caf-11ee-b3da-7085c27bdeb0","name":"Eius perferendis et corrupti harum nisi voluptatibus.","status":"Qui explicabo qui error sint."},{"capacity":8406108818872523115,"current":1737602466879989319,"id":"8040f76b-1caf-11ee-b3da-7085c27bdeb0","name":"Eius perferendis et corrupti harum nisi voluptatibus.","status":"Qui explicabo qui error sint."},{"capacity":8406108818872523115,"current":1737602466879989319,"id":"8040f76b-1caf-11ee-b3da-7085c27bdeb0","name":"Eius perferendis et corrupti harum nisi voluptatibus.","status":"Qui explicabo qui error sint."}]}}}}}},"/pipeline/{id}":{"get":{"tags":["pipeline"],"summary":"show pipeline","description":"Show pipeline by ID","operationId":"pipeline#show","parameters":[{"name":"id","in":"path","description":"Identifier of pipeline to show","required":true,"schema":{"type":"string","description":"Identifier of pipeline to show","example":"8044b6df-1caf-11ee-b3da-7085c27bdeb0","format":"uuid"},"example":"8044b818-1caf-11ee-b3da-7085c27bdeb0"}],"responses":{"200":{"description":"OK response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EnduroStoredPipeline"},"example":{"capacity":2542023261889200589,"current":604697410197609923,"id":"8042dcdc-1caf-11ee-b3da-7085c27bdeb0","name":"Animi asperiores.","status":"Amet quam assumenda saepe omnis et eius."}}}},"404":{"description":"not_found: Pipeline not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PipelineNotFound"}}}}}}},"/pipeline/{id}/processing":{"get":{"tags":["pipeline"],"summary":"processing pipeline","description":"List all processing configurations of a pipeline given its ID","operationId":"pipeline#processing","parameters":[{"name":"id","in":"path","description":"Identifier of pipeline","required":true,"schema":{"type":"string","description":"Identifier of pipeline","example":"8044b9c1-1caf-11ee-b3da-7085c27bdeb0","format":"uuid"},"example":"8044baf8-1caf-11ee-b3da-7085c27bdeb0"}],"responses":{"200":{"description":"OK response.","content":{"application/json":{"schema":{"type":"array","items":{"type":"string","example":"Ea ut repellendus similique minima et."},"example":["Aut at optio esse tenetur.","Numquam rem.","Eligendi cum."]},"example":["Maiores et dolores sed rerum est et.","Molestias natus aut."]}}},"404":{"description":"not_found: Pipeline not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PipelineNotFound"}}}}}}},"/swagger/swagger.json":{"get":{"tags":["swagger"],"summary":"Download internal/api/gen/http/openapi.json","description":"JSON document containing the API swagger definition.","operationId":"swagger#/swagger/swagger.json","responses":{"200":{"description":"File downloaded"}}}}},"components":{"schemas":{"BatchHintsResult":{"type":"object","properties":{"completed_dirs":{"type":"array","items":{"type":"string","example":"Suscipit tempore est quisquam ratione."},"description":"A list of known values of completedDir used by existing watchers.","example":["Perferendis maiores.","Praesentium voluptatum delectus commodi.","Non eos consequuntur aliquam."]}},"example":{"completed_dirs":["Aliquid perspiciatis aperiam.","Optio repellendus molestias.","Mollitia aut tempora quia aperiam saepe."]}},"BatchResult":{"type":"object","properties":{"run_id":{"type":"string","example":"Deserunt a enim cum ad quasi qui."},"workflow_id":{"type":"string","example":"Qui rerum asperiores qui."}},"example":{"run_id":"Beatae blanditiis qui et ut recusandae id.","workflow_id":"Vitae fugit quis tempore animi ad ab."},"required":["workflow_id","run_id"]},"BatchStatusResult":{"type":"object","properties":{"run_id":{"type":"string","example":"Et rem et."},"running":{"type":"boolean","example":false},"status":{"type":"string","example":"Dolor saepe dolores."},"workflow_id":{"type":"string","example":"Quis delectus quia."}},"example":{"run_id":"Et culpa beatae fuga.","running":false,"status":"Sunt laborum.","workflow_id":"In qui."},"required":["running"]},"BulkRequestBody":{"type":"object","properties":{"operation":{"type":"string","example":"cancel","enum":["retry","cancel","abandon"]},"size":{"type":"integer","default":100,"example":9344938536322302895},"status":{"type":"string","example":"unknown","enum":["new","in progress","done","error","unknown","queued","pending","abandoned"]}},"example":{"operation":"abandon","size":7049186774788407004,"status":"unknown"},"required":["operation","status"]},"BulkStatusResult":{"type":"object","properties":{"closed_at":{"type":"string","example":"1984-10-13T06:35:18Z","format":"date-time"},"run_id":{"type":"string","example":"Eligendi mollitia ut voluptate tempora iusto et."},"running":{"type":"boolean","example":false},"started_at":{"type":"string","example":"2001-07-14T23:44:52Z","format":"date-time"},"status":{"type":"string","example":"Iure eos mollitia est."},"workflow_id":{"type":"string","example":"Nostrum dignissimos ut."}},"example":{"closed_at":"2009-02-09T23:14:48Z","run_id":"Consequuntur modi.","running":true,"started_at":"1987-01-20T03:54:11Z","status":"Mollitia vitae amet et excepturi deleniti.","workflow_id":"Nemo similique assumenda doloremque cumque."},"required":["running"]},"CollectionNotfound":{"type":"object","properties":{"id":{"type":"integer","description":"Identifier of missing collection","example":18225317793911514815},"message":{"type":"string","description":"Message of error","example":"Voluptas autem culpa quos tempore."}},"description":"Collection not found","example":{"id":13607598706967279877,"message":"Neque recusandae et perferendis."},"required":["message","id"]},"EnduroCollectionWorkflowHistory":{"type":"object","properties":{"details":{"type":"string","description":"Contents of the event","example":"Nobis maiores commodi odit iure unde.","format":"binary"},"id":{"type":"integer","description":"Identifier of collection","example":6353654755516871806},"type":{"type":"string","description":"Type of the event","example":"Possimus voluptatem."}},"description":"WorkflowHistoryEvent describes a history event in Temporal.","example":{"details":"Neque voluptas quasi deserunt excepturi tempora.","id":12911299265168543401,"type":"Rem quia qui omnis aut."}},"EnduroCollectionWorkflowHistoryCollection":{"type":"array","items":{"$ref":"#/components/schemas/EnduroCollectionWorkflowHistory"},"example":[{"details":"In quis sed.","id":2015423930972900414,"type":"Enim esse aut accusantium deleniti beatae voluptas."},{"details":"In quis sed.","id":2015423930972900414,"type":"Enim esse aut accusantium deleniti beatae voluptas."},{"details":"In quis sed.","id":2015423930972900414,"type":"Enim esse aut accusantium deleniti beatae voluptas."}]},"EnduroCollectionWorkflowStatus":{"type":"object","properties":{"history":{"$ref":"#/components/schemas/EnduroCollectionWorkflowHistoryCollection"},"status":{"type":"string","example":"Neque voluptatem porro omnis et distinctio vero."}},"example":{"history":[{"details":"In quis sed.","id":2015423930972900414,"type":"Enim esse aut accusantium deleniti beatae voluptas."},{"details":"In quis sed.","id":2015423930972900414,"type":"Enim esse aut accusantium deleniti beatae voluptas."},{"details":"In quis sed.","id":2015423930972900414,"type":"Enim esse aut accusantium deleniti beatae voluptas."},{"details":"In quis sed.","id":2015423930972900414,"type":"Enim esse aut accusantium deleniti beatae voluptas."}],"status":"Nulla quod sed."}},"EnduroMonitorUpdate":{"type":"object","properties":{"id":{"type":"integer","description":"Identifier of collection","example":17019269049155146495},"item":{"$ref":"#/components/schemas/EnduroStoredCollection"},"type":{"type":"string","description":"Type of the event","example":"Deserunt enim voluptas ut cupiditate expedita distinctio."}},"example":{"id":18173606350330826349,"item":{"aip_id":"8040c16f-1caf-11ee-b3da-7085c27bdeb0","completed_at":"2014-01-26T22:52:33Z","created_at":"2006-09-07T19:48:15Z","id":5273261262554249024,"name":"Iusto laudantium assumenda.","original_id":"Voluptatem eum et rerum.","pipeline_id":"8040c2e5-1caf-11ee-b3da-7085c27bdeb0","run_id":"8040be91-1caf-11ee-b3da-7085c27bdeb0","started_at":"1986-05-13T23:32:21Z","status":"unknown","transfer_id":"8040c023-1caf-11ee-b3da-7085c27bdeb0","workflow_id":"8040a720-1caf-11ee-b3da-7085c27bdeb0"},"type":"Perspiciatis porro veritatis et."},"required":["id","type"]},"EnduroStoredCollection":{"type":"object","properties":{"aip_id":{"type":"string","description":"Identifier of Archivematica AIP","example":"804485be-1caf-11ee-b3da-7085c27bdeb0","format":"uuid"},"completed_at":{"type":"string","description":"Completion datetime","example":"1985-09-21T14:48:23Z","format":"date-time"},"created_at":{"type":"string","description":"Creation datetime","example":"2011-02-18T18:59:59Z","format":"date-time"},"id":{"type":"integer","description":"Identifier of collection","example":4919145112566344839},"name":{"type":"string","description":"Name of the collection","example":"Dolor labore quis aut sint recusandae eum."},"original_id":{"type":"string","description":"Identifier provided by the client","example":"Assumenda qui assumenda suscipit."},"pipeline_id":{"type":"string","description":"Identifier of Archivematica pipeline","example":"80448700-1caf-11ee-b3da-7085c27bdeb0","format":"uuid"},"run_id":{"type":"string","description":"Identifier of latest processing workflow run","example":"80448347-1caf-11ee-b3da-7085c27bdeb0","format":"uuid"},"started_at":{"type":"string","description":"Start datetime","example":"2006-08-17T11:55:03Z","format":"date-time"},"status":{"type":"string","description":"Status of the collection","default":"new","example":"pending","enum":["new","in progress","done","error","unknown","queued","pending","abandoned"]},"transfer_id":{"type":"string","description":"Identifier of Archivematica transfer","example":"8044847a-1caf-11ee-b3da-7085c27bdeb0","format":"uuid"},"workflow_id":{"type":"string","description":"Identifier of processing workflow","example":"804481eb-1caf-11ee-b3da-7085c27bdeb0","format":"uuid"}},"description":"StoredCollection describes a collection retrieved by the service.","example":{"aip_id":"80448f70-1caf-11ee-b3da-7085c27bdeb0","completed_at":"1986-04-15T08:25:16Z","created_at":"2002-08-25T21:29:42Z","id":3007180406968656670,"name":"Saepe officia veritatis.","original_id":"Reiciendis corporis recusandae optio possimus id et.","pipeline_id":"80449090-1caf-11ee-b3da-7085c27bdeb0","run_id":"80448cef-1caf-11ee-b3da-7085c27bdeb0","started_at":"2002-10-30T11:51:06Z","status":"error","transfer_id":"80448e56-1caf-11ee-b3da-7085c27bdeb0","workflow_id":"80448bc9-1caf-11ee-b3da-7085c27bdeb0"},"required":["id","status","created_at"]},"EnduroStoredCollectionCollection":{"type":"array","items":{"$ref":"#/components/schemas/EnduroStoredCollection"},"example":[{"aip_id":"8040c16f-1caf-11ee-b3da-7085c27bdeb0","completed_at":"2014-01-26T22:52:33Z","created_at":"2006-09-07T19:48:15Z","id":5273261262554249024,"name":"Iusto laudantium assumenda.","original_id":"Voluptatem eum et rerum.","pipeline_id":"8040c2e5-1caf-11ee-b3da-7085c27bdeb0","run_id":"8040be91-1caf-11ee-b3da-7085c27bdeb0","started_at":"1986-05-13T23:32:21Z","status":"unknown","transfer_id":"8040c023-1caf-11ee-b3da-7085c27bdeb0","workflow_id":"8040a720-1caf-11ee-b3da-7085c27bdeb0"},{"aip_id":"8040c16f-1caf-11ee-b3da-7085c27bdeb0","completed_at":"2014-01-26T22:52:33Z","created_at":"2006-09-07T19:48:15Z","id":5273261262554249024,"name":"Iusto laudantium assumenda.","original_id":"Voluptatem eum et rerum.","pipeline_id":"8040c2e5-1caf-11ee-b3da-7085c27bdeb0","run_id":"8040be91-1caf-11ee-b3da-7085c27bdeb0","started_at":"1986-05-13T23:32:21Z","status":"unknown","transfer_id":"8040c023-1caf-11ee-b3da-7085c27bdeb0","workflow_id":"8040a720-1caf-11ee-b3da-7085c27bdeb0"}]},"EnduroStoredPipeline":{"type":"object","properties":{"capacity":{"type":"integer","description":"Maximum concurrent transfers","example":1989177477828674102,"format":"int64"},"current":{"type":"integer","description":"Current transfers","example":8963484872741715398,"format":"int64"},"id":{"type":"string","description":"Identifier of the pipeline","example":"80449fa3-1caf-11ee-b3da-7085c27bdeb0","format":"uuid"},"name":{"type":"string","description":"Name of the pipeline","example":"Sapiente explicabo assumenda sequi quas quia."},"status":{"type":"string","example":"Unde est provident sint at modi est."}},"description":"StoredPipeline describes a pipeline retrieved by this service.","example":{"capacity":6669239469679583324,"current":1662791287299616533,"id":"8044a0f0-1caf-11ee-b3da-7085c27bdeb0","name":"Eveniet sit.","status":"Autem voluptate rerum quod vitae ut corrupti."},"required":["name"]},"Error":{"type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?","example":false},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem.","example":"123abc"},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem.","example":"parameter 'p' must be an integer"},"name":{"type":"string","description":"Name is the name of this class of errors.","example":"bad_request"},"temporary":{"type":"boolean","description":"Is the error temporary?","example":false},"timeout":{"type":"boolean","description":"Is the error a timeout?","example":false}},"example":{"id":"3F1FKVRR","message":"Value of ID must be an integer","name":"bad_request"},"required":["name","id","message","temporary","timeout","fault"]},"ListResponseBody":{"type":"object","properties":{"items":{"$ref":"#/components/schemas/EnduroStoredCollectionCollection"},"next_cursor":{"type":"string","example":"Reiciendis iste quis asperiores voluptate temporibus."}},"example":{"items":[{"aip_id":"8040c16f-1caf-11ee-b3da-7085c27bdeb0","completed_at":"2014-01-26T22:52:33Z","created_at":"2006-09-07T19:48:15Z","id":5273261262554249024,"name":"Iusto laudantium assumenda.","original_id":"Voluptatem eum et rerum.","pipeline_id":"8040c2e5-1caf-11ee-b3da-7085c27bdeb0","run_id":"8040be91-1caf-11ee-b3da-7085c27bdeb0","started_at":"1986-05-13T23:32:21Z","status":"unknown","transfer_id":"8040c023-1caf-11ee-b3da-7085c27bdeb0","workflow_id":"8040a720-1caf-11ee-b3da-7085c27bdeb0"},{"aip_id":"8040c16f-1caf-11ee-b3da-7085c27bdeb0","completed_at":"2014-01-26T22:52:33Z","created_at":"2006-09-07T19:48:15Z","id":5273261262554249024,"name":"Iusto laudantium assumenda.","original_id":"Voluptatem eum et rerum.","pipeline_id":"8040c2e5-1caf-11ee-b3da-7085c27bdeb0","run_id":"8040be91-1caf-11ee-b3da-7085c27bdeb0","started_at":"1986-05-13T23:32:21Z","status":"unknown","transfer_id":"8040c023-1caf-11ee-b3da-7085c27bdeb0","workflow_id":"8040a720-1caf-11ee-b3da-7085c27bdeb0"},{"aip_id":"8040c16f-1caf-11ee-b3da-7085c27bdeb0","completed_at":"2014-01-26T22:52:33Z","created_at":"2006-09-07T19:48:15Z","id":5273261262554249024,"name":"Iusto laudantium assumenda.","original_id":"Voluptatem eum et rerum.","pipeline_id":"8040c2e5-1caf-11ee-b3da-7085c27bdeb0","run_id":"8040be91-1caf-11ee-b3da-7085c27bdeb0","started_at":"1986-05-13T23:32:21Z","status":"unknown","transfer_id":"8040c023-1caf-11ee-b3da-7085c27bdeb0","workflow_id":"8040a720-1caf-11ee-b3da-7085c27bdeb0"},{"aip_id":"8040c16f-1caf-11ee-b3da-7085c27bdeb0","completed_at":"2014-01-26T22:52:33Z","created_at":"2006-09-07T19:48:15Z","id":5273261262554249024,"name":"Iusto laudantium assumenda.","original_id":"Voluptatem eum et rerum.","pipeline_id":"8040c2e5-1caf-11ee-b3da-7085c27bdeb0","run_id":"8040be91-1caf-11ee-b3da-7085c27bdeb0","started_at":"1986-05-13T23:32:21Z","status":"unknown","transfer_id":"8040c023-1caf-11ee-b3da-7085c27bdeb0","workflow_id":"8040a720-1caf-11ee-b3da-7085c27bdeb0"}],"next_cursor":"Facilis officiis dicta et vitae consequatur nihil."},"required":["items"]},"PipelineNotFound":{"type":"object","properties":{"id":{"type":"string","description":"Identifier of missing pipeline","example":"Consequuntur quis."},"message":{"type":"string","description":"Message of error","example":"Rerum et distinctio illum voluptas vel nesciunt."}},"description":"Pipeline not found","example":{"id":"Illo ducimus et deleniti.","message":"Ut at beatae."},"required":["message","id"]},"SubmitRequestBody":{"type":"object","properties":{"completed_dir":{"type":"string","example":"Sunt ut."},"path":{"type":"string","example":"Qui non unde ut."},"pipeline":{"type":"string","example":"Et voluptatem quibusdam facilis magnam."},"processing_config":{"type":"string","example":"Veritatis vel eos."},"retention_period":{"type":"string","example":"Illum illum tenetur."}},"example":{"completed_dir":"Fugiat a officiis ipsum.","path":"Voluptates nulla autem et perspiciatis libero voluptas.","pipeline":"Voluptates et molestiae eum et occaecati.","processing_config":"Et et eligendi voluptatem.","retention_period":"Necessitatibus voluptas mollitia dolore."},"required":["path"]}}},"tags":[{"name":"batch","description":"The batch service manages batches of collections."},{"name":"collection","description":"The collection service manages packages being transferred to Archivematica."},{"name":"pipeline","description":"The pipeline service manages Archivematica pipelines."},{"name":"swagger","description":"The swagger service serves the API swagger definition."}]} \ No newline at end of file diff --git a/internal/api/gen/http/openapi3.yaml b/internal/api/gen/http/openapi3.yaml index 8e665504..36ed0ec9 100644 --- a/internal/api/gen/http/openapi3.yaml +++ b/internal/api/gen/http/openapi3.yaml @@ -97,61 +97,61 @@ paths: allowEmptyValue: true schema: type: string - example: Dolorem rerum ullam provident hic aut. - example: Magni blanditiis sequi sunt neque velit. + example: Autem magnam. + example: In enim amet architecto non repudiandae. - name: original_id in: query allowEmptyValue: true schema: type: string - example: Ducimus minima totam veritatis. - example: Aliquam unde sit omnis quos. + example: Dolorem rerum ullam provident hic aut. + example: Magni blanditiis sequi sunt neque velit. - name: transfer_id in: query allowEmptyValue: true schema: type: string - example: 3aa38b35-1c21-11ee-bb08-7085c27bdeb0 + example: 8044a57e-1caf-11ee-b3da-7085c27bdeb0 format: uuid - example: 3aa38c90-1c21-11ee-bb08-7085c27bdeb0 + example: 8044a6cc-1caf-11ee-b3da-7085c27bdeb0 - name: aip_id in: query allowEmptyValue: true schema: type: string - example: 3aa38de7-1c21-11ee-bb08-7085c27bdeb0 + example: 8044a7f3-1caf-11ee-b3da-7085c27bdeb0 format: uuid - example: 3aa38f17-1c21-11ee-bb08-7085c27bdeb0 + example: 8044a91d-1caf-11ee-b3da-7085c27bdeb0 - name: pipeline_id in: query allowEmptyValue: true schema: type: string - example: 3aa3903e-1c21-11ee-bb08-7085c27bdeb0 + example: 8044aa5b-1caf-11ee-b3da-7085c27bdeb0 format: uuid - example: 3aa3916a-1c21-11ee-bb08-7085c27bdeb0 + example: 8044abb8-1caf-11ee-b3da-7085c27bdeb0 - name: earliest_created_time in: query allowEmptyValue: true schema: type: string - example: "1997-12-25T18:16:26Z" + example: "1997-08-02T15:59:16Z" format: date-time - example: "1979-05-02T21:10:22Z" + example: "2008-01-03T21:15:24Z" - name: latest_created_time in: query allowEmptyValue: true schema: type: string - example: "1999-12-17T11:47:57Z" + example: "1986-07-18T14:01:59Z" format: date-time - example: "2014-10-13T03:53:49Z" + example: "2009-03-08T19:06:41Z" - name: status in: query allowEmptyValue: true schema: type: string - example: done + example: abandoned enum: - new - in progress @@ -169,8 +169,8 @@ paths: schema: type: string description: Pagination cursor - example: In ut qui aut quo. - example: Sunt iste facilis rerum inventore architecto tempora. + example: In distinctio. + example: Aliquid consectetur. responses: "200": description: OK response. @@ -180,54 +180,54 @@ paths: $ref: '#/components/schemas/ListResponseBody' example: items: - - aip_id: 3aa0d6b1-1c21-11ee-bb08-7085c27bdeb0 + - aip_id: 8040c16f-1caf-11ee-b3da-7085c27bdeb0 completed_at: "2014-01-26T22:52:33Z" created_at: "2006-09-07T19:48:15Z" id: 5273261262554249024 name: Iusto laudantium assumenda. original_id: Voluptatem eum et rerum. - pipeline_id: 3aa0d854-1c21-11ee-bb08-7085c27bdeb0 - run_id: 3aa0d415-1c21-11ee-bb08-7085c27bdeb0 + pipeline_id: 8040c2e5-1caf-11ee-b3da-7085c27bdeb0 + run_id: 8040be91-1caf-11ee-b3da-7085c27bdeb0 started_at: "1986-05-13T23:32:21Z" status: unknown - transfer_id: 3aa0d569-1c21-11ee-bb08-7085c27bdeb0 - workflow_id: 3aa0be66-1c21-11ee-bb08-7085c27bdeb0 - - aip_id: 3aa0d6b1-1c21-11ee-bb08-7085c27bdeb0 + transfer_id: 8040c023-1caf-11ee-b3da-7085c27bdeb0 + workflow_id: 8040a720-1caf-11ee-b3da-7085c27bdeb0 + - aip_id: 8040c16f-1caf-11ee-b3da-7085c27bdeb0 completed_at: "2014-01-26T22:52:33Z" created_at: "2006-09-07T19:48:15Z" id: 5273261262554249024 name: Iusto laudantium assumenda. original_id: Voluptatem eum et rerum. - pipeline_id: 3aa0d854-1c21-11ee-bb08-7085c27bdeb0 - run_id: 3aa0d415-1c21-11ee-bb08-7085c27bdeb0 + pipeline_id: 8040c2e5-1caf-11ee-b3da-7085c27bdeb0 + run_id: 8040be91-1caf-11ee-b3da-7085c27bdeb0 started_at: "1986-05-13T23:32:21Z" status: unknown - transfer_id: 3aa0d569-1c21-11ee-bb08-7085c27bdeb0 - workflow_id: 3aa0be66-1c21-11ee-bb08-7085c27bdeb0 - - aip_id: 3aa0d6b1-1c21-11ee-bb08-7085c27bdeb0 + transfer_id: 8040c023-1caf-11ee-b3da-7085c27bdeb0 + workflow_id: 8040a720-1caf-11ee-b3da-7085c27bdeb0 + - aip_id: 8040c16f-1caf-11ee-b3da-7085c27bdeb0 completed_at: "2014-01-26T22:52:33Z" created_at: "2006-09-07T19:48:15Z" id: 5273261262554249024 name: Iusto laudantium assumenda. original_id: Voluptatem eum et rerum. - pipeline_id: 3aa0d854-1c21-11ee-bb08-7085c27bdeb0 - run_id: 3aa0d415-1c21-11ee-bb08-7085c27bdeb0 + pipeline_id: 8040c2e5-1caf-11ee-b3da-7085c27bdeb0 + run_id: 8040be91-1caf-11ee-b3da-7085c27bdeb0 started_at: "1986-05-13T23:32:21Z" status: unknown - transfer_id: 3aa0d569-1c21-11ee-bb08-7085c27bdeb0 - workflow_id: 3aa0be66-1c21-11ee-bb08-7085c27bdeb0 - - aip_id: 3aa0d6b1-1c21-11ee-bb08-7085c27bdeb0 + transfer_id: 8040c023-1caf-11ee-b3da-7085c27bdeb0 + workflow_id: 8040a720-1caf-11ee-b3da-7085c27bdeb0 + - aip_id: 8040c16f-1caf-11ee-b3da-7085c27bdeb0 completed_at: "2014-01-26T22:52:33Z" created_at: "2006-09-07T19:48:15Z" id: 5273261262554249024 name: Iusto laudantium assumenda. original_id: Voluptatem eum et rerum. - pipeline_id: 3aa0d854-1c21-11ee-bb08-7085c27bdeb0 - run_id: 3aa0d415-1c21-11ee-bb08-7085c27bdeb0 + pipeline_id: 8040c2e5-1caf-11ee-b3da-7085c27bdeb0 + run_id: 8040be91-1caf-11ee-b3da-7085c27bdeb0 started_at: "1986-05-13T23:32:21Z" status: unknown - transfer_id: 3aa0d569-1c21-11ee-bb08-7085c27bdeb0 - workflow_id: 3aa0be66-1c21-11ee-bb08-7085c27bdeb0 + transfer_id: 8040c023-1caf-11ee-b3da-7085c27bdeb0 + workflow_id: 8040a720-1caf-11ee-b3da-7085c27bdeb0 next_cursor: Ad aut rerum. /collection/{id}: delete: @@ -244,8 +244,8 @@ paths: schema: type: integer description: Identifier of collection to delete - example: 17387408872735771929 - example: 18321251186215423685 + example: 13723768498999707294 + example: 4281983801442889633 responses: "204": description: No Content response. @@ -269,8 +269,8 @@ paths: schema: type: integer description: Identifier of collection to show - example: 10131890621733502138 - example: 12151494561344357633 + example: 11152959749157106813 + example: 2714760919191889086 responses: "200": description: OK response. @@ -279,18 +279,18 @@ paths: schema: $ref: '#/components/schemas/EnduroStoredCollection' example: - aip_id: 3aa1cccb-1c21-11ee-bb08-7085c27bdeb0 + aip_id: 8041c617-1caf-11ee-b3da-7085c27bdeb0 completed_at: "2000-10-04T09:57:15Z" created_at: "2010-07-22T22:55:51Z" id: 12024565834601469556 name: Quam quas. original_id: Et consequatur aut enim consequuntur debitis temporibus. - pipeline_id: 3aa1ce07-1c21-11ee-bb08-7085c27bdeb0 - run_id: 3aa1ca35-1c21-11ee-bb08-7085c27bdeb0 + pipeline_id: 8041c781-1caf-11ee-b3da-7085c27bdeb0 + run_id: 8041c3a5-1caf-11ee-b3da-7085c27bdeb0 started_at: "2014-07-31T20:44:18Z" status: queued - transfer_id: 3aa1cb70-1c21-11ee-bb08-7085c27bdeb0 - workflow_id: 3aa1c8fb-1c21-11ee-bb08-7085c27bdeb0 + transfer_id: 8041c4ef-1caf-11ee-b3da-7085c27bdeb0 + workflow_id: 8041c263-1caf-11ee-b3da-7085c27bdeb0 "404": description: 'not_found: Collection not found' content: @@ -312,8 +312,8 @@ paths: schema: type: integer description: Identifier of collection to remove - example: 8238362425834670988 - example: 7926296436146036015 + example: 16600406390601565003 + example: 7109129474441531445 responses: "200": description: OK response. @@ -361,9 +361,9 @@ paths: option: type: string description: Decision option to proceed with - example: Aut dolorem praesentium asperiores commodi earum neque. + example: Ipsam necessitatibus similique adipisci magnam animi adipisci. example: - option: Eaque ipsam. + option: Aut dolorem praesentium asperiores commodi earum neque. example: option: Excepturi architecto illum et consequatur optio corporis. responses: @@ -401,108 +401,36 @@ paths: schema: type: integer description: Identifier of collection to look up - example: 17608551620639562459 - example: 1156397374729870360 + example: 10619197190842817831 + example: 14672833274825296722 responses: "200": description: OK response. + headers: + Content-Disposition: + required: true + schema: + type: string + example: Cupiditate ex. + example: Assumenda porro velit ut reiciendis voluptas dolorum. + Content-Length: + required: true + schema: + type: integer + example: 351966788610772943 + format: int64 + example: 4761892039764643891 + Content-Type: + required: true + schema: + type: string + example: Voluptate est nihil in. + example: Iste facilis rerum. content: application/json: schema: type: string - example: - - 73 - - 112 - - 115 - - 97 - - 109 - - 32 - - 110 - - 101 - - 99 - - 101 - - 115 - - 115 - - 105 - - 116 - - 97 - - 116 - - 105 - - 98 - - 117 - - 115 - - 32 - - 115 - - 105 - - 109 - - 105 - - 108 - - 105 - - 113 - - 117 - - 101 - - 32 - - 97 - - 100 - - 105 - - 112 - - 105 - - 115 - - 99 - - 105 - - 32 - - 109 - - 97 - - 103 - - 110 - - 97 - - 109 - - 32 - - 97 - - 110 - - 105 - - 109 - - 105 - - 32 - - 97 - - 100 - - 105 - - 112 - - 105 - - 115 - - 99 - - 105 - - 46 format: binary - example: - - 82 - - 101 - - 105 - - 99 - - 105 - - 101 - - 110 - - 100 - - 105 - - 115 - - 32 - - 118 - - 111 - - 108 - - 117 - - 112 - - 116 - - 97 - - 115 - - 32 - - 100 - - 111 - - 108 - - 111 - - 114 - - 117 - - 109 - - 46 "404": description: 'not_found: Collection not found' content: @@ -524,8 +452,8 @@ paths: schema: type: integer description: Identifier of collection to retry - example: 1414840750630874316 - example: 14468688610787245765 + example: 12725953428629027252 + example: 12842452705283749677 responses: "200": description: OK response. @@ -561,8 +489,8 @@ paths: schema: type: integer description: Identifier of collection to look up - example: 17826339955967178467 - example: 15122940082992273340 + example: 18388433154584481399 + example: 3387093312747365124 responses: "200": description: OK response. @@ -606,12 +534,12 @@ paths: schema: $ref: '#/components/schemas/BulkStatusResult' example: - closed_at: "1983-11-09T08:33:50Z" - run_id: Officiis eum pariatur. - running: false - started_at: "2006-08-01T01:39:09Z" - status: Repellat architecto dolore harum. - workflow_id: Excepturi dolor aut rerum. + closed_at: "1973-08-11T22:51:48Z" + run_id: Pariatur fugit eaque nemo quia consectetur et. + running: true + started_at: "1983-04-26T16:46:49Z" + status: Harum tempore excepturi. + workflow_id: Aut rerum harum officiis. post: tags: - collection @@ -625,9 +553,9 @@ paths: schema: $ref: '#/components/schemas/BulkRequestBody' example: - operation: cancel - size: 15492129042979125718 - status: in progress + operation: retry + size: 15570024955802771098 + status: done responses: "202": description: Accepted response. @@ -636,8 +564,8 @@ paths: schema: $ref: '#/components/schemas/BatchResult' example: - run_id: Deserunt illum et tempora. - workflow_id: Explicabo et numquam aut dolores et voluptas. + run_id: Illum et tempora quae porro. + workflow_id: Dolores et voluptas repellat. "400": description: 'not_valid: Bad Request response.' content: @@ -666,18 +594,18 @@ paths: example: id: 2293355532387428117 item: - aip_id: 3aa0d6b1-1c21-11ee-bb08-7085c27bdeb0 + aip_id: 8040c16f-1caf-11ee-b3da-7085c27bdeb0 completed_at: "2014-01-26T22:52:33Z" created_at: "2006-09-07T19:48:15Z" id: 5273261262554249024 name: Iusto laudantium assumenda. original_id: Voluptatem eum et rerum. - pipeline_id: 3aa0d854-1c21-11ee-bb08-7085c27bdeb0 - run_id: 3aa0d415-1c21-11ee-bb08-7085c27bdeb0 + pipeline_id: 8040c2e5-1caf-11ee-b3da-7085c27bdeb0 + run_id: 8040be91-1caf-11ee-b3da-7085c27bdeb0 started_at: "1986-05-13T23:32:21Z" status: unknown - transfer_id: 3aa0d569-1c21-11ee-bb08-7085c27bdeb0 - workflow_id: 3aa0be66-1c21-11ee-bb08-7085c27bdeb0 + transfer_id: 8040c023-1caf-11ee-b3da-7085c27bdeb0 + workflow_id: 8040a720-1caf-11ee-b3da-7085c27bdeb0 type: Deleniti ea tenetur deleniti. /pipeline: get: @@ -714,33 +642,43 @@ paths: example: - capacity: 8406108818872523115 current: 1737602466879989319 - id: 3aa13013-1c21-11ee-bb08-7085c27bdeb0 + id: 8040f76b-1caf-11ee-b3da-7085c27bdeb0 name: Eius perferendis et corrupti harum nisi voluptatibus. status: Qui explicabo qui error sint. - capacity: 8406108818872523115 current: 1737602466879989319 - id: 3aa13013-1c21-11ee-bb08-7085c27bdeb0 + id: 8040f76b-1caf-11ee-b3da-7085c27bdeb0 + name: Eius perferendis et corrupti harum nisi voluptatibus. + status: Qui explicabo qui error sint. + - capacity: 8406108818872523115 + current: 1737602466879989319 + id: 8040f76b-1caf-11ee-b3da-7085c27bdeb0 + name: Eius perferendis et corrupti harum nisi voluptatibus. + status: Qui explicabo qui error sint. + - capacity: 8406108818872523115 + current: 1737602466879989319 + id: 8040f76b-1caf-11ee-b3da-7085c27bdeb0 name: Eius perferendis et corrupti harum nisi voluptatibus. status: Qui explicabo qui error sint. example: - capacity: 8406108818872523115 current: 1737602466879989319 - id: 3aa13013-1c21-11ee-bb08-7085c27bdeb0 + id: 8040f76b-1caf-11ee-b3da-7085c27bdeb0 name: Eius perferendis et corrupti harum nisi voluptatibus. status: Qui explicabo qui error sint. - capacity: 8406108818872523115 current: 1737602466879989319 - id: 3aa13013-1c21-11ee-bb08-7085c27bdeb0 + id: 8040f76b-1caf-11ee-b3da-7085c27bdeb0 name: Eius perferendis et corrupti harum nisi voluptatibus. status: Qui explicabo qui error sint. - capacity: 8406108818872523115 current: 1737602466879989319 - id: 3aa13013-1c21-11ee-bb08-7085c27bdeb0 + id: 8040f76b-1caf-11ee-b3da-7085c27bdeb0 name: Eius perferendis et corrupti harum nisi voluptatibus. status: Qui explicabo qui error sint. - capacity: 8406108818872523115 current: 1737602466879989319 - id: 3aa13013-1c21-11ee-bb08-7085c27bdeb0 + id: 8040f76b-1caf-11ee-b3da-7085c27bdeb0 name: Eius perferendis et corrupti harum nisi voluptatibus. status: Qui explicabo qui error sint. /pipeline/{id}: @@ -758,9 +696,9 @@ paths: schema: type: string description: Identifier of pipeline to show - example: 3aa39b4b-1c21-11ee-bb08-7085c27bdeb0 + example: 8044b6df-1caf-11ee-b3da-7085c27bdeb0 format: uuid - example: 3aa39c8c-1c21-11ee-bb08-7085c27bdeb0 + example: 8044b818-1caf-11ee-b3da-7085c27bdeb0 responses: "200": description: OK response. @@ -769,11 +707,11 @@ paths: schema: $ref: '#/components/schemas/EnduroStoredPipeline' example: - capacity: 604697410197609923 - current: 1321092956144830636 - id: 3aa2a8cf-1c21-11ee-bb08-7085c27bdeb0 - name: Tempora error inventore molestias animi asperiores blanditiis. - status: Quam assumenda saepe omnis et eius. + capacity: 2542023261889200589 + current: 604697410197609923 + id: 8042dcdc-1caf-11ee-b3da-7085c27bdeb0 + name: Animi asperiores. + status: Amet quam assumenda saepe omnis et eius. "404": description: 'not_found: Pipeline not found' content: @@ -795,9 +733,9 @@ paths: schema: type: string description: Identifier of pipeline - example: 3aa39e15-1c21-11ee-bb08-7085c27bdeb0 + example: 8044b9c1-1caf-11ee-b3da-7085c27bdeb0 format: uuid - example: 3aa39f3a-1c21-11ee-bb08-7085c27bdeb0 + example: 8044baf8-1caf-11ee-b3da-7085c27bdeb0 responses: "200": description: OK response. @@ -807,10 +745,11 @@ paths: type: array items: type: string - example: Tenetur iste numquam rem quo eligendi. + example: Ea ut repellendus similique minima et. example: - - Autem magnam. - - In enim amet architecto non repudiandae. + - Aut at optio esse tenetur. + - Numquam rem. + - Eligendi cum. example: - Maiores et dolores sed rerum est et. - Molestias natus aut. @@ -892,7 +831,7 @@ components: properties: operation: type: string - example: abandon + example: cancel enum: - retry - cancel @@ -900,7 +839,7 @@ components: size: type: integer default: 100 - example: 7049186774788407004 + example: 9344938536322302895 status: type: string example: unknown @@ -914,9 +853,9 @@ components: - pending - abandoned example: - operation: cancel - size: 10756257245132189908 - status: new + operation: abandon + size: 7049186774788407004 + status: unknown required: - operation - status @@ -925,31 +864,31 @@ components: properties: closed_at: type: string - example: "1988-07-12T21:32:29Z" + example: "1984-10-13T06:35:18Z" format: date-time run_id: type: string - example: Et molestiae alias qui omnis reiciendis quae. + example: Eligendi mollitia ut voluptate tempora iusto et. running: type: boolean - example: true + example: false started_at: type: string - example: "2004-09-15T21:11:47Z" + example: "2001-07-14T23:44:52Z" format: date-time status: type: string - example: Mollitia est officiis nostrum dignissimos ut. + example: Iure eos mollitia est. workflow_id: type: string - example: Eligendi mollitia ut voluptate tempora iusto et. + example: Nostrum dignissimos ut. example: - closed_at: "1997-01-23T03:40:32Z" - run_id: Animi quia ut culpa aut explicabo placeat. - running: false - started_at: "2010-10-16T14:05:06Z" - status: Similique assumenda doloremque cumque quia consequuntur. - workflow_id: Nobis hic debitis. + closed_at: "2009-02-09T23:14:48Z" + run_id: Consequuntur modi. + running: true + started_at: "1987-01-20T03:54:11Z" + status: Mollitia vitae amet et excepturi deleniti. + workflow_id: Nemo similique assumenda doloremque cumque. required: - running CollectionNotfound: @@ -1044,18 +983,18 @@ components: example: id: 18173606350330826349 item: - aip_id: 3aa0d6b1-1c21-11ee-bb08-7085c27bdeb0 + aip_id: 8040c16f-1caf-11ee-b3da-7085c27bdeb0 completed_at: "2014-01-26T22:52:33Z" created_at: "2006-09-07T19:48:15Z" id: 5273261262554249024 name: Iusto laudantium assumenda. original_id: Voluptatem eum et rerum. - pipeline_id: 3aa0d854-1c21-11ee-bb08-7085c27bdeb0 - run_id: 3aa0d415-1c21-11ee-bb08-7085c27bdeb0 + pipeline_id: 8040c2e5-1caf-11ee-b3da-7085c27bdeb0 + run_id: 8040be91-1caf-11ee-b3da-7085c27bdeb0 started_at: "1986-05-13T23:32:21Z" status: unknown - transfer_id: 3aa0d569-1c21-11ee-bb08-7085c27bdeb0 - workflow_id: 3aa0be66-1c21-11ee-bb08-7085c27bdeb0 + transfer_id: 8040c023-1caf-11ee-b3da-7085c27bdeb0 + workflow_id: 8040a720-1caf-11ee-b3da-7085c27bdeb0 type: Perspiciatis porro veritatis et. required: - id @@ -1066,7 +1005,7 @@ components: aip_id: type: string description: Identifier of Archivematica AIP - example: 3aa36a17-1c21-11ee-bb08-7085c27bdeb0 + example: 804485be-1caf-11ee-b3da-7085c27bdeb0 format: uuid completed_at: type: string @@ -1093,12 +1032,12 @@ components: pipeline_id: type: string description: Identifier of Archivematica pipeline - example: 3aa36b7e-1c21-11ee-bb08-7085c27bdeb0 + example: 80448700-1caf-11ee-b3da-7085c27bdeb0 format: uuid run_id: type: string description: Identifier of latest processing workflow run - example: 3aa35efa-1c21-11ee-bb08-7085c27bdeb0 + example: 80448347-1caf-11ee-b3da-7085c27bdeb0 format: uuid started_at: type: string @@ -1122,27 +1061,27 @@ components: transfer_id: type: string description: Identifier of Archivematica transfer - example: 3aa367ab-1c21-11ee-bb08-7085c27bdeb0 + example: 8044847a-1caf-11ee-b3da-7085c27bdeb0 format: uuid workflow_id: type: string description: Identifier of processing workflow - example: 3aa35c99-1c21-11ee-bb08-7085c27bdeb0 + example: 804481eb-1caf-11ee-b3da-7085c27bdeb0 format: uuid description: StoredCollection describes a collection retrieved by the service. example: - aip_id: 3aa3743c-1c21-11ee-bb08-7085c27bdeb0 + aip_id: 80448f70-1caf-11ee-b3da-7085c27bdeb0 completed_at: "1986-04-15T08:25:16Z" created_at: "2002-08-25T21:29:42Z" id: 3007180406968656670 name: Saepe officia veritatis. original_id: Reiciendis corporis recusandae optio possimus id et. - pipeline_id: 3aa37568-1c21-11ee-bb08-7085c27bdeb0 - run_id: 3aa371fa-1c21-11ee-bb08-7085c27bdeb0 + pipeline_id: 80449090-1caf-11ee-b3da-7085c27bdeb0 + run_id: 80448cef-1caf-11ee-b3da-7085c27bdeb0 started_at: "2002-10-30T11:51:06Z" status: error - transfer_id: 3aa37322-1c21-11ee-bb08-7085c27bdeb0 - workflow_id: 3aa37096-1c21-11ee-bb08-7085c27bdeb0 + transfer_id: 80448e56-1caf-11ee-b3da-7085c27bdeb0 + workflow_id: 80448bc9-1caf-11ee-b3da-7085c27bdeb0 required: - id - status @@ -1152,62 +1091,62 @@ components: items: $ref: '#/components/schemas/EnduroStoredCollection' example: - - aip_id: 3aa0d6b1-1c21-11ee-bb08-7085c27bdeb0 + - aip_id: 8040c16f-1caf-11ee-b3da-7085c27bdeb0 completed_at: "2014-01-26T22:52:33Z" created_at: "2006-09-07T19:48:15Z" id: 5273261262554249024 name: Iusto laudantium assumenda. original_id: Voluptatem eum et rerum. - pipeline_id: 3aa0d854-1c21-11ee-bb08-7085c27bdeb0 - run_id: 3aa0d415-1c21-11ee-bb08-7085c27bdeb0 + pipeline_id: 8040c2e5-1caf-11ee-b3da-7085c27bdeb0 + run_id: 8040be91-1caf-11ee-b3da-7085c27bdeb0 started_at: "1986-05-13T23:32:21Z" status: unknown - transfer_id: 3aa0d569-1c21-11ee-bb08-7085c27bdeb0 - workflow_id: 3aa0be66-1c21-11ee-bb08-7085c27bdeb0 - - aip_id: 3aa0d6b1-1c21-11ee-bb08-7085c27bdeb0 + transfer_id: 8040c023-1caf-11ee-b3da-7085c27bdeb0 + workflow_id: 8040a720-1caf-11ee-b3da-7085c27bdeb0 + - aip_id: 8040c16f-1caf-11ee-b3da-7085c27bdeb0 completed_at: "2014-01-26T22:52:33Z" created_at: "2006-09-07T19:48:15Z" id: 5273261262554249024 name: Iusto laudantium assumenda. original_id: Voluptatem eum et rerum. - pipeline_id: 3aa0d854-1c21-11ee-bb08-7085c27bdeb0 - run_id: 3aa0d415-1c21-11ee-bb08-7085c27bdeb0 + pipeline_id: 8040c2e5-1caf-11ee-b3da-7085c27bdeb0 + run_id: 8040be91-1caf-11ee-b3da-7085c27bdeb0 started_at: "1986-05-13T23:32:21Z" status: unknown - transfer_id: 3aa0d569-1c21-11ee-bb08-7085c27bdeb0 - workflow_id: 3aa0be66-1c21-11ee-bb08-7085c27bdeb0 + transfer_id: 8040c023-1caf-11ee-b3da-7085c27bdeb0 + workflow_id: 8040a720-1caf-11ee-b3da-7085c27bdeb0 EnduroStoredPipeline: type: object properties: capacity: type: integer description: Maximum concurrent transfers - example: 675308295529917391 + example: 1989177477828674102 format: int64 current: type: integer description: Current transfers - example: 1126670102776995078 + example: 8963484872741715398 format: int64 id: type: string description: Identifier of the pipeline - example: 3aa3835f-1c21-11ee-bb08-7085c27bdeb0 + example: 80449fa3-1caf-11ee-b3da-7085c27bdeb0 format: uuid name: type: string description: Name of the pipeline - example: Est provident sint at modi est. + example: Sapiente explicabo assumenda sequi quas quia. status: type: string - example: Repellat inventore culpa qui sapiente inventore non. + example: Unde est provident sint at modi est. description: StoredPipeline describes a pipeline retrieved by this service. example: - capacity: 3260630790103415086 - current: 7000442574851704032 - id: 3aa386a1-1c21-11ee-bb08-7085c27bdeb0 - name: Ut corrupti velit enim. - status: Illum voluptas vel nesciunt. + capacity: 6669239469679583324 + current: 1662791287299616533 + id: 8044a0f0-1caf-11ee-b3da-7085c27bdeb0 + name: Eveniet sit. + status: Autem voluptate rerum quod vitae ut corrupti. required: - name Error: @@ -1258,54 +1197,54 @@ components: example: Reiciendis iste quis asperiores voluptate temporibus. example: items: - - aip_id: 3aa0d6b1-1c21-11ee-bb08-7085c27bdeb0 + - aip_id: 8040c16f-1caf-11ee-b3da-7085c27bdeb0 completed_at: "2014-01-26T22:52:33Z" created_at: "2006-09-07T19:48:15Z" id: 5273261262554249024 name: Iusto laudantium assumenda. original_id: Voluptatem eum et rerum. - pipeline_id: 3aa0d854-1c21-11ee-bb08-7085c27bdeb0 - run_id: 3aa0d415-1c21-11ee-bb08-7085c27bdeb0 + pipeline_id: 8040c2e5-1caf-11ee-b3da-7085c27bdeb0 + run_id: 8040be91-1caf-11ee-b3da-7085c27bdeb0 started_at: "1986-05-13T23:32:21Z" status: unknown - transfer_id: 3aa0d569-1c21-11ee-bb08-7085c27bdeb0 - workflow_id: 3aa0be66-1c21-11ee-bb08-7085c27bdeb0 - - aip_id: 3aa0d6b1-1c21-11ee-bb08-7085c27bdeb0 + transfer_id: 8040c023-1caf-11ee-b3da-7085c27bdeb0 + workflow_id: 8040a720-1caf-11ee-b3da-7085c27bdeb0 + - aip_id: 8040c16f-1caf-11ee-b3da-7085c27bdeb0 completed_at: "2014-01-26T22:52:33Z" created_at: "2006-09-07T19:48:15Z" id: 5273261262554249024 name: Iusto laudantium assumenda. original_id: Voluptatem eum et rerum. - pipeline_id: 3aa0d854-1c21-11ee-bb08-7085c27bdeb0 - run_id: 3aa0d415-1c21-11ee-bb08-7085c27bdeb0 + pipeline_id: 8040c2e5-1caf-11ee-b3da-7085c27bdeb0 + run_id: 8040be91-1caf-11ee-b3da-7085c27bdeb0 started_at: "1986-05-13T23:32:21Z" status: unknown - transfer_id: 3aa0d569-1c21-11ee-bb08-7085c27bdeb0 - workflow_id: 3aa0be66-1c21-11ee-bb08-7085c27bdeb0 - - aip_id: 3aa0d6b1-1c21-11ee-bb08-7085c27bdeb0 + transfer_id: 8040c023-1caf-11ee-b3da-7085c27bdeb0 + workflow_id: 8040a720-1caf-11ee-b3da-7085c27bdeb0 + - aip_id: 8040c16f-1caf-11ee-b3da-7085c27bdeb0 completed_at: "2014-01-26T22:52:33Z" created_at: "2006-09-07T19:48:15Z" id: 5273261262554249024 name: Iusto laudantium assumenda. original_id: Voluptatem eum et rerum. - pipeline_id: 3aa0d854-1c21-11ee-bb08-7085c27bdeb0 - run_id: 3aa0d415-1c21-11ee-bb08-7085c27bdeb0 + pipeline_id: 8040c2e5-1caf-11ee-b3da-7085c27bdeb0 + run_id: 8040be91-1caf-11ee-b3da-7085c27bdeb0 started_at: "1986-05-13T23:32:21Z" status: unknown - transfer_id: 3aa0d569-1c21-11ee-bb08-7085c27bdeb0 - workflow_id: 3aa0be66-1c21-11ee-bb08-7085c27bdeb0 - - aip_id: 3aa0d6b1-1c21-11ee-bb08-7085c27bdeb0 + transfer_id: 8040c023-1caf-11ee-b3da-7085c27bdeb0 + workflow_id: 8040a720-1caf-11ee-b3da-7085c27bdeb0 + - aip_id: 8040c16f-1caf-11ee-b3da-7085c27bdeb0 completed_at: "2014-01-26T22:52:33Z" created_at: "2006-09-07T19:48:15Z" id: 5273261262554249024 name: Iusto laudantium assumenda. original_id: Voluptatem eum et rerum. - pipeline_id: 3aa0d854-1c21-11ee-bb08-7085c27bdeb0 - run_id: 3aa0d415-1c21-11ee-bb08-7085c27bdeb0 + pipeline_id: 8040c2e5-1caf-11ee-b3da-7085c27bdeb0 + run_id: 8040be91-1caf-11ee-b3da-7085c27bdeb0 started_at: "1986-05-13T23:32:21Z" status: unknown - transfer_id: 3aa0d569-1c21-11ee-bb08-7085c27bdeb0 - workflow_id: 3aa0be66-1c21-11ee-bb08-7085c27bdeb0 + transfer_id: 8040c023-1caf-11ee-b3da-7085c27bdeb0 + workflow_id: 8040a720-1caf-11ee-b3da-7085c27bdeb0 next_cursor: Facilis officiis dicta et vitae consequatur nihil. required: - items @@ -1315,15 +1254,15 @@ components: id: type: string description: Identifier of missing pipeline - example: Beatae quidem illo ducimus et deleniti voluptatibus. + example: Consequuntur quis. message: type: string description: Message of error - example: Quis nisi ut. + example: Rerum et distinctio illum voluptas vel nesciunt. description: Pipeline not found example: - id: Voluptatem ducimus aut at optio. - message: Ut repellendus similique minima. + id: Illo ducimus et deleniti. + message: Ut at beatae. required: - message - id diff --git a/internal/collection/collection.go b/internal/collection/collection.go index e8c84178..7054e089 100644 --- a/internal/collection/collection.go +++ b/internal/collection/collection.go @@ -4,13 +4,11 @@ import ( "context" "database/sql" "fmt" - "net/http" "time" "github.com/go-logr/logr" "github.com/jmoiron/sqlx" temporalsdk_client "go.temporal.io/sdk/client" - goahttp "goa.design/goa/v3/http" goacollection "github.com/artefactual-labs/enduro/internal/api/gen/collection" "github.com/artefactual-labs/enduro/internal/pipeline" @@ -25,14 +23,6 @@ type Service interface { SetStatusInProgress(ctx context.Context, ID uint, startedAt time.Time) error SetStatusPending(ctx context.Context, ID uint, taskToken []byte) error SetOriginalID(ctx context.Context, ID uint, originalID string) error - - // HTTPDownload returns a HTTP handler that serves the package over HTTP. - // - // TODO: this service is meant to be agnostic to protocols. But I haven't - // found a way in goagen to have my service write directly to the HTTP - // response writer. Ideally, our goacollection.Service would have a new - // method that takes a io.Writer (e.g. http.ResponseWriter). - HTTPDownload(mux goahttp.Muxer, dec func(r *http.Request) goahttp.Decoder) http.HandlerFunc } type collectionImpl struct { @@ -43,9 +33,6 @@ type collectionImpl struct { registry *pipeline.Registry - // downloadProxy generates a reverse proxy on each download. - downloadProxy *downloadReverseProxy - // Destination for events to be published. events EventService } @@ -54,13 +41,12 @@ var _ Service = (*collectionImpl)(nil) func NewService(logger logr.Logger, db *sql.DB, cc temporalsdk_client.Client, taskQueue string, registry *pipeline.Registry) *collectionImpl { return &collectionImpl{ - logger: logger, - db: sqlx.NewDb(db, "mysql"), - cc: cc, - taskQueue: taskQueue, - registry: registry, - downloadProxy: newDownloadReverseProxy(logger), - events: NewEventService(), + logger: logger, + db: sqlx.NewDb(db, "mysql"), + cc: cc, + taskQueue: taskQueue, + registry: registry, + events: NewEventService(), } } diff --git a/internal/collection/download.go b/internal/collection/download.go deleted file mode 100644 index 38f77d63..00000000 --- a/internal/collection/download.go +++ /dev/null @@ -1,123 +0,0 @@ -package collection - -import ( - "context" - "fmt" - "net/http" - "net/http/httputil" - "net/url" - - "github.com/go-logr/logr" - goahttp "goa.design/goa/v3/http" - - "github.com/artefactual-labs/enduro/internal/api/gen/collection" - "github.com/artefactual-labs/enduro/internal/api/gen/http/collection/server" - "github.com/artefactual-labs/enduro/internal/pipeline" -) - -const userAgent = "Enduro (ssclient)" - -type downloadReverseProxy struct { - logger logr.Logger - proxy *httputil.ReverseProxy -} - -func newDownloadReverseProxy(logger logr.Logger) *downloadReverseProxy { - return &downloadReverseProxy{ - logger: logger, - } -} - -func (dp downloadReverseProxy) build(p *pipeline.Pipeline, pID string) (*httputil.ReverseProxy, error) { - bu, auth, err := p.SSAccess() - if err != nil { - return nil, fmt.Errorf("error loading Storage Service access details: %v", err) - } - - path := fmt.Sprintf("api/v2/file/%s/download/", pID) - rel, err := url.Parse(path) - if err != nil { - return nil, fmt.Errorf("error building URL: %v", err) - } - - // Rewrite request URL and headers. - director := func(req *http.Request) { - req.URL = bu.ResolveReference(rel) - req.Header.Add("User-Agent", userAgent) - req.Header.Set("Authorization", fmt.Sprintf("ApiKey %s", auth)) - } - - return &httputil.ReverseProxy{ - Director: director, - ModifyResponse: dp.modifyResponse, - Transport: dp.transport(), - ErrorHandler: dp.errorHandler, - }, nil -} - -func (dp downloadReverseProxy) transport() http.RoundTripper { - return http.DefaultTransport -} - -func (dp *downloadReverseProxy) modifyResponse(r *http.Response) error { - if r.StatusCode != http.StatusOK { - return fmt.Errorf("error communicating with Storage Service: %s (%d)", r.Status, r.StatusCode) - } - - r.Header.Del("Server") - - return nil -} - -func (dp *downloadReverseProxy) errorHandler(rw http.ResponseWriter, req *http.Request, err error) { - rw.WriteHeader(http.StatusInternalServerError) - fmt.Fprintf(rw, `{"message": "The operation failed unexpectedly. Contact the administrator for more details."}`) - dp.logger.Info("Download from Storage Service failed", "msg", err.Error()) -} - -func (p *downloadReverseProxy) ServeHTTP(rw http.ResponseWriter, req *http.Request) { - p.proxy.ServeHTTP(rw, req) -} - -func (svc *collectionImpl) HTTPDownload(mux goahttp.Muxer, dec func(r *http.Request) goahttp.Decoder) http.HandlerFunc { - return func(rw http.ResponseWriter, req *http.Request) { - payload, err := server.DecodeDownloadRequest(mux, dec)(req) - if err != nil { - rw.WriteHeader(http.StatusBadRequest) - return - } - - // Look up collection. - p := payload.(*collection.DownloadPayload) - col, err := svc.Goa().Show(context.Background(), &collection.ShowPayload{ID: p.ID}) - if err != nil { - rw.WriteHeader(http.StatusNotFound) - return - } - - if col.PipelineID == nil || *col.PipelineID == "" { - rw.WriteHeader(http.StatusNotFound) - return - } - - if col.AipID == nil || *col.AipID == "" { - rw.WriteHeader(http.StatusNotFound) - return - } - - pipeline, err := svc.registry.ByID(*col.PipelineID) - if err != nil { - rw.WriteHeader(http.StatusNotFound) - return - } - - proxy, err := svc.downloadProxy.build(pipeline, *col.AipID) - if err != nil { - svc.logger.Info("Error buiding download proxy", "msg", err) - rw.WriteHeader(http.StatusInternalServerError) - return - } - - proxy.ServeHTTP(rw, req) - } -} diff --git a/internal/collection/goa.go b/internal/collection/goa.go index 93780b74..c08fa37f 100644 --- a/internal/collection/goa.go +++ b/internal/collection/goa.go @@ -6,6 +6,9 @@ import ( "encoding/json" "errors" "fmt" + "io" + "net/http" + "net/url" "strconv" "strings" "time" @@ -316,12 +319,69 @@ func (w *goaWrapper) Workflow(ctx context.Context, payload *goacollection.Workfl return resp, nil } -// Download is a dummy implementation of goacollection.Service. The actual work -// (serving the file) is done from the API interceptor. Once goa supports this -// use case (it may never happen) we should be able to have a service method -// easy to adopt, e.g. with a io.Writer argument? -func (w *goaWrapper) Download(ctx context.Context, payload *goacollection.DownloadPayload) (res []byte, err error) { - return []byte{}, nil +func (w *goaWrapper) Download(ctx context.Context, p *goacollection.DownloadPayload) (*goacollection.DownloadResult, io.ReadCloser, error) { + c, err := w.read(ctx, p.ID) + if err == sql.ErrNoRows { + return nil, nil, &goacollection.CollectionNotfound{ID: p.ID, Message: "not_found"} + } else if err != nil { + w.logger.Error(err, "Cannot read collection.", "id", p.ID) + return nil, nil, errors.New("cannot read collection") + } + + if c.PipelineID == "" || c.AIPID == "" { + return nil, nil, &goacollection.CollectionNotfound{ID: p.ID, Message: "not_found"} + } + + pipeline, err := w.registry.ByID(c.PipelineID) + if err != nil { + return nil, nil, &goacollection.CollectionNotfound{ID: p.ID, Message: "not_found"} + } + + bu, auth, err := pipeline.SSAccess() + if err != nil { + return nil, nil, &goacollection.CollectionNotfound{ID: p.ID, Message: "not_found"} + } + + path := fmt.Sprintf("api/v2/file/%s/download/", c.AIPID) + rel, err := url.Parse(path) + if err != nil { + return nil, nil, &goacollection.CollectionNotfound{ID: p.ID, Message: "not_found"} + } + + loc := bu.ResolveReference(rel).String() + w.logger.Info("Sending request to Archivematica Storage Service.", "loc", loc) + req, err := http.NewRequestWithContext(ctx, http.MethodGet, loc, nil) + if err != nil { + return nil, nil, &goacollection.CollectionNotfound{ID: p.ID, Message: "not_found"} + } + req.Header.Set("User-Agent", "Enduro (ssclient)") + req.Header.Set("Authorization", fmt.Sprintf("ApiKey %s", auth)) + + resp, err := http.DefaultClient.Do(req) + if err != nil { + return nil, nil, &goacollection.CollectionNotfound{ID: p.ID, Message: "not_found"} + } + if resp.StatusCode != http.StatusOK { + return nil, nil, &goacollection.CollectionNotfound{ID: p.ID, Message: "not_found"} + } + + var contentLength int64 + if cl := resp.Header.Get("Content-Length"); cl != "" { + if clv, err := strconv.ParseInt(cl, 10, 64); err == nil { + contentLength = clv + } + } + if contentLength == 0 { + return nil, nil, errors.New("content length is unavailable") + } + + res := &goacollection.DownloadResult{ + ContentType: resp.Header.Get("Content-Type"), + ContentDisposition: resp.Header.Get("Content-Disposition"), + ContentLength: contentLength, + } + + return res, resp.Body, nil } // Make decision for a pending collection by ID.