From ba722671b4791524384010705bef0aaa83c22c0b Mon Sep 17 00:00:00 2001 From: Bryan Newbold Date: Thu, 5 Sep 2019 19:04:34 -0700 Subject: rename rust crate fatcat-api-spec -> fatcat-openapi --- rust/fatcat-openapi/src/lib.rs | 2282 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 2282 insertions(+) create mode 100644 rust/fatcat-openapi/src/lib.rs (limited to 'rust/fatcat-openapi/src/lib.rs') diff --git a/rust/fatcat-openapi/src/lib.rs b/rust/fatcat-openapi/src/lib.rs new file mode 100644 index 00000000..b19b5793 --- /dev/null +++ b/rust/fatcat-openapi/src/lib.rs @@ -0,0 +1,2282 @@ +#![allow(missing_docs, trivial_casts, unused_variables, unused_mut, unused_imports, unused_extern_crates, non_camel_case_types)] +extern crate serde; +#[macro_use] +extern crate serde_derive; +extern crate serde_json; + +extern crate chrono; +extern crate futures; + +#[macro_use] +extern crate lazy_static; +#[macro_use] +extern crate log; + +// Logically this should be in the client and server modules, but rust doesn't allow `macro_use` from a module. +#[cfg(any(feature = "client", feature = "server"))] +#[macro_use] +extern crate hyper; + +extern crate swagger; + +use futures::Stream; +use std::io::Error; + +#[allow(unused_imports)] +use std::collections::HashMap; + +pub use futures::Future; + +#[cfg(any(feature = "client", feature = "server"))] +mod mimetypes; + +pub use swagger::{ApiError, Context, ContextWrapper}; + +#[derive(Debug, PartialEq)] +pub enum CreateContainerResponse { + /// Created Entity + CreatedEntity(models::EntityEdit), + /// Bad Request + BadRequest(models::ErrorResponse), + /// Not Authorized + NotAuthorized { body: models::ErrorResponse, www_authenticate: String }, + /// Forbidden + Forbidden(models::ErrorResponse), + /// Not Found + NotFound(models::ErrorResponse), + /// Generic Error + GenericError(models::ErrorResponse), +} + +#[derive(Debug, PartialEq)] +pub enum CreateContainerAutoBatchResponse { + /// Created Editgroup + CreatedEditgroup(models::Editgroup), + /// Bad Request + BadRequest(models::ErrorResponse), + /// Not Authorized + NotAuthorized { body: models::ErrorResponse, www_authenticate: String }, + /// Forbidden + Forbidden(models::ErrorResponse), + /// Not Found + NotFound(models::ErrorResponse), + /// Generic Error + GenericError(models::ErrorResponse), +} + +#[derive(Debug, PartialEq)] +pub enum DeleteContainerResponse { + /// Deleted Entity + DeletedEntity(models::EntityEdit), + /// Bad Request + BadRequest(models::ErrorResponse), + /// Not Authorized + NotAuthorized { body: models::ErrorResponse, www_authenticate: String }, + /// Forbidden + Forbidden(models::ErrorResponse), + /// Not Found + NotFound(models::ErrorResponse), + /// Generic Error + GenericError(models::ErrorResponse), +} + +#[derive(Debug, PartialEq)] +pub enum DeleteContainerEditResponse { + /// Deleted Edit + DeletedEdit(models::Success), + /// Bad Request + BadRequest(models::ErrorResponse), + /// Not Authorized + NotAuthorized { body: models::ErrorResponse, www_authenticate: String }, + /// Forbidden + Forbidden(models::ErrorResponse), + /// Not Found + NotFound(models::ErrorResponse), + /// Generic Error + GenericError(models::ErrorResponse), +} + +#[derive(Debug, PartialEq)] +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)] +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)] +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)] +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)] +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)] +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)] +pub enum UpdateContainerResponse { + /// Updated Entity + UpdatedEntity(models::EntityEdit), + /// Bad Request + BadRequest(models::ErrorResponse), + /// Not Authorized + NotAuthorized { body: models::ErrorResponse, www_authenticate: String }, + /// Forbidden + Forbidden(models::ErrorResponse), + /// Not Found + NotFound(models::ErrorResponse), + /// Generic Error + GenericError(models::ErrorResponse), +} + +#[derive(Debug, PartialEq)] +pub enum CreateCreatorResponse { + /// Created Entity + CreatedEntity(models::EntityEdit), + /// Bad Request + BadRequest(models::ErrorResponse), + /// Not Authorized + NotAuthorized { body: models::ErrorResponse, www_authenticate: String }, + /// Forbidden + Forbidden(models::ErrorResponse), + /// Not Found + NotFound(models::ErrorResponse), + /// Generic Error + GenericError(models::ErrorResponse), +} + +#[derive(Debug, PartialEq)] +pub enum CreateCreatorAutoBatchResponse { + /// Created Editgroup + CreatedEditgroup(models::Editgroup), + /// Bad Request + BadRequest(models::ErrorResponse), + /// Not Authorized + NotAuthorized { body: models::ErrorResponse, www_authenticate: String }, + /// Forbidden + Forbidden(models::ErrorResponse), + /// Not Found + NotFound(models::ErrorResponse), + /// Generic Error + GenericError(models::ErrorResponse), +} + +#[derive(Debug, PartialEq)] +pub enum DeleteCreatorResponse { + /// Deleted Entity + DeletedEntity(models::EntityEdit), + /// Bad Request + BadRequest(models::ErrorResponse), + /// Not Authorized + NotAuthorized { body: models::ErrorResponse, www_authenticate: String }, + /// Forbidden + Forbidden(models::ErrorResponse), + /// Not Found + NotFound(models::ErrorResponse), + /// Generic Error + GenericError(models::ErrorResponse), +} + +#[derive(Debug, PartialEq)] +pub enum DeleteCreatorEditResponse { + /// Deleted Edit + DeletedEdit(models::Success), + /// Bad Request + BadRequest(models::ErrorResponse), + /// Not Authorized + NotAuthorized { body: models::ErrorResponse, www_authenticate: String }, + /// Forbidden + Forbidden(models::ErrorResponse), + /// Not Found + NotFound(models::ErrorResponse), + /// Generic Error + GenericError(models::ErrorResponse), +} + +#[derive(Debug, PartialEq)] +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)] +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)] +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)] +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)] +pub enum GetCreatorReleasesResponse { + /// Found + Found(Vec), + /// Bad Request + BadRequest(models::ErrorResponse), + /// Not Found + NotFound(models::ErrorResponse), + /// Generic Error + GenericError(models::ErrorResponse), +} + +#[derive(Debug, PartialEq)] +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)] +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)] +pub enum UpdateCreatorResponse { + /// Updated Entity + UpdatedEntity(models::EntityEdit), + /// Bad Request + BadRequest(models::ErrorResponse), + /// Not Authorized + NotAuthorized { body: models::ErrorResponse, www_authenticate: String }, + /// Forbidden + Forbidden(models::ErrorResponse), + /// Not Found + NotFound(models::ErrorResponse), + /// Generic Error + GenericError(models::ErrorResponse), +} + +#[derive(Debug, PartialEq)] +pub enum AuthCheckResponse { + /// Success + Success(models::Success), + /// Bad Request + BadRequest(models::ErrorResponse), + /// Not Authorized + NotAuthorized { body: models::ErrorResponse, www_authenticate: String }, + /// Forbidden + Forbidden(models::ErrorResponse), + /// Generic Error + GenericError(models::ErrorResponse), +} + +#[derive(Debug, PartialEq)] +pub enum AuthOidcResponse { + /// Found + Found(models::AuthOidcResult), + /// Created + Created(models::AuthOidcResult), + /// Bad Request + BadRequest(models::ErrorResponse), + /// Not Authorized + NotAuthorized { body: models::ErrorResponse, www_authenticate: String }, + /// Forbidden + Forbidden(models::ErrorResponse), + /// Conflict + Conflict(models::ErrorResponse), + /// Generic Error + GenericError(models::ErrorResponse), +} + +#[derive(Debug, PartialEq)] +pub enum GetEditgroupsReviewableResponse { + /// Found + Found(Vec), + /// Bad Request + BadRequest(models::ErrorResponse), + /// Not Found + NotFound(models::ErrorResponse), + /// Generic Error + GenericError(models::ErrorResponse), +} + +#[derive(Debug, PartialEq)] +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)] +pub enum GetEditorEditgroupsResponse { + /// Found + Found(Vec), + /// Bad Request + BadRequest(models::ErrorResponse), + /// Not Found + NotFound(models::ErrorResponse), + /// Generic Error + GenericError(models::ErrorResponse), +} + +#[derive(Debug, PartialEq)] +pub enum UpdateEditgroupResponse { + /// Updated Editgroup + UpdatedEditgroup(models::Editgroup), + /// Bad Request + BadRequest(models::ErrorResponse), + /// Not Authorized + NotAuthorized { body: models::ErrorResponse, www_authenticate: String }, + /// Forbidden + Forbidden(models::ErrorResponse), + /// Not Found + NotFound(models::ErrorResponse), + /// Generic Error + GenericError(models::ErrorResponse), +} + +#[derive(Debug, PartialEq)] +pub enum UpdateEditorResponse { + /// Updated Editor + UpdatedEditor(models::Editor), + /// Bad Request + BadRequest(models::ErrorResponse), + /// Not Authorized + NotAuthorized { body: models::ErrorResponse, www_authenticate: String }, + /// Forbidden + Forbidden(models::ErrorResponse), + /// Not Found + NotFound(models::ErrorResponse), + /// Generic Error + GenericError(models::ErrorResponse), +} + +#[derive(Debug, PartialEq)] +pub enum AcceptEditgroupResponse { + /// Merged Successfully + MergedSuccessfully(models::Success), + /// Bad Request + BadRequest(models::ErrorResponse), + /// Not Authorized + NotAuthorized { body: models::ErrorResponse, www_authenticate: String }, + /// Forbidden + Forbidden(models::ErrorResponse), + /// Not Found + NotFound(models::ErrorResponse), + /// Edit Conflict + EditConflict(models::ErrorResponse), + /// Generic Error + GenericError(models::ErrorResponse), +} + +#[derive(Debug, PartialEq)] +pub enum CreateEditgroupResponse { + /// Successfully Created + SuccessfullyCreated(models::Editgroup), + /// Bad Request + BadRequest(models::ErrorResponse), + /// Not Authorized + NotAuthorized { body: models::ErrorResponse, www_authenticate: String }, + /// Forbidden + Forbidden(models::ErrorResponse), + /// Not Found + NotFound(models::ErrorResponse), + /// Generic Error + GenericError(models::ErrorResponse), +} + +#[derive(Debug, PartialEq)] +pub enum CreateEditgroupAnnotationResponse { + /// Created + Created(models::EditgroupAnnotation), + /// Bad Request + BadRequest(models::ErrorResponse), + /// Not Authorized + NotAuthorized { body: models::ErrorResponse, www_authenticate: String }, + /// Forbidden + Forbidden(models::ErrorResponse), + /// Not Found + NotFound(models::ErrorResponse), + /// Generic Error + GenericError(models::ErrorResponse), +} + +#[derive(Debug, PartialEq)] +pub enum GetChangelogResponse { + /// Success + Success(Vec), + /// Bad Request + BadRequest(models::ErrorResponse), + /// Generic Error + GenericError(models::ErrorResponse), +} + +#[derive(Debug, PartialEq)] +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)] +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)] +pub enum GetEditgroupAnnotationsResponse { + /// Success + Success(Vec), + /// Bad Request + BadRequest(models::ErrorResponse), + /// Not Authorized + NotAuthorized { body: models::ErrorResponse, www_authenticate: String }, + /// Forbidden + Forbidden(models::ErrorResponse), + /// Not Found + NotFound(models::ErrorResponse), + /// Generic Error + GenericError(models::ErrorResponse), +} + +#[derive(Debug, PartialEq)] +pub enum GetEditorAnnotationsResponse { + /// Success + Success(Vec), + /// Bad Request + BadRequest(models::ErrorResponse), + /// Not Authorized + NotAuthorized { body: models::ErrorResponse, www_authenticate: String }, + /// Forbidden + Forbidden(models::ErrorResponse), + /// Not Found + NotFound(models::ErrorResponse), + /// Generic Error + GenericError(models::ErrorResponse), +} + +#[derive(Debug, PartialEq)] +pub enum CreateFileResponse { + /// Created Entity + CreatedEntity(models::EntityEdit), + /// Bad Request + BadRequest(models::ErrorResponse), + /// Not Authorized + NotAuthorized { body: models::ErrorResponse, www_authenticate: String }, + /// Forbidden + Forbidden(models::ErrorResponse), + /// Not Found + NotFound(models::ErrorResponse), + /// Generic Error + GenericError(models::ErrorResponse), +} + +#[derive(Debug, PartialEq)] +pub enum CreateFileAutoBatchResponse { + /// Created Editgroup + CreatedEditgroup(models::Editgroup), + /// Bad Request + BadRequest(models::ErrorResponse), + /// Not Authorized + NotAuthorized { body: models::ErrorResponse, www_authenticate: String }, + /// Forbidden + Forbidden(models::ErrorResponse), + /// Not Found + NotFound(models::ErrorResponse), + /// Generic Error + GenericError(models::ErrorResponse), +} + +#[derive(Debug, PartialEq)] +pub enum DeleteFileResponse { + /// Deleted Entity + DeletedEntity(models::EntityEdit), + /// Bad Request + BadRequest(models::ErrorResponse), + /// Not Authorized + NotAuthorized { body: models::ErrorResponse, www_authenticate: String }, + /// Forbidden + Forbidden(models::ErrorResponse), + /// Not Found + NotFound(models::ErrorResponse), + /// Generic Error + GenericError(models::ErrorResponse), +} + +#[derive(Debug, PartialEq)] +pub enum DeleteFileEditResponse { + /// Deleted Edit + DeletedEdit(models::Success), + /// Bad Request + BadRequest(models::ErrorResponse), + /// Not Authorized + NotAuthorized { body: models::ErrorResponse, www_authenticate: String }, + /// Forbidden + Forbidden(models::ErrorResponse), + /// Not Found + NotFound(models::ErrorResponse), + /// Generic Error + GenericError(models::ErrorResponse), +} + +#[derive(Debug, PartialEq)] +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)] +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)] +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)] +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)] +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)] +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)] +pub enum UpdateFileResponse { + /// Updated Entity + UpdatedEntity(models::EntityEdit), + /// Bad Request + BadRequest(models::ErrorResponse), + /// Not Authorized + NotAuthorized { body: models::ErrorResponse, www_authenticate: String }, + /// Forbidden + Forbidden(models::ErrorResponse), + /// Not Found + NotFound(models::ErrorResponse), + /// Generic Error + GenericError(models::ErrorResponse), +} + +#[derive(Debug, PartialEq)] +pub enum CreateFilesetResponse { + /// Created Entity + CreatedEntity(models::EntityEdit), + /// Bad Request + BadRequest(models::ErrorResponse), + /// Not Authorized + NotAuthorized { body: models::ErrorResponse, www_authenticate: String }, + /// Forbidden + Forbidden(models::ErrorResponse), + /// Not Found + NotFound(models::ErrorResponse), + /// Generic Error + GenericError(models::ErrorResponse), +} + +#[derive(Debug, PartialEq)] +pub enum CreateFilesetAutoBatchResponse { + /// Created Editgroup + CreatedEditgroup(models::Editgroup), + /// Bad Request + BadRequest(models::ErrorResponse), + /// Not Authorized + NotAuthorized { body: models::ErrorResponse, www_authenticate: String }, + /// Forbidden + Forbidden(models::ErrorResponse), + /// Not Found + NotFound(models::ErrorResponse), + /// Generic Error + GenericError(models::ErrorResponse), +} + +#[derive(Debug, PartialEq)] +pub enum DeleteFilesetResponse { + /// Deleted Entity + DeletedEntity(models::EntityEdit), + /// Bad Request + BadRequest(models::ErrorResponse), + /// Not Authorized + NotAuthorized { body: models::ErrorResponse, www_authenticate: String }, + /// Forbidden + Forbidden(models::ErrorResponse), + /// Not Found + NotFound(models::ErrorResponse), + /// Generic Error + GenericError(models::ErrorResponse), +} + +#[derive(Debug, PartialEq)] +pub enum DeleteFilesetEditResponse { + /// Deleted Edit + DeletedEdit(models::Success), + /// Bad Request + BadRequest(models::ErrorResponse), + /// Not Authorized + NotAuthorized { body: models::ErrorResponse, www_authenticate: String }, + /// Forbidden + Forbidden(models::ErrorResponse), + /// Not Found + NotFound(models::ErrorResponse), + /// Generic Error + GenericError(models::ErrorResponse), +} + +#[derive(Debug, PartialEq)] +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)] +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)] +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)] +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)] +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)] +pub enum UpdateFilesetResponse { + /// Updated Entity + UpdatedEntity(models::EntityEdit), + /// Bad Request + BadRequest(models::ErrorResponse), + /// Not Authorized + NotAuthorized { body: models::ErrorResponse, www_authenticate: String }, + /// Forbidden + Forbidden(models::ErrorResponse), + /// Not Found + NotFound(models::ErrorResponse), + /// Generic Error + GenericError(models::ErrorResponse), +} + +#[derive(Debug, PartialEq)] +pub enum CreateReleaseResponse { + /// Created Entity + CreatedEntity(models::EntityEdit), + /// Bad Request + BadRequest(models::ErrorResponse), + /// Not Authorized + NotAuthorized { body: models::ErrorResponse, www_authenticate: String }, + /// Forbidden + Forbidden(models::ErrorResponse), + /// Not Found + NotFound(models::ErrorResponse), + /// Generic Error + GenericError(models::ErrorResponse), +} + +#[derive(Debug, PartialEq)] +pub enum CreateReleaseAutoBatchResponse { + /// Created Editgroup + CreatedEditgroup(models::Editgroup), + /// Bad Request + BadRequest(models::ErrorResponse), + /// Not Authorized + NotAuthorized { body: models::ErrorResponse, www_authenticate: String }, + /// Forbidden + Forbidden(models::ErrorResponse), + /// Not Found + NotFound(models::ErrorResponse), + /// Generic Error + GenericError(models::ErrorResponse), +} + +#[derive(Debug, PartialEq)] +pub enum CreateWorkResponse { + /// Created Entity + CreatedEntity(models::EntityEdit), + /// Bad Request + BadRequest(models::ErrorResponse), + /// Not Authorized + NotAuthorized { body: models::ErrorResponse, www_authenticate: String }, + /// Forbidden + Forbidden(models::ErrorResponse), + /// Not Found + NotFound(models::ErrorResponse), + /// Generic Error + GenericError(models::ErrorResponse), +} + +#[derive(Debug, PartialEq)] +pub enum DeleteReleaseResponse { + /// Deleted Entity + DeletedEntity(models::EntityEdit), + /// Bad Request + BadRequest(models::ErrorResponse), + /// Not Authorized + NotAuthorized { body: models::ErrorResponse, www_authenticate: String }, + /// Forbidden + Forbidden(models::ErrorResponse), + /// Not Found + NotFound(models::ErrorResponse), + /// Generic Error + GenericError(models::ErrorResponse), +} + +#[derive(Debug, PartialEq)] +pub enum DeleteReleaseEditResponse { + /// Deleted Edit + DeletedEdit(models::Success), + /// Bad Request + BadRequest(models::ErrorResponse), + /// Not Authorized + NotAuthorized { body: models::ErrorResponse, www_authenticate: String }, + /// Forbidden + Forbidden(models::ErrorResponse), + /// Not Found + NotFound(models::ErrorResponse), + /// Generic Error + GenericError(models::ErrorResponse), +} + +#[derive(Debug, PartialEq)] +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)] +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)] +pub enum GetReleaseFilesResponse { + /// Found + Found(Vec), + /// Bad Request + BadRequest(models::ErrorResponse), + /// Not Found + NotFound(models::ErrorResponse), + /// Generic Error + GenericError(models::ErrorResponse), +} + +#[derive(Debug, PartialEq)] +pub enum GetReleaseFilesetsResponse { + /// Found + Found(Vec), + /// Bad Request + BadRequest(models::ErrorResponse), + /// Not Found + NotFound(models::ErrorResponse), + /// Generic Error + GenericError(models::ErrorResponse), +} + +#[derive(Debug, PartialEq)] +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)] +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)] +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)] +pub enum GetReleaseWebcapturesResponse { + /// Found + Found(Vec), + /// Bad Request + BadRequest(models::ErrorResponse), + /// Not Found + NotFound(models::ErrorResponse), + /// Generic Error + GenericError(models::ErrorResponse), +} + +#[derive(Debug, PartialEq)] +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)] +pub enum UpdateReleaseResponse { + /// Updated Entity + UpdatedEntity(models::EntityEdit), + /// Bad Request + BadRequest(models::ErrorResponse), + /// Not Authorized + NotAuthorized { body: models::ErrorResponse, www_authenticate: String }, + /// Forbidden + Forbidden(models::ErrorResponse), + /// Not Found + NotFound(models::ErrorResponse), + /// Generic Error + GenericError(models::ErrorResponse), +} + +#[derive(Debug, PartialEq)] +pub enum CreateWebcaptureResponse { + /// Created Entity + CreatedEntity(models::EntityEdit), + /// Bad Request + BadRequest(models::ErrorResponse), + /// Not Authorized + NotAuthorized { body: models::ErrorResponse, www_authenticate: String }, + /// Forbidden + Forbidden(models::ErrorResponse), + /// Not Found + NotFound(models::ErrorResponse), + /// Generic Error + GenericError(models::ErrorResponse), +} + +#[derive(Debug, PartialEq)] +pub enum CreateWebcaptureAutoBatchResponse { + /// Created Editgroup + CreatedEditgroup(models::Editgroup), + /// Bad Request + BadRequest(models::ErrorResponse), + /// Not Authorized + NotAuthorized { body: models::ErrorResponse, www_authenticate: String }, + /// Forbidden + Forbidden(models::ErrorResponse), + /// Not Found + NotFound(models::ErrorResponse), + /// Generic Error + GenericError(models::ErrorResponse), +} + +#[derive(Debug, PartialEq)] +pub enum DeleteWebcaptureResponse { + /// Deleted Entity + DeletedEntity(models::EntityEdit), + /// Bad Request + BadRequest(models::ErrorResponse), + /// Not Authorized + NotAuthorized { body: models::ErrorResponse, www_authenticate: String }, + /// Forbidden + Forbidden(models::ErrorResponse), + /// Not Found + NotFound(models::ErrorResponse), + /// Generic Error + GenericError(models::ErrorResponse), +} + +#[derive(Debug, PartialEq)] +pub enum DeleteWebcaptureEditResponse { + /// Deleted Edit + DeletedEdit(models::Success), + /// Bad Request + BadRequest(models::ErrorResponse), + /// Not Authorized + NotAuthorized { body: models::ErrorResponse, www_authenticate: String }, + /// Forbidden + Forbidden(models::ErrorResponse), + /// Not Found + NotFound(models::ErrorResponse), + /// Generic Error + GenericError(models::ErrorResponse), +} + +#[derive(Debug, PartialEq)] +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)] +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)] +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)] +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)] +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)] +pub enum UpdateWebcaptureResponse { + /// Updated Entity + UpdatedEntity(models::EntityEdit), + /// Bad Request + BadRequest(models::ErrorResponse), + /// Not Authorized + NotAuthorized { body: models::ErrorResponse, www_authenticate: String }, + /// Forbidden + Forbidden(models::ErrorResponse), + /// Not Found + NotFound(models::ErrorResponse), + /// Generic Error + GenericError(models::ErrorResponse), +} + +#[derive(Debug, PartialEq)] +pub enum CreateWorkAutoBatchResponse { + /// Created Editgroup + CreatedEditgroup(models::Editgroup), + /// Bad Request + BadRequest(models::ErrorResponse), + /// Not Authorized + NotAuthorized { body: models::ErrorResponse, www_authenticate: String }, + /// Forbidden + Forbidden(models::ErrorResponse), + /// Not Found + NotFound(models::ErrorResponse), + /// Generic Error + GenericError(models::ErrorResponse), +} + +#[derive(Debug, PartialEq)] +pub enum DeleteWorkResponse { + /// Deleted Entity + DeletedEntity(models::EntityEdit), + /// Bad Request + BadRequest(models::ErrorResponse), + /// Not Authorized + NotAuthorized { body: models::ErrorResponse, www_authenticate: String }, + /// Forbidden + Forbidden(models::ErrorResponse), + /// Not Found + NotFound(models::ErrorResponse), + /// Generic Error + GenericError(models::ErrorResponse), +} + +#[derive(Debug, PartialEq)] +pub enum DeleteWorkEditResponse { + /// Deleted Edit + DeletedEdit(models::Success), + /// Bad Request + BadRequest(models::ErrorResponse), + /// Not Authorized + NotAuthorized { body: models::ErrorResponse, www_authenticate: String }, + /// Forbidden + Forbidden(models::ErrorResponse), + /// Not Found + NotFound(models::ErrorResponse), + /// Generic Error + GenericError(models::ErrorResponse), +} + +#[derive(Debug, PartialEq)] +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)] +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)] +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)] +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)] +pub enum GetWorkReleasesResponse { + /// Found + Found(Vec), + /// Bad Request + BadRequest(models::ErrorResponse), + /// Not Found + NotFound(models::ErrorResponse), + /// Generic Error + GenericError(models::ErrorResponse), +} + +#[derive(Debug, PartialEq)] +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)] +pub enum UpdateWorkResponse { + /// Updated Entity + UpdatedEntity(models::EntityEdit), + /// Bad Request + BadRequest(models::ErrorResponse), + /// Not Authorized + NotAuthorized { body: models::ErrorResponse, www_authenticate: String }, + /// Forbidden + Forbidden(models::ErrorResponse), + /// Not Found + NotFound(models::ErrorResponse), + /// Generic Error + GenericError(models::ErrorResponse), +} + +/// API +pub trait Api { + fn create_container(&self, editgroup_id: String, entity: models::ContainerEntity, context: &Context) -> Box + Send>; + + fn create_container_auto_batch(&self, auto_batch: models::ContainerAutoBatch, context: &Context) -> Box + Send>; + + fn delete_container(&self, editgroup_id: String, ident: String, context: &Context) -> Box + Send>; + + fn delete_container_edit(&self, editgroup_id: String, edit_id: String, context: &Context) -> Box + Send>; + + fn get_container(&self, ident: String, expand: Option, hide: Option, context: &Context) -> Box + Send>; + + fn get_container_edit(&self, edit_id: String, context: &Context) -> Box + Send>; + + fn get_container_history(&self, ident: String, limit: Option, context: &Context) -> Box + Send>; + + fn get_container_redirects(&self, ident: String, context: &Context) -> Box + Send>; + + fn get_container_revision(&self, rev_id: String, expand: Option, hide: Option, context: &Context) -> Box + Send>; + + fn lookup_container( + &self, + issnl: Option, + wikidata_qid: Option, + expand: Option, + hide: Option, + context: &Context, + ) -> Box + Send>; + + fn update_container(&self, editgroup_id: String, ident: String, entity: models::ContainerEntity, context: &Context) -> Box + Send>; + + fn create_creator(&self, editgroup_id: String, entity: models::CreatorEntity, context: &Context) -> Box + Send>; + + fn create_creator_auto_batch(&self, auto_batch: models::CreatorAutoBatch, context: &Context) -> Box + Send>; + + fn delete_creator(&self, editgroup_id: String, ident: String, context: &Context) -> Box + Send>; + + fn delete_creator_edit(&self, editgroup_id: String, edit_id: String, context: &Context) -> Box + Send>; + + fn get_creator(&self, ident: String, expand: Option, hide: Option, context: &Context) -> Box + Send>; + + fn get_creator_edit(&self, edit_id: String, context: &Context) -> Box + Send>; + + fn get_creator_history(&self, ident: String, limit: Option, context: &Context) -> Box + Send>; + + fn get_creator_redirects(&self, ident: String, context: &Context) -> Box + Send>; + + fn get_creator_releases(&self, ident: String, hide: Option, context: &Context) -> Box + Send>; + + fn get_creator_revision(&self, rev_id: String, expand: Option, hide: Option, context: &Context) -> Box + Send>; + + fn lookup_creator( + &self, + orcid: Option, + wikidata_qid: Option, + expand: Option, + hide: Option, + context: &Context, + ) -> Box + Send>; + + fn update_creator(&self, editgroup_id: String, ident: String, entity: models::CreatorEntity, context: &Context) -> Box + Send>; + + fn auth_check(&self, role: Option, context: &Context) -> Box + Send>; + + fn auth_oidc(&self, oidc_params: models::AuthOidc, context: &Context) -> Box + Send>; + + fn get_editgroups_reviewable( + &self, + expand: Option, + limit: Option, + before: Option>, + since: Option>, + context: &Context, + ) -> Box + Send>; + + fn get_editor(&self, editor_id: String, context: &Context) -> Box + Send>; + + fn get_editor_editgroups( + &self, + editor_id: String, + limit: Option, + before: Option>, + since: Option>, + context: &Context, + ) -> Box + Send>; + + fn update_editgroup(&self, editgroup_id: String, editgroup: models::Editgroup, submit: Option, context: &Context) -> Box + Send>; + + fn update_editor(&self, editor_id: String, editor: models::Editor, context: &Context) -> Box + Send>; + + fn accept_editgroup(&self, editgroup_id: String, context: &Context) -> Box + Send>; + + fn create_editgroup(&self, editgroup: models::Editgroup, context: &Context) -> Box + Send>; + + fn create_editgroup_annotation( + &self, + editgroup_id: String, + annotation: models::EditgroupAnnotation, + context: &Context, + ) -> Box + Send>; + + fn get_changelog(&self, limit: Option, context: &Context) -> Box + Send>; + + fn get_changelog_entry(&self, index: i64, context: &Context) -> Box + Send>; + + fn get_editgroup(&self, editgroup_id: String, context: &Context) -> Box + Send>; + + fn get_editgroup_annotations(&self, editgroup_id: String, expand: Option, context: &Context) -> Box + Send>; + + fn get_editor_annotations( + &self, + editor_id: String, + limit: Option, + before: Option>, + since: Option>, + context: &Context, + ) -> Box + Send>; + + fn create_file(&self, editgroup_id: String, entity: models::FileEntity, context: &Context) -> Box + Send>; + + fn create_file_auto_batch(&self, auto_batch: models::FileAutoBatch, context: &Context) -> Box + Send>; + + fn delete_file(&self, editgroup_id: String, ident: String, context: &Context) -> Box + Send>; + + fn delete_file_edit(&self, editgroup_id: String, edit_id: String, context: &Context) -> Box + Send>; + + fn get_file(&self, ident: String, expand: Option, hide: Option, context: &Context) -> Box + Send>; + + fn get_file_edit(&self, edit_id: String, context: &Context) -> Box + Send>; + + fn get_file_history(&self, ident: String, limit: Option, context: &Context) -> Box + Send>; + + fn get_file_redirects(&self, ident: String, context: &Context) -> Box + Send>; + + fn get_file_revision(&self, rev_id: String, expand: Option, hide: Option, context: &Context) -> Box + Send>; + + fn lookup_file( + &self, + md5: Option, + sha1: Option, + sha256: Option, + expand: Option, + hide: Option, + context: &Context, + ) -> Box + Send>; + + fn update_file(&self, editgroup_id: String, ident: String, entity: models::FileEntity, context: &Context) -> Box + Send>; + + fn create_fileset(&self, editgroup_id: String, entity: models::FilesetEntity, context: &Context) -> Box + Send>; + + fn create_fileset_auto_batch(&self, auto_batch: models::FilesetAutoBatch, context: &Context) -> Box + Send>; + + fn delete_fileset(&self, editgroup_id: String, ident: String, context: &Context) -> Box + Send>; + + fn delete_fileset_edit(&self, editgroup_id: String, edit_id: String, context: &Context) -> Box + Send>; + + fn get_fileset(&self, ident: String, expand: Option, hide: Option, context: &Context) -> Box + Send>; + + fn get_fileset_edit(&self, edit_id: String, context: &Context) -> Box + Send>; + + fn get_fileset_history(&self, ident: String, limit: Option, context: &Context) -> Box + Send>; + + fn get_fileset_redirects(&self, ident: String, context: &Context) -> Box + Send>; + + fn get_fileset_revision(&self, rev_id: String, expand: Option, hide: Option, context: &Context) -> Box + Send>; + + fn update_fileset(&self, editgroup_id: String, ident: String, entity: models::FilesetEntity, context: &Context) -> Box + Send>; + + fn create_release(&self, editgroup_id: String, entity: models::ReleaseEntity, context: &Context) -> Box + Send>; + + fn create_release_auto_batch(&self, auto_batch: models::ReleaseAutoBatch, context: &Context) -> Box + Send>; + + fn create_work(&self, editgroup_id: String, entity: models::WorkEntity, context: &Context) -> Box + Send>; + + fn delete_release(&self, editgroup_id: String, ident: String, context: &Context) -> Box + Send>; + + fn delete_release_edit(&self, editgroup_id: String, edit_id: String, context: &Context) -> Box + Send>; + + fn get_release(&self, ident: String, expand: Option, hide: Option, context: &Context) -> Box + Send>; + + fn get_release_edit(&self, edit_id: String, context: &Context) -> Box + Send>; + + fn get_release_files(&self, ident: String, hide: Option, context: &Context) -> Box + Send>; + + fn get_release_filesets(&self, ident: String, hide: Option, context: &Context) -> Box + Send>; + + fn get_release_history(&self, ident: String, limit: Option, context: &Context) -> Box + Send>; + + fn get_release_redirects(&self, ident: String, context: &Context) -> Box + Send>; + + fn get_release_revision(&self, rev_id: String, expand: Option, hide: Option, context: &Context) -> Box + Send>; + + fn get_release_webcaptures(&self, ident: String, hide: Option, context: &Context) -> Box + Send>; + + 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, + expand: Option, + hide: Option, + context: &Context, + ) -> Box + Send>; + + fn update_release(&self, editgroup_id: String, ident: String, entity: models::ReleaseEntity, context: &Context) -> Box + Send>; + + fn create_webcapture(&self, editgroup_id: String, entity: models::WebcaptureEntity, context: &Context) -> Box + Send>; + + fn create_webcapture_auto_batch(&self, auto_batch: models::WebcaptureAutoBatch, context: &Context) -> Box + Send>; + + fn delete_webcapture(&self, editgroup_id: String, ident: String, context: &Context) -> Box + Send>; + + fn delete_webcapture_edit(&self, editgroup_id: String, edit_id: String, context: &Context) -> Box + Send>; + + fn get_webcapture(&self, ident: String, expand: Option, hide: Option, context: &Context) -> Box + Send>; + + fn get_webcapture_edit(&self, edit_id: String, context: &Context) -> Box + Send>; + + fn get_webcapture_history(&self, ident: String, limit: Option, context: &Context) -> Box + Send>; + + fn get_webcapture_redirects(&self, ident: String, context: &Context) -> Box + Send>; + + fn get_webcapture_revision(&self, rev_id: String, expand: Option, hide: Option, context: &Context) -> Box + Send>; + + fn update_webcapture(&self, editgroup_id: String, ident: String, entity: models::WebcaptureEntity, context: &Context) -> Box + Send>; + + fn create_work_auto_batch(&self, auto_batch: models::WorkAutoBatch, context: &Context) -> Box + Send>; + + fn delete_work(&self, editgroup_id: String, ident: String, context: &Context) -> Box + Send>; + + fn delete_work_edit(&self, editgroup_id: String, edit_id: String, context: &Context) -> Box + Send>; + + fn get_work(&self, ident: String, expand: Option, hide: Option, context: &Context) -> Box + Send>; + + fn get_work_edit(&self, edit_id: String, context: &Context) -> Box + Send>; + + fn get_work_history(&self, ident: String, limit: Option, context: &Context) -> Box + Send>; + + fn get_work_redirects(&self, ident: String, context: &Context) -> Box + Send>; + + fn get_work_releases(&self, ident: String, hide: Option, context: &Context) -> Box + Send>; + + fn get_work_revision(&self, rev_id: String, expand: Option, hide: Option, context: &Context) -> Box + Send>; + + fn update_work(&self, editgroup_id: String, ident: String, entity: models::WorkEntity, context: &Context) -> Box + Send>; +} + +/// API without a `Context` +pub trait ApiNoContext { + fn create_container(&self, editgroup_id: String, entity: models::ContainerEntity) -> Box + Send>; + + fn create_container_auto_batch(&self, auto_batch: models::ContainerAutoBatch) -> Box + Send>; + + fn delete_container(&self, editgroup_id: String, ident: String) -> Box + Send>; + + fn delete_container_edit(&self, editgroup_id: String, edit_id: String) -> Box + Send>; + + fn get_container(&self, ident: String, expand: Option, hide: Option) -> Box + Send>; + + fn get_container_edit(&self, edit_id: String) -> Box + Send>; + + fn get_container_history(&self, ident: String, limit: Option) -> Box + Send>; + + fn get_container_redirects(&self, ident: String) -> Box + Send>; + + fn get_container_revision(&self, rev_id: String, expand: Option, hide: Option) -> Box + Send>; + + fn lookup_container( + &self, + issnl: Option, + wikidata_qid: Option, + expand: Option, + hide: Option, + ) -> Box + Send>; + + fn update_container(&self, editgroup_id: String, ident: String, entity: models::ContainerEntity) -> Box + Send>; + + fn create_creator(&self, editgroup_id: String, entity: models::CreatorEntity) -> Box + Send>; + + fn create_creator_auto_batch(&self, auto_batch: models::CreatorAutoBatch) -> Box + Send>; + + fn delete_creator(&self, editgroup_id: String, ident: String) -> Box + Send>; + + fn delete_creator_edit(&self, editgroup_id: String, edit_id: String) -> Box + Send>; + + fn get_creator(&self, ident: String, expand: Option, hide: Option) -> Box + Send>; + + fn get_creator_edit(&self, edit_id: String) -> Box + Send>; + + fn get_creator_history(&self, ident: String, limit: Option) -> Box + Send>; + + fn get_creator_redirects(&self, ident: String) -> Box + Send>; + + fn get_creator_releases(&self, ident: String, hide: Option) -> Box + Send>; + + fn get_creator_revision(&self, rev_id: String, expand: Option, hide: Option) -> Box + Send>; + + fn lookup_creator(&self, orcid: Option, wikidata_qid: Option, expand: Option, hide: Option) -> Box + Send>; + + fn update_creator(&self, editgroup_id: String, ident: String, entity: models::CreatorEntity) -> Box + Send>; + + fn auth_check(&self, role: Option) -> Box + Send>; + + fn auth_oidc(&self, oidc_params: models::AuthOidc) -> Box + Send>; + + fn get_editgroups_reviewable( + &self, + expand: Option, + limit: Option, + before: Option>, + since: Option>, + ) -> Box + Send>; + + fn get_editor(&self, editor_id: String) -> Box + Send>; + + fn get_editor_editgroups( + &self, + editor_id: String, + limit: Option, + before: Option>, + since: Option>, + ) -> Box + Send>; + + fn update_editgroup(&self, editgroup_id: String, editgroup: models::Editgroup, submit: Option) -> Box + Send>; + + fn update_editor(&self, editor_id: String, editor: models::Editor) -> Box + Send>; + + fn accept_editgroup(&self, editgroup_id: String) -> Box + Send>; + + fn create_editgroup(&self, editgroup: models::Editgroup) -> Box + Send>; + + fn create_editgroup_annotation(&self, editgroup_id: String, annotation: models::EditgroupAnnotation) -> Box + Send>; + + fn get_changelog(&self, limit: Option) -> Box + Send>; + + fn get_changelog_entry(&self, index: i64) -> Box + Send>; + + fn get_editgroup(&self, editgroup_id: String) -> Box + Send>; + + fn get_editgroup_annotations(&self, editgroup_id: String, expand: Option) -> Box + Send>; + + fn get_editor_annotations( + &self, + editor_id: String, + limit: Option, + before: Option>, + since: Option>, + ) -> Box + Send>; + + fn create_file(&self, editgroup_id: String, entity: models::FileEntity) -> Box + Send>; + + fn create_file_auto_batch(&self, auto_batch: models::FileAutoBatch) -> Box + Send>; + + fn delete_file(&self, editgroup_id: String, ident: String) -> Box + Send>; + + fn delete_file_edit(&self, editgroup_id: String, edit_id: String) -> Box + Send>; + + fn get_file(&self, ident: String, expand: Option, hide: Option) -> Box + Send>; + + fn get_file_edit(&self, edit_id: String) -> Box + Send>; + + fn get_file_history(&self, ident: String, limit: Option) -> Box + Send>; + + fn get_file_redirects(&self, ident: String) -> Box + Send>; + + fn get_file_revision(&self, rev_id: String, expand: Option, hide: Option) -> Box + Send>; + + fn lookup_file( + &self, + md5: Option, + sha1: Option, + sha256: Option, + expand: Option, + hide: Option, + ) -> Box + Send>; + + fn update_file(&self, editgroup_id: String, ident: String, entity: models::FileEntity) -> Box + Send>; + + fn create_fileset(&self, editgroup_id: String, entity: models::FilesetEntity) -> Box + Send>; + + fn create_fileset_auto_batch(&self, auto_batch: models::FilesetAutoBatch) -> Box + Send>; + + fn delete_fileset(&self, editgroup_id: String, ident: String) -> Box + Send>; + + fn delete_fileset_edit(&self, editgroup_id: String, edit_id: String) -> Box + Send>; + + fn get_fileset(&self, ident: String, expand: Option, hide: Option) -> Box + Send>; + + fn get_fileset_edit(&self, edit_id: String) -> Box + Send>; + + fn get_fileset_history(&self, ident: String, limit: Option) -> Box + Send>; + + fn get_fileset_redirects(&self, ident: String) -> Box + Send>; + + fn get_fileset_revision(&self, rev_id: String, expand: Option, hide: Option) -> Box + Send>; + + fn update_fileset(&self, editgroup_id: String, ident: String, entity: models::FilesetEntity) -> Box + Send>; + + fn create_release(&self, editgroup_id: String, entity: models::ReleaseEntity) -> Box + Send>; + + fn create_release_auto_batch(&self, auto_batch: models::ReleaseAutoBatch) -> Box + Send>; + + fn create_work(&self, editgroup_id: String, entity: models::WorkEntity) -> Box + Send>; + + fn delete_release(&self, editgroup_id: String, ident: String) -> Box + Send>; + + fn delete_release_edit(&self, editgroup_id: String, edit_id: String) -> Box + Send>; + + fn get_release(&self, ident: String, expand: Option, hide: Option) -> Box + Send>; + + fn get_release_edit(&self, edit_id: String) -> Box + Send>; + + fn get_release_files(&self, ident: String, hide: Option) -> Box + Send>; + + fn get_release_filesets(&self, ident: String, hide: Option) -> Box + Send>; + + fn get_release_history(&self, ident: String, limit: Option) -> Box + Send>; + + fn get_release_redirects(&self, ident: String) -> Box + Send>; + + fn get_release_revision(&self, rev_id: String, expand: Option, hide: Option) -> Box + Send>; + + fn get_release_webcaptures(&self, ident: String, hide: Option) -> Box + Send>; + + 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, + expand: Option, + hide: Option, + ) -> Box + Send>; + + fn update_release(&self, editgroup_id: String, ident: String, entity: models::ReleaseEntity) -> Box + Send>; + + fn create_webcapture(&self, editgroup_id: String, entity: models::WebcaptureEntity) -> Box + Send>; + + fn create_webcapture_auto_batch(&self, auto_batch: models::WebcaptureAutoBatch) -> Box + Send>; + + fn delete_webcapture(&self, editgroup_id: String, ident: String) -> Box + Send>; + + fn delete_webcapture_edit(&self, editgroup_id: String, edit_id: String) -> Box + Send>; + + fn get_webcapture(&self, ident: String, expand: Option, hide: Option) -> Box + Send>; + + fn get_webcapture_edit(&self, edit_id: String) -> Box + Send>; + + fn get_webcapture_history(&self, ident: String, limit: Option) -> Box + Send>; + + fn get_webcapture_redirects(&self, ident: String) -> Box + Send>; + + fn get_webcapture_revision(&self, rev_id: String, expand: Option, hide: Option) -> Box + Send>; + + fn update_webcapture(&self, editgroup_id: String, ident: String, entity: models::WebcaptureEntity) -> Box + Send>; + + fn create_work_auto_batch(&self, auto_batch: models::WorkAutoBatch) -> Box + Send>; + + fn delete_work(&self, editgroup_id: String, ident: String) -> Box + Send>; + + fn delete_work_edit(&self, editgroup_id: String, edit_id: String) -> Box + Send>; + + fn get_work(&self, ident: String, expand: Option, hide: Option) -> Box + Send>; + + fn get_work_edit(&self, edit_id: String) -> Box + Send>; + + fn get_work_history(&self, ident: String, limit: Option) -> Box + Send>; + + fn get_work_redirects(&self, ident: String) -> Box + Send>; + + fn get_work_releases(&self, ident: String, hide: Option) -> Box + Send>; + + fn get_work_revision(&self, rev_id: String, expand: Option, hide: Option) -> Box + Send>; + + fn update_work(&self, editgroup_id: String, ident: String, entity: models::WorkEntity) -> Box + Send>; +} + +/// Trait to extend an API to make it easy to bind it to a context. +pub trait ContextWrapperExt<'a> +where + Self: Sized, +{ + /// Binds this API to a context. + fn with_context(self: &'a Self, context: Context) -> ContextWrapper<'a, Self>; +} + +impl<'a, T: Api + Sized> ContextWrapperExt<'a> for T { + fn with_context(self: &'a T, context: Context) -> ContextWrapper<'a, T> { + ContextWrapper::::new(self, context) + } +} + +impl<'a, T: Api> ApiNoContext for ContextWrapper<'a, T> { + fn create_container(&self, editgroup_id: String, entity: models::ContainerEntity) -> Box + Send> { + self.api().create_container(editgroup_id, entity, &self.context()) + } + + fn create_container_auto_batch(&self, auto_batch: models::ContainerAutoBatch) -> Box + Send> { + self.api().create_container_auto_batch(auto_batch, &self.context()) + } + + fn delete_container(&self, editgroup_id: String, ident: String) -> Box + Send> { + self.api().delete_container(editgroup_id, ident, &self.context()) + } + + fn delete_container_edit(&self, editgroup_id: String, edit_id: String) -> Box + Send> { + self.api().delete_container_edit(editgroup_id, edit_id, &self.context()) + } + + fn get_container(&self, ident: String, expand: Option, hide: Option) -> Box + Send> { + self.api().get_container(ident, expand, hide, &self.context()) + } + + fn get_container_edit(&self, edit_id: String) -> Box + Send> { + self.api().get_container_edit(edit_id, &self.context()) + } + + fn get_container_history(&self, ident: String, limit: Option) -> Box + Send> { + self.api().get_container_history(ident, limit, &self.context()) + } + + fn get_container_redirects(&self, ident: String) -> Box + Send> { + self.api().get_container_redirects(ident, &self.context()) + } + + fn get_container_revision(&self, rev_id: String, expand: Option, hide: Option) -> Box + Send> { + self.api().get_container_revision(rev_id, expand, hide, &self.context()) + } + + fn lookup_container( + &self, + issnl: Option, + wikidata_qid: Option, + expand: Option, + hide: Option, + ) -> Box + Send> { + self.api().lookup_container(issnl, wikidata_qid, expand, hide, &self.context()) + } + + fn update_container(&self, editgroup_id: String, ident: String, entity: models::ContainerEntity) -> Box + Send> { + self.api().update_container(editgroup_id, ident, entity, &self.context()) + } + + fn create_creator(&self, editgroup_id: String, entity: models::CreatorEntity) -> Box + Send> { + self.api().create_creator(editgroup_id, entity, &self.context()) + } + + fn create_creator_auto_batch(&self, auto_batch: models::CreatorAutoBatch) -> Box + Send> { + self.api().create_creator_auto_batch(auto_batch, &self.context()) + } + + fn delete_creator(&self, editgroup_id: String, ident: String) -> Box + Send> { + self.api().delete_creator(editgroup_id, ident, &self.context()) + } + + fn delete_creator_edit(&self, editgroup_id: String, edit_id: String) -> Box + Send> { + self.api().delete_creator_edit(editgroup_id, edit_id, &self.context()) + } + + fn get_creator(&self, ident: String, expand: Option, hide: Option) -> Box + Send> { + self.api().get_creator(ident, expand, hide, &self.context()) + } + + fn get_creator_edit(&self, edit_id: String) -> Box + Send> { + self.api().get_creator_edit(edit_id, &self.context()) + } + + fn get_creator_history(&self, ident: String, limit: Option) -> Box + Send> { + self.api().get_creator_history(ident, limit, &self.context()) + } + + fn get_creator_redirects(&self, ident: String) -> Box + Send> { + self.api().get_creator_redirects(ident, &self.context()) + } + + fn get_creator_releases(&self, ident: String, hide: Option) -> Box + Send> { + self.api().get_creator_releases(ident, hide, &self.context()) + } + + fn get_creator_revision(&self, rev_id: String, expand: Option, hide: Option) -> Box + Send> { + self.api().get_creator_revision(rev_id, expand, hide, &self.context()) + } + + fn lookup_creator(&self, orcid: Option, wikidata_qid: Option, expand: Option, hide: Option) -> Box + Send> { + self.api().lookup_creator(orcid, wikidata_qid, expand, hide, &self.context()) + } + + fn update_creator(&self, editgroup_id: String, ident: String, entity: models::CreatorEntity) -> Box + Send> { + self.api().update_creator(editgroup_id, ident, entity, &self.context()) + } + + fn auth_check(&self, role: Option) -> Box + Send> { + self.api().auth_check(role, &self.context()) + } + + fn auth_oidc(&self, oidc_params: models::AuthOidc) -> Box + Send> { + self.api().auth_oidc(oidc_params, &self.context()) + } + + fn get_editgroups_reviewable( + &self, + expand: Option, + limit: Option, + before: Option>, + since: Option>, + ) -> Box + Send> { + self.api().get_editgroups_reviewable(expand, limit, before, since, &self.context()) + } + + fn get_editor(&self, editor_id: String) -> Box + Send> { + self.api().get_editor(editor_id, &self.context()) + } + + fn get_editor_editgroups( + &self, + editor_id: String, + limit: Option, + before: Option>, + since: Option>, + ) -> Box + Send> { + self.api().get_editor_editgroups(editor_id, limit, before, since, &self.context()) + } + + fn update_editgroup(&self, editgroup_id: String, editgroup: models::Editgroup, submit: Option) -> Box + Send> { + self.api().update_editgroup(editgroup_id, editgroup, submit, &self.context()) + } + + fn update_editor(&self, editor_id: String, editor: models::Editor) -> Box + Send> { + self.api().update_editor(editor_id, editor, &self.context()) + } + + fn accept_editgroup(&self, editgroup_id: String) -> Box + Send> { + self.api().accept_editgroup(editgroup_id, &self.context()) + } + + fn create_editgroup(&self, editgroup: models::Editgroup) -> Box + Send> { + self.api().create_editgroup(editgroup, &self.context()) + } + + fn create_editgroup_annotation(&self, editgroup_id: String, annotation: models::EditgroupAnnotation) -> Box + Send> { + self.api().create_editgroup_annotation(editgroup_id, annotation, &self.context()) + } + + fn get_changelog(&self, limit: Option) -> Box + Send> { + self.api().get_changelog(limit, &self.context()) + } + + fn get_changelog_entry(&self, index: i64) -> Box + Send> { + self.api().get_changelog_entry(index, &self.context()) + } + + fn get_editgroup(&self, editgroup_id: String) -> Box + Send> { + self.api().get_editgroup(editgroup_id, &self.context()) + } + + fn get_editgroup_annotations(&self, editgroup_id: String, expand: Option) -> Box + Send> { + self.api().get_editgroup_annotations(editgroup_id, expand, &self.context()) + } + + fn get_editor_annotations( + &self, + editor_id: String, + limit: Option, + before: Option>, + since: Option>, + ) -> Box + Send> { + self.api().get_editor_annotations(editor_id, limit, before, since, &self.context()) + } + + fn create_file(&self, editgroup_id: String, entity: models::FileEntity) -> Box + Send> { + self.api().create_file(editgroup_id, entity, &self.context()) + } + + fn create_file_auto_batch(&self, auto_batch: models::FileAutoBatch) -> Box + Send> { + self.api().create_file_auto_batch(auto_batch, &self.context()) + } + + fn delete_file(&self, editgroup_id: String, ident: String) -> Box + Send> { + self.api().delete_file(editgroup_id, ident, &self.context()) + } + + fn delete_file_edit(&self, editgroup_id: String, edit_id: String) -> Box + Send> { + self.api().delete_file_edit(editgroup_id, edit_id, &self.context()) + } + + fn get_file(&self, ident: String, expand: Option, hide: Option) -> Box + Send> { + self.api().get_file(ident, expand, hide, &self.context()) + } + + fn get_file_edit(&self, edit_id: String) -> Box + Send> { + self.api().get_file_edit(edit_id, &self.context()) + } + + fn get_file_history(&self, ident: String, limit: Option) -> Box + Send> { + self.api().get_file_history(ident, limit, &self.context()) + } + + fn get_file_redirects(&self, ident: String) -> Box + Send> { + self.api().get_file_redirects(ident, &self.context()) + } + + fn get_file_revision(&self, rev_id: String, expand: Option, hide: Option) -> Box + Send> { + self.api().get_file_revision(rev_id, expand, hide, &self.context()) + } + + fn lookup_file( + &self, + md5: Option, + sha1: Option, + sha256: Option, + expand: Option, + hide: Option, + ) -> Box + Send> { + self.api().lookup_file(md5, sha1, sha256, expand, hide, &self.context()) + } + + fn update_file(&self, editgroup_id: String, ident: String, entity: models::FileEntity) -> Box + Send> { + self.api().update_file(editgroup_id, ident, entity, &self.context()) + } + + fn create_fileset(&self, editgroup_id: String, entity: models::FilesetEntity) -> Box + Send> { + self.api().create_fileset(editgroup_id, entity, &self.context()) + } + + fn create_fileset_auto_batch(&self, auto_batch: models::FilesetAutoBatch) -> Box + Send> { + self.api().create_fileset_auto_batch(auto_batch, &self.context()) + } + + fn delete_fileset(&self, editgroup_id: String, ident: String) -> Box + Send> { + self.api().delete_fileset(editgroup_id, ident, &self.context()) + } + + fn delete_fileset_edit(&self, editgroup_id: String, edit_id: String) -> Box + Send> { + self.api().delete_fileset_edit(editgroup_id, edit_id, &self.context()) + } + + fn get_fileset(&self, ident: String, expand: Option, hide: Option) -> Box + Send> { + self.api().get_fileset(ident, expand, hide, &self.context()) + } + + fn get_fileset_edit(&self, edit_id: String) -> Box + Send> { + self.api().get_fileset_edit(edit_id, &self.context()) + } + + fn get_fileset_history(&self, ident: String, limit: Option) -> Box + Send> { + self.api().get_fileset_history(ident, limit, &self.context()) + } + + fn get_fileset_redirects(&self, ident: String) -> Box + Send> { + self.api().get_fileset_redirects(ident, &self.context()) + } + + fn get_fileset_revision(&self, rev_id: String, expand: Option, hide: Option) -> Box + Send> { + self.api().get_fileset_revision(rev_id, expand, hide, &self.context()) + } + + fn update_fileset(&self, editgroup_id: String, ident: String, entity: models::FilesetEntity) -> Box + Send> { + self.api().update_fileset(editgroup_id, ident, entity, &self.context()) + } + + fn create_release(&self, editgroup_id: String, entity: models::ReleaseEntity) -> Box + Send> { + self.api().create_release(editgroup_id, entity, &self.context()) + } + + fn create_release_auto_batch(&self, auto_batch: models::ReleaseAutoBatch) -> Box + Send> { + self.api().create_release_auto_batch(auto_batch, &self.context()) + } + + fn create_work(&self, editgroup_id: String, entity: models::WorkEntity) -> Box + Send> { + self.api().create_work(editgroup_id, entity, &self.context()) + } + + fn delete_release(&self, editgroup_id: String, ident: String) -> Box + Send> { + self.api().delete_release(editgroup_id, ident, &self.context()) + } + + fn delete_release_edit(&self, editgroup_id: String, edit_id: String) -> Box + Send> { + self.api().delete_release_edit(editgroup_id, edit_id, &self.context()) + } + + fn get_release(&self, ident: String, expand: Option, hide: Option) -> Box + Send> { + self.api().get_release(ident, expand, hide, &self.context()) + } + + fn get_release_edit(&self, edit_id: String) -> Box + Send> { + self.api().get_release_edit(edit_id, &self.context()) + } + + fn get_release_files(&self, ident: String, hide: Option) -> Box + Send> { + self.api().get_release_files(ident, hide, &self.context()) + } + + fn get_release_filesets(&self, ident: String, hide: Option) -> Box + Send> { + self.api().get_release_filesets(ident, hide, &self.context()) + } + + fn get_release_history(&self, ident: String, limit: Option) -> Box + Send> { + self.api().get_release_history(ident, limit, &self.context()) + } + + fn get_release_redirects(&self, ident: String) -> Box + Send> { + self.api().get_release_redirects(ident, &self.context()) + } + + fn get_release_revision(&self, rev_id: String, expand: Option, hide: Option) -> Box + Send> { + self.api().get_release_revision(rev_id, expand, hide, &self.context()) + } + + fn get_release_webcaptures(&self, ident: String, hide: Option) -> Box + Send> { + self.api().get_release_webcaptures(ident, hide, &self.context()) + } + + 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, + expand: Option, + hide: Option, + ) -> Box + Send> { + self.api() + .lookup_release(doi, wikidata_qid, isbn13, pmid, pmcid, core, arxiv, jstor, ark, mag, expand, hide, &self.context()) + } + + fn update_release(&self, editgroup_id: String, ident: String, entity: models::ReleaseEntity) -> Box + Send> { + self.api().update_release(editgroup_id, ident, entity, &self.context()) + } + + fn create_webcapture(&self, editgroup_id: String, entity: models::WebcaptureEntity) -> Box + Send> { + self.api().create_webcapture(editgroup_id, entity, &self.context()) + } + + fn create_webcapture_auto_batch(&self, auto_batch: models::WebcaptureAutoBatch) -> Box + Send> { + self.api().create_webcapture_auto_batch(auto_batch, &self.context()) + } + + fn delete_webcapture(&self, editgroup_id: String, ident: String) -> Box + Send> { + self.api().delete_webcapture(editgroup_id, ident, &self.context()) + } + + fn delete_webcapture_edit(&self, editgroup_id: String, edit_id: String) -> Box + Send> { + self.api().delete_webcapture_edit(editgroup_id, edit_id, &self.context()) + } + + fn get_webcapture(&self, ident: String, expand: Option, hide: Option) -> Box + Send> { + self.api().get_webcapture(ident, expand, hide, &self.context()) + } + + fn get_webcapture_edit(&self, edit_id: String) -> Box + Send> { + self.api().get_webcapture_edit(edit_id, &self.context()) + } + + fn get_webcapture_history(&self, ident: String, limit: Option) -> Box + Send> { + self.api().get_webcapture_history(ident, limit, &self.context()) + } + + fn get_webcapture_redirects(&self, ident: String) -> Box + Send> { + self.api().get_webcapture_redirects(ident, &self.context()) + } + + fn get_webcapture_revision(&self, rev_id: String, expand: Option, hide: Option) -> Box + Send> { + self.api().get_webcapture_revision(rev_id, expand, hide, &self.context()) + } + + fn update_webcapture(&self, editgroup_id: String, ident: String, entity: models::WebcaptureEntity) -> Box + Send> { + self.api().update_webcapture(editgroup_id, ident, entity, &self.context()) + } + + fn create_work_auto_batch(&self, auto_batch: models::WorkAutoBatch) -> Box + Send> { + self.api().create_work_auto_batch(auto_batch, &self.context()) + } + + fn delete_work(&self, editgroup_id: String, ident: String) -> Box + Send> { + self.api().delete_work(editgroup_id, ident, &self.context()) + } + + fn delete_work_edit(&self, editgroup_id: String, edit_id: String) -> Box + Send> { + self.api().delete_work_edit(editgroup_id, edit_id, &self.context()) + } + + fn get_work(&self, ident: String, expand: Option, hide: Option) -> Box + Send> { + self.api().get_work(ident, expand, hide, &self.context()) + } + + fn get_work_edit(&self, edit_id: String) -> Box + Send> { + self.api().get_work_edit(edit_id, &self.context()) + } + + fn get_work_history(&self, ident: String, limit: Option) -> Box + Send> { + self.api().get_work_history(ident, limit, &self.context()) + } + + fn get_work_redirects(&self, ident: String) -> Box + Send> { + self.api().get_work_redirects(ident, &self.context()) + } + + fn get_work_releases(&self, ident: String, hide: Option) -> Box + Send> { + self.api().get_work_releases(ident, hide, &self.context()) + } + + fn get_work_revision(&self, rev_id: String, expand: Option, hide: Option) -> Box + Send> { + self.api().get_work_revision(rev_id, expand, hide, &self.context()) + } + + fn update_work(&self, editgroup_id: String, ident: String, entity: models::WorkEntity) -> Box + Send> { + self.api().update_work(editgroup_id, ident, entity, &self.context()) + } +} + +#[cfg(feature = "client")] +pub mod client; + +// Re-export Client as a top-level name +#[cfg(feature = "client")] +pub use self::client::Client; + +#[cfg(feature = "server")] +pub mod server; + +// Re-export router() as a top-level name +#[cfg(feature = "server")] +pub use self::server::router; + +pub mod models; -- cgit v1.2.3