From 19c582a3cf1c42e9c75170650ccd141eda903479 Mon Sep 17 00:00:00 2001 From: Bryan Newbold Date: Tue, 9 Feb 2021 18:57:00 -0800 Subject: move source code to top-level directory --- fatcat-openapi/src/lib.rs | 3844 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 3844 insertions(+) create mode 100644 fatcat-openapi/src/lib.rs (limited to 'fatcat-openapi/src/lib.rs') diff --git a/fatcat-openapi/src/lib.rs b/fatcat-openapi/src/lib.rs new file mode 100644 index 0000000..ba49f27 --- /dev/null +++ b/fatcat-openapi/src/lib.rs @@ -0,0 +1,3844 @@ +#![allow( + missing_docs, + trivial_casts, + unused_variables, + unused_mut, + unused_imports, + unused_extern_crates, + non_camel_case_types +)] + +use async_trait::async_trait; +use futures::Stream; +use std::error::Error; +use std::task::{Context, Poll}; +use swagger::{ApiError, ContextWrapper}; + +type ServiceError = Box; + +pub const BASE_PATH: &'static str = "/v0"; +pub const API_VERSION: &'static str = "0.3.3"; + +#[derive(Debug, PartialEq)] +#[must_use] +pub enum AcceptEditgroupResponse { + /// Merged Successfully + MergedSuccessfully(models::Success), + /// Bad Request + BadRequest(models::ErrorResponse), + /// Not Authorized + NotAuthorized { + body: models::ErrorResponse, + www_authenticate: Option, + }, + /// Forbidden + Forbidden(models::ErrorResponse), + /// Not Found + NotFound(models::ErrorResponse), + /// Edit Conflict + EditConflict(models::ErrorResponse), + /// Generic Error + GenericError(models::ErrorResponse), +} + +#[derive(Debug, PartialEq)] +#[must_use] +pub enum AuthCheckResponse { + /// Success + Success(models::Success), + /// Bad Request + BadRequest(models::ErrorResponse), + /// Not Authorized + NotAuthorized { + body: models::ErrorResponse, + www_authenticate: Option, + }, + /// Forbidden + Forbidden(models::ErrorResponse), + /// Generic Error + GenericError(models::ErrorResponse), +} + +#[derive(Debug, PartialEq)] +#[must_use] +pub enum AuthOidcResponse { + /// Found + Found(models::AuthOidcResult), + /// Created + Created(models::AuthOidcResult), + /// Bad Request + BadRequest(models::ErrorResponse), + /// Not Authorized + NotAuthorized { + body: models::ErrorResponse, + www_authenticate: Option, + }, + /// Forbidden + Forbidden(models::ErrorResponse), + /// Conflict + Conflict(models::ErrorResponse), + /// Generic Error + GenericError(models::ErrorResponse), +} + +#[derive(Debug, PartialEq)] +#[must_use] +pub enum CreateAuthTokenResponse { + /// Success + Success(models::AuthTokenResult), + /// Bad Request + BadRequest(models::ErrorResponse), + /// Not Authorized + NotAuthorized { + body: models::ErrorResponse, + www_authenticate: Option, + }, + /// Forbidden + Forbidden(models::ErrorResponse), + /// Generic Error + GenericError(models::ErrorResponse), +} + +#[derive(Debug, PartialEq)] +#[must_use] +pub enum CreateContainerResponse { + /// Created Entity + CreatedEntity(models::EntityEdit), + /// Bad Request + BadRequest(models::ErrorResponse), + /// Not Authorized + NotAuthorized { + body: models::ErrorResponse, + www_authenticate: Option, + }, + /// Forbidden + Forbidden(models::ErrorResponse), + /// Not Found + NotFound(models::ErrorResponse), + /// Generic Error + GenericError(models::ErrorResponse), +} + +#[derive(Debug, PartialEq)] +#[must_use] +pub enum CreateContainerAutoBatchResponse { + /// Created Editgroup + CreatedEditgroup(models::Editgroup), + /// Bad Request + BadRequest(models::ErrorResponse), + /// Not Authorized + NotAuthorized { + body: models::ErrorResponse, + www_authenticate: Option, + }, + /// Forbidden + Forbidden(models::ErrorResponse), + /// Not Found + NotFound(models::ErrorResponse), + /// Generic Error + GenericError(models::ErrorResponse), +} + +#[derive(Debug, PartialEq)] +#[must_use] +pub enum CreateCreatorResponse { + /// Created Entity + CreatedEntity(models::EntityEdit), + /// Bad Request + BadRequest(models::ErrorResponse), + /// Not Authorized + NotAuthorized { + body: models::ErrorResponse, + www_authenticate: Option, + }, + /// Forbidden + Forbidden(models::ErrorResponse), + /// Not Found + NotFound(models::ErrorResponse), + /// Generic Error + GenericError(models::ErrorResponse), +} + +#[derive(Debug, PartialEq)] +#[must_use] +pub enum CreateCreatorAutoBatchResponse { + /// Created Editgroup + CreatedEditgroup(models::Editgroup), + /// Bad Request + BadRequest(models::ErrorResponse), + /// Not Authorized + NotAuthorized { + body: models::ErrorResponse, + www_authenticate: Option, + }, + /// Forbidden + Forbidden(models::ErrorResponse), + /// Not Found + NotFound(models::ErrorResponse), + /// Generic Error + GenericError(models::ErrorResponse), +} + +#[derive(Debug, PartialEq)] +#[must_use] +pub enum CreateEditgroupResponse { + /// Successfully Created + SuccessfullyCreated(models::Editgroup), + /// Bad Request + BadRequest(models::ErrorResponse), + /// Not Authorized + NotAuthorized { + body: models::ErrorResponse, + www_authenticate: Option, + }, + /// Forbidden + Forbidden(models::ErrorResponse), + /// Not Found + NotFound(models::ErrorResponse), + /// Generic Error + GenericError(models::ErrorResponse), +} + +#[derive(Debug, PartialEq)] +#[must_use] +pub enum CreateEditgroupAnnotationResponse { + /// Created + Created(models::EditgroupAnnotation), + /// Bad Request + BadRequest(models::ErrorResponse), + /// Not Authorized + NotAuthorized { + body: models::ErrorResponse, + www_authenticate: Option, + }, + /// Forbidden + Forbidden(models::ErrorResponse), + /// Not Found + NotFound(models::ErrorResponse), + /// Generic Error + GenericError(models::ErrorResponse), +} + +#[derive(Debug, PartialEq)] +#[must_use] +pub enum CreateFileResponse { + /// Created Entity + CreatedEntity(models::EntityEdit), + /// Bad Request + BadRequest(models::ErrorResponse), + /// Not Authorized + NotAuthorized { + body: models::ErrorResponse, + www_authenticate: Option, + }, + /// Forbidden + Forbidden(models::ErrorResponse), + /// Not Found + NotFound(models::ErrorResponse), + /// Generic Error + GenericError(models::ErrorResponse), +} + +#[derive(Debug, PartialEq)] +#[must_use] +pub enum CreateFileAutoBatchResponse { + /// Created Editgroup + CreatedEditgroup(models::Editgroup), + /// Bad Request + BadRequest(models::ErrorResponse), + /// Not Authorized + NotAuthorized { + body: models::ErrorResponse, + www_authenticate: Option, + }, + /// Forbidden + Forbidden(models::ErrorResponse), + /// Not Found + NotFound(models::ErrorResponse), + /// Generic Error + GenericError(models::ErrorResponse), +} + +#[derive(Debug, PartialEq)] +#[must_use] +pub enum CreateFilesetResponse { + /// Created Entity + CreatedEntity(models::EntityEdit), + /// Bad Request + BadRequest(models::ErrorResponse), + /// Not Authorized + NotAuthorized { + body: models::ErrorResponse, + www_authenticate: Option, + }, + /// Forbidden + Forbidden(models::ErrorResponse), + /// Not Found + NotFound(models::ErrorResponse), + /// Generic Error + GenericError(models::ErrorResponse), +} + +#[derive(Debug, PartialEq)] +#[must_use] +pub enum CreateFilesetAutoBatchResponse { + /// Created Editgroup + CreatedEditgroup(models::Editgroup), + /// Bad Request + BadRequest(models::ErrorResponse), + /// Not Authorized + NotAuthorized { + body: models::ErrorResponse, + www_authenticate: Option, + }, + /// Forbidden + Forbidden(models::ErrorResponse), + /// Not Found + NotFound(models::ErrorResponse), + /// Generic Error + GenericError(models::ErrorResponse), +} + +#[derive(Debug, PartialEq)] +#[must_use] +pub enum CreateReleaseResponse { + /// Created Entity + CreatedEntity(models::EntityEdit), + /// Bad Request + BadRequest(models::ErrorResponse), + /// Not Authorized + NotAuthorized { + body: models::ErrorResponse, + www_authenticate: Option, + }, + /// Forbidden + Forbidden(models::ErrorResponse), + /// Not Found + NotFound(models::ErrorResponse), + /// Generic Error + GenericError(models::ErrorResponse), +} + +#[derive(Debug, PartialEq)] +#[must_use] +pub enum CreateReleaseAutoBatchResponse { + /// Created Editgroup + CreatedEditgroup(models::Editgroup), + /// Bad Request + BadRequest(models::ErrorResponse), + /// Not Authorized + NotAuthorized { + body: models::ErrorResponse, + www_authenticate: Option, + }, + /// Forbidden + Forbidden(models::ErrorResponse), + /// Not Found + NotFound(models::ErrorResponse), + /// Generic Error + GenericError(models::ErrorResponse), +} + +#[derive(Debug, PartialEq)] +#[must_use] +pub enum CreateWebcaptureResponse { + /// Created Entity + CreatedEntity(models::EntityEdit), + /// Bad Request + BadRequest(models::ErrorResponse), + /// Not Authorized + NotAuthorized { + body: models::ErrorResponse, + www_authenticate: Option, + }, + /// Forbidden + Forbidden(models::ErrorResponse), + /// Not Found + NotFound(models::ErrorResponse), + /// Generic Error + GenericError(models::ErrorResponse), +} + +#[derive(Debug, PartialEq)] +#[must_use] +pub enum CreateWebcaptureAutoBatchResponse { + /// Created Editgroup + CreatedEditgroup(models::Editgroup), + /// Bad Request + BadRequest(models::ErrorResponse), + /// Not Authorized + NotAuthorized { + body: models::ErrorResponse, + www_authenticate: Option, + }, + /// Forbidden + Forbidden(models::ErrorResponse), + /// Not Found + NotFound(models::ErrorResponse), + /// Generic Error + GenericError(models::ErrorResponse), +} + +#[derive(Debug, PartialEq)] +#[must_use] +pub enum CreateWorkResponse { + /// Created Entity + CreatedEntity(models::EntityEdit), + /// Bad Request + BadRequest(models::ErrorResponse), + /// Not Authorized + NotAuthorized { + body: models::ErrorResponse, + www_authenticate: Option, + }, + /// Forbidden + Forbidden(models::ErrorResponse), + /// Not Found + NotFound(models::ErrorResponse), + /// Generic Error + GenericError(models::ErrorResponse), +} + +#[derive(Debug, PartialEq)] +#[must_use] +pub enum CreateWorkAutoBatchResponse { + /// Created Editgroup + CreatedEditgroup(models::Editgroup), + /// Bad Request + BadRequest(models::ErrorResponse), + /// Not Authorized + NotAuthorized { + body: models::ErrorResponse, + www_authenticate: Option, + }, + /// Forbidden + Forbidden(models::ErrorResponse), + /// Not Found + NotFound(models::ErrorResponse), + /// Generic Error + GenericError(models::ErrorResponse), +} + +#[derive(Debug, PartialEq)] +#[must_use] +pub enum DeleteContainerResponse { + /// Deleted Entity + DeletedEntity(models::EntityEdit), + /// Bad Request + BadRequest(models::ErrorResponse), + /// Not Authorized + NotAuthorized { + body: models::ErrorResponse, + www_authenticate: Option, + }, + /// Forbidden + Forbidden(models::ErrorResponse), + /// Not Found + NotFound(models::ErrorResponse), + /// Generic Error + GenericError(models::ErrorResponse), +} + +#[derive(Debug, PartialEq)] +#[must_use] +pub enum DeleteContainerEditResponse { + /// Deleted Edit + DeletedEdit(models::Success), + /// Bad Request + BadRequest(models::ErrorResponse), + /// Not Authorized + NotAuthorized { + body: models::ErrorResponse, + www_authenticate: Option, + }, + /// Forbidden + Forbidden(models::ErrorResponse), + /// Not Found + NotFound(models::ErrorResponse), + /// Generic Error + GenericError(models::ErrorResponse), +} + +#[derive(Debug, PartialEq)] +#[must_use] +pub enum DeleteCreatorResponse { + /// Deleted Entity + DeletedEntity(models::EntityEdit), + /// Bad Request + BadRequest(models::ErrorResponse), + /// Not Authorized + NotAuthorized { + body: models::ErrorResponse, + www_authenticate: Option, + }, + /// Forbidden + Forbidden(models::ErrorResponse), + /// Not Found + NotFound(models::ErrorResponse), + /// Generic Error + GenericError(models::ErrorResponse), +} + +#[derive(Debug, PartialEq)] +#[must_use] +pub enum DeleteCreatorEditResponse { + /// Deleted Edit + DeletedEdit(models::Success), + /// Bad Request + BadRequest(models::ErrorResponse), + /// Not Authorized + NotAuthorized { + body: models::ErrorResponse, + www_authenticate: Option, + }, + /// Forbidden + Forbidden(models::ErrorResponse), + /// Not Found + NotFound(models::ErrorResponse), + /// Generic Error + GenericError(models::ErrorResponse), +} + +#[derive(Debug, PartialEq)] +#[must_use] +pub enum DeleteFileResponse { + /// Deleted Entity + DeletedEntity(models::EntityEdit), + /// Bad Request + BadRequest(models::ErrorResponse), + /// Not Authorized + NotAuthorized { + body: models::ErrorResponse, + www_authenticate: Option, + }, + /// Forbidden + Forbidden(models::ErrorResponse), + /// Not Found + NotFound(models::ErrorResponse), + /// Generic Error + GenericError(models::ErrorResponse), +} + +#[derive(Debug, PartialEq)] +#[must_use] +pub enum DeleteFileEditResponse { + /// Deleted Edit + DeletedEdit(models::Success), + /// Bad Request + BadRequest(models::ErrorResponse), + /// Not Authorized + NotAuthorized { + body: models::ErrorResponse, + www_authenticate: Option, + }, + /// Forbidden + Forbidden(models::ErrorResponse), + /// Not Found + NotFound(models::ErrorResponse), + /// Generic Error + GenericError(models::ErrorResponse), +} + +#[derive(Debug, PartialEq)] +#[must_use] +pub enum DeleteFilesetResponse { + /// Deleted Entity + DeletedEntity(models::EntityEdit), + /// Bad Request + BadRequest(models::ErrorResponse), + /// Not Authorized + NotAuthorized { + body: models::ErrorResponse, + www_authenticate: Option, + }, + /// Forbidden + Forbidden(models::ErrorResponse), + /// Not Found + NotFound(models::ErrorResponse), + /// Generic Error + GenericError(models::ErrorResponse), +} + +#[derive(Debug, PartialEq)] +#[must_use] +pub enum DeleteFilesetEditResponse { + /// Deleted Edit + DeletedEdit(models::Success), + /// Bad Request + BadRequest(models::ErrorResponse), + /// Not Authorized + NotAuthorized { + body: models::ErrorResponse, + www_authenticate: Option, + }, + /// Forbidden + Forbidden(models::ErrorResponse), + /// Not Found + NotFound(models::ErrorResponse), + /// Generic Error + GenericError(models::ErrorResponse), +} + +#[derive(Debug, PartialEq)] +#[must_use] +pub enum DeleteReleaseResponse { + /// Deleted Entity + DeletedEntity(models::EntityEdit), + /// Bad Request + BadRequest(models::ErrorResponse), + /// Not Authorized + NotAuthorized { + body: models::ErrorResponse, + www_authenticate: Option, + }, + /// Forbidden + Forbidden(models::ErrorResponse), + /// Not Found + NotFound(models::ErrorResponse), + /// Generic Error + GenericError(models::ErrorResponse), +} + +#[derive(Debug, PartialEq)] +#[must_use] +pub enum DeleteReleaseEditResponse { + /// Deleted Edit + DeletedEdit(models::Success), + /// Bad Request + BadRequest(models::ErrorResponse), + /// Not Authorized + NotAuthorized { + body: models::ErrorResponse, + www_authenticate: Option, + }, + /// Forbidden + Forbidden(models::ErrorResponse), + /// Not Found + NotFound(models::ErrorResponse), + /// Generic Error + GenericError(models::ErrorResponse), +} + +#[derive(Debug, PartialEq)] +#[must_use] +pub enum DeleteWebcaptureResponse { + /// Deleted Entity + DeletedEntity(models::EntityEdit), + /// Bad Request + BadRequest(models::ErrorResponse), + /// Not Authorized + NotAuthorized { + body: models::ErrorResponse, + www_authenticate: Option, + }, + /// Forbidden + Forbidden(models::ErrorResponse), + /// Not Found + NotFound(models::ErrorResponse), + /// Generic Error + GenericError(models::ErrorResponse), +} + +#[derive(Debug, PartialEq)] +#[must_use] +pub enum DeleteWebcaptureEditResponse { + /// Deleted Edit + DeletedEdit(models::Success), + /// Bad Request + BadRequest(models::ErrorResponse), + /// Not Authorized + NotAuthorized { + body: models::ErrorResponse, + www_authenticate: Option, + }, + /// Forbidden + Forbidden(models::ErrorResponse), + /// Not Found + NotFound(models::ErrorResponse), + /// Generic Error + GenericError(models::ErrorResponse), +} + +#[derive(Debug, PartialEq)] +#[must_use] +pub enum DeleteWorkResponse { + /// Deleted Entity + DeletedEntity(models::EntityEdit), + /// Bad Request + BadRequest(models::ErrorResponse), + /// Not Authorized + NotAuthorized { + body: models::ErrorResponse, + www_authenticate: Option, + }, + /// Forbidden + Forbidden(models::ErrorResponse), + /// Not Found + NotFound(models::ErrorResponse), + /// Generic Error + GenericError(models::ErrorResponse), +} + +#[derive(Debug, PartialEq)] +#[must_use] +pub enum DeleteWorkEditResponse { + /// Deleted Edit + DeletedEdit(models::Success), + /// Bad Request + BadRequest(models::ErrorResponse), + /// Not Authorized + NotAuthorized { + body: models::ErrorResponse, + www_authenticate: Option, + }, + /// Forbidden + Forbidden(models::ErrorResponse), + /// Not Found + NotFound(models::ErrorResponse), + /// Generic Error + GenericError(models::ErrorResponse), +} + +#[derive(Debug, PartialEq)] +#[must_use] +pub enum GetChangelogResponse { + /// Success + Success(Vec), + /// Bad Request + BadRequest(models::ErrorResponse), + /// Generic Error + GenericError(models::ErrorResponse), +} + +#[derive(Debug, PartialEq)] +#[must_use] +pub enum GetChangelogEntryResponse { + /// Found Changelog Entry + FoundChangelogEntry(models::ChangelogEntry), + /// Bad Request + BadRequest(models::ErrorResponse), + /// Not Found + NotFound(models::ErrorResponse), + /// Generic Error + GenericError(models::ErrorResponse), +} + +#[derive(Debug, PartialEq)] +#[must_use] +pub enum GetContainerResponse { + /// Found Entity + FoundEntity(models::ContainerEntity), + /// Bad Request + BadRequest(models::ErrorResponse), + /// Not Found + NotFound(models::ErrorResponse), + /// Generic Error + GenericError(models::ErrorResponse), +} + +#[derive(Debug, PartialEq)] +#[must_use] +pub enum GetContainerEditResponse { + /// Found Edit + FoundEdit(models::EntityEdit), + /// Bad Request + BadRequest(models::ErrorResponse), + /// Not Found + NotFound(models::ErrorResponse), + /// Generic Error + GenericError(models::ErrorResponse), +} + +#[derive(Debug, PartialEq)] +#[must_use] +pub enum GetContainerHistoryResponse { + /// Found Entity History + FoundEntityHistory(Vec), + /// Bad Request + BadRequest(models::ErrorResponse), + /// Not Found + NotFound(models::ErrorResponse), + /// Generic Error + GenericError(models::ErrorResponse), +} + +#[derive(Debug, PartialEq)] +#[must_use] +pub enum GetContainerRedirectsResponse { + /// Found Entity Redirects + FoundEntityRedirects(Vec), + /// Bad Request + BadRequest(models::ErrorResponse), + /// Not Found + NotFound(models::ErrorResponse), + /// Generic Error + GenericError(models::ErrorResponse), +} + +#[derive(Debug, PartialEq)] +#[must_use] +pub enum GetContainerRevisionResponse { + /// Found Entity Revision + FoundEntityRevision(models::ContainerEntity), + /// Bad Request + BadRequest(models::ErrorResponse), + /// Not Found + NotFound(models::ErrorResponse), + /// Generic Error + GenericError(models::ErrorResponse), +} + +#[derive(Debug, PartialEq)] +#[must_use] +pub enum GetCreatorResponse { + /// Found Entity + FoundEntity(models::CreatorEntity), + /// Bad Request + BadRequest(models::ErrorResponse), + /// Not Found + NotFound(models::ErrorResponse), + /// Generic Error + GenericError(models::ErrorResponse), +} + +#[derive(Debug, PartialEq)] +#[must_use] +pub enum GetCreatorEditResponse { + /// Found Edit + FoundEdit(models::EntityEdit), + /// Bad Request + BadRequest(models::ErrorResponse), + /// Not Found + NotFound(models::ErrorResponse), + /// Generic Error + GenericError(models::ErrorResponse), +} + +#[derive(Debug, PartialEq)] +#[must_use] +pub enum GetCreatorHistoryResponse { + /// Found Entity History + FoundEntityHistory(Vec), + /// Bad Request + BadRequest(models::ErrorResponse), + /// Not Found + NotFound(models::ErrorResponse), + /// Generic Error + GenericError(models::ErrorResponse), +} + +#[derive(Debug, PartialEq)] +#[must_use] +pub enum GetCreatorRedirectsResponse { + /// Found Entity Redirects + FoundEntityRedirects(Vec), + /// Bad Request + BadRequest(models::ErrorResponse), + /// Not Found + NotFound(models::ErrorResponse), + /// Generic Error + GenericError(models::ErrorResponse), +} + +#[derive(Debug, PartialEq)] +#[must_use] +pub enum GetCreatorReleasesResponse { + /// Found + Found(Vec), + /// Bad Request + BadRequest(models::ErrorResponse), + /// Not Found + NotFound(models::ErrorResponse), + /// Generic Error + GenericError(models::ErrorResponse), +} + +#[derive(Debug, PartialEq)] +#[must_use] +pub enum GetCreatorRevisionResponse { + /// Found Entity Revision + FoundEntityRevision(models::CreatorEntity), + /// Bad Request + BadRequest(models::ErrorResponse), + /// Not Found + NotFound(models::ErrorResponse), + /// Generic Error + GenericError(models::ErrorResponse), +} + +#[derive(Debug, PartialEq)] +#[must_use] +pub enum GetEditgroupResponse { + /// Found + Found(models::Editgroup), + /// Bad Request + BadRequest(models::ErrorResponse), + /// Not Found + NotFound(models::ErrorResponse), + /// Generic Error + GenericError(models::ErrorResponse), +} + +#[derive(Debug, PartialEq)] +#[must_use] +pub enum GetEditgroupAnnotationsResponse { + /// Success + Success(Vec), + /// Bad Request + BadRequest(models::ErrorResponse), + /// Not Authorized + NotAuthorized { + body: models::ErrorResponse, + www_authenticate: Option, + }, + /// Forbidden + Forbidden(models::ErrorResponse), + /// Not Found + NotFound(models::ErrorResponse), + /// Generic Error + GenericError(models::ErrorResponse), +} + +#[derive(Debug, PartialEq)] +#[must_use] +pub enum GetEditgroupsReviewableResponse { + /// Found + Found(Vec), + /// Bad Request + BadRequest(models::ErrorResponse), + /// Not Found + NotFound(models::ErrorResponse), + /// Generic Error + GenericError(models::ErrorResponse), +} + +#[derive(Debug, PartialEq)] +#[must_use] +pub enum GetEditorResponse { + /// Found + Found(models::Editor), + /// Bad Request + BadRequest(models::ErrorResponse), + /// Not Found + NotFound(models::ErrorResponse), + /// Generic Error + GenericError(models::ErrorResponse), +} + +#[derive(Debug, PartialEq)] +#[must_use] +pub enum GetEditorAnnotationsResponse { + /// Success + Success(Vec), + /// Bad Request + BadRequest(models::ErrorResponse), + /// Not Authorized + NotAuthorized { + body: models::ErrorResponse, + www_authenticate: Option, + }, + /// Forbidden + Forbidden(models::ErrorResponse), + /// Not Found + NotFound(models::ErrorResponse), + /// Generic Error + GenericError(models::ErrorResponse), +} + +#[derive(Debug, PartialEq)] +#[must_use] +pub enum GetEditorEditgroupsResponse { + /// Found + Found(Vec), + /// Bad Request + BadRequest(models::ErrorResponse), + /// Not Found + NotFound(models::ErrorResponse), + /// Generic Error + GenericError(models::ErrorResponse), +} + +#[derive(Debug, PartialEq)] +#[must_use] +pub enum GetFileResponse { + /// Found Entity + FoundEntity(models::FileEntity), + /// Bad Request + BadRequest(models::ErrorResponse), + /// Not Found + NotFound(models::ErrorResponse), + /// Generic Error + GenericError(models::ErrorResponse), +} + +#[derive(Debug, PartialEq)] +#[must_use] +pub enum GetFileEditResponse { + /// Found Edit + FoundEdit(models::EntityEdit), + /// Bad Request + BadRequest(models::ErrorResponse), + /// Not Found + NotFound(models::ErrorResponse), + /// Generic Error + GenericError(models::ErrorResponse), +} + +#[derive(Debug, PartialEq)] +#[must_use] +pub enum GetFileHistoryResponse { + /// Found Entity History + FoundEntityHistory(Vec), + /// Bad Request + BadRequest(models::ErrorResponse), + /// Not Found + NotFound(models::ErrorResponse), + /// Generic Error + GenericError(models::ErrorResponse), +} + +#[derive(Debug, PartialEq)] +#[must_use] +pub enum GetFileRedirectsResponse { + /// Found Entity Redirects + FoundEntityRedirects(Vec), + /// Bad Request + BadRequest(models::ErrorResponse), + /// Not Found + NotFound(models::ErrorResponse), + /// Generic Error + GenericError(models::ErrorResponse), +} + +#[derive(Debug, PartialEq)] +#[must_use] +pub enum GetFileRevisionResponse { + /// Found Entity Revision + FoundEntityRevision(models::FileEntity), + /// Bad Request + BadRequest(models::ErrorResponse), + /// Not Found + NotFound(models::ErrorResponse), + /// Generic Error + GenericError(models::ErrorResponse), +} + +#[derive(Debug, PartialEq)] +#[must_use] +pub enum GetFilesetResponse { + /// Found Entity + FoundEntity(models::FilesetEntity), + /// Bad Request + BadRequest(models::ErrorResponse), + /// Not Found + NotFound(models::ErrorResponse), + /// Generic Error + GenericError(models::ErrorResponse), +} + +#[derive(Debug, PartialEq)] +#[must_use] +pub enum GetFilesetEditResponse { + /// Found Edit + FoundEdit(models::EntityEdit), + /// Bad Request + BadRequest(models::ErrorResponse), + /// Not Found + NotFound(models::ErrorResponse), + /// Generic Error + GenericError(models::ErrorResponse), +} + +#[derive(Debug, PartialEq)] +#[must_use] +pub enum GetFilesetHistoryResponse { + /// Found Entity History + FoundEntityHistory(Vec), + /// Bad Request + BadRequest(models::ErrorResponse), + /// Not Found + NotFound(models::ErrorResponse), + /// Generic Error + GenericError(models::ErrorResponse), +} + +#[derive(Debug, PartialEq)] +#[must_use] +pub enum GetFilesetRedirectsResponse { + /// Found Entity Redirects + FoundEntityRedirects(Vec), + /// Bad Request + BadRequest(models::ErrorResponse), + /// Not Found + NotFound(models::ErrorResponse), + /// Generic Error + GenericError(models::ErrorResponse), +} + +#[derive(Debug, PartialEq)] +#[must_use] +pub enum GetFilesetRevisionResponse { + /// Found Entity Revision + FoundEntityRevision(models::FilesetEntity), + /// Bad Request + BadRequest(models::ErrorResponse), + /// Not Found + NotFound(models::ErrorResponse), + /// Generic Error + GenericError(models::ErrorResponse), +} + +#[derive(Debug, PartialEq)] +#[must_use] +pub enum GetReleaseResponse { + /// Found Entity + FoundEntity(models::ReleaseEntity), + /// Bad Request + BadRequest(models::ErrorResponse), + /// Not Found + NotFound(models::ErrorResponse), + /// Generic Error + GenericError(models::ErrorResponse), +} + +#[derive(Debug, PartialEq)] +#[must_use] +pub enum GetReleaseEditResponse { + /// Found Edit + FoundEdit(models::EntityEdit), + /// Bad Request + BadRequest(models::ErrorResponse), + /// Not Found + NotFound(models::ErrorResponse), + /// Generic Error + GenericError(models::ErrorResponse), +} + +#[derive(Debug, PartialEq)] +#[must_use] +pub enum GetReleaseFilesResponse { + /// Found + Found(Vec), + /// Bad Request + BadRequest(models::ErrorResponse), + /// Not Found + NotFound(models::ErrorResponse), + /// Generic Error + GenericError(models::ErrorResponse), +} + +#[derive(Debug, PartialEq)] +#[must_use] +pub enum GetReleaseFilesetsResponse { + /// Found + Found(Vec), + /// Bad Request + BadRequest(models::ErrorResponse), + /// Not Found + NotFound(models::ErrorResponse), + /// Generic Error + GenericError(models::ErrorResponse), +} + +#[derive(Debug, PartialEq)] +#[must_use] +pub enum GetReleaseHistoryResponse { + /// Found Entity History + FoundEntityHistory(Vec), + /// Bad Request + BadRequest(models::ErrorResponse), + /// Not Found + NotFound(models::ErrorResponse), + /// Generic Error + GenericError(models::ErrorResponse), +} + +#[derive(Debug, PartialEq)] +#[must_use] +pub enum GetReleaseRedirectsResponse { + /// Found Entity Redirects + FoundEntityRedirects(Vec), + /// Bad Request + BadRequest(models::ErrorResponse), + /// Not Found + NotFound(models::ErrorResponse), + /// Generic Error + GenericError(models::ErrorResponse), +} + +#[derive(Debug, PartialEq)] +#[must_use] +pub enum GetReleaseRevisionResponse { + /// Found Entity Revision + FoundEntityRevision(models::ReleaseEntity), + /// Bad Request + BadRequest(models::ErrorResponse), + /// Not Found + NotFound(models::ErrorResponse), + /// Generic Error + GenericError(models::ErrorResponse), +} + +#[derive(Debug, PartialEq)] +#[must_use] +pub enum GetReleaseWebcapturesResponse { + /// Found + Found(Vec), + /// Bad Request + BadRequest(models::ErrorResponse), + /// Not Found + NotFound(models::ErrorResponse), + /// Generic Error + GenericError(models::ErrorResponse), +} + +#[derive(Debug, PartialEq)] +#[must_use] +pub enum GetWebcaptureResponse { + /// Found Entity + FoundEntity(models::WebcaptureEntity), + /// Bad Request + BadRequest(models::ErrorResponse), + /// Not Found + NotFound(models::ErrorResponse), + /// Generic Error + GenericError(models::ErrorResponse), +} + +#[derive(Debug, PartialEq)] +#[must_use] +pub enum GetWebcaptureEditResponse { + /// Found Edit + FoundEdit(models::EntityEdit), + /// Bad Request + BadRequest(models::ErrorResponse), + /// Not Found + NotFound(models::ErrorResponse), + /// Generic Error + GenericError(models::ErrorResponse), +} + +#[derive(Debug, PartialEq)] +#[must_use] +pub enum GetWebcaptureHistoryResponse { + /// Found Entity History + FoundEntityHistory(Vec), + /// Bad Request + BadRequest(models::ErrorResponse), + /// Not Found + NotFound(models::ErrorResponse), + /// Generic Error + GenericError(models::ErrorResponse), +} + +#[derive(Debug, PartialEq)] +#[must_use] +pub enum GetWebcaptureRedirectsResponse { + /// Found Entity Redirects + FoundEntityRedirects(Vec), + /// Bad Request + BadRequest(models::ErrorResponse), + /// Not Found + NotFound(models::ErrorResponse), + /// Generic Error + GenericError(models::ErrorResponse), +} + +#[derive(Debug, PartialEq)] +#[must_use] +pub enum GetWebcaptureRevisionResponse { + /// Found Entity Revision + FoundEntityRevision(models::WebcaptureEntity), + /// Bad Request + BadRequest(models::ErrorResponse), + /// Not Found + NotFound(models::ErrorResponse), + /// Generic Error + GenericError(models::ErrorResponse), +} + +#[derive(Debug, PartialEq)] +#[must_use] +pub enum GetWorkResponse { + /// Found Entity + FoundEntity(models::WorkEntity), + /// Bad Request + BadRequest(models::ErrorResponse), + /// Not Found + NotFound(models::ErrorResponse), + /// Generic Error + GenericError(models::ErrorResponse), +} + +#[derive(Debug, PartialEq)] +#[must_use] +pub enum GetWorkEditResponse { + /// Found Edit + FoundEdit(models::EntityEdit), + /// Bad Request + BadRequest(models::ErrorResponse), + /// Not Found + NotFound(models::ErrorResponse), + /// Generic Error + GenericError(models::ErrorResponse), +} + +#[derive(Debug, PartialEq)] +#[must_use] +pub enum GetWorkHistoryResponse { + /// Found Entity History + FoundEntityHistory(Vec), + /// Bad Request + BadRequest(models::ErrorResponse), + /// Not Found + NotFound(models::ErrorResponse), + /// Generic Error + GenericError(models::ErrorResponse), +} + +#[derive(Debug, PartialEq)] +#[must_use] +pub enum GetWorkRedirectsResponse { + /// Found Entity Redirects + FoundEntityRedirects(Vec), + /// Bad Request + BadRequest(models::ErrorResponse), + /// Not Found + NotFound(models::ErrorResponse), + /// Generic Error + GenericError(models::ErrorResponse), +} + +#[derive(Debug, PartialEq)] +#[must_use] +pub enum GetWorkReleasesResponse { + /// Found + Found(Vec), + /// Bad Request + BadRequest(models::ErrorResponse), + /// Not Found + NotFound(models::ErrorResponse), + /// Generic Error + GenericError(models::ErrorResponse), +} + +#[derive(Debug, PartialEq)] +#[must_use] +pub enum GetWorkRevisionResponse { + /// Found Entity Revision + FoundEntityRevision(models::WorkEntity), + /// Bad Request + BadRequest(models::ErrorResponse), + /// Not Found + NotFound(models::ErrorResponse), + /// Generic Error + GenericError(models::ErrorResponse), +} + +#[derive(Debug, PartialEq)] +#[must_use] +pub enum LookupContainerResponse { + /// Found Entity + FoundEntity(models::ContainerEntity), + /// Bad Request + BadRequest(models::ErrorResponse), + /// Not Found + NotFound(models::ErrorResponse), + /// Generic Error + GenericError(models::ErrorResponse), +} + +#[derive(Debug, PartialEq)] +#[must_use] +pub enum LookupCreatorResponse { + /// Found Entity + FoundEntity(models::CreatorEntity), + /// Bad Request + BadRequest(models::ErrorResponse), + /// Not Found + NotFound(models::ErrorResponse), + /// Generic Error + GenericError(models::ErrorResponse), +} + +#[derive(Debug, PartialEq)] +#[must_use] +pub enum LookupFileResponse { + /// Found Entity + FoundEntity(models::FileEntity), + /// Bad Request + BadRequest(models::ErrorResponse), + /// Not Found + NotFound(models::ErrorResponse), + /// Generic Error + GenericError(models::ErrorResponse), +} + +#[derive(Debug, PartialEq)] +#[must_use] +pub enum LookupReleaseResponse { + /// Found Entity + FoundEntity(models::ReleaseEntity), + /// Bad Request + BadRequest(models::ErrorResponse), + /// Not Found + NotFound(models::ErrorResponse), + /// Generic Error + GenericError(models::ErrorResponse), +} + +#[derive(Debug, PartialEq)] +#[must_use] +pub enum UpdateContainerResponse { + /// Updated Entity + UpdatedEntity(models::EntityEdit), + /// Bad Request + BadRequest(models::ErrorResponse), + /// Not Authorized + NotAuthorized { + body: models::ErrorResponse, + www_authenticate: Option, + }, + /// Forbidden + Forbidden(models::ErrorResponse), + /// Not Found + NotFound(models::ErrorResponse), + /// Generic Error + GenericError(models::ErrorResponse), +} + +#[derive(Debug, PartialEq)] +#[must_use] +pub enum UpdateCreatorResponse { + /// Updated Entity + UpdatedEntity(models::EntityEdit), + /// Bad Request + BadRequest(models::ErrorResponse), + /// Not Authorized + NotAuthorized { + body: models::ErrorResponse, + www_authenticate: Option, + }, + /// Forbidden + Forbidden(models::ErrorResponse), + /// Not Found + NotFound(models::ErrorResponse), + /// Generic Error + GenericError(models::ErrorResponse), +} + +#[derive(Debug, PartialEq)] +#[must_use] +pub enum UpdateEditgroupResponse { + /// Updated Editgroup + UpdatedEditgroup(models::Editgroup), + /// Bad Request + BadRequest(models::ErrorResponse), + /// Not Authorized + NotAuthorized { + body: models::ErrorResponse, + www_authenticate: Option, + }, + /// Forbidden + Forbidden(models::ErrorResponse), + /// Not Found + NotFound(models::ErrorResponse), + /// Generic Error + GenericError(models::ErrorResponse), +} + +#[derive(Debug, PartialEq)] +#[must_use] +pub enum UpdateEditorResponse { + /// Updated Editor + UpdatedEditor(models::Editor), + /// Bad Request + BadRequest(models::ErrorResponse), + /// Not Authorized + NotAuthorized { + body: models::ErrorResponse, + www_authenticate: Option, + }, + /// Forbidden + Forbidden(models::ErrorResponse), + /// Not Found + NotFound(models::ErrorResponse), + /// Generic Error + GenericError(models::ErrorResponse), +} + +#[derive(Debug, PartialEq)] +#[must_use] +pub enum UpdateFileResponse { + /// Updated Entity + UpdatedEntity(models::EntityEdit), + /// Bad Request + BadRequest(models::ErrorResponse), + /// Not Authorized + NotAuthorized { + body: models::ErrorResponse, + www_authenticate: Option, + }, + /// Forbidden + Forbidden(models::ErrorResponse), + /// Not Found + NotFound(models::ErrorResponse), + /// Generic Error + GenericError(models::ErrorResponse), +} + +#[derive(Debug, PartialEq)] +#[must_use] +pub enum UpdateFilesetResponse { + /// Updated Entity + UpdatedEntity(models::EntityEdit), + /// Bad Request + BadRequest(models::ErrorResponse), + /// Not Authorized + NotAuthorized { + body: models::ErrorResponse, + www_authenticate: Option, + }, + /// Forbidden + Forbidden(models::ErrorResponse), + /// Not Found + NotFound(models::ErrorResponse), + /// Generic Error + GenericError(models::ErrorResponse), +} + +#[derive(Debug, PartialEq)] +#[must_use] +pub enum UpdateReleaseResponse { + /// Updated Entity + UpdatedEntity(models::EntityEdit), + /// Bad Request + BadRequest(models::ErrorResponse), + /// Not Authorized + NotAuthorized { + body: models::ErrorResponse, + www_authenticate: Option, + }, + /// Forbidden + Forbidden(models::ErrorResponse), + /// Not Found + NotFound(models::ErrorResponse), + /// Generic Error + GenericError(models::ErrorResponse), +} + +#[derive(Debug, PartialEq)] +#[must_use] +pub enum UpdateWebcaptureResponse { + /// Updated Entity + UpdatedEntity(models::EntityEdit), + /// Bad Request + BadRequest(models::ErrorResponse), + /// Not Authorized + NotAuthorized { + body: models::ErrorResponse, + www_authenticate: Option, + }, + /// Forbidden + Forbidden(models::ErrorResponse), + /// Not Found + NotFound(models::ErrorResponse), + /// Generic Error + GenericError(models::ErrorResponse), +} + +#[derive(Debug, PartialEq)] +#[must_use] +pub enum UpdateWorkResponse { + /// Updated Entity + UpdatedEntity(models::EntityEdit), + /// Bad Request + BadRequest(models::ErrorResponse), + /// Not Authorized + NotAuthorized { + body: models::ErrorResponse, + www_authenticate: Option, + }, + /// Forbidden + Forbidden(models::ErrorResponse), + /// Not Found + NotFound(models::ErrorResponse), + /// Generic Error + GenericError(models::ErrorResponse), +} + +/// API +#[async_trait] +pub trait Api { + fn poll_ready( + &self, + _cx: &mut Context, + ) -> Poll>> { + Poll::Ready(Ok(())) + } + + async fn accept_editgroup( + &self, + editgroup_id: String, + context: &C, + ) -> Result; + + async fn auth_check( + &self, + role: Option, + context: &C, + ) -> Result; + + async fn auth_oidc( + &self, + auth_oidc: models::AuthOidc, + context: &C, + ) -> Result; + + async fn create_auth_token( + &self, + editor_id: String, + duration_seconds: Option, + context: &C, + ) -> Result; + + async fn create_container( + &self, + editgroup_id: String, + container_entity: models::ContainerEntity, + context: &C, + ) -> Result; + + async fn create_container_auto_batch( + &self, + container_auto_batch: models::ContainerAutoBatch, + context: &C, + ) -> Result; + + async fn create_creator( + &self, + editgroup_id: String, + creator_entity: models::CreatorEntity, + context: &C, + ) -> Result; + + async fn create_creator_auto_batch( + &self, + creator_auto_batch: models::CreatorAutoBatch, + context: &C, + ) -> Result; + + async fn create_editgroup( + &self, + editgroup: models::Editgroup, + context: &C, + ) -> Result; + + async fn create_editgroup_annotation( + &self, + editgroup_id: String, + editgroup_annotation: models::EditgroupAnnotation, + context: &C, + ) -> Result; + + async fn create_file( + &self, + editgroup_id: String, + file_entity: models::FileEntity, + context: &C, + ) -> Result; + + async fn create_file_auto_batch( + &self, + file_auto_batch: models::FileAutoBatch, + context: &C, + ) -> Result; + + async fn create_fileset( + &self, + editgroup_id: String, + fileset_entity: models::FilesetEntity, + context: &C, + ) -> Result; + + async fn create_fileset_auto_batch( + &self, + fileset_auto_batch: models::FilesetAutoBatch, + context: &C, + ) -> Result; + + async fn create_release( + &self, + editgroup_id: String, + release_entity: models::ReleaseEntity, + context: &C, + ) -> Result; + + async fn create_release_auto_batch( + &self, + release_auto_batch: models::ReleaseAutoBatch, + context: &C, + ) -> Result; + + async fn create_webcapture( + &self, + editgroup_id: String, + webcapture_entity: models::WebcaptureEntity, + context: &C, + ) -> Result; + + async fn create_webcapture_auto_batch( + &self, + webcapture_auto_batch: models::WebcaptureAutoBatch, + context: &C, + ) -> Result; + + async fn create_work( + &self, + editgroup_id: String, + work_entity: models::WorkEntity, + context: &C, + ) -> Result; + + async fn create_work_auto_batch( + &self, + work_auto_batch: models::WorkAutoBatch, + context: &C, + ) -> Result; + + async fn delete_container( + &self, + editgroup_id: String, + ident: String, + context: &C, + ) -> Result; + + async fn delete_container_edit( + &self, + editgroup_id: String, + edit_id: String, + context: &C, + ) -> Result; + + async fn delete_creator( + &self, + editgroup_id: String, + ident: String, + context: &C, + ) -> Result; + + async fn delete_creator_edit( + &self, + editgroup_id: String, + edit_id: String, + context: &C, + ) -> Result; + + async fn delete_file( + &self, + editgroup_id: String, + ident: String, + context: &C, + ) -> Result; + + async fn delete_file_edit( + &self, + editgroup_id: String, + edit_id: String, + context: &C, + ) -> Result; + + async fn delete_fileset( + &self, + editgroup_id: String, + ident: String, + context: &C, + ) -> Result; + + async fn delete_fileset_edit( + &self, + editgroup_id: String, + edit_id: String, + context: &C, + ) -> Result; + + async fn delete_release( + &self, + editgroup_id: String, + ident: String, + context: &C, + ) -> Result; + + async fn delete_release_edit( + &self, + editgroup_id: String, + edit_id: String, + context: &C, + ) -> Result; + + async fn delete_webcapture( + &self, + editgroup_id: String, + ident: String, + context: &C, + ) -> Result; + + async fn delete_webcapture_edit( + &self, + editgroup_id: String, + edit_id: String, + context: &C, + ) -> Result; + + async fn delete_work( + &self, + editgroup_id: String, + ident: String, + context: &C, + ) -> Result; + + async fn delete_work_edit( + &self, + editgroup_id: String, + edit_id: String, + context: &C, + ) -> Result; + + async fn get_changelog( + &self, + limit: Option, + context: &C, + ) -> Result; + + async fn get_changelog_entry( + &self, + index: i64, + context: &C, + ) -> Result; + + async fn get_container( + &self, + ident: String, + expand: Option, + hide: Option, + context: &C, + ) -> Result; + + async fn get_container_edit( + &self, + edit_id: String, + context: &C, + ) -> Result; + + async fn get_container_history( + &self, + ident: String, + limit: Option, + context: &C, + ) -> Result; + + async fn get_container_redirects( + &self, + ident: String, + context: &C, + ) -> Result; + + async fn get_container_revision( + &self, + rev_id: String, + expand: Option, + hide: Option, + context: &C, + ) -> Result; + + async fn get_creator( + &self, + ident: String, + expand: Option, + hide: Option, + context: &C, + ) -> Result; + + async fn get_creator_edit( + &self, + edit_id: String, + context: &C, + ) -> Result; + + async fn get_creator_history( + &self, + ident: String, + limit: Option, + context: &C, + ) -> Result; + + async fn get_creator_redirects( + &self, + ident: String, + context: &C, + ) -> Result; + + async fn get_creator_releases( + &self, + ident: String, + hide: Option, + context: &C, + ) -> Result; + + async fn get_creator_revision( + &self, + rev_id: String, + expand: Option, + hide: Option, + context: &C, + ) -> Result; + + async fn get_editgroup( + &self, + editgroup_id: String, + context: &C, + ) -> Result; + + async fn get_editgroup_annotations( + &self, + editgroup_id: String, + expand: Option, + context: &C, + ) -> Result; + + async fn get_editgroups_reviewable( + &self, + expand: Option, + limit: Option, + before: Option>, + since: Option>, + context: &C, + ) -> Result; + + async fn get_editor( + &self, + editor_id: String, + context: &C, + ) -> Result; + + async fn get_editor_annotations( + &self, + editor_id: String, + limit: Option, + before: Option>, + since: Option>, + context: &C, + ) -> Result; + + async fn get_editor_editgroups( + &self, + editor_id: String, + limit: Option, + before: Option>, + since: Option>, + context: &C, + ) -> Result; + + async fn get_file( + &self, + ident: String, + expand: Option, + hide: Option, + context: &C, + ) -> Result; + + async fn get_file_edit( + &self, + edit_id: String, + context: &C, + ) -> Result; + + async fn get_file_history( + &self, + ident: String, + limit: Option, + context: &C, + ) -> Result; + + async fn get_file_redirects( + &self, + ident: String, + context: &C, + ) -> Result; + + async fn get_file_revision( + &self, + rev_id: String, + expand: Option, + hide: Option, + context: &C, + ) -> Result; + + async fn get_fileset( + &self, + ident: String, + expand: Option, + hide: Option, + context: &C, + ) -> Result; + + async fn get_fileset_edit( + &self, + edit_id: String, + context: &C, + ) -> Result; + + async fn get_fileset_history( + &self, + ident: String, + limit: Option, + context: &C, + ) -> Result; + + async fn get_fileset_redirects( + &self, + ident: String, + context: &C, + ) -> Result; + + async fn get_fileset_revision( + &self, + rev_id: String, + expand: Option, + hide: Option, + context: &C, + ) -> Result; + + async fn get_release( + &self, + ident: String, + expand: Option, + hide: Option, + context: &C, + ) -> Result; + + async fn get_release_edit( + &self, + edit_id: String, + context: &C, + ) -> Result; + + async fn get_release_files( + &self, + ident: String, + hide: Option, + context: &C, + ) -> Result; + + async fn get_release_filesets( + &self, + ident: String, + hide: Option, + context: &C, + ) -> Result; + + async fn get_release_history( + &self, + ident: String, + limit: Option, + context: &C, + ) -> Result; + + async fn get_release_redirects( + &self, + ident: String, + context: &C, + ) -> Result; + + async fn get_release_revision( + &self, + rev_id: String, + expand: Option, + hide: Option, + context: &C, + ) -> Result; + + async fn get_release_webcaptures( + &self, + ident: String, + hide: Option, + context: &C, + ) -> Result; + + async fn get_webcapture( + &self, + ident: String, + expand: Option, + hide: Option, + context: &C, + ) -> Result; + + async fn get_webcapture_edit( + &self, + edit_id: String, + context: &C, + ) -> Result; + + async fn get_webcapture_history( + &self, + ident: String, + limit: Option, + context: &C, + ) -> Result; + + async fn get_webcapture_redirects( + &self, + ident: String, + context: &C, + ) -> Result; + + async fn get_webcapture_revision( + &self, + rev_id: String, + expand: Option, + hide: Option, + context: &C, + ) -> Result; + + async fn get_work( + &self, + ident: String, + expand: Option, + hide: Option, + context: &C, + ) -> Result; + + async fn get_work_edit( + &self, + edit_id: String, + context: &C, + ) -> Result; + + async fn get_work_history( + &self, + ident: String, + limit: Option, + context: &C, + ) -> Result; + + async fn get_work_redirects( + &self, + ident: String, + context: &C, + ) -> Result; + + async fn get_work_releases( + &self, + ident: String, + hide: Option, + context: &C, + ) -> Result; + + async fn get_work_revision( + &self, + rev_id: String, + expand: Option, + hide: Option, + context: &C, + ) -> Result; + + async fn lookup_container( + &self, + issnl: Option, + wikidata_qid: Option, + expand: Option, + hide: Option, + context: &C, + ) -> Result; + + async fn lookup_creator( + &self, + orcid: Option, + wikidata_qid: Option, + expand: Option, + hide: Option, + context: &C, + ) -> Result; + + async fn lookup_file( + &self, + md5: Option, + sha1: Option, + sha256: Option, + expand: Option, + hide: Option, + context: &C, + ) -> Result; + + async fn lookup_release( + &self, + doi: Option, + wikidata_qid: Option, + isbn13: Option, + pmid: Option, + pmcid: Option, + core: Option, + arxiv: Option, + jstor: Option, + ark: Option, + mag: Option, + doaj: Option, + dblp: Option, + oai: Option, + expand: Option, + hide: Option, + context: &C, + ) -> Result; + + async fn update_container( + &self, + editgroup_id: String, + ident: String, + container_entity: models::ContainerEntity, + context: &C, + ) -> Result; + + async fn update_creator( + &self, + editgroup_id: String, + ident: String, + creator_entity: models::CreatorEntity, + context: &C, + ) -> Result; + + async fn update_editgroup( + &self, + editgroup_id: String, + editgroup: models::Editgroup, + submit: Option, + context: &C, + ) -> Result; + + async fn update_editor( + &self, + editor_id: String, + editor: models::Editor, + context: &C, + ) -> Result; + + async fn update_file( + &self, + editgroup_id: String, + ident: String, + file_entity: models::FileEntity, + context: &C, + ) -> Result; + + async fn update_fileset( + &self, + editgroup_id: String, + ident: String, + fileset_entity: models::FilesetEntity, + context: &C, + ) -> Result; + + async fn update_release( + &self, + editgroup_id: String, + ident: String, + release_entity: models::ReleaseEntity, + context: &C, + ) -> Result; + + async fn update_webcapture( + &self, + editgroup_id: String, + ident: String, + webcapture_entity: models::WebcaptureEntity, + context: &C, + ) -> Result; + + async fn update_work( + &self, + editgroup_id: String, + ident: String, + work_entity: models::WorkEntity, + context: &C, + ) -> Result; +} + +/// API where `Context` isn't passed on every API call +#[async_trait] +pub trait ApiNoContext { + fn poll_ready( + &self, + _cx: &mut Context, + ) -> Poll>>; + + fn context(&self) -> &C; + + async fn accept_editgroup( + &self, + editgroup_id: String, + ) -> Result; + + async fn auth_check(&self, role: Option) -> Result; + + async fn auth_oidc(&self, auth_oidc: models::AuthOidc) -> Result; + + async fn create_auth_token( + &self, + editor_id: String, + duration_seconds: Option, + ) -> Result; + + async fn create_container( + &self, + editgroup_id: String, + container_entity: models::ContainerEntity, + ) -> Result; + + async fn create_container_auto_batch( + &self, + container_auto_batch: models::ContainerAutoBatch, + ) -> Result; + + async fn create_creator( + &self, + editgroup_id: String, + creator_entity: models::CreatorEntity, + ) -> Result; + + async fn create_creator_auto_batch( + &self, + creator_auto_batch: models::CreatorAutoBatch, + ) -> Result; + + async fn create_editgroup( + &self, + editgroup: models::Editgroup, + ) -> Result; + + async fn create_editgroup_annotation( + &self, + editgroup_id: String, + editgroup_annotation: models::EditgroupAnnotation, + ) -> Result; + + async fn create_file( + &self, + editgroup_id: String, + file_entity: models::FileEntity, + ) -> Result; + + async fn create_file_auto_batch( + &self, + file_auto_batch: models::FileAutoBatch, + ) -> Result; + + async fn create_fileset( + &self, + editgroup_id: String, + fileset_entity: models::FilesetEntity, + ) -> Result; + + async fn create_fileset_auto_batch( + &self, + fileset_auto_batch: models::FilesetAutoBatch, + ) -> Result; + + async fn create_release( + &self, + editgroup_id: String, + release_entity: models::ReleaseEntity, + ) -> Result; + + async fn create_release_auto_batch( + &self, + release_auto_batch: models::ReleaseAutoBatch, + ) -> Result; + + async fn create_webcapture( + &self, + editgroup_id: String, + webcapture_entity: models::WebcaptureEntity, + ) -> Result; + + async fn create_webcapture_auto_batch( + &self, + webcapture_auto_batch: models::WebcaptureAutoBatch, + ) -> Result; + + async fn create_work( + &self, + editgroup_id: String, + work_entity: models::WorkEntity, + ) -> Result; + + async fn create_work_auto_batch( + &self, + work_auto_batch: models::WorkAutoBatch, + ) -> Result; + + async fn delete_container( + &self, + editgroup_id: String, + ident: String, + ) -> Result; + + async fn delete_container_edit( + &self, + editgroup_id: String, + edit_id: String, + ) -> Result; + + async fn delete_creator( + &self, + editgroup_id: String, + ident: String, + ) -> Result; + + async fn delete_creator_edit( + &self, + editgroup_id: String, + edit_id: String, + ) -> Result; + + async fn delete_file( + &self, + editgroup_id: String, + ident: String, + ) -> Result; + + async fn delete_file_edit( + &self, + editgroup_id: String, + edit_id: String, + ) -> Result; + + async fn delete_fileset( + &self, + editgroup_id: String, + ident: String, + ) -> Result; + + async fn delete_fileset_edit( + &self, + editgroup_id: String, + edit_id: String, + ) -> Result; + + async fn delete_release( + &self, + editgroup_id: String, + ident: String, + ) -> Result; + + async fn delete_release_edit( + &self, + editgroup_id: String, + edit_id: String, + ) -> Result; + + async fn delete_webcapture( + &self, + editgroup_id: String, + ident: String, + ) -> Result; + + async fn delete_webcapture_edit( + &self, + editgroup_id: String, + edit_id: String, + ) -> Result; + + async fn delete_work( + &self, + editgroup_id: String, + ident: String, + ) -> Result; + + async fn delete_work_edit( + &self, + editgroup_id: String, + edit_id: String, + ) -> Result; + + async fn get_changelog(&self, limit: Option) -> Result; + + async fn get_changelog_entry(&self, index: i64) -> Result; + + async fn get_container( + &self, + ident: String, + expand: Option, + hide: Option, + ) -> Result; + + async fn get_container_edit( + &self, + edit_id: String, + ) -> Result; + + async fn get_container_history( + &self, + ident: String, + limit: Option, + ) -> Result; + + async fn get_container_redirects( + &self, + ident: String, + ) -> Result; + + async fn get_container_revision( + &self, + rev_id: String, + expand: Option, + hide: Option, + ) -> Result; + + async fn get_creator( + &self, + ident: String, + expand: Option, + hide: Option, + ) -> Result; + + async fn get_creator_edit(&self, edit_id: String) -> Result; + + async fn get_creator_history( + &self, + ident: String, + limit: Option, + ) -> Result; + + async fn get_creator_redirects( + &self, + ident: String, + ) -> Result; + + async fn get_creator_releases( + &self, + ident: String, + hide: Option, + ) -> Result; + + async fn get_creator_revision( + &self, + rev_id: String, + expand: Option, + hide: Option, + ) -> Result; + + async fn get_editgroup(&self, editgroup_id: String) -> Result; + + async fn get_editgroup_annotations( + &self, + editgroup_id: String, + expand: Option, + ) -> Result; + + async fn get_editgroups_reviewable( + &self, + expand: Option, + limit: Option, + before: Option>, + since: Option>, + ) -> Result; + + async fn get_editor(&self, editor_id: String) -> Result; + + async fn get_editor_annotations( + &self, + editor_id: String, + limit: Option, + before: Option>, + since: Option>, + ) -> Result; + + async fn get_editor_editgroups( + &self, + editor_id: String, + limit: Option, + before: Option>, + since: Option>, + ) -> Result; + + async fn get_file( + &self, + ident: String, + expand: Option, + hide: Option, + ) -> Result; + + async fn get_file_edit(&self, edit_id: String) -> Result; + + async fn get_file_history( + &self, + ident: String, + limit: Option, + ) -> Result; + + async fn get_file_redirects(&self, ident: String) + -> Result; + + async fn get_file_revision( + &self, + rev_id: String, + expand: Option, + hide: Option, + ) -> Result; + + async fn get_fileset( + &self, + ident: String, + expand: Option, + hide: Option, + ) -> Result; + + async fn get_fileset_edit(&self, edit_id: String) -> Result; + + async fn get_fileset_history( + &self, + ident: String, + limit: Option, + ) -> Result; + + async fn get_fileset_redirects( + &self, + ident: String, + ) -> Result; + + async fn get_fileset_revision( + &self, + rev_id: String, + expand: Option, + hide: Option, + ) -> Result; + + async fn get_release( + &self, + ident: String, + expand: Option, + hide: Option, + ) -> Result; + + async fn get_release_edit(&self, edit_id: String) -> Result; + + async fn get_release_files( + &self, + ident: String, + hide: Option, + ) -> Result; + + async fn get_release_filesets( + &self, + ident: String, + hide: Option, + ) -> Result; + + async fn get_release_history( + &self, + ident: String, + limit: Option, + ) -> Result; + + async fn get_release_redirects( + &self, + ident: String, + ) -> Result; + + async fn get_release_revision( + &self, + rev_id: String, + expand: Option, + hide: Option, + ) -> Result; + + async fn get_release_webcaptures( + &self, + ident: String, + hide: Option, + ) -> Result; + + async fn get_webcapture( + &self, + ident: String, + expand: Option, + hide: Option, + ) -> Result; + + async fn get_webcapture_edit( + &self, + edit_id: String, + ) -> Result; + + async fn get_webcapture_history( + &self, + ident: String, + limit: Option, + ) -> Result; + + async fn get_webcapture_redirects( + &self, + ident: String, + ) -> Result; + + async fn get_webcapture_revision( + &self, + rev_id: String, + expand: Option, + hide: Option, + ) -> Result; + + async fn get_work( + &self, + ident: String, + expand: Option, + hide: Option, + ) -> Result; + + async fn get_work_edit(&self, edit_id: String) -> Result; + + async fn get_work_history( + &self, + ident: String, + limit: Option, + ) -> Result; + + async fn get_work_redirects(&self, ident: String) + -> Result; + + async fn get_work_releases( + &self, + ident: String, + hide: Option, + ) -> Result; + + async fn get_work_revision( + &self, + rev_id: String, + expand: Option, + hide: Option, + ) -> Result; + + async fn lookup_container( + &self, + issnl: Option, + wikidata_qid: Option, + expand: Option, + hide: Option, + ) -> Result; + + async fn lookup_creator( + &self, + orcid: Option, + wikidata_qid: Option, + expand: Option, + hide: Option, + ) -> Result; + + async fn lookup_file( + &self, + md5: Option, + sha1: Option, + sha256: Option, + expand: Option, + hide: Option, + ) -> Result; + + async fn lookup_release( + &self, + doi: Option, + wikidata_qid: Option, + isbn13: Option, + pmid: Option, + pmcid: Option, + core: Option, + arxiv: Option, + jstor: Option, + ark: Option, + mag: Option, + doaj: Option, + dblp: Option, + oai: Option, + expand: Option, + hide: Option, + ) -> Result; + + async fn update_container( + &self, + editgroup_id: String, + ident: String, + container_entity: models::ContainerEntity, + ) -> Result; + + async fn update_creator( + &self, + editgroup_id: String, + ident: String, + creator_entity: models::CreatorEntity, + ) -> Result; + + async fn update_editgroup( + &self, + editgroup_id: String, + editgroup: models::Editgroup, + submit: Option, + ) -> Result; + + async fn update_editor( + &self, + editor_id: String, + editor: models::Editor, + ) -> Result; + + async fn update_file( + &self, + editgroup_id: String, + ident: String, + file_entity: models::FileEntity, + ) -> Result; + + async fn update_fileset( + &self, + editgroup_id: String, + ident: String, + fileset_entity: models::FilesetEntity, + ) -> Result; + + async fn update_release( + &self, + editgroup_id: String, + ident: String, + release_entity: models::ReleaseEntity, + ) -> Result; + + async fn update_webcapture( + &self, + editgroup_id: String, + ident: String, + webcapture_entity: models::WebcaptureEntity, + ) -> Result; + + async fn update_work( + &self, + editgroup_id: String, + ident: String, + work_entity: models::WorkEntity, + ) -> Result; +} + +/// Trait to extend an API to make it easy to bind it to a context. +pub trait ContextWrapperExt +where + Self: Sized, +{ + /// Binds this API to a context. + fn with_context(self: Self, context: C) -> ContextWrapper; +} + +impl + Send + Sync, C: Clone + Send + Sync> ContextWrapperExt for T { + fn with_context(self: T, context: C) -> ContextWrapper { + ContextWrapper::::new(self, context) + } +} + +#[async_trait] +impl + Send + Sync, C: Clone + Send + Sync> ApiNoContext for ContextWrapper { + fn poll_ready(&self, cx: &mut Context) -> Poll> { + self.api().poll_ready(cx) + } + + fn context(&self) -> &C { + ContextWrapper::context(self) + } + + async fn accept_editgroup( + &self, + editgroup_id: String, + ) -> Result { + let context = self.context().clone(); + self.api().accept_editgroup(editgroup_id, &context).await + } + + async fn auth_check(&self, role: Option) -> Result { + let context = self.context().clone(); + self.api().auth_check(role, &context).await + } + + async fn auth_oidc(&self, auth_oidc: models::AuthOidc) -> Result { + let context = self.context().clone(); + self.api().auth_oidc(auth_oidc, &context).await + } + + async fn create_auth_token( + &self, + editor_id: String, + duration_seconds: Option, + ) -> Result { + let context = self.context().clone(); + self.api() + .create_auth_token(editor_id, duration_seconds, &context) + .await + } + + async fn create_container( + &self, + editgroup_id: String, + container_entity: models::ContainerEntity, + ) -> Result { + let context = self.context().clone(); + self.api() + .create_container(editgroup_id, container_entity, &context) + .await + } + + async fn create_container_auto_batch( + &self, + container_auto_batch: models::ContainerAutoBatch, + ) -> Result { + let context = self.context().clone(); + self.api() + .create_container_auto_batch(container_auto_batch, &context) + .await + } + + async fn create_creator( + &self, + editgroup_id: String, + creator_entity: models::CreatorEntity, + ) -> Result { + let context = self.context().clone(); + self.api() + .create_creator(editgroup_id, creator_entity, &context) + .await + } + + async fn create_creator_auto_batch( + &self, + creator_auto_batch: models::CreatorAutoBatch, + ) -> Result { + let context = self.context().clone(); + self.api() + .create_creator_auto_batch(creator_auto_batch, &context) + .await + } + + async fn create_editgroup( + &self, + editgroup: models::Editgroup, + ) -> Result { + let context = self.context().clone(); + self.api().create_editgroup(editgroup, &context).await + } + + async fn create_editgroup_annotation( + &self, + editgroup_id: String, + editgroup_annotation: models::EditgroupAnnotation, + ) -> Result { + let context = self.context().clone(); + self.api() + .create_editgroup_annotation(editgroup_id, editgroup_annotation, &context) + .await + } + + async fn create_file( + &self, + editgroup_id: String, + file_entity: models::FileEntity, + ) -> Result { + let context = self.context().clone(); + self.api() + .create_file(editgroup_id, file_entity, &context) + .await + } + + async fn create_file_auto_batch( + &self, + file_auto_batch: models::FileAutoBatch, + ) -> Result { + let context = self.context().clone(); + self.api() + .create_file_auto_batch(file_auto_batch, &context) + .await + } + + async fn create_fileset( + &self, + editgroup_id: String, + fileset_entity: models::FilesetEntity, + ) -> Result { + let context = self.context().clone(); + self.api() + .create_fileset(editgroup_id, fileset_entity, &context) + .await + } + + async fn create_fileset_auto_batch( + &self, + fileset_auto_batch: models::FilesetAutoBatch, + ) -> Result { + let context = self.context().clone(); + self.api() + .create_fileset_auto_batch(fileset_auto_batch, &context) + .await + } + + async fn create_release( + &self, + editgroup_id: String, + release_entity: models::ReleaseEntity, + ) -> Result { + let context = self.context().clone(); + self.api() + .create_release(editgroup_id, release_entity, &context) + .await + } + + async fn create_release_auto_batch( + &self, + release_auto_batch: models::ReleaseAutoBatch, + ) -> Result { + let context = self.context().clone(); + self.api() + .create_release_auto_batch(release_auto_batch, &context) + .await + } + + async fn create_webcapture( + &self, + editgroup_id: String, + webcapture_entity: models::WebcaptureEntity, + ) -> Result { + let context = self.context().clone(); + self.api() + .create_webcapture(editgroup_id, webcapture_entity, &context) + .await + } + + async fn create_webcapture_auto_batch( + &self, + webcapture_auto_batch: models::WebcaptureAutoBatch, + ) -> Result { + let context = self.context().clone(); + self.api() + .create_webcapture_auto_batch(webcapture_auto_batch, &context) + .await + } + + async fn create_work( + &self, + editgroup_id: String, + work_entity: models::WorkEntity, + ) -> Result { + let context = self.context().clone(); + self.api() + .create_work(editgroup_id, work_entity, &context) + .await + } + + async fn create_work_auto_batch( + &self, + work_auto_batch: models::WorkAutoBatch, + ) -> Result { + let context = self.context().clone(); + self.api() + .create_work_auto_batch(work_auto_batch, &context) + .await + } + + async fn delete_container( + &self, + editgroup_id: String, + ident: String, + ) -> Result { + let context = self.context().clone(); + self.api() + .delete_container(editgroup_id, ident, &context) + .await + } + + async fn delete_container_edit( + &self, + editgroup_id: String, + edit_id: String, + ) -> Result { + let context = self.context().clone(); + self.api() + .delete_container_edit(editgroup_id, edit_id, &context) + .await + } + + async fn delete_creator( + &self, + editgroup_id: String, + ident: String, + ) -> Result { + let context = self.context().clone(); + self.api() + .delete_creator(editgroup_id, ident, &context) + .await + } + + async fn delete_creator_edit( + &self, + editgroup_id: String, + edit_id: String, + ) -> Result { + let context = self.context().clone(); + self.api() + .delete_creator_edit(editgroup_id, edit_id, &context) + .await + } + + async fn delete_file( + &self, + editgroup_id: String, + ident: String, + ) -> Result { + let context = self.context().clone(); + self.api().delete_file(editgroup_id, ident, &context).await + } + + async fn delete_file_edit( + &self, + editgroup_id: String, + edit_id: String, + ) -> Result { + let context = self.context().clone(); + self.api() + .delete_file_edit(editgroup_id, edit_id, &context) + .await + } + + async fn delete_fileset( + &self, + editgroup_id: String, + ident: String, + ) -> Result { + let context = self.context().clone(); + self.api() + .delete_fileset(editgroup_id, ident, &context) + .await + } + + async fn delete_fileset_edit( + &self, + editgroup_id: String, + edit_id: String, + ) -> Result { + let context = self.context().clone(); + self.api() + .delete_fileset_edit(editgroup_id, edit_id, &context) + .await + } + + async fn delete_release( + &self, + editgroup_id: String, + ident: String, + ) -> Result { + let context = self.context().clone(); + self.api() + .delete_release(editgroup_id, ident, &context) + .await + } + + async fn delete_release_edit( + &self, + editgroup_id: String, + edit_id: String, + ) -> Result { + let context = self.context().clone(); + self.api() + .delete_release_edit(editgroup_id, edit_id, &context) + .await + } + + async fn delete_webcapture( + &self, + editgroup_id: String, + ident: String, + ) -> Result { + let context = self.context().clone(); + self.api() + .delete_webcapture(editgroup_id, ident, &context) + .await + } + + async fn delete_webcapture_edit( + &self, + editgroup_id: String, + edit_id: String, + ) -> Result { + let context = self.context().clone(); + self.api() + .delete_webcapture_edit(editgroup_id, edit_id, &context) + .await + } + + async fn delete_work( + &self, + editgroup_id: String, + ident: String, + ) -> Result { + let context = self.context().clone(); + self.api().delete_work(editgroup_id, ident, &context).await + } + + async fn delete_work_edit( + &self, + editgroup_id: String, + edit_id: String, + ) -> Result { + let context = self.context().clone(); + self.api() + .delete_work_edit(editgroup_id, edit_id, &context) + .await + } + + async fn get_changelog(&self, limit: Option) -> Result { + let context = self.context().clone(); + self.api().get_changelog(limit, &context).await + } + + async fn get_changelog_entry(&self, index: i64) -> Result { + let context = self.context().clone(); + self.api().get_changelog_entry(index, &context).await + } + + async fn get_container( + &self, + ident: String, + expand: Option, + hide: Option, + ) -> Result { + let context = self.context().clone(); + self.api() + .get_container(ident, expand, hide, &context) + .await + } + + async fn get_container_edit( + &self, + edit_id: String, + ) -> Result { + let context = self.context().clone(); + self.api().get_container_edit(edit_id, &context).await + } + + async fn get_container_history( + &self, + ident: String, + limit: Option, + ) -> Result { + let context = self.context().clone(); + self.api() + .get_container_history(ident, limit, &context) + .await + } + + async fn get_container_redirects( + &self, + ident: String, + ) -> Result { + let context = self.context().clone(); + self.api().get_container_redirects(ident, &context).await + } + + async fn get_container_revision( + &self, + rev_id: String, + expand: Option, + hide: Option, + ) -> Result { + let context = self.context().clone(); + self.api() + .get_container_revision(rev_id, expand, hide, &context) + .await + } + + async fn get_creator( + &self, + ident: String, + expand: Option, + hide: Option, + ) -> Result { + let context = self.context().clone(); + self.api().get_creator(ident, expand, hide, &context).await + } + + async fn get_creator_edit(&self, edit_id: String) -> Result { + let context = self.context().clone(); + self.api().get_creator_edit(edit_id, &context).await + } + + async fn get_creator_history( + &self, + ident: String, + limit: Option, + ) -> Result { + let context = self.context().clone(); + self.api().get_creator_history(ident, limit, &context).await + } + + async fn get_creator_redirects( + &self, + ident: String, + ) -> Result { + let context = self.context().clone(); + self.api().get_creator_redirects(ident, &context).await + } + + async fn get_creator_releases( + &self, + ident: String, + hide: Option, + ) -> Result { + let context = self.context().clone(); + self.api().get_creator_releases(ident, hide, &context).await + } + + async fn get_creator_revision( + &self, + rev_id: String, + expand: Option, + hide: Option, + ) -> Result { + let context = self.context().clone(); + self.api() + .get_creator_revision(rev_id, expand, hide, &context) + .await + } + + async fn get_editgroup(&self, editgroup_id: String) -> Result { + let context = self.context().clone(); + self.api().get_editgroup(editgroup_id, &context).await + } + + async fn get_editgroup_annotations( + &self, + editgroup_id: String, + expand: Option, + ) -> Result { + let context = self.context().clone(); + self.api() + .get_editgroup_annotations(editgroup_id, expand, &context) + .await + } + + async fn get_editgroups_reviewable( + &self, + expand: Option, + limit: Option, + before: Option>, + since: Option>, + ) -> Result { + let context = self.context().clone(); + self.api() + .get_editgroups_reviewable(expand, limit, before, since, &context) + .await + } + + async fn get_editor(&self, editor_id: String) -> Result { + let context = self.context().clone(); + self.api().get_editor(editor_id, &context).await + } + + async fn get_editor_annotations( + &self, + editor_id: String, + limit: Option, + before: Option>, + since: Option>, + ) -> Result { + let context = self.context().clone(); + self.api() + .get_editor_annotations(editor_id, limit, before, since, &context) + .await + } + + async fn get_editor_editgroups( + &self, + editor_id: String, + limit: Option, + before: Option>, + since: Option>, + ) -> Result { + let context = self.context().clone(); + self.api() + .get_editor_editgroups(editor_id, limit, before, since, &context) + .await + } + + async fn get_file( + &self, + ident: String, + expand: Option, + hide: Option, + ) -> Result { + let context = self.context().clone(); + self.api().get_file(ident, expand, hide, &context).await + } + + async fn get_file_edit(&self, edit_id: String) -> Result { + let context = self.context().clone(); + self.api().get_file_edit(edit_id, &context).await + } + + async fn get_file_history( + &self, + ident: String, + limit: Option, + ) -> Result { + let context = self.context().clone(); + self.api().get_file_history(ident, limit, &context).await + } + + async fn get_file_redirects( + &self, + ident: String, + ) -> Result { + let context = self.context().clone(); + self.api().get_file_redirects(ident, &context).await + } + + async fn get_file_revision( + &self, + rev_id: String, + expand: Option, + hide: Option, + ) -> Result { + let context = self.context().clone(); + self.api() + .get_file_revision(rev_id, expand, hide, &context) + .await + } + + async fn get_fileset( + &self, + ident: String, + expand: Option, + hide: Option, + ) -> Result { + let context = self.context().clone(); + self.api().get_fileset(ident, expand, hide, &context).await + } + + async fn get_fileset_edit(&self, edit_id: String) -> Result { + let context = self.context().clone(); + self.api().get_fileset_edit(edit_id, &context).await + } + + async fn get_fileset_history( + &self, + ident: String, + limit: Option, + ) -> Result { + let context = self.context().clone(); + self.api().get_fileset_history(ident, limit, &context).await + } + + async fn get_fileset_redirects( + &self, + ident: String, + ) -> Result { + let context = self.context().clone(); + self.api().get_fileset_redirects(ident, &context).await + } + + async fn get_fileset_revision( + &self, + rev_id: String, + expand: Option, + hide: Option, + ) -> Result { + let context = self.context().clone(); + self.api() + .get_fileset_revision(rev_id, expand, hide, &context) + .await + } + + async fn get_release( + &self, + ident: String, + expand: Option, + hide: Option, + ) -> Result { + let context = self.context().clone(); + self.api().get_release(ident, expand, hide, &context).await + } + + async fn get_release_edit(&self, edit_id: String) -> Result { + let context = self.context().clone(); + self.api().get_release_edit(edit_id, &context).await + } + + async fn get_release_files( + &self, + ident: String, + hide: Option, + ) -> Result { + let context = self.context().clone(); + self.api().get_release_files(ident, hide, &context).await + } + + async fn get_release_filesets( + &self, + ident: String, + hide: Option, + ) -> Result { + let context = self.context().clone(); + self.api().get_release_filesets(ident, hide, &context).await + } + + async fn get_release_history( + &self, + ident: String, + limit: Option, + ) -> Result { + let context = self.context().clone(); + self.api().get_release_history(ident, limit, &context).await + } + + async fn get_release_redirects( + &self, + ident: String, + ) -> Result { + let context = self.context().clone(); + self.api().get_release_redirects(ident, &context).await + } + + async fn get_release_revision( + &self, + rev_id: String, + expand: Option, + hide: Option, + ) -> Result { + let context = self.context().clone(); + self.api() + .get_release_revision(rev_id, expand, hide, &context) + .await + } + + async fn get_release_webcaptures( + &self, + ident: String, + hide: Option, + ) -> Result { + let context = self.context().clone(); + self.api() + .get_release_webcaptures(ident, hide, &context) + .await + } + + async fn get_webcapture( + &self, + ident: String, + expand: Option, + hide: Option, + ) -> Result { + let context = self.context().clone(); + self.api() + .get_webcapture(ident, expand, hide, &context) + .await + } + + async fn get_webcapture_edit( + &self, + edit_id: String, + ) -> Result { + let context = self.context().clone(); + self.api().get_webcapture_edit(edit_id, &context).await + } + + async fn get_webcapture_history( + &self, + ident: String, + limit: Option, + ) -> Result { + let context = self.context().clone(); + self.api() + .get_webcapture_history(ident, limit, &context) + .await + } + + async fn get_webcapture_redirects( + &self, + ident: String, + ) -> Result { + let context = self.context().clone(); + self.api().get_webcapture_redirects(ident, &context).await + } + + async fn get_webcapture_revision( + &self, + rev_id: String, + expand: Option, + hide: Option, + ) -> Result { + let context = self.context().clone(); + self.api() + .get_webcapture_revision(rev_id, expand, hide, &context) + .await + } + + async fn get_work( + &self, + ident: String, + expand: Option, + hide: Option, + ) -> Result { + let context = self.context().clone(); + self.api().get_work(ident, expand, hide, &context).await + } + + async fn get_work_edit(&self, edit_id: String) -> Result { + let context = self.context().clone(); + self.api().get_work_edit(edit_id, &context).await + } + + async fn get_work_history( + &self, + ident: String, + limit: Option, + ) -> Result { + let context = self.context().clone(); + self.api().get_work_history(ident, limit, &context).await + } + + async fn get_work_redirects( + &self, + ident: String, + ) -> Result { + let context = self.context().clone(); + self.api().get_work_redirects(ident, &context).await + } + + async fn get_work_releases( + &self, + ident: String, + hide: Option, + ) -> Result { + let context = self.context().clone(); + self.api().get_work_releases(ident, hide, &context).await + } + + async fn get_work_revision( + &self, + rev_id: String, + expand: Option, + hide: Option, + ) -> Result { + let context = self.context().clone(); + self.api() + .get_work_revision(rev_id, expand, hide, &context) + .await + } + + async fn lookup_container( + &self, + issnl: Option, + wikidata_qid: Option, + expand: Option, + hide: Option, + ) -> Result { + let context = self.context().clone(); + self.api() + .lookup_container(issnl, wikidata_qid, expand, hide, &context) + .await + } + + async fn lookup_creator( + &self, + orcid: Option, + wikidata_qid: Option, + expand: Option, + hide: Option, + ) -> Result { + let context = self.context().clone(); + self.api() + .lookup_creator(orcid, wikidata_qid, expand, hide, &context) + .await + } + + async fn lookup_file( + &self, + md5: Option, + sha1: Option, + sha256: Option, + expand: Option, + hide: Option, + ) -> Result { + let context = self.context().clone(); + self.api() + .lookup_file(md5, sha1, sha256, expand, hide, &context) + .await + } + + async fn lookup_release( + &self, + doi: Option, + wikidata_qid: Option, + isbn13: Option, + pmid: Option, + pmcid: Option, + core: Option, + arxiv: Option, + jstor: Option, + ark: Option, + mag: Option, + doaj: Option, + dblp: Option, + oai: Option, + expand: Option, + hide: Option, + ) -> Result { + let context = self.context().clone(); + self.api() + .lookup_release( + doi, + wikidata_qid, + isbn13, + pmid, + pmcid, + core, + arxiv, + jstor, + ark, + mag, + doaj, + dblp, + oai, + expand, + hide, + &context, + ) + .await + } + + async fn update_container( + &self, + editgroup_id: String, + ident: String, + container_entity: models::ContainerEntity, + ) -> Result { + let context = self.context().clone(); + self.api() + .update_container(editgroup_id, ident, container_entity, &context) + .await + } + + async fn update_creator( + &self, + editgroup_id: String, + ident: String, + creator_entity: models::CreatorEntity, + ) -> Result { + let context = self.context().clone(); + self.api() + .update_creator(editgroup_id, ident, creator_entity, &context) + .await + } + + async fn update_editgroup( + &self, + editgroup_id: String, + editgroup: models::Editgroup, + submit: Option, + ) -> Result { + let context = self.context().clone(); + self.api() + .update_editgroup(editgroup_id, editgroup, submit, &context) + .await + } + + async fn update_editor( + &self, + editor_id: String, + editor: models::Editor, + ) -> Result { + let context = self.context().clone(); + self.api().update_editor(editor_id, editor, &context).await + } + + async fn update_file( + &self, + editgroup_id: String, + ident: String, + file_entity: models::FileEntity, + ) -> Result { + let context = self.context().clone(); + self.api() + .update_file(editgroup_id, ident, file_entity, &context) + .await + } + + async fn update_fileset( + &self, + editgroup_id: String, + ident: String, + fileset_entity: models::FilesetEntity, + ) -> Result { + let context = self.context().clone(); + self.api() + .update_fileset(editgroup_id, ident, fileset_entity, &context) + .await + } + + async fn update_release( + &self, + editgroup_id: String, + ident: String, + release_entity: models::ReleaseEntity, + ) -> Result { + let context = self.context().clone(); + self.api() + .update_release(editgroup_id, ident, release_entity, &context) + .await + } + + async fn update_webcapture( + &self, + editgroup_id: String, + ident: String, + webcapture_entity: models::WebcaptureEntity, + ) -> Result { + let context = self.context().clone(); + self.api() + .update_webcapture(editgroup_id, ident, webcapture_entity, &context) + .await + } + + async fn update_work( + &self, + editgroup_id: String, + ident: String, + work_entity: models::WorkEntity, + ) -> Result { + let context = self.context().clone(); + self.api() + .update_work(editgroup_id, ident, work_entity, &context) + .await + } +} + +#[cfg(feature = "client")] +pub mod client; + +// Re-export Client as a top-level name +#[cfg(feature = "client")] +pub use client::Client; + +#[cfg(feature = "server")] +pub mod server; + +// Re-export router() as a top-level name +#[cfg(feature = "server")] +pub use self::server::Service; + +#[cfg(feature = "server")] +pub mod context; + +pub mod models; + +#[cfg(any(feature = "client", feature = "server"))] +pub(crate) mod header; -- cgit v1.2.3