@giveitsmaller/contracts 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/asyncapi/ErrorCode.ts +19 -0
- package/asyncapi/MergeOutputType.ts +9 -0
- package/asyncapi/NotificationsOperationsQueue.ts +4 -0
- package/asyncapi/OperationMetrics.ts +12 -0
- package/asyncapi/OperationProgress.ts +12 -0
- package/asyncapi/OperationRequest.ts +21 -0
- package/asyncapi/OperationResult.ts +20 -0
- package/asyncapi/OperationType.ts +10 -0
- package/asyncapi/ProgressStatus.ts +8 -0
- package/asyncapi/README.md +16 -0
- package/asyncapi/ResultStatus.ts +6 -0
- package/asyncapi/SourceEntry.ts +9 -0
- package/asyncapi/index.ts +11 -0
- package/index.ts +5 -0
- package/openapi/.openapi-generator-ignore +26 -0
- package/openapi/README.md +17 -0
- package/openapi/index.ts +4 -0
- package/openapi/models/CallbackEventType.ts +60 -0
- package/openapi/models/ContactRequest.ts +113 -0
- package/openapi/models/ContactSubject.ts +62 -0
- package/openapi/models/ContactValidationErrorResponse.ts +67 -0
- package/openapi/models/ErrorEnvelope.ts +85 -0
- package/openapi/models/ExportConfig.ts +108 -0
- package/openapi/models/JobDefinition.ts +56 -0
- package/openapi/models/JobDownload.ts +92 -0
- package/openapi/models/JobInput.ts +89 -0
- package/openapi/models/JobResponse.ts +119 -0
- package/openapi/models/JobSource.ts +79 -0
- package/openapi/models/JobStatus.ts +62 -0
- package/openapi/models/JobType.ts +60 -0
- package/openapi/models/LivenessResponse.ts +66 -0
- package/openapi/models/MetadataResponse.ts +223 -0
- package/openapi/models/MetadataResponseDimensions.ts +73 -0
- package/openapi/models/MetadataResponseExif.ts +97 -0
- package/openapi/models/MetadataResponseExifGps.ts +73 -0
- package/openapi/models/MetadataSuccessEnvelope.ts +93 -0
- package/openapi/models/MimeGroupSchema.ts +91 -0
- package/openapi/models/MultipartCompleteRequest.ts +85 -0
- package/openapi/models/MultipartCompleteRequestPartsInner.ts +75 -0
- package/openapi/models/MultipartInitiateResponse.ts +137 -0
- package/openapi/models/MultipartInitiateSuccessEnvelope.ts +93 -0
- package/openapi/models/OperationDefinition.ts +91 -0
- package/openapi/models/OperationDownload.ts +102 -0
- package/openapi/models/OperationInputModel.ts +56 -0
- package/openapi/models/OperationResponse.ts +124 -0
- package/openapi/models/OperationResult.ts +100 -0
- package/openapi/models/OperationResultMetrics.ts +73 -0
- package/openapi/models/OperationSchemaDefinition.ts +163 -0
- package/openapi/models/OperationStatus.ts +62 -0
- package/openapi/models/OperationType.ts +64 -0
- package/openapi/models/OperationsSchemaResponse.ts +90 -0
- package/openapi/models/OptionSchema.ts +160 -0
- package/openapi/models/PresignedUrlPart.ts +86 -0
- package/openapi/models/ReadinessResponse.ts +73 -0
- package/openapi/models/ResponseEnvelope.ts +70 -0
- package/openapi/models/RetryResponse.ts +94 -0
- package/openapi/models/RetrySuccessEnvelope.ts +93 -0
- package/openapi/models/SseEventType.ts +68 -0
- package/openapi/models/SseJobCompletedData.ts +94 -0
- package/openapi/models/SseJobFailedData.ts +94 -0
- package/openapi/models/SseOperationCompletedData.ts +143 -0
- package/openapi/models/SseOperationFailedData.ts +129 -0
- package/openapi/models/SseOperationProgressData.ts +103 -0
- package/openapi/models/SseWorkflowTerminalData.ts +89 -0
- package/openapi/models/UploadResponse.ts +93 -0
- package/openapi/models/UploadSuccessEnvelope.ts +93 -0
- package/openapi/models/ValidationErrorEnvelope.ts +104 -0
- package/openapi/models/ValidationErrorEnvelopeDetailsInner.ts +90 -0
- package/openapi/models/WebhookOperationContext.ts +77 -0
- package/openapi/models/WebhookPayload.ts +132 -0
- package/openapi/models/WorkflowCreateRequest.ts +143 -0
- package/openapi/models/WorkflowCreateResponse.ts +114 -0
- package/openapi/models/WorkflowCreateSuccessEnvelope.ts +93 -0
- package/openapi/models/WorkflowDownloadResponse.ts +74 -0
- package/openapi/models/WorkflowDownloadSuccessEnvelope.ts +93 -0
- package/openapi/models/WorkflowEdge.ts +77 -0
- package/openapi/models/WorkflowStatus.ts +62 -0
- package/openapi/models/WorkflowStatusResponse.ts +101 -0
- package/openapi/models/WorkflowStatusSuccessEnvelope.ts +93 -0
- package/openapi/models/index.ts +64 -0
- package/openapi/runtime.ts +432 -0
- package/operations/README.md +17 -0
- package/operations/archive.ts +16 -0
- package/operations/compress.ts +177 -0
- package/operations/convert.ts +69 -0
- package/operations/index.ts +7 -0
- package/operations/merge.ts +95 -0
- package/operations/thumbnail.ts +66 -0
- package/package.json +19 -0
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
/* tslint:disable */
|
|
2
|
+
/* eslint-disable */
|
|
3
|
+
/**
|
|
4
|
+
* GISL Compression API
|
|
5
|
+
* REST API for the GISL (Give It Smaller) file compression and processing service. **Architecture:** - Upload files to get a `file_id` - Create workflows referencing uploaded files with operations (compress, thumbnail, watermark, merge, archive, convert) - Poll status, stream SSE events, or receive webhook callbacks - Download results per operation output **Response envelope:** All mutation and query endpoints return `{ success: true, data: {...} }` on success and `{ success: false, error: \"...\", details: [...] }` on failure. Exceptions: `GET /api/operations/schema` returns raw JSON (CDN-cacheable), health probes return flat objects, and `POST /api/contact` returns 204 with no body.
|
|
6
|
+
*
|
|
7
|
+
* The version of the OpenAPI document: 2.0.0
|
|
8
|
+
*
|
|
9
|
+
*
|
|
10
|
+
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
|
11
|
+
* https://openapi-generator.tech
|
|
12
|
+
* Do not edit the class manually.
|
|
13
|
+
*/
|
|
14
|
+
|
|
15
|
+
import { mapValues } from '../runtime';
|
|
16
|
+
import type { OptionSchema } from './OptionSchema';
|
|
17
|
+
import {
|
|
18
|
+
OptionSchemaFromJSON,
|
|
19
|
+
OptionSchemaFromJSONTyped,
|
|
20
|
+
OptionSchemaToJSON,
|
|
21
|
+
OptionSchemaToJSONTyped,
|
|
22
|
+
} from './OptionSchema';
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* MIME-group-specific option schema
|
|
26
|
+
* @export
|
|
27
|
+
* @interface MimeGroupSchema
|
|
28
|
+
*/
|
|
29
|
+
export interface MimeGroupSchema {
|
|
30
|
+
/**
|
|
31
|
+
* List of MIME types in this group
|
|
32
|
+
* @type {Array<string>}
|
|
33
|
+
* @memberof MimeGroupSchema
|
|
34
|
+
*/
|
|
35
|
+
mimes: Array<string>;
|
|
36
|
+
/**
|
|
37
|
+
* Options specific to this MIME group, keyed by option name
|
|
38
|
+
* @type {{ [key: string]: OptionSchema; }}
|
|
39
|
+
* @memberof MimeGroupSchema
|
|
40
|
+
*/
|
|
41
|
+
options: { [key: string]: OptionSchema; };
|
|
42
|
+
/**
|
|
43
|
+
* Per-input overrides for this MIME group, keyed by option name (multi-input only)
|
|
44
|
+
* @type {{ [key: string]: OptionSchema; }}
|
|
45
|
+
* @memberof MimeGroupSchema
|
|
46
|
+
*/
|
|
47
|
+
perInputOptions?: { [key: string]: OptionSchema; };
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
/**
|
|
51
|
+
* Check if a given object implements the MimeGroupSchema interface.
|
|
52
|
+
*/
|
|
53
|
+
export function instanceOfMimeGroupSchema(value: object): value is MimeGroupSchema {
|
|
54
|
+
if (!('mimes' in value) || value['mimes'] === undefined) return false;
|
|
55
|
+
if (!('options' in value) || value['options'] === undefined) return false;
|
|
56
|
+
return true;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
export function MimeGroupSchemaFromJSON(json: any): MimeGroupSchema {
|
|
60
|
+
return MimeGroupSchemaFromJSONTyped(json, false);
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
export function MimeGroupSchemaFromJSONTyped(json: any, ignoreDiscriminator: boolean): MimeGroupSchema {
|
|
64
|
+
if (json == null) {
|
|
65
|
+
return json;
|
|
66
|
+
}
|
|
67
|
+
return {
|
|
68
|
+
|
|
69
|
+
'mimes': json['mimes'],
|
|
70
|
+
'options': (mapValues(json['options'], OptionSchemaFromJSON)),
|
|
71
|
+
'perInputOptions': json['per_input_options'] == null ? undefined : (mapValues(json['per_input_options'], OptionSchemaFromJSON)),
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
export function MimeGroupSchemaToJSON(json: any): MimeGroupSchema {
|
|
76
|
+
return MimeGroupSchemaToJSONTyped(json, false);
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
export function MimeGroupSchemaToJSONTyped(value?: MimeGroupSchema | null, ignoreDiscriminator: boolean = false): any {
|
|
80
|
+
if (value == null) {
|
|
81
|
+
return value;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
return {
|
|
85
|
+
|
|
86
|
+
'mimes': value['mimes'],
|
|
87
|
+
'options': (mapValues(value['options'], OptionSchemaToJSON)),
|
|
88
|
+
'per_input_options': value['perInputOptions'] == null ? undefined : (mapValues(value['perInputOptions'], OptionSchemaToJSON)),
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
/* tslint:disable */
|
|
2
|
+
/* eslint-disable */
|
|
3
|
+
/**
|
|
4
|
+
* GISL Compression API
|
|
5
|
+
* REST API for the GISL (Give It Smaller) file compression and processing service. **Architecture:** - Upload files to get a `file_id` - Create workflows referencing uploaded files with operations (compress, thumbnail, watermark, merge, archive, convert) - Poll status, stream SSE events, or receive webhook callbacks - Download results per operation output **Response envelope:** All mutation and query endpoints return `{ success: true, data: {...} }` on success and `{ success: false, error: \"...\", details: [...] }` on failure. Exceptions: `GET /api/operations/schema` returns raw JSON (CDN-cacheable), health probes return flat objects, and `POST /api/contact` returns 204 with no body.
|
|
6
|
+
*
|
|
7
|
+
* The version of the OpenAPI document: 2.0.0
|
|
8
|
+
*
|
|
9
|
+
*
|
|
10
|
+
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
|
11
|
+
* https://openapi-generator.tech
|
|
12
|
+
* Do not edit the class manually.
|
|
13
|
+
*/
|
|
14
|
+
|
|
15
|
+
import { mapValues } from '../runtime';
|
|
16
|
+
import type { MultipartCompleteRequestPartsInner } from './MultipartCompleteRequestPartsInner';
|
|
17
|
+
import {
|
|
18
|
+
MultipartCompleteRequestPartsInnerFromJSON,
|
|
19
|
+
MultipartCompleteRequestPartsInnerFromJSONTyped,
|
|
20
|
+
MultipartCompleteRequestPartsInnerToJSON,
|
|
21
|
+
MultipartCompleteRequestPartsInnerToJSONTyped,
|
|
22
|
+
} from './MultipartCompleteRequestPartsInner';
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
*
|
|
26
|
+
* @export
|
|
27
|
+
* @interface MultipartCompleteRequest
|
|
28
|
+
*/
|
|
29
|
+
export interface MultipartCompleteRequest {
|
|
30
|
+
/**
|
|
31
|
+
* UUID v7 format identifier (time-ordered)
|
|
32
|
+
* @type {string}
|
|
33
|
+
* @memberof MultipartCompleteRequest
|
|
34
|
+
*/
|
|
35
|
+
fileId: string;
|
|
36
|
+
/**
|
|
37
|
+
* ETags for parts 2 through total_parts, collected from S3 PUT responses.
|
|
38
|
+
* Part 1 ETag is already known from the initiate step.
|
|
39
|
+
*
|
|
40
|
+
* @type {Array<MultipartCompleteRequestPartsInner>}
|
|
41
|
+
* @memberof MultipartCompleteRequest
|
|
42
|
+
*/
|
|
43
|
+
parts: Array<MultipartCompleteRequestPartsInner>;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
/**
|
|
47
|
+
* Check if a given object implements the MultipartCompleteRequest interface.
|
|
48
|
+
*/
|
|
49
|
+
export function instanceOfMultipartCompleteRequest(value: object): value is MultipartCompleteRequest {
|
|
50
|
+
if (!('fileId' in value) || value['fileId'] === undefined) return false;
|
|
51
|
+
if (!('parts' in value) || value['parts'] === undefined) return false;
|
|
52
|
+
return true;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
export function MultipartCompleteRequestFromJSON(json: any): MultipartCompleteRequest {
|
|
56
|
+
return MultipartCompleteRequestFromJSONTyped(json, false);
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
export function MultipartCompleteRequestFromJSONTyped(json: any, ignoreDiscriminator: boolean): MultipartCompleteRequest {
|
|
60
|
+
if (json == null) {
|
|
61
|
+
return json;
|
|
62
|
+
}
|
|
63
|
+
return {
|
|
64
|
+
|
|
65
|
+
'fileId': json['file_id'],
|
|
66
|
+
'parts': ((json['parts'] as Array<any>).map(MultipartCompleteRequestPartsInnerFromJSON)),
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
export function MultipartCompleteRequestToJSON(json: any): MultipartCompleteRequest {
|
|
71
|
+
return MultipartCompleteRequestToJSONTyped(json, false);
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
export function MultipartCompleteRequestToJSONTyped(value?: MultipartCompleteRequest | null, ignoreDiscriminator: boolean = false): any {
|
|
75
|
+
if (value == null) {
|
|
76
|
+
return value;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
return {
|
|
80
|
+
|
|
81
|
+
'file_id': value['fileId'],
|
|
82
|
+
'parts': ((value['parts'] as Array<any>).map(MultipartCompleteRequestPartsInnerToJSON)),
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
/* tslint:disable */
|
|
2
|
+
/* eslint-disable */
|
|
3
|
+
/**
|
|
4
|
+
* GISL Compression API
|
|
5
|
+
* REST API for the GISL (Give It Smaller) file compression and processing service. **Architecture:** - Upload files to get a `file_id` - Create workflows referencing uploaded files with operations (compress, thumbnail, watermark, merge, archive, convert) - Poll status, stream SSE events, or receive webhook callbacks - Download results per operation output **Response envelope:** All mutation and query endpoints return `{ success: true, data: {...} }` on success and `{ success: false, error: \"...\", details: [...] }` on failure. Exceptions: `GET /api/operations/schema` returns raw JSON (CDN-cacheable), health probes return flat objects, and `POST /api/contact` returns 204 with no body.
|
|
6
|
+
*
|
|
7
|
+
* The version of the OpenAPI document: 2.0.0
|
|
8
|
+
*
|
|
9
|
+
*
|
|
10
|
+
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
|
11
|
+
* https://openapi-generator.tech
|
|
12
|
+
* Do not edit the class manually.
|
|
13
|
+
*/
|
|
14
|
+
|
|
15
|
+
import { mapValues } from '../runtime';
|
|
16
|
+
/**
|
|
17
|
+
*
|
|
18
|
+
* @export
|
|
19
|
+
* @interface MultipartCompleteRequestPartsInner
|
|
20
|
+
*/
|
|
21
|
+
export interface MultipartCompleteRequestPartsInner {
|
|
22
|
+
/**
|
|
23
|
+
* S3 part number (must match presigned_urls part_number)
|
|
24
|
+
* @type {number}
|
|
25
|
+
* @memberof MultipartCompleteRequestPartsInner
|
|
26
|
+
*/
|
|
27
|
+
partNumber: number;
|
|
28
|
+
/**
|
|
29
|
+
* ETag from S3 PUT response header
|
|
30
|
+
* @type {string}
|
|
31
|
+
* @memberof MultipartCompleteRequestPartsInner
|
|
32
|
+
*/
|
|
33
|
+
etag: string;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* Check if a given object implements the MultipartCompleteRequestPartsInner interface.
|
|
38
|
+
*/
|
|
39
|
+
export function instanceOfMultipartCompleteRequestPartsInner(value: object): value is MultipartCompleteRequestPartsInner {
|
|
40
|
+
if (!('partNumber' in value) || value['partNumber'] === undefined) return false;
|
|
41
|
+
if (!('etag' in value) || value['etag'] === undefined) return false;
|
|
42
|
+
return true;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
export function MultipartCompleteRequestPartsInnerFromJSON(json: any): MultipartCompleteRequestPartsInner {
|
|
46
|
+
return MultipartCompleteRequestPartsInnerFromJSONTyped(json, false);
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
export function MultipartCompleteRequestPartsInnerFromJSONTyped(json: any, ignoreDiscriminator: boolean): MultipartCompleteRequestPartsInner {
|
|
50
|
+
if (json == null) {
|
|
51
|
+
return json;
|
|
52
|
+
}
|
|
53
|
+
return {
|
|
54
|
+
|
|
55
|
+
'partNumber': json['part_number'],
|
|
56
|
+
'etag': json['etag'],
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
export function MultipartCompleteRequestPartsInnerToJSON(json: any): MultipartCompleteRequestPartsInner {
|
|
61
|
+
return MultipartCompleteRequestPartsInnerToJSONTyped(json, false);
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
export function MultipartCompleteRequestPartsInnerToJSONTyped(value?: MultipartCompleteRequestPartsInner | null, ignoreDiscriminator: boolean = false): any {
|
|
65
|
+
if (value == null) {
|
|
66
|
+
return value;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
return {
|
|
70
|
+
|
|
71
|
+
'part_number': value['partNumber'],
|
|
72
|
+
'etag': value['etag'],
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
/* tslint:disable */
|
|
2
|
+
/* eslint-disable */
|
|
3
|
+
/**
|
|
4
|
+
* GISL Compression API
|
|
5
|
+
* REST API for the GISL (Give It Smaller) file compression and processing service. **Architecture:** - Upload files to get a `file_id` - Create workflows referencing uploaded files with operations (compress, thumbnail, watermark, merge, archive, convert) - Poll status, stream SSE events, or receive webhook callbacks - Download results per operation output **Response envelope:** All mutation and query endpoints return `{ success: true, data: {...} }` on success and `{ success: false, error: \"...\", details: [...] }` on failure. Exceptions: `GET /api/operations/schema` returns raw JSON (CDN-cacheable), health probes return flat objects, and `POST /api/contact` returns 204 with no body.
|
|
6
|
+
*
|
|
7
|
+
* The version of the OpenAPI document: 2.0.0
|
|
8
|
+
*
|
|
9
|
+
*
|
|
10
|
+
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
|
11
|
+
* https://openapi-generator.tech
|
|
12
|
+
* Do not edit the class manually.
|
|
13
|
+
*/
|
|
14
|
+
|
|
15
|
+
import { mapValues } from '../runtime';
|
|
16
|
+
import type { PresignedUrlPart } from './PresignedUrlPart';
|
|
17
|
+
import {
|
|
18
|
+
PresignedUrlPartFromJSON,
|
|
19
|
+
PresignedUrlPartFromJSONTyped,
|
|
20
|
+
PresignedUrlPartToJSON,
|
|
21
|
+
PresignedUrlPartToJSONTyped,
|
|
22
|
+
} from './PresignedUrlPart';
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
*
|
|
26
|
+
* @export
|
|
27
|
+
* @interface MultipartInitiateResponse
|
|
28
|
+
*/
|
|
29
|
+
export interface MultipartInitiateResponse {
|
|
30
|
+
/**
|
|
31
|
+
* UUID v7 format identifier (time-ordered)
|
|
32
|
+
* @type {string}
|
|
33
|
+
* @memberof MultipartInitiateResponse
|
|
34
|
+
*/
|
|
35
|
+
fileId: string;
|
|
36
|
+
/**
|
|
37
|
+
* MIME type detected from the first chunk
|
|
38
|
+
* @type {string}
|
|
39
|
+
* @memberof MultipartInitiateResponse
|
|
40
|
+
*/
|
|
41
|
+
mimeType: string;
|
|
42
|
+
/**
|
|
43
|
+
* ETag of the first chunk stored as S3 part 1
|
|
44
|
+
* @type {string}
|
|
45
|
+
* @memberof MultipartInitiateResponse
|
|
46
|
+
*/
|
|
47
|
+
firstChunkEtag: string;
|
|
48
|
+
/**
|
|
49
|
+
* Size of the first chunk received (for client validation)
|
|
50
|
+
* @type {number}
|
|
51
|
+
* @memberof MultipartInitiateResponse
|
|
52
|
+
*/
|
|
53
|
+
firstChunkSizeBytes: number;
|
|
54
|
+
/**
|
|
55
|
+
* Total number of parts. The client slices the remaining file into
|
|
56
|
+
* exactly (total_parts - 1) chunks using recommended_chunk_size.
|
|
57
|
+
* The last chunk may be smaller.
|
|
58
|
+
*
|
|
59
|
+
* @type {number}
|
|
60
|
+
* @memberof MultipartInitiateResponse
|
|
61
|
+
*/
|
|
62
|
+
totalParts: number;
|
|
63
|
+
/**
|
|
64
|
+
* Chunk size in bytes for remaining parts. Calculated from first chunk
|
|
65
|
+
* throughput * 5s target, clamped to 5MB-100MB. The last chunk may be
|
|
66
|
+
* smaller than 5MB.
|
|
67
|
+
*
|
|
68
|
+
* @type {number}
|
|
69
|
+
* @memberof MultipartInitiateResponse
|
|
70
|
+
*/
|
|
71
|
+
recommendedChunkSize: number;
|
|
72
|
+
/**
|
|
73
|
+
* Pre-signed S3 PUT URLs for parts 2 through total_parts.
|
|
74
|
+
* Each URL accepts a PUT request with raw chunk bytes as body.
|
|
75
|
+
* Collect the ETag from each S3 response for the complete request.
|
|
76
|
+
*
|
|
77
|
+
* @type {Array<PresignedUrlPart>}
|
|
78
|
+
* @memberof MultipartInitiateResponse
|
|
79
|
+
*/
|
|
80
|
+
presignedUrls: Array<PresignedUrlPart>;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
/**
|
|
84
|
+
* Check if a given object implements the MultipartInitiateResponse interface.
|
|
85
|
+
*/
|
|
86
|
+
export function instanceOfMultipartInitiateResponse(value: object): value is MultipartInitiateResponse {
|
|
87
|
+
if (!('fileId' in value) || value['fileId'] === undefined) return false;
|
|
88
|
+
if (!('mimeType' in value) || value['mimeType'] === undefined) return false;
|
|
89
|
+
if (!('firstChunkEtag' in value) || value['firstChunkEtag'] === undefined) return false;
|
|
90
|
+
if (!('firstChunkSizeBytes' in value) || value['firstChunkSizeBytes'] === undefined) return false;
|
|
91
|
+
if (!('totalParts' in value) || value['totalParts'] === undefined) return false;
|
|
92
|
+
if (!('recommendedChunkSize' in value) || value['recommendedChunkSize'] === undefined) return false;
|
|
93
|
+
if (!('presignedUrls' in value) || value['presignedUrls'] === undefined) return false;
|
|
94
|
+
return true;
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
export function MultipartInitiateResponseFromJSON(json: any): MultipartInitiateResponse {
|
|
98
|
+
return MultipartInitiateResponseFromJSONTyped(json, false);
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
export function MultipartInitiateResponseFromJSONTyped(json: any, ignoreDiscriminator: boolean): MultipartInitiateResponse {
|
|
102
|
+
if (json == null) {
|
|
103
|
+
return json;
|
|
104
|
+
}
|
|
105
|
+
return {
|
|
106
|
+
|
|
107
|
+
'fileId': json['file_id'],
|
|
108
|
+
'mimeType': json['mime_type'],
|
|
109
|
+
'firstChunkEtag': json['first_chunk_etag'],
|
|
110
|
+
'firstChunkSizeBytes': json['first_chunk_size_bytes'],
|
|
111
|
+
'totalParts': json['total_parts'],
|
|
112
|
+
'recommendedChunkSize': json['recommended_chunk_size'],
|
|
113
|
+
'presignedUrls': ((json['presigned_urls'] as Array<any>).map(PresignedUrlPartFromJSON)),
|
|
114
|
+
};
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
export function MultipartInitiateResponseToJSON(json: any): MultipartInitiateResponse {
|
|
118
|
+
return MultipartInitiateResponseToJSONTyped(json, false);
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
export function MultipartInitiateResponseToJSONTyped(value?: MultipartInitiateResponse | null, ignoreDiscriminator: boolean = false): any {
|
|
122
|
+
if (value == null) {
|
|
123
|
+
return value;
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
return {
|
|
127
|
+
|
|
128
|
+
'file_id': value['fileId'],
|
|
129
|
+
'mime_type': value['mimeType'],
|
|
130
|
+
'first_chunk_etag': value['firstChunkEtag'],
|
|
131
|
+
'first_chunk_size_bytes': value['firstChunkSizeBytes'],
|
|
132
|
+
'total_parts': value['totalParts'],
|
|
133
|
+
'recommended_chunk_size': value['recommendedChunkSize'],
|
|
134
|
+
'presigned_urls': ((value['presignedUrls'] as Array<any>).map(PresignedUrlPartToJSON)),
|
|
135
|
+
};
|
|
136
|
+
}
|
|
137
|
+
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
/* tslint:disable */
|
|
2
|
+
/* eslint-disable */
|
|
3
|
+
/**
|
|
4
|
+
* GISL Compression API
|
|
5
|
+
* REST API for the GISL (Give It Smaller) file compression and processing service. **Architecture:** - Upload files to get a `file_id` - Create workflows referencing uploaded files with operations (compress, thumbnail, watermark, merge, archive, convert) - Poll status, stream SSE events, or receive webhook callbacks - Download results per operation output **Response envelope:** All mutation and query endpoints return `{ success: true, data: {...} }` on success and `{ success: false, error: \"...\", details: [...] }` on failure. Exceptions: `GET /api/operations/schema` returns raw JSON (CDN-cacheable), health probes return flat objects, and `POST /api/contact` returns 204 with no body.
|
|
6
|
+
*
|
|
7
|
+
* The version of the OpenAPI document: 2.0.0
|
|
8
|
+
*
|
|
9
|
+
*
|
|
10
|
+
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
|
11
|
+
* https://openapi-generator.tech
|
|
12
|
+
* Do not edit the class manually.
|
|
13
|
+
*/
|
|
14
|
+
|
|
15
|
+
import { mapValues } from '../runtime';
|
|
16
|
+
import type { MultipartInitiateResponse } from './MultipartInitiateResponse';
|
|
17
|
+
import {
|
|
18
|
+
MultipartInitiateResponseFromJSON,
|
|
19
|
+
MultipartInitiateResponseFromJSONTyped,
|
|
20
|
+
MultipartInitiateResponseToJSON,
|
|
21
|
+
MultipartInitiateResponseToJSONTyped,
|
|
22
|
+
} from './MultipartInitiateResponse';
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
*
|
|
26
|
+
* @export
|
|
27
|
+
* @interface MultipartInitiateSuccessEnvelope
|
|
28
|
+
*/
|
|
29
|
+
export interface MultipartInitiateSuccessEnvelope {
|
|
30
|
+
/**
|
|
31
|
+
*
|
|
32
|
+
* @type {boolean}
|
|
33
|
+
* @memberof MultipartInitiateSuccessEnvelope
|
|
34
|
+
*/
|
|
35
|
+
success: MultipartInitiateSuccessEnvelopeSuccessEnum;
|
|
36
|
+
/**
|
|
37
|
+
*
|
|
38
|
+
* @type {MultipartInitiateResponse}
|
|
39
|
+
* @memberof MultipartInitiateSuccessEnvelope
|
|
40
|
+
*/
|
|
41
|
+
data: MultipartInitiateResponse;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* @export
|
|
47
|
+
*/
|
|
48
|
+
export const MultipartInitiateSuccessEnvelopeSuccessEnum = {
|
|
49
|
+
true: true
|
|
50
|
+
} as const;
|
|
51
|
+
export type MultipartInitiateSuccessEnvelopeSuccessEnum = typeof MultipartInitiateSuccessEnvelopeSuccessEnum[keyof typeof MultipartInitiateSuccessEnvelopeSuccessEnum];
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
* Check if a given object implements the MultipartInitiateSuccessEnvelope interface.
|
|
56
|
+
*/
|
|
57
|
+
export function instanceOfMultipartInitiateSuccessEnvelope(value: object): value is MultipartInitiateSuccessEnvelope {
|
|
58
|
+
if (!('success' in value) || value['success'] === undefined) return false;
|
|
59
|
+
if (!('data' in value) || value['data'] === undefined) return false;
|
|
60
|
+
return true;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
export function MultipartInitiateSuccessEnvelopeFromJSON(json: any): MultipartInitiateSuccessEnvelope {
|
|
64
|
+
return MultipartInitiateSuccessEnvelopeFromJSONTyped(json, false);
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
export function MultipartInitiateSuccessEnvelopeFromJSONTyped(json: any, ignoreDiscriminator: boolean): MultipartInitiateSuccessEnvelope {
|
|
68
|
+
if (json == null) {
|
|
69
|
+
return json;
|
|
70
|
+
}
|
|
71
|
+
return {
|
|
72
|
+
|
|
73
|
+
'success': json['success'],
|
|
74
|
+
'data': MultipartInitiateResponseFromJSON(json['data']),
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
export function MultipartInitiateSuccessEnvelopeToJSON(json: any): MultipartInitiateSuccessEnvelope {
|
|
79
|
+
return MultipartInitiateSuccessEnvelopeToJSONTyped(json, false);
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
export function MultipartInitiateSuccessEnvelopeToJSONTyped(value?: MultipartInitiateSuccessEnvelope | null, ignoreDiscriminator: boolean = false): any {
|
|
83
|
+
if (value == null) {
|
|
84
|
+
return value;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
return {
|
|
88
|
+
|
|
89
|
+
'success': value['success'],
|
|
90
|
+
'data': MultipartInitiateResponseToJSON(value['data']),
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
/* tslint:disable */
|
|
2
|
+
/* eslint-disable */
|
|
3
|
+
/**
|
|
4
|
+
* GISL Compression API
|
|
5
|
+
* REST API for the GISL (Give It Smaller) file compression and processing service. **Architecture:** - Upload files to get a `file_id` - Create workflows referencing uploaded files with operations (compress, thumbnail, watermark, merge, archive, convert) - Poll status, stream SSE events, or receive webhook callbacks - Download results per operation output **Response envelope:** All mutation and query endpoints return `{ success: true, data: {...} }` on success and `{ success: false, error: \"...\", details: [...] }` on failure. Exceptions: `GET /api/operations/schema` returns raw JSON (CDN-cacheable), health probes return flat objects, and `POST /api/contact` returns 204 with no body.
|
|
6
|
+
*
|
|
7
|
+
* The version of the OpenAPI document: 2.0.0
|
|
8
|
+
*
|
|
9
|
+
*
|
|
10
|
+
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
|
11
|
+
* https://openapi-generator.tech
|
|
12
|
+
* Do not edit the class manually.
|
|
13
|
+
*/
|
|
14
|
+
|
|
15
|
+
import { mapValues } from '../runtime';
|
|
16
|
+
import type { OperationType } from './OperationType';
|
|
17
|
+
import {
|
|
18
|
+
OperationTypeFromJSON,
|
|
19
|
+
OperationTypeFromJSONTyped,
|
|
20
|
+
OperationTypeToJSON,
|
|
21
|
+
OperationTypeToJSONTyped,
|
|
22
|
+
} from './OperationType';
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* Definition of a single operation within a job
|
|
26
|
+
* @export
|
|
27
|
+
* @interface OperationDefinition
|
|
28
|
+
*/
|
|
29
|
+
export interface OperationDefinition {
|
|
30
|
+
/**
|
|
31
|
+
*
|
|
32
|
+
* @type {OperationType}
|
|
33
|
+
* @memberof OperationDefinition
|
|
34
|
+
*/
|
|
35
|
+
type: OperationType;
|
|
36
|
+
/**
|
|
37
|
+
* Operation-specific options. The available options and their validation
|
|
38
|
+
* rules depend on the operation type and the input file's MIME type.
|
|
39
|
+
* See `GET /api/operations/schema` for the full schema.
|
|
40
|
+
*
|
|
41
|
+
* Options are validated against the schema using JSON Schema if/then/else
|
|
42
|
+
* rules. For example, `quality` is only valid when `mode: lossy` for
|
|
43
|
+
* compress operations.
|
|
44
|
+
*
|
|
45
|
+
* @type {{ [key: string]: any; }}
|
|
46
|
+
* @memberof OperationDefinition
|
|
47
|
+
*/
|
|
48
|
+
options?: { [key: string]: any; };
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
/**
|
|
54
|
+
* Check if a given object implements the OperationDefinition interface.
|
|
55
|
+
*/
|
|
56
|
+
export function instanceOfOperationDefinition(value: object): value is OperationDefinition {
|
|
57
|
+
if (!('type' in value) || value['type'] === undefined) return false;
|
|
58
|
+
return true;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
export function OperationDefinitionFromJSON(json: any): OperationDefinition {
|
|
62
|
+
return OperationDefinitionFromJSONTyped(json, false);
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
export function OperationDefinitionFromJSONTyped(json: any, ignoreDiscriminator: boolean): OperationDefinition {
|
|
66
|
+
if (json == null) {
|
|
67
|
+
return json;
|
|
68
|
+
}
|
|
69
|
+
return {
|
|
70
|
+
|
|
71
|
+
'type': OperationTypeFromJSON(json['type']),
|
|
72
|
+
'options': json['options'] == null ? undefined : json['options'],
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
export function OperationDefinitionToJSON(json: any): OperationDefinition {
|
|
77
|
+
return OperationDefinitionToJSONTyped(json, false);
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
export function OperationDefinitionToJSONTyped(value?: OperationDefinition | null, ignoreDiscriminator: boolean = false): any {
|
|
81
|
+
if (value == null) {
|
|
82
|
+
return value;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
return {
|
|
86
|
+
|
|
87
|
+
'type': OperationTypeToJSON(value['type']),
|
|
88
|
+
'options': value['options'],
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
/* tslint:disable */
|
|
2
|
+
/* eslint-disable */
|
|
3
|
+
/**
|
|
4
|
+
* GISL Compression API
|
|
5
|
+
* REST API for the GISL (Give It Smaller) file compression and processing service. **Architecture:** - Upload files to get a `file_id` - Create workflows referencing uploaded files with operations (compress, thumbnail, watermark, merge, archive, convert) - Poll status, stream SSE events, or receive webhook callbacks - Download results per operation output **Response envelope:** All mutation and query endpoints return `{ success: true, data: {...} }` on success and `{ success: false, error: \"...\", details: [...] }` on failure. Exceptions: `GET /api/operations/schema` returns raw JSON (CDN-cacheable), health probes return flat objects, and `POST /api/contact` returns 204 with no body.
|
|
6
|
+
*
|
|
7
|
+
* The version of the OpenAPI document: 2.0.0
|
|
8
|
+
*
|
|
9
|
+
*
|
|
10
|
+
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
|
11
|
+
* https://openapi-generator.tech
|
|
12
|
+
* Do not edit the class manually.
|
|
13
|
+
*/
|
|
14
|
+
|
|
15
|
+
import { mapValues } from '../runtime';
|
|
16
|
+
/**
|
|
17
|
+
*
|
|
18
|
+
* @export
|
|
19
|
+
* @interface OperationDownload
|
|
20
|
+
*/
|
|
21
|
+
export interface OperationDownload {
|
|
22
|
+
/**
|
|
23
|
+
* Operation type that produced this file
|
|
24
|
+
* @type {string}
|
|
25
|
+
* @memberof OperationDownload
|
|
26
|
+
*/
|
|
27
|
+
operation: string;
|
|
28
|
+
/**
|
|
29
|
+
* UUID v7 format identifier (time-ordered)
|
|
30
|
+
* @type {string}
|
|
31
|
+
* @memberof OperationDownload
|
|
32
|
+
*/
|
|
33
|
+
operationId: string;
|
|
34
|
+
/**
|
|
35
|
+
* Output filename
|
|
36
|
+
* @type {string}
|
|
37
|
+
* @memberof OperationDownload
|
|
38
|
+
*/
|
|
39
|
+
filename: string;
|
|
40
|
+
/**
|
|
41
|
+
* Output file size in bytes
|
|
42
|
+
* @type {number}
|
|
43
|
+
* @memberof OperationDownload
|
|
44
|
+
*/
|
|
45
|
+
sizeBytes: number;
|
|
46
|
+
/**
|
|
47
|
+
* Pre-signed download URL
|
|
48
|
+
* @type {string}
|
|
49
|
+
* @memberof OperationDownload
|
|
50
|
+
*/
|
|
51
|
+
downloadUrl: string;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
* Check if a given object implements the OperationDownload interface.
|
|
56
|
+
*/
|
|
57
|
+
export function instanceOfOperationDownload(value: object): value is OperationDownload {
|
|
58
|
+
if (!('operation' in value) || value['operation'] === undefined) return false;
|
|
59
|
+
if (!('operationId' in value) || value['operationId'] === undefined) return false;
|
|
60
|
+
if (!('filename' in value) || value['filename'] === undefined) return false;
|
|
61
|
+
if (!('sizeBytes' in value) || value['sizeBytes'] === undefined) return false;
|
|
62
|
+
if (!('downloadUrl' in value) || value['downloadUrl'] === undefined) return false;
|
|
63
|
+
return true;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
export function OperationDownloadFromJSON(json: any): OperationDownload {
|
|
67
|
+
return OperationDownloadFromJSONTyped(json, false);
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
export function OperationDownloadFromJSONTyped(json: any, ignoreDiscriminator: boolean): OperationDownload {
|
|
71
|
+
if (json == null) {
|
|
72
|
+
return json;
|
|
73
|
+
}
|
|
74
|
+
return {
|
|
75
|
+
|
|
76
|
+
'operation': json['operation'],
|
|
77
|
+
'operationId': json['operation_id'],
|
|
78
|
+
'filename': json['filename'],
|
|
79
|
+
'sizeBytes': json['size_bytes'],
|
|
80
|
+
'downloadUrl': json['download_url'],
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
export function OperationDownloadToJSON(json: any): OperationDownload {
|
|
85
|
+
return OperationDownloadToJSONTyped(json, false);
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
export function OperationDownloadToJSONTyped(value?: OperationDownload | null, ignoreDiscriminator: boolean = false): any {
|
|
89
|
+
if (value == null) {
|
|
90
|
+
return value;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
return {
|
|
94
|
+
|
|
95
|
+
'operation': value['operation'],
|
|
96
|
+
'operation_id': value['operationId'],
|
|
97
|
+
'filename': value['filename'],
|
|
98
|
+
'size_bytes': value['sizeBytes'],
|
|
99
|
+
'download_url': value['downloadUrl'],
|
|
100
|
+
};
|
|
101
|
+
}
|
|
102
|
+
|