From 10bf0dcc0fe321620a0499b4208d62916e30dec8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jes=C3=BAs=20Garc=C3=ADa=20Crespo?= Date: Tue, 18 Jul 2023 10:52:07 +0000 Subject: [PATCH] Build ui client using openapi3.json --- Makefile | 12 +- ui/src/components/CollectionStatusBadge.vue | 16 +- .../.openapi-generator/FILES | 24 + .../.openapi-generator/VERSION | 2 +- ui/src/openapi-generator/apis/BatchApi.ts | 133 ++++-- .../openapi-generator/apis/CollectionApi.ts | 448 ++++++++++++------ ui/src/openapi-generator/apis/PipelineApi.ts | 118 +++-- ui/src/openapi-generator/apis/SwaggerApi.ts | 43 +- ui/src/openapi-generator/apis/index.ts | 2 + ui/src/openapi-generator/index.ts | 2 + .../models/BatchHintsResult.ts | 65 +++ .../openapi-generator/models/BatchResult.ts | 75 +++ .../models/BatchStatusResult.ts | 90 ++++ .../models/BulkRequestBody.ts | 110 +++++ .../models/BulkStatusResult.ts | 106 +++++ .../models/CollectionDecideRequest.ts | 65 +++ .../models/CollectionNotfound.ts | 75 +++ .../models/EnduroCollectionWorkflowHistory.ts | 81 ++++ .../models/EnduroCollectionWorkflowStatus.ts | 80 ++++ .../models/EnduroMonitorUpdate.ts | 90 ++++ .../models/EnduroStoredCollection.ts | 173 +++++++ .../models/EnduroStoredPipeline.ts | 98 ++++ .../models/ListResponseBody.ts | 81 ++++ ui/src/openapi-generator/models/ModelError.ts | 111 +++++ .../models/PipelineNotFound.ts | 75 +++ .../models/SubmitRequestBody.ts | 98 ++++ ui/src/openapi-generator/models/index.ts | 52 +- ui/src/openapi-generator/runtime.ts | 309 ++++++++---- ui/src/store/collection/index.ts | 13 +- 29 files changed, 2262 insertions(+), 385 deletions(-) create mode 100644 ui/src/openapi-generator/.openapi-generator/FILES create mode 100644 ui/src/openapi-generator/models/BatchHintsResult.ts create mode 100644 ui/src/openapi-generator/models/BatchResult.ts create mode 100644 ui/src/openapi-generator/models/BatchStatusResult.ts create mode 100644 ui/src/openapi-generator/models/BulkRequestBody.ts create mode 100644 ui/src/openapi-generator/models/BulkStatusResult.ts create mode 100644 ui/src/openapi-generator/models/CollectionDecideRequest.ts create mode 100644 ui/src/openapi-generator/models/CollectionNotfound.ts create mode 100644 ui/src/openapi-generator/models/EnduroCollectionWorkflowHistory.ts create mode 100644 ui/src/openapi-generator/models/EnduroCollectionWorkflowStatus.ts create mode 100644 ui/src/openapi-generator/models/EnduroMonitorUpdate.ts create mode 100644 ui/src/openapi-generator/models/EnduroStoredCollection.ts create mode 100644 ui/src/openapi-generator/models/EnduroStoredPipeline.ts create mode 100644 ui/src/openapi-generator/models/ListResponseBody.ts create mode 100644 ui/src/openapi-generator/models/ModelError.ts create mode 100644 ui/src/openapi-generator/models/PipelineNotFound.ts create mode 100644 ui/src/openapi-generator/models/SubmitRequestBody.ts diff --git a/Makefile b/Makefile index a5b4a33b..df9fc21f 100644 --- a/Makefile +++ b/Makefile @@ -119,17 +119,15 @@ ui-dev: # @HELP Serves the UI for development. ui-client: # @HELP Generates the UI client using openapi-generator-cli. rm -rf $(CURDIR)/ui/src/client - docker container run --rm --user $(shell id -u):$(shell id -g) --volume $(CURDIR):/local openapitools/openapi-generator-cli:v4.2.3 \ + docker container run --rm --user $(shell id -u):$(shell id -g) --volume $(CURDIR):/local openapitools/openapi-generator-cli:v6.6.0 \ generate \ - --input-spec /local/internal/api/gen/http/openapi.json \ + --input-spec /local/internal/api/gen/http/openapi3.json \ --generator-name typescript-fetch \ --output /local/ui/src/openapi-generator/ \ - --skip-validate-spec \ - -p "generateAliasAsModel=true" \ - -p "typescriptThreePlus=true" \ - -p "withInterfaces=true" + -p "generateAliasAsModel=false" \ + -p "withInterfaces=true" \ + -p "supportsES6=true" echo "@@@@ Please, review all warnings generated by openapi-generator-cli above!" - echo "@@@@ We're using \`--skip-validate-spec\` to deal with Goa spec generation issues." db: # @HELP Opens the MySQL CLI. docker compose exec --user=root mysql mysql -hlocalhost -uroot -proot123 diff --git a/ui/src/components/CollectionStatusBadge.vue b/ui/src/components/CollectionStatusBadge.vue index f3f155ad..08459de8 100644 --- a/ui/src/components/CollectionStatusBadge.vue +++ b/ui/src/components/CollectionStatusBadge.vue @@ -21,14 +21,14 @@ export default class CollectionStatusBadge extends Vue { private defvariant: string = 'secondary'; private variants: any = { - [api.CollectionShowResponseBodyStatusEnum.Error]: 'danger', - [api.CollectionShowResponseBodyStatusEnum.InProgress]: 'warning', - [api.CollectionShowResponseBodyStatusEnum.Done]: 'success', - [api.CollectionShowResponseBodyStatusEnum.New]: 'secondary', - [api.CollectionShowResponseBodyStatusEnum.Unknown]: 'dark', - [api.CollectionShowResponseBodyStatusEnum.Abandoned]: 'secondary', - [api.CollectionShowResponseBodyStatusEnum.Queued]: 'light', - [api.CollectionShowResponseBodyStatusEnum.Pending]: 'light', + [api.EnduroStoredCollectionStatusEnum.Error]: 'danger', + [api.EnduroStoredCollectionStatusEnum.InProgress]: 'warning', + [api.EnduroStoredCollectionStatusEnum.Done]: 'success', + [api.EnduroStoredCollectionStatusEnum.New]: 'secondary', + [api.EnduroStoredCollectionStatusEnum.Unknown]: 'dark', + [api.EnduroStoredCollectionStatusEnum.Abandoned]: 'secondary', + [api.EnduroStoredCollectionStatusEnum.Queued]: 'light', + [api.EnduroStoredCollectionStatusEnum.Pending]: 'light', }; private variant(): string { diff --git a/ui/src/openapi-generator/.openapi-generator/FILES b/ui/src/openapi-generator/.openapi-generator/FILES new file mode 100644 index 00000000..a1e2b538 --- /dev/null +++ b/ui/src/openapi-generator/.openapi-generator/FILES @@ -0,0 +1,24 @@ +apis/BatchApi.ts +apis/CollectionApi.ts +apis/PipelineApi.ts +apis/SwaggerApi.ts +apis/index.ts +index.ts +models/BatchHintsResult.ts +models/BatchResult.ts +models/BatchStatusResult.ts +models/BulkRequestBody.ts +models/BulkStatusResult.ts +models/CollectionDecideRequest.ts +models/CollectionNotfound.ts +models/EnduroCollectionWorkflowHistory.ts +models/EnduroCollectionWorkflowStatus.ts +models/EnduroMonitorUpdate.ts +models/EnduroStoredCollection.ts +models/EnduroStoredPipeline.ts +models/ListResponseBody.ts +models/ModelError.ts +models/PipelineNotFound.ts +models/SubmitRequestBody.ts +models/index.ts +runtime.ts diff --git a/ui/src/openapi-generator/.openapi-generator/VERSION b/ui/src/openapi-generator/.openapi-generator/VERSION index ec87108d..cd802a1e 100644 --- a/ui/src/openapi-generator/.openapi-generator/VERSION +++ b/ui/src/openapi-generator/.openapi-generator/VERSION @@ -1 +1 @@ -4.2.3 \ No newline at end of file +6.6.0 \ No newline at end of file diff --git a/ui/src/openapi-generator/apis/BatchApi.ts b/ui/src/openapi-generator/apis/BatchApi.ts index 74e90493..a89eb1ed 100644 --- a/ui/src/openapi-generator/apis/BatchApi.ts +++ b/ui/src/openapi-generator/apis/BatchApi.ts @@ -4,7 +4,7 @@ * Enduro API * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * The version of the OpenAPI document: + * The version of the OpenAPI document: 1.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -14,42 +14,93 @@ import * as runtime from '../runtime'; +import type { + BatchHintsResult, + BatchResult, + BatchStatusResult, + SubmitRequestBody, +} from '../models'; import { - BatchHintsResponseBody, - BatchHintsResponseBodyFromJSON, - BatchHintsResponseBodyToJSON, - BatchStatusResponseBody, - BatchStatusResponseBodyFromJSON, - BatchStatusResponseBodyToJSON, - BatchSubmitNotAvailableResponseBody, - BatchSubmitNotAvailableResponseBodyFromJSON, - BatchSubmitNotAvailableResponseBodyToJSON, - BatchSubmitNotValidResponseBody, - BatchSubmitNotValidResponseBodyFromJSON, - BatchSubmitNotValidResponseBodyToJSON, - BatchSubmitRequestBody, - BatchSubmitRequestBodyFromJSON, - BatchSubmitRequestBodyToJSON, - BatchSubmitResponseBody, - BatchSubmitResponseBodyFromJSON, - BatchSubmitResponseBodyToJSON, + BatchHintsResultFromJSON, + BatchHintsResultToJSON, + BatchResultFromJSON, + BatchResultToJSON, + BatchStatusResultFromJSON, + BatchStatusResultToJSON, + SubmitRequestBodyFromJSON, + SubmitRequestBodyToJSON, } from '../models'; export interface BatchSubmitRequest { - submitRequestBody: BatchSubmitRequestBody; + submitRequestBody: SubmitRequestBody; +} + +/** + * BatchApi - interface + * + * @export + * @interface BatchApiInterface + */ +export interface BatchApiInterface { + /** + * Retrieve form hints + * @summary hints batch + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof BatchApiInterface + */ + batchHintsRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>; + + /** + * Retrieve form hints + * hints batch + */ + batchHints(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise; + + /** + * Retrieve status of current batch operation. + * @summary status batch + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof BatchApiInterface + */ + batchStatusRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>; + + /** + * Retrieve status of current batch operation. + * status batch + */ + batchStatus(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise; + + /** + * Submit a new batch + * @summary submit batch + * @param {SubmitRequestBody} submitRequestBody + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof BatchApiInterface + */ + batchSubmitRaw(requestParameters: BatchSubmitRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>; + + /** + * Submit a new batch + * submit batch + */ + batchSubmit(requestParameters: BatchSubmitRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise; + } /** - * no description + * */ -export class BatchApi extends runtime.BaseAPI { +export class BatchApi extends runtime.BaseAPI implements BatchApiInterface { /** * Retrieve form hints * hints batch */ - async batchHintsRaw(): Promise> { - const queryParameters: runtime.HTTPQuery = {}; + async batchHintsRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const queryParameters: any = {}; const headerParameters: runtime.HTTPHeaders = {}; @@ -58,17 +109,17 @@ export class BatchApi extends runtime.BaseAPI { method: 'GET', headers: headerParameters, query: queryParameters, - }); + }, initOverrides); - return new runtime.JSONApiResponse(response, (jsonValue) => BatchHintsResponseBodyFromJSON(jsonValue)); + return new runtime.JSONApiResponse(response, (jsonValue) => BatchHintsResultFromJSON(jsonValue)); } /** * Retrieve form hints * hints batch */ - async batchHints(): Promise { - const response = await this.batchHintsRaw(); + async batchHints(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.batchHintsRaw(initOverrides); return await response.value(); } @@ -76,8 +127,8 @@ export class BatchApi extends runtime.BaseAPI { * Retrieve status of current batch operation. * status batch */ - async batchStatusRaw(): Promise> { - const queryParameters: runtime.HTTPQuery = {}; + async batchStatusRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const queryParameters: any = {}; const headerParameters: runtime.HTTPHeaders = {}; @@ -86,17 +137,17 @@ export class BatchApi extends runtime.BaseAPI { method: 'GET', headers: headerParameters, query: queryParameters, - }); + }, initOverrides); - return new runtime.JSONApiResponse(response, (jsonValue) => BatchStatusResponseBodyFromJSON(jsonValue)); + return new runtime.JSONApiResponse(response, (jsonValue) => BatchStatusResultFromJSON(jsonValue)); } /** * Retrieve status of current batch operation. * status batch */ - async batchStatus(): Promise { - const response = await this.batchStatusRaw(); + async batchStatus(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.batchStatusRaw(initOverrides); return await response.value(); } @@ -104,12 +155,12 @@ export class BatchApi extends runtime.BaseAPI { * Submit a new batch * submit batch */ - async batchSubmitRaw(requestParameters: BatchSubmitRequest): Promise> { + async batchSubmitRaw(requestParameters: BatchSubmitRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { if (requestParameters.submitRequestBody === null || requestParameters.submitRequestBody === undefined) { throw new runtime.RequiredError('submitRequestBody','Required parameter requestParameters.submitRequestBody was null or undefined when calling batchSubmit.'); } - const queryParameters: runtime.HTTPQuery = {}; + const queryParameters: any = {}; const headerParameters: runtime.HTTPHeaders = {}; @@ -120,18 +171,18 @@ export class BatchApi extends runtime.BaseAPI { method: 'POST', headers: headerParameters, query: queryParameters, - body: BatchSubmitRequestBodyToJSON(requestParameters.submitRequestBody), - }); + body: SubmitRequestBodyToJSON(requestParameters.submitRequestBody), + }, initOverrides); - return new runtime.JSONApiResponse(response, (jsonValue) => BatchSubmitResponseBodyFromJSON(jsonValue)); + return new runtime.JSONApiResponse(response, (jsonValue) => BatchResultFromJSON(jsonValue)); } /** * Submit a new batch * submit batch */ - async batchSubmit(requestParameters: BatchSubmitRequest): Promise { - const response = await this.batchSubmitRaw(requestParameters); + async batchSubmit(requestParameters: BatchSubmitRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.batchSubmitRaw(requestParameters, initOverrides); return await response.value(); } diff --git a/ui/src/openapi-generator/apis/CollectionApi.ts b/ui/src/openapi-generator/apis/CollectionApi.ts index 02480770..b181d90d 100644 --- a/ui/src/openapi-generator/apis/CollectionApi.ts +++ b/ui/src/openapi-generator/apis/CollectionApi.ts @@ -4,7 +4,7 @@ * Enduro API * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * The version of the OpenAPI document: + * The version of the OpenAPI document: 1.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -14,80 +14,49 @@ import * as runtime from '../runtime'; +import type { + BatchResult, + BulkRequestBody, + BulkStatusResult, + CollectionDecideRequest, + CollectionNotfound, + EnduroCollectionWorkflowStatus, + EnduroMonitorUpdate, + EnduroStoredCollection, + ListResponseBody, +} from '../models'; import { - CollectionBulkNotAvailableResponseBody, - CollectionBulkNotAvailableResponseBodyFromJSON, - CollectionBulkNotAvailableResponseBodyToJSON, - CollectionBulkNotValidResponseBody, - CollectionBulkNotValidResponseBodyFromJSON, - CollectionBulkNotValidResponseBodyToJSON, - CollectionBulkRequestBody, - CollectionBulkRequestBodyFromJSON, - CollectionBulkRequestBodyToJSON, - CollectionBulkResponseBody, - CollectionBulkResponseBodyFromJSON, - CollectionBulkResponseBodyToJSON, - CollectionBulkStatusResponseBody, - CollectionBulkStatusResponseBodyFromJSON, - CollectionBulkStatusResponseBodyToJSON, - CollectionCancelNotFoundResponseBody, - CollectionCancelNotFoundResponseBodyFromJSON, - CollectionCancelNotFoundResponseBodyToJSON, - CollectionCancelNotRunningResponseBody, - CollectionCancelNotRunningResponseBodyFromJSON, - CollectionCancelNotRunningResponseBodyToJSON, - CollectionDecideNotFoundResponseBody, - CollectionDecideNotFoundResponseBodyFromJSON, - CollectionDecideNotFoundResponseBodyToJSON, - CollectionDecideNotValidResponseBody, - CollectionDecideNotValidResponseBodyFromJSON, - CollectionDecideNotValidResponseBodyToJSON, - CollectionDeleteNotFoundResponseBody, - CollectionDeleteNotFoundResponseBodyFromJSON, - CollectionDeleteNotFoundResponseBodyToJSON, - CollectionDownloadNotFoundResponseBody, - CollectionDownloadNotFoundResponseBodyFromJSON, - CollectionDownloadNotFoundResponseBodyToJSON, - CollectionListResponseBody, - CollectionListResponseBodyFromJSON, - CollectionListResponseBodyToJSON, - CollectionMonitorResponseBody, - CollectionMonitorResponseBodyFromJSON, - CollectionMonitorResponseBodyToJSON, - CollectionRetryNotFoundResponseBody, - CollectionRetryNotFoundResponseBodyFromJSON, - CollectionRetryNotFoundResponseBodyToJSON, - CollectionRetryNotRunningResponseBody, - CollectionRetryNotRunningResponseBodyFromJSON, - CollectionRetryNotRunningResponseBodyToJSON, - CollectionShowNotFoundResponseBody, - CollectionShowNotFoundResponseBodyFromJSON, - CollectionShowNotFoundResponseBodyToJSON, - CollectionShowResponseBody, - CollectionShowResponseBodyFromJSON, - CollectionShowResponseBodyToJSON, - CollectionWorkflowNotFoundResponseBody, - CollectionWorkflowNotFoundResponseBodyFromJSON, - CollectionWorkflowNotFoundResponseBodyToJSON, - CollectionWorkflowResponseBody, - CollectionWorkflowResponseBodyFromJSON, - CollectionWorkflowResponseBodyToJSON, - InlineObject, - InlineObjectFromJSON, - InlineObjectToJSON, + BatchResultFromJSON, + BatchResultToJSON, + BulkRequestBodyFromJSON, + BulkRequestBodyToJSON, + BulkStatusResultFromJSON, + BulkStatusResultToJSON, + CollectionDecideRequestFromJSON, + CollectionDecideRequestToJSON, + CollectionNotfoundFromJSON, + CollectionNotfoundToJSON, + EnduroCollectionWorkflowStatusFromJSON, + EnduroCollectionWorkflowStatusToJSON, + EnduroMonitorUpdateFromJSON, + EnduroMonitorUpdateToJSON, + EnduroStoredCollectionFromJSON, + EnduroStoredCollectionToJSON, + ListResponseBodyFromJSON, + ListResponseBodyToJSON, } from '../models'; export interface CollectionBulkRequest { - bulkRequestBody: CollectionBulkRequestBody; + bulkRequestBody: BulkRequestBody; } export interface CollectionCancelRequest { id: number; } -export interface CollectionDecideRequest { +export interface CollectionDecideOperationRequest { id: number; - object: InlineObject; + collectionDecideRequest: CollectionDecideRequest; } export interface CollectionDeleteRequest { @@ -123,20 +92,211 @@ export interface CollectionWorkflowRequest { } /** - * no description + * CollectionApi - interface + * + * @export + * @interface CollectionApiInterface + */ +export interface CollectionApiInterface { + /** + * Bulk operations (retry, cancel...). + * @summary bulk collection + * @param {BulkRequestBody} bulkRequestBody + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof CollectionApiInterface + */ + collectionBulkRaw(requestParameters: CollectionBulkRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>; + + /** + * Bulk operations (retry, cancel...). + * bulk collection + */ + collectionBulk(requestParameters: CollectionBulkRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise; + + /** + * Retrieve status of current bulk operation. + * @summary bulk_status collection + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof CollectionApiInterface + */ + collectionBulkStatusRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>; + + /** + * Retrieve status of current bulk operation. + * bulk_status collection + */ + collectionBulkStatus(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise; + + /** + * Cancel collection processing by ID + * @summary cancel collection + * @param {number} id Identifier of collection to remove + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof CollectionApiInterface + */ + collectionCancelRaw(requestParameters: CollectionCancelRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>; + + /** + * Cancel collection processing by ID + * cancel collection + */ + collectionCancel(requestParameters: CollectionCancelRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise; + + /** + * Make decision for a pending collection by ID + * @summary decide collection + * @param {number} id Identifier of collection to look up + * @param {CollectionDecideRequest} collectionDecideRequest + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof CollectionApiInterface + */ + collectionDecideRaw(requestParameters: CollectionDecideOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>; + + /** + * Make decision for a pending collection by ID + * decide collection + */ + collectionDecide(requestParameters: CollectionDecideOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise; + + /** + * Delete collection by ID + * @summary delete collection + * @param {number} id Identifier of collection to delete + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof CollectionApiInterface + */ + collectionDeleteRaw(requestParameters: CollectionDeleteRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>; + + /** + * Delete collection by ID + * delete collection + */ + collectionDelete(requestParameters: CollectionDeleteRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise; + + /** + * Download collection by ID + * @summary download collection + * @param {number} id Identifier of collection to look up + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof CollectionApiInterface + */ + collectionDownloadRaw(requestParameters: CollectionDownloadRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>; + + /** + * Download collection by ID + * download collection + */ + collectionDownload(requestParameters: CollectionDownloadRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise; + + /** + * List all stored collections + * @summary list collection + * @param {string} [name] + * @param {string} [originalId] + * @param {string} [transferId] Identifier of Archivematica tranfser + * @param {string} [aipId] Identifier of Archivematica AIP + * @param {string} [pipelineId] Identifier of Archivematica pipeline + * @param {Date} [earliestCreatedTime] + * @param {Date} [latestCreatedTime] + * @param {'new' | 'in progress' | 'done' | 'error' | 'unknown' | 'queued' | 'pending' | 'abandoned'} [status] + * @param {string} [cursor] Pagination cursor + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof CollectionApiInterface + */ + collectionListRaw(requestParameters: CollectionListRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>; + + /** + * List all stored collections + * list collection + */ + collectionList(requestParameters: CollectionListRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise; + + /** + * + * @summary monitor collection + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof CollectionApiInterface + */ + collectionMonitorRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>; + + /** + * monitor collection + */ + collectionMonitor(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise; + + /** + * Retry collection processing by ID + * @summary retry collection + * @param {number} id Identifier of collection to retry + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof CollectionApiInterface + */ + collectionRetryRaw(requestParameters: CollectionRetryRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>; + + /** + * Retry collection processing by ID + * retry collection + */ + collectionRetry(requestParameters: CollectionRetryRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise; + + /** + * Show collection by ID + * @summary show collection + * @param {number} id Identifier of collection to show + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof CollectionApiInterface + */ + collectionShowRaw(requestParameters: CollectionShowRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>; + + /** + * Show collection by ID + * show collection + */ + collectionShow(requestParameters: CollectionShowRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise; + + /** + * Retrieve workflow status by ID + * @summary workflow collection + * @param {number} id Identifier of collection to look up + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof CollectionApiInterface + */ + collectionWorkflowRaw(requestParameters: CollectionWorkflowRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>; + + /** + * Retrieve workflow status by ID + * workflow collection + */ + collectionWorkflow(requestParameters: CollectionWorkflowRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise; + +} + +/** + * */ -export class CollectionApi extends runtime.BaseAPI { +export class CollectionApi extends runtime.BaseAPI implements CollectionApiInterface { /** * Bulk operations (retry, cancel...). * bulk collection */ - async collectionBulkRaw(requestParameters: CollectionBulkRequest): Promise> { + async collectionBulkRaw(requestParameters: CollectionBulkRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { if (requestParameters.bulkRequestBody === null || requestParameters.bulkRequestBody === undefined) { throw new runtime.RequiredError('bulkRequestBody','Required parameter requestParameters.bulkRequestBody was null or undefined when calling collectionBulk.'); } - const queryParameters: runtime.HTTPQuery = {}; + const queryParameters: any = {}; const headerParameters: runtime.HTTPHeaders = {}; @@ -147,18 +307,18 @@ export class CollectionApi extends runtime.BaseAPI { method: 'POST', headers: headerParameters, query: queryParameters, - body: CollectionBulkRequestBodyToJSON(requestParameters.bulkRequestBody), - }); + body: BulkRequestBodyToJSON(requestParameters.bulkRequestBody), + }, initOverrides); - return new runtime.JSONApiResponse(response, (jsonValue) => CollectionBulkResponseBodyFromJSON(jsonValue)); + return new runtime.JSONApiResponse(response, (jsonValue) => BatchResultFromJSON(jsonValue)); } /** * Bulk operations (retry, cancel...). * bulk collection */ - async collectionBulk(requestParameters: CollectionBulkRequest): Promise { - const response = await this.collectionBulkRaw(requestParameters); + async collectionBulk(requestParameters: CollectionBulkRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.collectionBulkRaw(requestParameters, initOverrides); return await response.value(); } @@ -166,8 +326,8 @@ export class CollectionApi extends runtime.BaseAPI { * Retrieve status of current bulk operation. * bulk_status collection */ - async collectionBulkStatusRaw(): Promise> { - const queryParameters: runtime.HTTPQuery = {}; + async collectionBulkStatusRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const queryParameters: any = {}; const headerParameters: runtime.HTTPHeaders = {}; @@ -176,17 +336,17 @@ export class CollectionApi extends runtime.BaseAPI { method: 'GET', headers: headerParameters, query: queryParameters, - }); + }, initOverrides); - return new runtime.JSONApiResponse(response, (jsonValue) => CollectionBulkStatusResponseBodyFromJSON(jsonValue)); + return new runtime.JSONApiResponse(response, (jsonValue) => BulkStatusResultFromJSON(jsonValue)); } /** * Retrieve status of current bulk operation. * bulk_status collection */ - async collectionBulkStatus(): Promise { - const response = await this.collectionBulkStatusRaw(); + async collectionBulkStatus(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.collectionBulkStatusRaw(initOverrides); return await response.value(); } @@ -194,12 +354,12 @@ export class CollectionApi extends runtime.BaseAPI { * Cancel collection processing by ID * cancel collection */ - async collectionCancelRaw(requestParameters: CollectionCancelRequest): Promise> { + async collectionCancelRaw(requestParameters: CollectionCancelRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { if (requestParameters.id === null || requestParameters.id === undefined) { throw new runtime.RequiredError('id','Required parameter requestParameters.id was null or undefined when calling collectionCancel.'); } - const queryParameters: runtime.HTTPQuery = {}; + const queryParameters: any = {}; const headerParameters: runtime.HTTPHeaders = {}; @@ -208,7 +368,7 @@ export class CollectionApi extends runtime.BaseAPI { method: 'POST', headers: headerParameters, query: queryParameters, - }); + }, initOverrides); return new runtime.VoidApiResponse(response); } @@ -217,24 +377,24 @@ export class CollectionApi extends runtime.BaseAPI { * Cancel collection processing by ID * cancel collection */ - async collectionCancel(requestParameters: CollectionCancelRequest): Promise { - await this.collectionCancelRaw(requestParameters); + async collectionCancel(requestParameters: CollectionCancelRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + await this.collectionCancelRaw(requestParameters, initOverrides); } /** * Make decision for a pending collection by ID * decide collection */ - async collectionDecideRaw(requestParameters: CollectionDecideRequest): Promise> { + async collectionDecideRaw(requestParameters: CollectionDecideOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { if (requestParameters.id === null || requestParameters.id === undefined) { throw new runtime.RequiredError('id','Required parameter requestParameters.id was null or undefined when calling collectionDecide.'); } - if (requestParameters.object === null || requestParameters.object === undefined) { - throw new runtime.RequiredError('object','Required parameter requestParameters.object was null or undefined when calling collectionDecide.'); + if (requestParameters.collectionDecideRequest === null || requestParameters.collectionDecideRequest === undefined) { + throw new runtime.RequiredError('collectionDecideRequest','Required parameter requestParameters.collectionDecideRequest was null or undefined when calling collectionDecide.'); } - const queryParameters: runtime.HTTPQuery = {}; + const queryParameters: any = {}; const headerParameters: runtime.HTTPHeaders = {}; @@ -245,8 +405,8 @@ export class CollectionApi extends runtime.BaseAPI { method: 'POST', headers: headerParameters, query: queryParameters, - body: InlineObjectToJSON(requestParameters.object), - }); + body: CollectionDecideRequestToJSON(requestParameters.collectionDecideRequest), + }, initOverrides); return new runtime.VoidApiResponse(response); } @@ -255,20 +415,20 @@ export class CollectionApi extends runtime.BaseAPI { * Make decision for a pending collection by ID * decide collection */ - async collectionDecide(requestParameters: CollectionDecideRequest): Promise { - await this.collectionDecideRaw(requestParameters); + async collectionDecide(requestParameters: CollectionDecideOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + await this.collectionDecideRaw(requestParameters, initOverrides); } /** * Delete collection by ID * delete collection */ - async collectionDeleteRaw(requestParameters: CollectionDeleteRequest): Promise> { + async collectionDeleteRaw(requestParameters: CollectionDeleteRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { if (requestParameters.id === null || requestParameters.id === undefined) { throw new runtime.RequiredError('id','Required parameter requestParameters.id was null or undefined when calling collectionDelete.'); } - const queryParameters: runtime.HTTPQuery = {}; + const queryParameters: any = {}; const headerParameters: runtime.HTTPHeaders = {}; @@ -277,7 +437,7 @@ export class CollectionApi extends runtime.BaseAPI { method: 'DELETE', headers: headerParameters, query: queryParameters, - }); + }, initOverrides); return new runtime.VoidApiResponse(response); } @@ -286,20 +446,20 @@ export class CollectionApi extends runtime.BaseAPI { * Delete collection by ID * delete collection */ - async collectionDelete(requestParameters: CollectionDeleteRequest): Promise { - await this.collectionDeleteRaw(requestParameters); + async collectionDelete(requestParameters: CollectionDeleteRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + await this.collectionDeleteRaw(requestParameters, initOverrides); } /** * Download collection by ID * download collection */ - async collectionDownloadRaw(requestParameters: CollectionDownloadRequest): Promise> { + async collectionDownloadRaw(requestParameters: CollectionDownloadRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { if (requestParameters.id === null || requestParameters.id === undefined) { throw new runtime.RequiredError('id','Required parameter requestParameters.id was null or undefined when calling collectionDownload.'); } - const queryParameters: runtime.HTTPQuery = {}; + const queryParameters: any = {}; const headerParameters: runtime.HTTPHeaders = {}; @@ -308,17 +468,17 @@ export class CollectionApi extends runtime.BaseAPI { method: 'GET', headers: headerParameters, query: queryParameters, - }); + }, initOverrides); - return new runtime.TextApiResponse(response) as any; + return new runtime.BlobApiResponse(response); } /** * Download collection by ID * download collection */ - async collectionDownload(requestParameters: CollectionDownloadRequest): Promise { - const response = await this.collectionDownloadRaw(requestParameters); + async collectionDownload(requestParameters: CollectionDownloadRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.collectionDownloadRaw(requestParameters, initOverrides); return await response.value(); } @@ -326,8 +486,8 @@ export class CollectionApi extends runtime.BaseAPI { * List all stored collections * list collection */ - async collectionListRaw(requestParameters: CollectionListRequest): Promise> { - const queryParameters: runtime.HTTPQuery = {}; + async collectionListRaw(requestParameters: CollectionListRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const queryParameters: any = {}; if (requestParameters.name !== undefined) { queryParameters['name'] = requestParameters.name; @@ -372,25 +532,25 @@ export class CollectionApi extends runtime.BaseAPI { method: 'GET', headers: headerParameters, query: queryParameters, - }); + }, initOverrides); - return new runtime.JSONApiResponse(response, (jsonValue) => CollectionListResponseBodyFromJSON(jsonValue)); + return new runtime.JSONApiResponse(response, (jsonValue) => ListResponseBodyFromJSON(jsonValue)); } /** * List all stored collections * list collection */ - async collectionList(requestParameters: CollectionListRequest): Promise { - const response = await this.collectionListRaw(requestParameters); + async collectionList(requestParameters: CollectionListRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.collectionListRaw(requestParameters, initOverrides); return await response.value(); } /** * monitor collection */ - async collectionMonitorRaw(): Promise> { - const queryParameters: runtime.HTTPQuery = {}; + async collectionMonitorRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const queryParameters: any = {}; const headerParameters: runtime.HTTPHeaders = {}; @@ -399,7 +559,7 @@ export class CollectionApi extends runtime.BaseAPI { method: 'GET', headers: headerParameters, query: queryParameters, - }); + }, initOverrides); return new runtime.VoidApiResponse(response); } @@ -407,20 +567,20 @@ export class CollectionApi extends runtime.BaseAPI { /** * monitor collection */ - async collectionMonitor(): Promise { - await this.collectionMonitorRaw(); + async collectionMonitor(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + await this.collectionMonitorRaw(initOverrides); } /** * Retry collection processing by ID * retry collection */ - async collectionRetryRaw(requestParameters: CollectionRetryRequest): Promise> { + async collectionRetryRaw(requestParameters: CollectionRetryRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { if (requestParameters.id === null || requestParameters.id === undefined) { throw new runtime.RequiredError('id','Required parameter requestParameters.id was null or undefined when calling collectionRetry.'); } - const queryParameters: runtime.HTTPQuery = {}; + const queryParameters: any = {}; const headerParameters: runtime.HTTPHeaders = {}; @@ -429,7 +589,7 @@ export class CollectionApi extends runtime.BaseAPI { method: 'POST', headers: headerParameters, query: queryParameters, - }); + }, initOverrides); return new runtime.VoidApiResponse(response); } @@ -438,20 +598,20 @@ export class CollectionApi extends runtime.BaseAPI { * Retry collection processing by ID * retry collection */ - async collectionRetry(requestParameters: CollectionRetryRequest): Promise { - await this.collectionRetryRaw(requestParameters); + async collectionRetry(requestParameters: CollectionRetryRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + await this.collectionRetryRaw(requestParameters, initOverrides); } /** * Show collection by ID * show collection */ - async collectionShowRaw(requestParameters: CollectionShowRequest): Promise> { + async collectionShowRaw(requestParameters: CollectionShowRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { if (requestParameters.id === null || requestParameters.id === undefined) { throw new runtime.RequiredError('id','Required parameter requestParameters.id was null or undefined when calling collectionShow.'); } - const queryParameters: runtime.HTTPQuery = {}; + const queryParameters: any = {}; const headerParameters: runtime.HTTPHeaders = {}; @@ -460,17 +620,17 @@ export class CollectionApi extends runtime.BaseAPI { method: 'GET', headers: headerParameters, query: queryParameters, - }); + }, initOverrides); - return new runtime.JSONApiResponse(response, (jsonValue) => CollectionShowResponseBodyFromJSON(jsonValue)); + return new runtime.JSONApiResponse(response, (jsonValue) => EnduroStoredCollectionFromJSON(jsonValue)); } /** * Show collection by ID * show collection */ - async collectionShow(requestParameters: CollectionShowRequest): Promise { - const response = await this.collectionShowRaw(requestParameters); + async collectionShow(requestParameters: CollectionShowRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.collectionShowRaw(requestParameters, initOverrides); return await response.value(); } @@ -478,12 +638,12 @@ export class CollectionApi extends runtime.BaseAPI { * Retrieve workflow status by ID * workflow collection */ - async collectionWorkflowRaw(requestParameters: CollectionWorkflowRequest): Promise> { + async collectionWorkflowRaw(requestParameters: CollectionWorkflowRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { if (requestParameters.id === null || requestParameters.id === undefined) { throw new runtime.RequiredError('id','Required parameter requestParameters.id was null or undefined when calling collectionWorkflow.'); } - const queryParameters: runtime.HTTPQuery = {}; + const queryParameters: any = {}; const headerParameters: runtime.HTTPHeaders = {}; @@ -492,33 +652,33 @@ export class CollectionApi extends runtime.BaseAPI { method: 'GET', headers: headerParameters, query: queryParameters, - }); + }, initOverrides); - return new runtime.JSONApiResponse(response, (jsonValue) => CollectionWorkflowResponseBodyFromJSON(jsonValue)); + return new runtime.JSONApiResponse(response, (jsonValue) => EnduroCollectionWorkflowStatusFromJSON(jsonValue)); } /** * Retrieve workflow status by ID * workflow collection */ - async collectionWorkflow(requestParameters: CollectionWorkflowRequest): Promise { - const response = await this.collectionWorkflowRaw(requestParameters); + async collectionWorkflow(requestParameters: CollectionWorkflowRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.collectionWorkflowRaw(requestParameters, initOverrides); return await response.value(); } } /** - * @export - * @enum {string} - */ -export enum CollectionListStatusEnum { - New = 'new', - InProgress = 'in progress', - Done = 'done', - Error = 'error', - Unknown = 'unknown', - Queued = 'queued', - Pending = 'pending', - Abandoned = 'abandoned' -} + * @export + */ +export const CollectionListStatusEnum = { + New: 'new', + InProgress: 'in progress', + Done: 'done', + Error: 'error', + Unknown: 'unknown', + Queued: 'queued', + Pending: 'pending', + Abandoned: 'abandoned' +} as const; +export type CollectionListStatusEnum = typeof CollectionListStatusEnum[keyof typeof CollectionListStatusEnum]; diff --git a/ui/src/openapi-generator/apis/PipelineApi.ts b/ui/src/openapi-generator/apis/PipelineApi.ts index 7a92c5cb..2ed14f26 100644 --- a/ui/src/openapi-generator/apis/PipelineApi.ts +++ b/ui/src/openapi-generator/apis/PipelineApi.ts @@ -4,7 +4,7 @@ * Enduro API * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * The version of the OpenAPI document: + * The version of the OpenAPI document: 1.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -14,19 +14,15 @@ import * as runtime from '../runtime'; +import type { + EnduroStoredPipeline, + PipelineNotFound, +} from '../models'; import { - EnduroStoredPipelineResponse, - EnduroStoredPipelineResponseFromJSON, - EnduroStoredPipelineResponseToJSON, - PipelineProcessingNotFoundResponseBody, - PipelineProcessingNotFoundResponseBodyFromJSON, - PipelineProcessingNotFoundResponseBodyToJSON, - PipelineShowNotFoundResponseBody, - PipelineShowNotFoundResponseBodyFromJSON, - PipelineShowNotFoundResponseBodyToJSON, - PipelineShowResponseBody, - PipelineShowResponseBodyFromJSON, - PipelineShowResponseBodyToJSON, + EnduroStoredPipelineFromJSON, + EnduroStoredPipelineToJSON, + PipelineNotFoundFromJSON, + PipelineNotFoundToJSON, } from '../models'; export interface PipelineListRequest { @@ -43,16 +39,74 @@ export interface PipelineShowRequest { } /** - * no description + * PipelineApi - interface + * + * @export + * @interface PipelineApiInterface + */ +export interface PipelineApiInterface { + /** + * List all known pipelines + * @summary list pipeline + * @param {string} [name] + * @param {boolean} [status] + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof PipelineApiInterface + */ + pipelineListRaw(requestParameters: PipelineListRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>>; + + /** + * List all known pipelines + * list pipeline + */ + pipelineList(requestParameters: PipelineListRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>; + + /** + * List all processing configurations of a pipeline given its ID + * @summary processing pipeline + * @param {string} id Identifier of pipeline + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof PipelineApiInterface + */ + pipelineProcessingRaw(requestParameters: PipelineProcessingRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>>; + + /** + * List all processing configurations of a pipeline given its ID + * processing pipeline + */ + pipelineProcessing(requestParameters: PipelineProcessingRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>; + + /** + * Show pipeline by ID + * @summary show pipeline + * @param {string} id Identifier of pipeline to show + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof PipelineApiInterface + */ + pipelineShowRaw(requestParameters: PipelineShowRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>; + + /** + * Show pipeline by ID + * show pipeline + */ + pipelineShow(requestParameters: PipelineShowRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise; + +} + +/** + * */ -export class PipelineApi extends runtime.BaseAPI { +export class PipelineApi extends runtime.BaseAPI implements PipelineApiInterface { /** * List all known pipelines * list pipeline */ - async pipelineListRaw(requestParameters: PipelineListRequest): Promise>> { - const queryParameters: runtime.HTTPQuery = {}; + async pipelineListRaw(requestParameters: PipelineListRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> { + const queryParameters: any = {}; if (requestParameters.name !== undefined) { queryParameters['name'] = requestParameters.name; @@ -69,17 +123,17 @@ export class PipelineApi extends runtime.BaseAPI { method: 'GET', headers: headerParameters, query: queryParameters, - }); + }, initOverrides); - return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(EnduroStoredPipelineResponseFromJSON)); + return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(EnduroStoredPipelineFromJSON)); } /** * List all known pipelines * list pipeline */ - async pipelineList(requestParameters: PipelineListRequest): Promise> { - const response = await this.pipelineListRaw(requestParameters); + async pipelineList(requestParameters: PipelineListRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const response = await this.pipelineListRaw(requestParameters, initOverrides); return await response.value(); } @@ -87,12 +141,12 @@ export class PipelineApi extends runtime.BaseAPI { * List all processing configurations of a pipeline given its ID * processing pipeline */ - async pipelineProcessingRaw(requestParameters: PipelineProcessingRequest): Promise>> { + async pipelineProcessingRaw(requestParameters: PipelineProcessingRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> { if (requestParameters.id === null || requestParameters.id === undefined) { throw new runtime.RequiredError('id','Required parameter requestParameters.id was null or undefined when calling pipelineProcessing.'); } - const queryParameters: runtime.HTTPQuery = {}; + const queryParameters: any = {}; const headerParameters: runtime.HTTPHeaders = {}; @@ -101,7 +155,7 @@ export class PipelineApi extends runtime.BaseAPI { method: 'GET', headers: headerParameters, query: queryParameters, - }); + }, initOverrides); return new runtime.JSONApiResponse(response); } @@ -110,8 +164,8 @@ export class PipelineApi extends runtime.BaseAPI { * List all processing configurations of a pipeline given its ID * processing pipeline */ - async pipelineProcessing(requestParameters: PipelineProcessingRequest): Promise> { - const response = await this.pipelineProcessingRaw(requestParameters); + async pipelineProcessing(requestParameters: PipelineProcessingRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const response = await this.pipelineProcessingRaw(requestParameters, initOverrides); return await response.value(); } @@ -119,12 +173,12 @@ export class PipelineApi extends runtime.BaseAPI { * Show pipeline by ID * show pipeline */ - async pipelineShowRaw(requestParameters: PipelineShowRequest): Promise> { + async pipelineShowRaw(requestParameters: PipelineShowRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { if (requestParameters.id === null || requestParameters.id === undefined) { throw new runtime.RequiredError('id','Required parameter requestParameters.id was null or undefined when calling pipelineShow.'); } - const queryParameters: runtime.HTTPQuery = {}; + const queryParameters: any = {}; const headerParameters: runtime.HTTPHeaders = {}; @@ -133,17 +187,17 @@ export class PipelineApi extends runtime.BaseAPI { method: 'GET', headers: headerParameters, query: queryParameters, - }); + }, initOverrides); - return new runtime.JSONApiResponse(response, (jsonValue) => PipelineShowResponseBodyFromJSON(jsonValue)); + return new runtime.JSONApiResponse(response, (jsonValue) => EnduroStoredPipelineFromJSON(jsonValue)); } /** * Show pipeline by ID * show pipeline */ - async pipelineShow(requestParameters: PipelineShowRequest): Promise { - const response = await this.pipelineShowRaw(requestParameters); + async pipelineShow(requestParameters: PipelineShowRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.pipelineShowRaw(requestParameters, initOverrides); return await response.value(); } diff --git a/ui/src/openapi-generator/apis/SwaggerApi.ts b/ui/src/openapi-generator/apis/SwaggerApi.ts index 61b18c7b..976001a5 100644 --- a/ui/src/openapi-generator/apis/SwaggerApi.ts +++ b/ui/src/openapi-generator/apis/SwaggerApi.ts @@ -4,7 +4,7 @@ * Enduro API * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * The version of the OpenAPI document: + * The version of the OpenAPI document: 1.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -16,16 +16,40 @@ import * as runtime from '../runtime'; /** - * no description + * SwaggerApi - interface + * + * @export + * @interface SwaggerApiInterface + */ +export interface SwaggerApiInterface { + /** + * JSON document containing the API swagger definition. + * @summary Download internal/api/gen/http/openapi.json + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof SwaggerApiInterface + */ + swaggerSwaggerSwaggerJsonRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>; + + /** + * JSON document containing the API swagger definition. + * Download internal/api/gen/http/openapi.json + */ + swaggerSwaggerSwaggerJson(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise; + +} + +/** + * */ -export class SwaggerApi extends runtime.BaseAPI { +export class SwaggerApi extends runtime.BaseAPI implements SwaggerApiInterface { /** * JSON document containing the API swagger definition. * Download internal/api/gen/http/openapi.json */ - async swaggerSwaggerSwaggerJsonRaw(): Promise> { - const queryParameters: runtime.HTTPQuery = {}; + async swaggerSwaggerSwaggerJsonRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const queryParameters: any = {}; const headerParameters: runtime.HTTPHeaders = {}; @@ -34,18 +58,17 @@ export class SwaggerApi extends runtime.BaseAPI { method: 'GET', headers: headerParameters, query: queryParameters, - }); + }, initOverrides); - return new runtime.BlobApiResponse(response); + return new runtime.VoidApiResponse(response); } /** * JSON document containing the API swagger definition. * Download internal/api/gen/http/openapi.json */ - async swaggerSwaggerSwaggerJson(): Promise { - const response = await this.swaggerSwaggerSwaggerJsonRaw(); - return await response.value(); + async swaggerSwaggerSwaggerJson(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + await this.swaggerSwaggerSwaggerJsonRaw(initOverrides); } } diff --git a/ui/src/openapi-generator/apis/index.ts b/ui/src/openapi-generator/apis/index.ts index ae217a91..a31cbcaf 100644 --- a/ui/src/openapi-generator/apis/index.ts +++ b/ui/src/openapi-generator/apis/index.ts @@ -1,3 +1,5 @@ +/* tslint:disable */ +/* eslint-disable */ export * from './BatchApi'; export * from './CollectionApi'; export * from './PipelineApi'; diff --git a/ui/src/openapi-generator/index.ts b/ui/src/openapi-generator/index.ts index 848ecfa4..be9d1ede 100644 --- a/ui/src/openapi-generator/index.ts +++ b/ui/src/openapi-generator/index.ts @@ -1,3 +1,5 @@ +/* tslint:disable */ +/* eslint-disable */ export * from './runtime'; export * from './apis'; export * from './models'; diff --git a/ui/src/openapi-generator/models/BatchHintsResult.ts b/ui/src/openapi-generator/models/BatchHintsResult.ts new file mode 100644 index 00000000..72c966e4 --- /dev/null +++ b/ui/src/openapi-generator/models/BatchHintsResult.ts @@ -0,0 +1,65 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Enduro API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 1.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { exists, mapValues } from '../runtime'; +/** + * + * @export + * @interface BatchHintsResult + */ +export interface BatchHintsResult { + /** + * A list of known values of completedDir used by existing watchers. + * @type {Array} + * @memberof BatchHintsResult + */ + completedDirs?: Array; +} + +/** + * Check if a given object implements the BatchHintsResult interface. + */ +export function instanceOfBatchHintsResult(value: object): boolean { + let isInstance = true; + + return isInstance; +} + +export function BatchHintsResultFromJSON(json: any): BatchHintsResult { + return BatchHintsResultFromJSONTyped(json, false); +} + +export function BatchHintsResultFromJSONTyped(json: any, ignoreDiscriminator: boolean): BatchHintsResult { + if ((json === undefined) || (json === null)) { + return json; + } + return { + + 'completedDirs': !exists(json, 'completed_dirs') ? undefined : json['completed_dirs'], + }; +} + +export function BatchHintsResultToJSON(value?: BatchHintsResult | null): any { + if (value === undefined) { + return undefined; + } + if (value === null) { + return null; + } + return { + + 'completed_dirs': value.completedDirs, + }; +} + diff --git a/ui/src/openapi-generator/models/BatchResult.ts b/ui/src/openapi-generator/models/BatchResult.ts new file mode 100644 index 00000000..c54c8bff --- /dev/null +++ b/ui/src/openapi-generator/models/BatchResult.ts @@ -0,0 +1,75 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Enduro API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 1.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { exists, mapValues } from '../runtime'; +/** + * + * @export + * @interface BatchResult + */ +export interface BatchResult { + /** + * + * @type {string} + * @memberof BatchResult + */ + runId: string; + /** + * + * @type {string} + * @memberof BatchResult + */ + workflowId: string; +} + +/** + * Check if a given object implements the BatchResult interface. + */ +export function instanceOfBatchResult(value: object): boolean { + let isInstance = true; + isInstance = isInstance && "runId" in value; + isInstance = isInstance && "workflowId" in value; + + return isInstance; +} + +export function BatchResultFromJSON(json: any): BatchResult { + return BatchResultFromJSONTyped(json, false); +} + +export function BatchResultFromJSONTyped(json: any, ignoreDiscriminator: boolean): BatchResult { + if ((json === undefined) || (json === null)) { + return json; + } + return { + + 'runId': json['run_id'], + 'workflowId': json['workflow_id'], + }; +} + +export function BatchResultToJSON(value?: BatchResult | null): any { + if (value === undefined) { + return undefined; + } + if (value === null) { + return null; + } + return { + + 'run_id': value.runId, + 'workflow_id': value.workflowId, + }; +} + diff --git a/ui/src/openapi-generator/models/BatchStatusResult.ts b/ui/src/openapi-generator/models/BatchStatusResult.ts new file mode 100644 index 00000000..90d31a93 --- /dev/null +++ b/ui/src/openapi-generator/models/BatchStatusResult.ts @@ -0,0 +1,90 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Enduro API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 1.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { exists, mapValues } from '../runtime'; +/** + * + * @export + * @interface BatchStatusResult + */ +export interface BatchStatusResult { + /** + * + * @type {string} + * @memberof BatchStatusResult + */ + runId?: string; + /** + * + * @type {boolean} + * @memberof BatchStatusResult + */ + running: boolean; + /** + * + * @type {string} + * @memberof BatchStatusResult + */ + status?: string; + /** + * + * @type {string} + * @memberof BatchStatusResult + */ + workflowId?: string; +} + +/** + * Check if a given object implements the BatchStatusResult interface. + */ +export function instanceOfBatchStatusResult(value: object): boolean { + let isInstance = true; + isInstance = isInstance && "running" in value; + + return isInstance; +} + +export function BatchStatusResultFromJSON(json: any): BatchStatusResult { + return BatchStatusResultFromJSONTyped(json, false); +} + +export function BatchStatusResultFromJSONTyped(json: any, ignoreDiscriminator: boolean): BatchStatusResult { + if ((json === undefined) || (json === null)) { + return json; + } + return { + + 'runId': !exists(json, 'run_id') ? undefined : json['run_id'], + 'running': json['running'], + 'status': !exists(json, 'status') ? undefined : json['status'], + 'workflowId': !exists(json, 'workflow_id') ? undefined : json['workflow_id'], + }; +} + +export function BatchStatusResultToJSON(value?: BatchStatusResult | null): any { + if (value === undefined) { + return undefined; + } + if (value === null) { + return null; + } + return { + + 'run_id': value.runId, + 'running': value.running, + 'status': value.status, + 'workflow_id': value.workflowId, + }; +} + diff --git a/ui/src/openapi-generator/models/BulkRequestBody.ts b/ui/src/openapi-generator/models/BulkRequestBody.ts new file mode 100644 index 00000000..16001451 --- /dev/null +++ b/ui/src/openapi-generator/models/BulkRequestBody.ts @@ -0,0 +1,110 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Enduro API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 1.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { exists, mapValues } from '../runtime'; +/** + * + * @export + * @interface BulkRequestBody + */ +export interface BulkRequestBody { + /** + * + * @type {string} + * @memberof BulkRequestBody + */ + operation: BulkRequestBodyOperationEnum; + /** + * + * @type {number} + * @memberof BulkRequestBody + */ + size?: number; + /** + * + * @type {string} + * @memberof BulkRequestBody + */ + status: BulkRequestBodyStatusEnum; +} + + +/** + * @export + */ +export const BulkRequestBodyOperationEnum = { + Retry: 'retry', + Cancel: 'cancel', + Abandon: 'abandon' +} as const; +export type BulkRequestBodyOperationEnum = typeof BulkRequestBodyOperationEnum[keyof typeof BulkRequestBodyOperationEnum]; + +/** + * @export + */ +export const BulkRequestBodyStatusEnum = { + New: 'new', + InProgress: 'in progress', + Done: 'done', + Error: 'error', + Unknown: 'unknown', + Queued: 'queued', + Pending: 'pending', + Abandoned: 'abandoned' +} as const; +export type BulkRequestBodyStatusEnum = typeof BulkRequestBodyStatusEnum[keyof typeof BulkRequestBodyStatusEnum]; + + +/** + * Check if a given object implements the BulkRequestBody interface. + */ +export function instanceOfBulkRequestBody(value: object): boolean { + let isInstance = true; + isInstance = isInstance && "operation" in value; + isInstance = isInstance && "status" in value; + + return isInstance; +} + +export function BulkRequestBodyFromJSON(json: any): BulkRequestBody { + return BulkRequestBodyFromJSONTyped(json, false); +} + +export function BulkRequestBodyFromJSONTyped(json: any, ignoreDiscriminator: boolean): BulkRequestBody { + if ((json === undefined) || (json === null)) { + return json; + } + return { + + 'operation': json['operation'], + 'size': !exists(json, 'size') ? undefined : json['size'], + 'status': json['status'], + }; +} + +export function BulkRequestBodyToJSON(value?: BulkRequestBody | null): any { + if (value === undefined) { + return undefined; + } + if (value === null) { + return null; + } + return { + + 'operation': value.operation, + 'size': value.size, + 'status': value.status, + }; +} + diff --git a/ui/src/openapi-generator/models/BulkStatusResult.ts b/ui/src/openapi-generator/models/BulkStatusResult.ts new file mode 100644 index 00000000..a5208340 --- /dev/null +++ b/ui/src/openapi-generator/models/BulkStatusResult.ts @@ -0,0 +1,106 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Enduro API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 1.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { exists, mapValues } from '../runtime'; +/** + * + * @export + * @interface BulkStatusResult + */ +export interface BulkStatusResult { + /** + * + * @type {Date} + * @memberof BulkStatusResult + */ + closedAt?: Date; + /** + * + * @type {string} + * @memberof BulkStatusResult + */ + runId?: string; + /** + * + * @type {boolean} + * @memberof BulkStatusResult + */ + running: boolean; + /** + * + * @type {Date} + * @memberof BulkStatusResult + */ + startedAt?: Date; + /** + * + * @type {string} + * @memberof BulkStatusResult + */ + status?: string; + /** + * + * @type {string} + * @memberof BulkStatusResult + */ + workflowId?: string; +} + +/** + * Check if a given object implements the BulkStatusResult interface. + */ +export function instanceOfBulkStatusResult(value: object): boolean { + let isInstance = true; + isInstance = isInstance && "running" in value; + + return isInstance; +} + +export function BulkStatusResultFromJSON(json: any): BulkStatusResult { + return BulkStatusResultFromJSONTyped(json, false); +} + +export function BulkStatusResultFromJSONTyped(json: any, ignoreDiscriminator: boolean): BulkStatusResult { + if ((json === undefined) || (json === null)) { + return json; + } + return { + + 'closedAt': !exists(json, 'closed_at') ? undefined : (new Date(json['closed_at'])), + 'runId': !exists(json, 'run_id') ? undefined : json['run_id'], + 'running': json['running'], + 'startedAt': !exists(json, 'started_at') ? undefined : (new Date(json['started_at'])), + 'status': !exists(json, 'status') ? undefined : json['status'], + 'workflowId': !exists(json, 'workflow_id') ? undefined : json['workflow_id'], + }; +} + +export function BulkStatusResultToJSON(value?: BulkStatusResult | null): any { + if (value === undefined) { + return undefined; + } + if (value === null) { + return null; + } + return { + + 'closed_at': value.closedAt === undefined ? undefined : (value.closedAt.toISOString()), + 'run_id': value.runId, + 'running': value.running, + 'started_at': value.startedAt === undefined ? undefined : (value.startedAt.toISOString()), + 'status': value.status, + 'workflow_id': value.workflowId, + }; +} + diff --git a/ui/src/openapi-generator/models/CollectionDecideRequest.ts b/ui/src/openapi-generator/models/CollectionDecideRequest.ts new file mode 100644 index 00000000..37704311 --- /dev/null +++ b/ui/src/openapi-generator/models/CollectionDecideRequest.ts @@ -0,0 +1,65 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Enduro API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 1.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { exists, mapValues } from '../runtime'; +/** + * + * @export + * @interface CollectionDecideRequest + */ +export interface CollectionDecideRequest { + /** + * Decision option to proceed with + * @type {string} + * @memberof CollectionDecideRequest + */ + option?: string; +} + +/** + * Check if a given object implements the CollectionDecideRequest interface. + */ +export function instanceOfCollectionDecideRequest(value: object): boolean { + let isInstance = true; + + return isInstance; +} + +export function CollectionDecideRequestFromJSON(json: any): CollectionDecideRequest { + return CollectionDecideRequestFromJSONTyped(json, false); +} + +export function CollectionDecideRequestFromJSONTyped(json: any, ignoreDiscriminator: boolean): CollectionDecideRequest { + if ((json === undefined) || (json === null)) { + return json; + } + return { + + 'option': !exists(json, 'option') ? undefined : json['option'], + }; +} + +export function CollectionDecideRequestToJSON(value?: CollectionDecideRequest | null): any { + if (value === undefined) { + return undefined; + } + if (value === null) { + return null; + } + return { + + 'option': value.option, + }; +} + diff --git a/ui/src/openapi-generator/models/CollectionNotfound.ts b/ui/src/openapi-generator/models/CollectionNotfound.ts new file mode 100644 index 00000000..ff7b46f7 --- /dev/null +++ b/ui/src/openapi-generator/models/CollectionNotfound.ts @@ -0,0 +1,75 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Enduro API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 1.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { exists, mapValues } from '../runtime'; +/** + * Collection not found + * @export + * @interface CollectionNotfound + */ +export interface CollectionNotfound { + /** + * Identifier of missing collection + * @type {number} + * @memberof CollectionNotfound + */ + id: number; + /** + * Message of error + * @type {string} + * @memberof CollectionNotfound + */ + message: string; +} + +/** + * Check if a given object implements the CollectionNotfound interface. + */ +export function instanceOfCollectionNotfound(value: object): boolean { + let isInstance = true; + isInstance = isInstance && "id" in value; + isInstance = isInstance && "message" in value; + + return isInstance; +} + +export function CollectionNotfoundFromJSON(json: any): CollectionNotfound { + return CollectionNotfoundFromJSONTyped(json, false); +} + +export function CollectionNotfoundFromJSONTyped(json: any, ignoreDiscriminator: boolean): CollectionNotfound { + if ((json === undefined) || (json === null)) { + return json; + } + return { + + 'id': json['id'], + 'message': json['message'], + }; +} + +export function CollectionNotfoundToJSON(value?: CollectionNotfound | null): any { + if (value === undefined) { + return undefined; + } + if (value === null) { + return null; + } + return { + + 'id': value.id, + 'message': value.message, + }; +} + diff --git a/ui/src/openapi-generator/models/EnduroCollectionWorkflowHistory.ts b/ui/src/openapi-generator/models/EnduroCollectionWorkflowHistory.ts new file mode 100644 index 00000000..75e1e4e6 --- /dev/null +++ b/ui/src/openapi-generator/models/EnduroCollectionWorkflowHistory.ts @@ -0,0 +1,81 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Enduro API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 1.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { exists, mapValues } from '../runtime'; +/** + * WorkflowHistoryEvent describes a history event in Temporal. + * @export + * @interface EnduroCollectionWorkflowHistory + */ +export interface EnduroCollectionWorkflowHistory { + /** + * Contents of the event + * @type {Blob} + * @memberof EnduroCollectionWorkflowHistory + */ + details?: Blob; + /** + * Identifier of collection + * @type {number} + * @memberof EnduroCollectionWorkflowHistory + */ + id?: number; + /** + * Type of the event + * @type {string} + * @memberof EnduroCollectionWorkflowHistory + */ + type?: string; +} + +/** + * Check if a given object implements the EnduroCollectionWorkflowHistory interface. + */ +export function instanceOfEnduroCollectionWorkflowHistory(value: object): boolean { + let isInstance = true; + + return isInstance; +} + +export function EnduroCollectionWorkflowHistoryFromJSON(json: any): EnduroCollectionWorkflowHistory { + return EnduroCollectionWorkflowHistoryFromJSONTyped(json, false); +} + +export function EnduroCollectionWorkflowHistoryFromJSONTyped(json: any, ignoreDiscriminator: boolean): EnduroCollectionWorkflowHistory { + if ((json === undefined) || (json === null)) { + return json; + } + return { + + 'details': !exists(json, 'details') ? undefined : json['details'], + 'id': !exists(json, 'id') ? undefined : json['id'], + 'type': !exists(json, 'type') ? undefined : json['type'], + }; +} + +export function EnduroCollectionWorkflowHistoryToJSON(value?: EnduroCollectionWorkflowHistory | null): any { + if (value === undefined) { + return undefined; + } + if (value === null) { + return null; + } + return { + + 'details': value.details, + 'id': value.id, + 'type': value.type, + }; +} + diff --git a/ui/src/openapi-generator/models/EnduroCollectionWorkflowStatus.ts b/ui/src/openapi-generator/models/EnduroCollectionWorkflowStatus.ts new file mode 100644 index 00000000..2e44d579 --- /dev/null +++ b/ui/src/openapi-generator/models/EnduroCollectionWorkflowStatus.ts @@ -0,0 +1,80 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Enduro API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 1.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { exists, mapValues } from '../runtime'; +import type { EnduroCollectionWorkflowHistory } from './EnduroCollectionWorkflowHistory'; +import { + EnduroCollectionWorkflowHistoryFromJSON, + EnduroCollectionWorkflowHistoryFromJSONTyped, + EnduroCollectionWorkflowHistoryToJSON, +} from './EnduroCollectionWorkflowHistory'; + +/** + * + * @export + * @interface EnduroCollectionWorkflowStatus + */ +export interface EnduroCollectionWorkflowStatus { + /** + * + * @type {Array} + * @memberof EnduroCollectionWorkflowStatus + */ + history?: Array; + /** + * + * @type {string} + * @memberof EnduroCollectionWorkflowStatus + */ + status?: string; +} + +/** + * Check if a given object implements the EnduroCollectionWorkflowStatus interface. + */ +export function instanceOfEnduroCollectionWorkflowStatus(value: object): boolean { + let isInstance = true; + + return isInstance; +} + +export function EnduroCollectionWorkflowStatusFromJSON(json: any): EnduroCollectionWorkflowStatus { + return EnduroCollectionWorkflowStatusFromJSONTyped(json, false); +} + +export function EnduroCollectionWorkflowStatusFromJSONTyped(json: any, ignoreDiscriminator: boolean): EnduroCollectionWorkflowStatus { + if ((json === undefined) || (json === null)) { + return json; + } + return { + + 'history': !exists(json, 'history') ? undefined : ((json['history'] as Array).map(EnduroCollectionWorkflowHistoryFromJSON)), + 'status': !exists(json, 'status') ? undefined : json['status'], + }; +} + +export function EnduroCollectionWorkflowStatusToJSON(value?: EnduroCollectionWorkflowStatus | null): any { + if (value === undefined) { + return undefined; + } + if (value === null) { + return null; + } + return { + + 'history': value.history === undefined ? undefined : ((value.history as Array).map(EnduroCollectionWorkflowHistoryToJSON)), + 'status': value.status, + }; +} + diff --git a/ui/src/openapi-generator/models/EnduroMonitorUpdate.ts b/ui/src/openapi-generator/models/EnduroMonitorUpdate.ts new file mode 100644 index 00000000..6f3c7615 --- /dev/null +++ b/ui/src/openapi-generator/models/EnduroMonitorUpdate.ts @@ -0,0 +1,90 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Enduro API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 1.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { exists, mapValues } from '../runtime'; +import type { EnduroStoredCollection } from './EnduroStoredCollection'; +import { + EnduroStoredCollectionFromJSON, + EnduroStoredCollectionFromJSONTyped, + EnduroStoredCollectionToJSON, +} from './EnduroStoredCollection'; + +/** + * + * @export + * @interface EnduroMonitorUpdate + */ +export interface EnduroMonitorUpdate { + /** + * Identifier of collection + * @type {number} + * @memberof EnduroMonitorUpdate + */ + id: number; + /** + * + * @type {EnduroStoredCollection} + * @memberof EnduroMonitorUpdate + */ + item?: EnduroStoredCollection; + /** + * Type of the event + * @type {string} + * @memberof EnduroMonitorUpdate + */ + type: string; +} + +/** + * Check if a given object implements the EnduroMonitorUpdate interface. + */ +export function instanceOfEnduroMonitorUpdate(value: object): boolean { + let isInstance = true; + isInstance = isInstance && "id" in value; + isInstance = isInstance && "type" in value; + + return isInstance; +} + +export function EnduroMonitorUpdateFromJSON(json: any): EnduroMonitorUpdate { + return EnduroMonitorUpdateFromJSONTyped(json, false); +} + +export function EnduroMonitorUpdateFromJSONTyped(json: any, ignoreDiscriminator: boolean): EnduroMonitorUpdate { + if ((json === undefined) || (json === null)) { + return json; + } + return { + + 'id': json['id'], + 'item': !exists(json, 'item') ? undefined : EnduroStoredCollectionFromJSON(json['item']), + 'type': json['type'], + }; +} + +export function EnduroMonitorUpdateToJSON(value?: EnduroMonitorUpdate | null): any { + if (value === undefined) { + return undefined; + } + if (value === null) { + return null; + } + return { + + 'id': value.id, + 'item': EnduroStoredCollectionToJSON(value.item), + 'type': value.type, + }; +} + diff --git a/ui/src/openapi-generator/models/EnduroStoredCollection.ts b/ui/src/openapi-generator/models/EnduroStoredCollection.ts new file mode 100644 index 00000000..2feeb4ba --- /dev/null +++ b/ui/src/openapi-generator/models/EnduroStoredCollection.ts @@ -0,0 +1,173 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Enduro API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 1.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { exists, mapValues } from '../runtime'; +/** + * StoredCollection describes a collection retrieved by the service. + * @export + * @interface EnduroStoredCollection + */ +export interface EnduroStoredCollection { + /** + * Identifier of Archivematica AIP + * @type {string} + * @memberof EnduroStoredCollection + */ + aipId?: string; + /** + * Completion datetime + * @type {Date} + * @memberof EnduroStoredCollection + */ + completedAt?: Date; + /** + * Creation datetime + * @type {Date} + * @memberof EnduroStoredCollection + */ + createdAt: Date; + /** + * Identifier of collection + * @type {number} + * @memberof EnduroStoredCollection + */ + id: number; + /** + * Name of the collection + * @type {string} + * @memberof EnduroStoredCollection + */ + name?: string; + /** + * Identifier provided by the client + * @type {string} + * @memberof EnduroStoredCollection + */ + originalId?: string; + /** + * Identifier of Archivematica pipeline + * @type {string} + * @memberof EnduroStoredCollection + */ + pipelineId?: string; + /** + * Identifier of latest processing workflow run + * @type {string} + * @memberof EnduroStoredCollection + */ + runId?: string; + /** + * Start datetime + * @type {Date} + * @memberof EnduroStoredCollection + */ + startedAt?: Date; + /** + * Status of the collection + * @type {string} + * @memberof EnduroStoredCollection + */ + status: EnduroStoredCollectionStatusEnum; + /** + * Identifier of Archivematica tranfser + * @type {string} + * @memberof EnduroStoredCollection + */ + transferId?: string; + /** + * Identifier of processing workflow + * @type {string} + * @memberof EnduroStoredCollection + */ + workflowId?: string; +} + + +/** + * @export + */ +export const EnduroStoredCollectionStatusEnum = { + New: 'new', + InProgress: 'in progress', + Done: 'done', + Error: 'error', + Unknown: 'unknown', + Queued: 'queued', + Pending: 'pending', + Abandoned: 'abandoned' +} as const; +export type EnduroStoredCollectionStatusEnum = typeof EnduroStoredCollectionStatusEnum[keyof typeof EnduroStoredCollectionStatusEnum]; + + +/** + * Check if a given object implements the EnduroStoredCollection interface. + */ +export function instanceOfEnduroStoredCollection(value: object): boolean { + let isInstance = true; + isInstance = isInstance && "createdAt" in value; + isInstance = isInstance && "id" in value; + isInstance = isInstance && "status" in value; + + return isInstance; +} + +export function EnduroStoredCollectionFromJSON(json: any): EnduroStoredCollection { + return EnduroStoredCollectionFromJSONTyped(json, false); +} + +export function EnduroStoredCollectionFromJSONTyped(json: any, ignoreDiscriminator: boolean): EnduroStoredCollection { + if ((json === undefined) || (json === null)) { + return json; + } + return { + + 'aipId': !exists(json, 'aip_id') ? undefined : json['aip_id'], + 'completedAt': !exists(json, 'completed_at') ? undefined : (new Date(json['completed_at'])), + 'createdAt': (new Date(json['created_at'])), + 'id': json['id'], + 'name': !exists(json, 'name') ? undefined : json['name'], + 'originalId': !exists(json, 'original_id') ? undefined : json['original_id'], + 'pipelineId': !exists(json, 'pipeline_id') ? undefined : json['pipeline_id'], + 'runId': !exists(json, 'run_id') ? undefined : json['run_id'], + 'startedAt': !exists(json, 'started_at') ? undefined : (new Date(json['started_at'])), + 'status': json['status'], + 'transferId': !exists(json, 'transfer_id') ? undefined : json['transfer_id'], + 'workflowId': !exists(json, 'workflow_id') ? undefined : json['workflow_id'], + }; +} + +export function EnduroStoredCollectionToJSON(value?: EnduroStoredCollection | null): any { + if (value === undefined) { + return undefined; + } + if (value === null) { + return null; + } + return { + + 'aip_id': value.aipId, + 'completed_at': value.completedAt === undefined ? undefined : (value.completedAt.toISOString()), + 'created_at': (value.createdAt.toISOString()), + 'id': value.id, + 'name': value.name, + 'original_id': value.originalId, + 'pipeline_id': value.pipelineId, + 'run_id': value.runId, + 'started_at': value.startedAt === undefined ? undefined : (value.startedAt.toISOString()), + 'status': value.status, + 'transfer_id': value.transferId, + 'workflow_id': value.workflowId, + }; +} + diff --git a/ui/src/openapi-generator/models/EnduroStoredPipeline.ts b/ui/src/openapi-generator/models/EnduroStoredPipeline.ts new file mode 100644 index 00000000..81894c0f --- /dev/null +++ b/ui/src/openapi-generator/models/EnduroStoredPipeline.ts @@ -0,0 +1,98 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Enduro API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 1.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { exists, mapValues } from '../runtime'; +/** + * StoredPipeline describes a pipeline retrieved by this service. + * @export + * @interface EnduroStoredPipeline + */ +export interface EnduroStoredPipeline { + /** + * Maximum concurrent transfers + * @type {number} + * @memberof EnduroStoredPipeline + */ + capacity?: number; + /** + * Current transfers + * @type {number} + * @memberof EnduroStoredPipeline + */ + current?: number; + /** + * Identifier of pipeline + * @type {string} + * @memberof EnduroStoredPipeline + */ + id?: string; + /** + * Name of the pipeline + * @type {string} + * @memberof EnduroStoredPipeline + */ + name: string; + /** + * + * @type {string} + * @memberof EnduroStoredPipeline + */ + status?: string; +} + +/** + * Check if a given object implements the EnduroStoredPipeline interface. + */ +export function instanceOfEnduroStoredPipeline(value: object): boolean { + let isInstance = true; + isInstance = isInstance && "name" in value; + + return isInstance; +} + +export function EnduroStoredPipelineFromJSON(json: any): EnduroStoredPipeline { + return EnduroStoredPipelineFromJSONTyped(json, false); +} + +export function EnduroStoredPipelineFromJSONTyped(json: any, ignoreDiscriminator: boolean): EnduroStoredPipeline { + if ((json === undefined) || (json === null)) { + return json; + } + return { + + 'capacity': !exists(json, 'capacity') ? undefined : json['capacity'], + 'current': !exists(json, 'current') ? undefined : json['current'], + 'id': !exists(json, 'id') ? undefined : json['id'], + 'name': json['name'], + 'status': !exists(json, 'status') ? undefined : json['status'], + }; +} + +export function EnduroStoredPipelineToJSON(value?: EnduroStoredPipeline | null): any { + if (value === undefined) { + return undefined; + } + if (value === null) { + return null; + } + return { + + 'capacity': value.capacity, + 'current': value.current, + 'id': value.id, + 'name': value.name, + 'status': value.status, + }; +} + diff --git a/ui/src/openapi-generator/models/ListResponseBody.ts b/ui/src/openapi-generator/models/ListResponseBody.ts new file mode 100644 index 00000000..df93f97a --- /dev/null +++ b/ui/src/openapi-generator/models/ListResponseBody.ts @@ -0,0 +1,81 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Enduro API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 1.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { exists, mapValues } from '../runtime'; +import type { EnduroStoredCollection } from './EnduroStoredCollection'; +import { + EnduroStoredCollectionFromJSON, + EnduroStoredCollectionFromJSONTyped, + EnduroStoredCollectionToJSON, +} from './EnduroStoredCollection'; + +/** + * + * @export + * @interface ListResponseBody + */ +export interface ListResponseBody { + /** + * + * @type {Array} + * @memberof ListResponseBody + */ + items: Array; + /** + * + * @type {string} + * @memberof ListResponseBody + */ + nextCursor?: string; +} + +/** + * Check if a given object implements the ListResponseBody interface. + */ +export function instanceOfListResponseBody(value: object): boolean { + let isInstance = true; + isInstance = isInstance && "items" in value; + + return isInstance; +} + +export function ListResponseBodyFromJSON(json: any): ListResponseBody { + return ListResponseBodyFromJSONTyped(json, false); +} + +export function ListResponseBodyFromJSONTyped(json: any, ignoreDiscriminator: boolean): ListResponseBody { + if ((json === undefined) || (json === null)) { + return json; + } + return { + + 'items': ((json['items'] as Array).map(EnduroStoredCollectionFromJSON)), + 'nextCursor': !exists(json, 'next_cursor') ? undefined : json['next_cursor'], + }; +} + +export function ListResponseBodyToJSON(value?: ListResponseBody | null): any { + if (value === undefined) { + return undefined; + } + if (value === null) { + return null; + } + return { + + 'items': ((value.items as Array).map(EnduroStoredCollectionToJSON)), + 'next_cursor': value.nextCursor, + }; +} + diff --git a/ui/src/openapi-generator/models/ModelError.ts b/ui/src/openapi-generator/models/ModelError.ts new file mode 100644 index 00000000..39c76b05 --- /dev/null +++ b/ui/src/openapi-generator/models/ModelError.ts @@ -0,0 +1,111 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Enduro API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 1.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { exists, mapValues } from '../runtime'; +/** + * + * @export + * @interface ModelError + */ +export interface ModelError { + /** + * Is the error a server-side fault? + * @type {boolean} + * @memberof ModelError + */ + fault: boolean; + /** + * ID is a unique identifier for this particular occurrence of the problem. + * @type {string} + * @memberof ModelError + */ + id: string; + /** + * Message is a human-readable explanation specific to this occurrence of the problem. + * @type {string} + * @memberof ModelError + */ + message: string; + /** + * Name is the name of this class of errors. + * @type {string} + * @memberof ModelError + */ + name: string; + /** + * Is the error temporary? + * @type {boolean} + * @memberof ModelError + */ + temporary: boolean; + /** + * Is the error a timeout? + * @type {boolean} + * @memberof ModelError + */ + timeout: boolean; +} + +/** + * Check if a given object implements the ModelError interface. + */ +export function instanceOfModelError(value: object): boolean { + let isInstance = true; + isInstance = isInstance && "fault" in value; + isInstance = isInstance && "id" in value; + isInstance = isInstance && "message" in value; + isInstance = isInstance && "name" in value; + isInstance = isInstance && "temporary" in value; + isInstance = isInstance && "timeout" in value; + + return isInstance; +} + +export function ModelErrorFromJSON(json: any): ModelError { + return ModelErrorFromJSONTyped(json, false); +} + +export function ModelErrorFromJSONTyped(json: any, ignoreDiscriminator: boolean): ModelError { + if ((json === undefined) || (json === null)) { + return json; + } + return { + + 'fault': json['fault'], + 'id': json['id'], + 'message': json['message'], + 'name': json['name'], + 'temporary': json['temporary'], + 'timeout': json['timeout'], + }; +} + +export function ModelErrorToJSON(value?: ModelError | null): any { + if (value === undefined) { + return undefined; + } + if (value === null) { + return null; + } + return { + + 'fault': value.fault, + 'id': value.id, + 'message': value.message, + 'name': value.name, + 'temporary': value.temporary, + 'timeout': value.timeout, + }; +} + diff --git a/ui/src/openapi-generator/models/PipelineNotFound.ts b/ui/src/openapi-generator/models/PipelineNotFound.ts new file mode 100644 index 00000000..5b46d6f0 --- /dev/null +++ b/ui/src/openapi-generator/models/PipelineNotFound.ts @@ -0,0 +1,75 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Enduro API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 1.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { exists, mapValues } from '../runtime'; +/** + * Pipeline not found + * @export + * @interface PipelineNotFound + */ +export interface PipelineNotFound { + /** + * Identifier of missing pipeline + * @type {string} + * @memberof PipelineNotFound + */ + id: string; + /** + * Message of error + * @type {string} + * @memberof PipelineNotFound + */ + message: string; +} + +/** + * Check if a given object implements the PipelineNotFound interface. + */ +export function instanceOfPipelineNotFound(value: object): boolean { + let isInstance = true; + isInstance = isInstance && "id" in value; + isInstance = isInstance && "message" in value; + + return isInstance; +} + +export function PipelineNotFoundFromJSON(json: any): PipelineNotFound { + return PipelineNotFoundFromJSONTyped(json, false); +} + +export function PipelineNotFoundFromJSONTyped(json: any, ignoreDiscriminator: boolean): PipelineNotFound { + if ((json === undefined) || (json === null)) { + return json; + } + return { + + 'id': json['id'], + 'message': json['message'], + }; +} + +export function PipelineNotFoundToJSON(value?: PipelineNotFound | null): any { + if (value === undefined) { + return undefined; + } + if (value === null) { + return null; + } + return { + + 'id': value.id, + 'message': value.message, + }; +} + diff --git a/ui/src/openapi-generator/models/SubmitRequestBody.ts b/ui/src/openapi-generator/models/SubmitRequestBody.ts new file mode 100644 index 00000000..ff9e279c --- /dev/null +++ b/ui/src/openapi-generator/models/SubmitRequestBody.ts @@ -0,0 +1,98 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Enduro API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 1.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { exists, mapValues } from '../runtime'; +/** + * + * @export + * @interface SubmitRequestBody + */ +export interface SubmitRequestBody { + /** + * + * @type {string} + * @memberof SubmitRequestBody + */ + completedDir?: string; + /** + * + * @type {string} + * @memberof SubmitRequestBody + */ + path: string; + /** + * + * @type {string} + * @memberof SubmitRequestBody + */ + pipeline?: string; + /** + * + * @type {string} + * @memberof SubmitRequestBody + */ + processingConfig?: string; + /** + * + * @type {string} + * @memberof SubmitRequestBody + */ + retentionPeriod?: string; +} + +/** + * Check if a given object implements the SubmitRequestBody interface. + */ +export function instanceOfSubmitRequestBody(value: object): boolean { + let isInstance = true; + isInstance = isInstance && "path" in value; + + return isInstance; +} + +export function SubmitRequestBodyFromJSON(json: any): SubmitRequestBody { + return SubmitRequestBodyFromJSONTyped(json, false); +} + +export function SubmitRequestBodyFromJSONTyped(json: any, ignoreDiscriminator: boolean): SubmitRequestBody { + if ((json === undefined) || (json === null)) { + return json; + } + return { + + 'completedDir': !exists(json, 'completed_dir') ? undefined : json['completed_dir'], + 'path': json['path'], + 'pipeline': !exists(json, 'pipeline') ? undefined : json['pipeline'], + 'processingConfig': !exists(json, 'processing_config') ? undefined : json['processing_config'], + 'retentionPeriod': !exists(json, 'retention_period') ? undefined : json['retention_period'], + }; +} + +export function SubmitRequestBodyToJSON(value?: SubmitRequestBody | null): any { + if (value === undefined) { + return undefined; + } + if (value === null) { + return null; + } + return { + + 'completed_dir': value.completedDir, + 'path': value.path, + 'pipeline': value.pipeline, + 'processing_config': value.processingConfig, + 'retention_period': value.retentionPeriod, + }; +} + diff --git a/ui/src/openapi-generator/models/index.ts b/ui/src/openapi-generator/models/index.ts index 4caa6c6d..e6b71d91 100644 --- a/ui/src/openapi-generator/models/index.ts +++ b/ui/src/openapi-generator/models/index.ts @@ -1,34 +1,18 @@ -export * from './BatchHintsResponseBody'; -export * from './BatchStatusResponseBody'; -export * from './BatchSubmitNotAvailableResponseBody'; -export * from './BatchSubmitNotValidResponseBody'; -export * from './BatchSubmitRequestBody'; -export * from './BatchSubmitResponseBody'; -export * from './CollectionBulkNotAvailableResponseBody'; -export * from './CollectionBulkNotValidResponseBody'; -export * from './CollectionBulkRequestBody'; -export * from './CollectionBulkResponseBody'; -export * from './CollectionBulkStatusResponseBody'; -export * from './CollectionCancelNotFoundResponseBody'; -export * from './CollectionCancelNotRunningResponseBody'; -export * from './CollectionDecideNotFoundResponseBody'; -export * from './CollectionDecideNotValidResponseBody'; -export * from './CollectionDeleteNotFoundResponseBody'; -export * from './CollectionDownloadNotFoundResponseBody'; -export * from './CollectionListResponseBody'; -export * from './CollectionMonitorResponseBody'; -export * from './CollectionRetryNotFoundResponseBody'; -export * from './CollectionRetryNotRunningResponseBody'; -export * from './CollectionShowNotFoundResponseBody'; -export * from './CollectionShowResponseBody'; -export * from './CollectionWorkflowNotFoundResponseBody'; -export * from './CollectionWorkflowResponseBody'; -export * from './EnduroCollectionWorkflowHistoryResponseBody'; -export * from './EnduroCollectionWorkflowHistoryResponseBodyCollection'; -export * from './EnduroStoredCollectionResponseBody'; -export * from './EnduroStoredCollectionResponseBodyCollection'; -export * from './EnduroStoredPipelineResponse'; -export * from './InlineObject'; -export * from './PipelineProcessingNotFoundResponseBody'; -export * from './PipelineShowNotFoundResponseBody'; -export * from './PipelineShowResponseBody'; +/* tslint:disable */ +/* eslint-disable */ +export * from './BatchHintsResult'; +export * from './BatchResult'; +export * from './BatchStatusResult'; +export * from './BulkRequestBody'; +export * from './BulkStatusResult'; +export * from './CollectionDecideRequest'; +export * from './CollectionNotfound'; +export * from './EnduroCollectionWorkflowHistory'; +export * from './EnduroCollectionWorkflowStatus'; +export * from './EnduroMonitorUpdate'; +export * from './EnduroStoredCollection'; +export * from './EnduroStoredPipeline'; +export * from './ListResponseBody'; +export * from './ModelError'; +export * from './PipelineNotFound'; +export * from './SubmitRequestBody'; diff --git a/ui/src/openapi-generator/runtime.ts b/ui/src/openapi-generator/runtime.ts index c8903469..2f0b4eb4 100644 --- a/ui/src/openapi-generator/runtime.ts +++ b/ui/src/openapi-generator/runtime.ts @@ -4,7 +4,7 @@ * Enduro API * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * The version of the OpenAPI document: + * The version of the OpenAPI document: 1.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -15,16 +15,86 @@ export const BASE_PATH = "http://localhost:9000".replace(/\/+$/, ""); -const isBlob = (value: any) => typeof Blob !== 'undefined' && value instanceof Blob; +export interface ConfigurationParameters { + basePath?: string; // override base path + fetchApi?: FetchAPI; // override for fetch implementation + middleware?: Middleware[]; // middleware to apply before/after fetch requests + queryParamsStringify?: (params: HTTPQuery) => string; // stringify function for query strings + username?: string; // parameter for basic security + password?: string; // parameter for basic security + apiKey?: string | ((name: string) => string); // parameter for apiKey security + accessToken?: string | Promise | ((name?: string, scopes?: string[]) => string | Promise); // parameter for oauth2 security + headers?: HTTPHeaders; //header params we want to use on every request + credentials?: RequestCredentials; //value for the credentials param we want to use on each request +} + +export class Configuration { + constructor(private configuration: ConfigurationParameters = {}) {} + + set config(configuration: Configuration) { + this.configuration = configuration; + } + + get basePath(): string { + return this.configuration.basePath != null ? this.configuration.basePath : BASE_PATH; + } + + get fetchApi(): FetchAPI | undefined { + return this.configuration.fetchApi; + } + + get middleware(): Middleware[] { + return this.configuration.middleware || []; + } + + get queryParamsStringify(): (params: HTTPQuery) => string { + return this.configuration.queryParamsStringify || querystring; + } + + get username(): string | undefined { + return this.configuration.username; + } + + get password(): string | undefined { + return this.configuration.password; + } + + get apiKey(): ((name: string) => string) | undefined { + const apiKey = this.configuration.apiKey; + if (apiKey) { + return typeof apiKey === 'function' ? apiKey : () => apiKey; + } + return undefined; + } + + get accessToken(): ((name?: string, scopes?: string[]) => string | Promise) | undefined { + const accessToken = this.configuration.accessToken; + if (accessToken) { + return typeof accessToken === 'function' ? accessToken : async () => accessToken; + } + return undefined; + } + + get headers(): HTTPHeaders | undefined { + return this.configuration.headers; + } + + get credentials(): RequestCredentials | undefined { + return this.configuration.credentials; + } +} + +export const DefaultConfig = new Configuration(); /** * This is the base class for all generated API classes. */ export class BaseAPI { + private static readonly jsonRegex = new RegExp('^(:?application\/json|[^;/ \t]+\/[^;/ \t]+[+]json)[ \t]*(:?;.*)?$', 'i'); private middleware: Middleware[]; - constructor(protected configuration = new Configuration()) { + constructor(protected configuration = DefaultConfig) { this.middleware = configuration.middleware; } @@ -44,16 +114,33 @@ export class BaseAPI { return this.withMiddleware(...middlewares); } - protected async request(context: RequestOpts): Promise { - const { url, init } = this.createFetchParams(context); + /** + * Check if the given MIME is a JSON MIME. + * JSON MIME examples: + * application/json + * application/json; charset=UTF8 + * APPLICATION/JSON + * application/vnd.company+json + * @param mime - MIME (Multipurpose Internet Mail Extensions) + * @return True if the given MIME is JSON, false otherwise. + */ + protected isJsonMime(mime: string | null | undefined): boolean { + if (!mime) { + return false; + } + return BaseAPI.jsonRegex.test(mime); + } + + protected async request(context: RequestOpts, initOverrides?: RequestInit | InitOverrideFunction): Promise { + const { url, init } = await this.createFetchParams(context, initOverrides); const response = await this.fetchApi(url, init); - if (response.status >= 200 && response.status < 300) { + if (response && (response.status >= 200 && response.status < 300)) { return response; } - throw response; + throw new ResponseError(response, 'Response returned an error code'); } - private createFetchParams(context: RequestOpts) { + private async createFetchParams(context: RequestOpts, initOverrides?: RequestInit | InitOverrideFunction) { let url = this.configuration.basePath + context.path; if (context.query !== undefined && Object.keys(context.query).length !== 0) { // only add the querystring to the URL if there are query parameters. @@ -61,17 +148,40 @@ export class BaseAPI { // do not handle correctly sometimes. url += '?' + this.configuration.queryParamsStringify(context.query); } - const body = (context.body instanceof FormData || context.body instanceof URLSearchParams || isBlob(context.body)) - ? context.body - : JSON.stringify(context.body); const headers = Object.assign({}, this.configuration.headers, context.headers); - const init = { + Object.keys(headers).forEach(key => headers[key] === undefined ? delete headers[key] : {}); + + const initOverrideFn = + typeof initOverrides === "function" + ? initOverrides + : async () => initOverrides; + + const initParams = { method: context.method, - headers: headers, - body, - credentials: this.configuration.credentials + headers, + body: context.body, + credentials: this.configuration.credentials, + }; + + const overriddenInit: RequestInit = { + ...initParams, + ...(await initOverrideFn({ + init: initParams, + context, + })) + }; + + const init: RequestInit = { + ...overriddenInit, + body: + isFormData(overriddenInit.body) || + overriddenInit.body instanceof URLSearchParams || + isBlob(overriddenInit.body) + ? overriddenInit.body + : JSON.stringify(overriddenInit.body), }; + return { url, init }; } @@ -85,13 +195,35 @@ export class BaseAPI { }) || fetchParams; } } - let response = await this.configuration.fetchApi(fetchParams.url, fetchParams.init); + let response: Response | undefined = undefined; + try { + response = await (this.configuration.fetchApi || fetch)(fetchParams.url, fetchParams.init); + } catch (e) { + for (const middleware of this.middleware) { + if (middleware.onError) { + response = await middleware.onError({ + fetch: this.fetchApi, + url: fetchParams.url, + init: fetchParams.init, + error: e, + response: response ? response.clone() : undefined, + }) || response; + } + } + if (response === undefined) { + if (e instanceof Error) { + throw new FetchError(e, 'The request failed and the interceptors did not return an alternative response'); + } else { + throw e; + } + } + } for (const middleware of this.middleware) { if (middleware.post) { response = await middleware.post({ fetch: this.fetchApi, - url, - init, + url: fetchParams.url, + init: fetchParams.init, response: response.clone(), }) || response; } @@ -111,8 +243,30 @@ export class BaseAPI { } }; +function isBlob(value: any): value is Blob { + return typeof Blob !== 'undefined' && value instanceof Blob; +} + +function isFormData(value: any): value is FormData { + return typeof FormData !== "undefined" && value instanceof FormData; +} + +export class ResponseError extends Error { + override name: "ResponseError" = "ResponseError"; + constructor(public response: Response, msg?: string) { + super(msg); + } +} + +export class FetchError extends Error { + override name: "FetchError" = "FetchError"; + constructor(public cause: Error, msg?: string) { + super(msg); + } +} + export class RequiredError extends Error { - name: "RequiredError" = "RequiredError"; + override name: "RequiredError" = "RequiredError"; constructor(public field: string, msg?: string) { super(msg); } @@ -127,78 +281,16 @@ export const COLLECTION_FORMATS = { export type FetchAPI = WindowOrWorkerGlobalScope['fetch']; -export interface ConfigurationParameters { - basePath?: string; // override base path - fetchApi?: FetchAPI; // override for fetch implementation - middleware?: Middleware[]; // middleware to apply before/after fetch requests - queryParamsStringify?: (params: HTTPQuery) => string; // stringify function for query strings - username?: string; // parameter for basic security - password?: string; // parameter for basic security - apiKey?: string | ((name: string) => string); // parameter for apiKey security - accessToken?: string | ((name?: string, scopes?: string[]) => string); // parameter for oauth2 security - headers?: HTTPHeaders; //header params we want to use on every request - credentials?: RequestCredentials; //value for the credentials param we want to use on each request -} - -export class Configuration { - constructor(private configuration: ConfigurationParameters = {}) {} - - get basePath(): string { - return this.configuration.basePath || BASE_PATH; - } - - get fetchApi(): FetchAPI { - return this.configuration.fetchApi || window.fetch.bind(window); - } - - get middleware(): Middleware[] { - return this.configuration.middleware || []; - } - - get queryParamsStringify(): (params: HTTPQuery) => string { - return this.configuration.queryParamsStringify || querystring; - } - - get username(): string | undefined { - return this.configuration.username; - } - - get password(): string | undefined { - return this.configuration.password; - } - - get apiKey(): ((name: string) => string) | undefined { - const apiKey = this.configuration.apiKey; - if (apiKey) { - return typeof apiKey === 'function' ? apiKey : () => apiKey; - } - return undefined; - } - - get accessToken(): ((name: string, scopes?: string[]) => string) | undefined { - const accessToken = this.configuration.accessToken; - if (accessToken) { - return typeof accessToken === 'function' ? accessToken : () => accessToken; - } - return undefined; - } - - get headers(): HTTPHeaders | undefined { - return this.configuration.headers; - } - - get credentials(): RequestCredentials | undefined { - return this.configuration.credentials; - } -} - export type Json = any; -export type HTTPMethod = 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE' | 'OPTIONS'; +export type HTTPMethod = 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE' | 'OPTIONS' | 'HEAD'; export type HTTPHeaders = { [key: string]: string }; -export type HTTPQuery = { [key: string]: string | number | null | boolean | Array | HTTPQuery }; +export type HTTPQuery = { [key: string]: string | number | null | boolean | Array | Set | HTTPQuery }; export type HTTPBody = Json | FormData | URLSearchParams; +export type HTTPRequestInit = { headers?: HTTPHeaders; method: HTTPMethod; credentials?: RequestCredentials; body?: HTTPBody }; export type ModelPropertyNaming = 'camelCase' | 'snake_case' | 'PascalCase' | 'original'; +export type InitOverrideFunction = (requestContext: { init: HTTPRequestInit, context: RequestOpts }) => Promise + export interface FetchParams { url: string; init: RequestInit; @@ -219,23 +311,31 @@ export function exists(json: any, key: string) { export function querystring(params: HTTPQuery, prefix: string = ''): string { return Object.keys(params) - .map((key) => { - const fullKey = prefix + (prefix.length ? `[${key}]` : key); - const value = params[key]; - if (value instanceof Array) { - const multiValue = value.map(singleValue => encodeURIComponent(String(singleValue))) - .join(`&${encodeURIComponent(fullKey)}=`); - return `${encodeURIComponent(fullKey)}=${multiValue}`; - } - if (value instanceof Object) { - return querystring(value as HTTPQuery, fullKey); - } - return `${encodeURIComponent(fullKey)}=${encodeURIComponent(String(value))}`; - }) + .map(key => querystringSingleKey(key, params[key], prefix)) .filter(part => part.length > 0) .join('&'); } +function querystringSingleKey(key: string, value: string | number | null | undefined | boolean | Array | Set | HTTPQuery, keyPrefix: string = ''): string { + const fullKey = keyPrefix + (keyPrefix.length ? `[${key}]` : key); + if (value instanceof Array) { + const multiValue = value.map(singleValue => encodeURIComponent(String(singleValue))) + .join(`&${encodeURIComponent(fullKey)}=`); + return `${encodeURIComponent(fullKey)}=${multiValue}`; + } + if (value instanceof Set) { + const valueAsArray = Array.from(value); + return querystringSingleKey(key, valueAsArray, keyPrefix); + } + if (value instanceof Date) { + return `${encodeURIComponent(fullKey)}=${encodeURIComponent(value.toISOString())}`; + } + if (value instanceof Object) { + return querystring(value as HTTPQuery, fullKey); + } + return `${encodeURIComponent(fullKey)}=${encodeURIComponent(String(value))}`; +} + export function mapValues(data: any, fn: (item: any) => any) { return Object.keys(data).reduce( (acc, key) => ({ ...acc, [key]: fn(data[key]) }), @@ -253,7 +353,7 @@ export function canConsumeForm(consumes: Consume[]): boolean { } export interface Consume { - contentType: string + contentType: string; } export interface RequestContext { @@ -269,9 +369,18 @@ export interface ResponseContext { response: Response; } +export interface ErrorContext { + fetch: FetchAPI; + url: string; + init: RequestInit; + error: unknown; + response?: Response; +} + export interface Middleware { pre?(context: RequestContext): Promise; post?(context: ResponseContext): Promise; + onError?(context: ErrorContext): Promise; } export interface ApiResponse { diff --git a/ui/src/store/collection/index.ts b/ui/src/store/collection/index.ts index 42021ca0..b9cf4186 100644 --- a/ui/src/store/collection/index.ts +++ b/ui/src/store/collection/index.ts @@ -104,7 +104,7 @@ const actions: ActionTree = { [SEARCH_COLLECTION]({ commit, dispatch }, id): any { const request: api.CollectionShowRequest = { id: +id }; - return EnduroCollectionClient.collectionShow(request).then((response: api.CollectionShowResponseBody) => { + return EnduroCollectionClient.collectionShow(request).then((response) => { commit(SET_SEARCH_RESULT, response); commit(SET_SEARCH_ERROR, false); dispatch('pipeline/SEARCH_PIPELINE', response.pipelineId, { root: true }); @@ -184,14 +184,11 @@ const actions: ActionTree = { } } - return EnduroCollectionClient.collectionList(request).then((response: api.CollectionListResponseBody) => { + return EnduroCollectionClient.collectionList(request).then((response) => { // collectionList does not transform the objects as collectionShow does. // Do it manually for now, I'd expect the generated client to start doing // this for us at some point. - response.items = response.items.map( - (item: api.EnduroStoredCollectionResponseBody): api.EnduroStoredCollectionResponseBody => - api.EnduroStoredCollectionResponseBodyFromJSON(item), - ); + response.items = response.items.map((item) => api.EnduroStoredCollectionFromJSON(item)); commit(SET_SEARCH_RESULTS, response.items); commit(SET_SEARCH_ERROR, false); @@ -221,9 +218,9 @@ const actions: ActionTree = { }, [MAKE_WORKFLOW_DECISION]({ commit }, payload): any { - const request: api.CollectionDecideRequest = { + const request: api.CollectionDecideOperationRequest = { id: +payload.id, - object: { + collectionDecideRequest: { option: payload.option, }, };