@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.
Files changed (89) hide show
  1. package/asyncapi/ErrorCode.ts +19 -0
  2. package/asyncapi/MergeOutputType.ts +9 -0
  3. package/asyncapi/NotificationsOperationsQueue.ts +4 -0
  4. package/asyncapi/OperationMetrics.ts +12 -0
  5. package/asyncapi/OperationProgress.ts +12 -0
  6. package/asyncapi/OperationRequest.ts +21 -0
  7. package/asyncapi/OperationResult.ts +20 -0
  8. package/asyncapi/OperationType.ts +10 -0
  9. package/asyncapi/ProgressStatus.ts +8 -0
  10. package/asyncapi/README.md +16 -0
  11. package/asyncapi/ResultStatus.ts +6 -0
  12. package/asyncapi/SourceEntry.ts +9 -0
  13. package/asyncapi/index.ts +11 -0
  14. package/index.ts +5 -0
  15. package/openapi/.openapi-generator-ignore +26 -0
  16. package/openapi/README.md +17 -0
  17. package/openapi/index.ts +4 -0
  18. package/openapi/models/CallbackEventType.ts +60 -0
  19. package/openapi/models/ContactRequest.ts +113 -0
  20. package/openapi/models/ContactSubject.ts +62 -0
  21. package/openapi/models/ContactValidationErrorResponse.ts +67 -0
  22. package/openapi/models/ErrorEnvelope.ts +85 -0
  23. package/openapi/models/ExportConfig.ts +108 -0
  24. package/openapi/models/JobDefinition.ts +56 -0
  25. package/openapi/models/JobDownload.ts +92 -0
  26. package/openapi/models/JobInput.ts +89 -0
  27. package/openapi/models/JobResponse.ts +119 -0
  28. package/openapi/models/JobSource.ts +79 -0
  29. package/openapi/models/JobStatus.ts +62 -0
  30. package/openapi/models/JobType.ts +60 -0
  31. package/openapi/models/LivenessResponse.ts +66 -0
  32. package/openapi/models/MetadataResponse.ts +223 -0
  33. package/openapi/models/MetadataResponseDimensions.ts +73 -0
  34. package/openapi/models/MetadataResponseExif.ts +97 -0
  35. package/openapi/models/MetadataResponseExifGps.ts +73 -0
  36. package/openapi/models/MetadataSuccessEnvelope.ts +93 -0
  37. package/openapi/models/MimeGroupSchema.ts +91 -0
  38. package/openapi/models/MultipartCompleteRequest.ts +85 -0
  39. package/openapi/models/MultipartCompleteRequestPartsInner.ts +75 -0
  40. package/openapi/models/MultipartInitiateResponse.ts +137 -0
  41. package/openapi/models/MultipartInitiateSuccessEnvelope.ts +93 -0
  42. package/openapi/models/OperationDefinition.ts +91 -0
  43. package/openapi/models/OperationDownload.ts +102 -0
  44. package/openapi/models/OperationInputModel.ts +56 -0
  45. package/openapi/models/OperationResponse.ts +124 -0
  46. package/openapi/models/OperationResult.ts +100 -0
  47. package/openapi/models/OperationResultMetrics.ts +73 -0
  48. package/openapi/models/OperationSchemaDefinition.ts +163 -0
  49. package/openapi/models/OperationStatus.ts +62 -0
  50. package/openapi/models/OperationType.ts +64 -0
  51. package/openapi/models/OperationsSchemaResponse.ts +90 -0
  52. package/openapi/models/OptionSchema.ts +160 -0
  53. package/openapi/models/PresignedUrlPart.ts +86 -0
  54. package/openapi/models/ReadinessResponse.ts +73 -0
  55. package/openapi/models/ResponseEnvelope.ts +70 -0
  56. package/openapi/models/RetryResponse.ts +94 -0
  57. package/openapi/models/RetrySuccessEnvelope.ts +93 -0
  58. package/openapi/models/SseEventType.ts +68 -0
  59. package/openapi/models/SseJobCompletedData.ts +94 -0
  60. package/openapi/models/SseJobFailedData.ts +94 -0
  61. package/openapi/models/SseOperationCompletedData.ts +143 -0
  62. package/openapi/models/SseOperationFailedData.ts +129 -0
  63. package/openapi/models/SseOperationProgressData.ts +103 -0
  64. package/openapi/models/SseWorkflowTerminalData.ts +89 -0
  65. package/openapi/models/UploadResponse.ts +93 -0
  66. package/openapi/models/UploadSuccessEnvelope.ts +93 -0
  67. package/openapi/models/ValidationErrorEnvelope.ts +104 -0
  68. package/openapi/models/ValidationErrorEnvelopeDetailsInner.ts +90 -0
  69. package/openapi/models/WebhookOperationContext.ts +77 -0
  70. package/openapi/models/WebhookPayload.ts +132 -0
  71. package/openapi/models/WorkflowCreateRequest.ts +143 -0
  72. package/openapi/models/WorkflowCreateResponse.ts +114 -0
  73. package/openapi/models/WorkflowCreateSuccessEnvelope.ts +93 -0
  74. package/openapi/models/WorkflowDownloadResponse.ts +74 -0
  75. package/openapi/models/WorkflowDownloadSuccessEnvelope.ts +93 -0
  76. package/openapi/models/WorkflowEdge.ts +77 -0
  77. package/openapi/models/WorkflowStatus.ts +62 -0
  78. package/openapi/models/WorkflowStatusResponse.ts +101 -0
  79. package/openapi/models/WorkflowStatusSuccessEnvelope.ts +93 -0
  80. package/openapi/models/index.ts +64 -0
  81. package/openapi/runtime.ts +432 -0
  82. package/operations/README.md +17 -0
  83. package/operations/archive.ts +16 -0
  84. package/operations/compress.ts +177 -0
  85. package/operations/convert.ts +69 -0
  86. package/operations/index.ts +7 -0
  87. package/operations/merge.ts +95 -0
  88. package/operations/thumbnail.ts +66 -0
  89. package/package.json +19 -0
@@ -0,0 +1,143 @@
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 { WorkflowEdge } from './WorkflowEdge';
17
+ import {
18
+ WorkflowEdgeFromJSON,
19
+ WorkflowEdgeFromJSONTyped,
20
+ WorkflowEdgeToJSON,
21
+ WorkflowEdgeToJSONTyped,
22
+ } from './WorkflowEdge';
23
+ import type { CallbackEventType } from './CallbackEventType';
24
+ import {
25
+ CallbackEventTypeFromJSON,
26
+ CallbackEventTypeFromJSONTyped,
27
+ CallbackEventTypeToJSON,
28
+ CallbackEventTypeToJSONTyped,
29
+ } from './CallbackEventType';
30
+ import type { ExportConfig } from './ExportConfig';
31
+ import {
32
+ ExportConfigFromJSON,
33
+ ExportConfigFromJSONTyped,
34
+ ExportConfigToJSON,
35
+ ExportConfigToJSONTyped,
36
+ } from './ExportConfig';
37
+ import type { JobDefinition } from './JobDefinition';
38
+ import {
39
+ JobDefinitionFromJSON,
40
+ JobDefinitionFromJSONTyped,
41
+ JobDefinitionToJSON,
42
+ JobDefinitionToJSONTyped,
43
+ } from './JobDefinition';
44
+
45
+ /**
46
+ *
47
+ * @export
48
+ * @interface WorkflowCreateRequest
49
+ */
50
+ export interface WorkflowCreateRequest {
51
+ /**
52
+ * List of jobs in this workflow
53
+ * @type {Array<JobDefinition>}
54
+ * @memberof WorkflowCreateRequest
55
+ */
56
+ jobs: Array<JobDefinition>;
57
+ /**
58
+ * DAG dependency edges between jobs. Each edge defines that a downstream
59
+ * job depends on an upstream job's output. Jobs with no incoming edges
60
+ * start immediately. Jobs with dependencies wait for all upstream jobs.
61
+ *
62
+ * @type {Array<WorkflowEdge>}
63
+ * @memberof WorkflowCreateRequest
64
+ */
65
+ workflowEdges?: Array<WorkflowEdge>;
66
+ /**
67
+ * Webhook URL (HTTPS only). The API POSTs a `WebhookPayload` JSON body to
68
+ * this URL when matching events occur. The payload includes event type,
69
+ * delivery ID, timestamp, and full workflow state with job results and
70
+ * download URLs. Must use HTTPS to prevent credential leakage and SSRF
71
+ * against internal endpoints.
72
+ *
73
+ * **Signature verification:**
74
+ * Each request includes an `X-GIS-Signature` header containing an
75
+ * HMAC-SHA256 hex digest of the raw request body, using the per-workflow
76
+ * `webhook_secret` (returned in the workflow creation response) as the key.
77
+ * Header format: `sha256=<hex(hmac-sha256(webhook_secret, raw_body))>`.
78
+ * Consumers MUST verify the signature before processing the payload.
79
+ *
80
+ * @type {string}
81
+ * @memberof WorkflowCreateRequest
82
+ */
83
+ callbackUrl?: string | null;
84
+ /**
85
+ * Which events trigger the webhook callback. Defaults to terminal events only.
86
+ *
87
+ * @type {Array<CallbackEventType>}
88
+ * @memberof WorkflowCreateRequest
89
+ */
90
+ callbackEvents?: Array<CallbackEventType>;
91
+ /**
92
+ *
93
+ * @type {ExportConfig}
94
+ * @memberof WorkflowCreateRequest
95
+ */
96
+ _export?: ExportConfig;
97
+ }
98
+
99
+ /**
100
+ * Check if a given object implements the WorkflowCreateRequest interface.
101
+ */
102
+ export function instanceOfWorkflowCreateRequest(value: object): value is WorkflowCreateRequest {
103
+ if (!('jobs' in value) || value['jobs'] === undefined) return false;
104
+ return true;
105
+ }
106
+
107
+ export function WorkflowCreateRequestFromJSON(json: any): WorkflowCreateRequest {
108
+ return WorkflowCreateRequestFromJSONTyped(json, false);
109
+ }
110
+
111
+ export function WorkflowCreateRequestFromJSONTyped(json: any, ignoreDiscriminator: boolean): WorkflowCreateRequest {
112
+ if (json == null) {
113
+ return json;
114
+ }
115
+ return {
116
+
117
+ 'jobs': ((json['jobs'] as Array<any>).map(JobDefinitionFromJSON)),
118
+ 'workflowEdges': json['workflow_edges'] == null ? undefined : ((json['workflow_edges'] as Array<any>).map(WorkflowEdgeFromJSON)),
119
+ 'callbackUrl': json['callback_url'] == null ? undefined : json['callback_url'],
120
+ 'callbackEvents': json['callback_events'] == null ? undefined : ((json['callback_events'] as Array<any>).map(CallbackEventTypeFromJSON)),
121
+ '_export': json['export'] == null ? undefined : ExportConfigFromJSON(json['export']),
122
+ };
123
+ }
124
+
125
+ export function WorkflowCreateRequestToJSON(json: any): WorkflowCreateRequest {
126
+ return WorkflowCreateRequestToJSONTyped(json, false);
127
+ }
128
+
129
+ export function WorkflowCreateRequestToJSONTyped(value?: WorkflowCreateRequest | null, ignoreDiscriminator: boolean = false): any {
130
+ if (value == null) {
131
+ return value;
132
+ }
133
+
134
+ return {
135
+
136
+ 'jobs': ((value['jobs'] as Array<any>).map(JobDefinitionToJSON)),
137
+ 'workflow_edges': value['workflowEdges'] == null ? undefined : ((value['workflowEdges'] as Array<any>).map(WorkflowEdgeToJSON)),
138
+ 'callback_url': value['callbackUrl'],
139
+ 'callback_events': value['callbackEvents'] == null ? undefined : ((value['callbackEvents'] as Array<any>).map(CallbackEventTypeToJSON)),
140
+ 'export': ExportConfigToJSON(value['_export']),
141
+ };
142
+ }
143
+
@@ -0,0 +1,114 @@
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 { JobResponse } from './JobResponse';
17
+ import {
18
+ JobResponseFromJSON,
19
+ JobResponseFromJSONTyped,
20
+ JobResponseToJSON,
21
+ JobResponseToJSONTyped,
22
+ } from './JobResponse';
23
+ import type { WorkflowStatus } from './WorkflowStatus';
24
+ import {
25
+ WorkflowStatusFromJSON,
26
+ WorkflowStatusFromJSONTyped,
27
+ WorkflowStatusToJSON,
28
+ WorkflowStatusToJSONTyped,
29
+ } from './WorkflowStatus';
30
+
31
+ /**
32
+ *
33
+ * @export
34
+ * @interface WorkflowCreateResponse
35
+ */
36
+ export interface WorkflowCreateResponse {
37
+ /**
38
+ * UUID v7 format identifier (time-ordered)
39
+ * @type {string}
40
+ * @memberof WorkflowCreateResponse
41
+ */
42
+ workflowId: string;
43
+ /**
44
+ *
45
+ * @type {WorkflowStatus}
46
+ * @memberof WorkflowCreateResponse
47
+ */
48
+ status: WorkflowStatus;
49
+ /**
50
+ *
51
+ * @type {Array<JobResponse>}
52
+ * @memberof WorkflowCreateResponse
53
+ */
54
+ jobs: Array<JobResponse>;
55
+ /**
56
+ * HMAC-SHA256 signing key for webhook verification. Present only when
57
+ * `callback_url` was provided in the request. This is the only time the
58
+ * secret is exposed — it does not appear in status queries.
59
+ *
60
+ * Use this key to verify the `X-GIS-Signature` header on incoming webhook
61
+ * requests: `sha256=<hex(hmac-sha256(webhook_secret, raw_body))>`.
62
+ *
63
+ * @type {string}
64
+ * @memberof WorkflowCreateResponse
65
+ */
66
+ readonly webhookSecret?: string | null;
67
+ }
68
+
69
+
70
+
71
+ /**
72
+ * Check if a given object implements the WorkflowCreateResponse interface.
73
+ */
74
+ export function instanceOfWorkflowCreateResponse(value: object): value is WorkflowCreateResponse {
75
+ if (!('workflowId' in value) || value['workflowId'] === undefined) return false;
76
+ if (!('status' in value) || value['status'] === undefined) return false;
77
+ if (!('jobs' in value) || value['jobs'] === undefined) return false;
78
+ return true;
79
+ }
80
+
81
+ export function WorkflowCreateResponseFromJSON(json: any): WorkflowCreateResponse {
82
+ return WorkflowCreateResponseFromJSONTyped(json, false);
83
+ }
84
+
85
+ export function WorkflowCreateResponseFromJSONTyped(json: any, ignoreDiscriminator: boolean): WorkflowCreateResponse {
86
+ if (json == null) {
87
+ return json;
88
+ }
89
+ return {
90
+
91
+ 'workflowId': json['workflow_id'],
92
+ 'status': WorkflowStatusFromJSON(json['status']),
93
+ 'jobs': ((json['jobs'] as Array<any>).map(JobResponseFromJSON)),
94
+ 'webhookSecret': json['webhook_secret'] == null ? undefined : json['webhook_secret'],
95
+ };
96
+ }
97
+
98
+ export function WorkflowCreateResponseToJSON(json: any): WorkflowCreateResponse {
99
+ return WorkflowCreateResponseToJSONTyped(json, false);
100
+ }
101
+
102
+ export function WorkflowCreateResponseToJSONTyped(value?: Omit<WorkflowCreateResponse, 'webhook_secret'> | null, ignoreDiscriminator: boolean = false): any {
103
+ if (value == null) {
104
+ return value;
105
+ }
106
+
107
+ return {
108
+
109
+ 'workflow_id': value['workflowId'],
110
+ 'status': WorkflowStatusToJSON(value['status']),
111
+ 'jobs': ((value['jobs'] as Array<any>).map(JobResponseToJSON)),
112
+ };
113
+ }
114
+
@@ -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 { WorkflowCreateResponse } from './WorkflowCreateResponse';
17
+ import {
18
+ WorkflowCreateResponseFromJSON,
19
+ WorkflowCreateResponseFromJSONTyped,
20
+ WorkflowCreateResponseToJSON,
21
+ WorkflowCreateResponseToJSONTyped,
22
+ } from './WorkflowCreateResponse';
23
+
24
+ /**
25
+ *
26
+ * @export
27
+ * @interface WorkflowCreateSuccessEnvelope
28
+ */
29
+ export interface WorkflowCreateSuccessEnvelope {
30
+ /**
31
+ *
32
+ * @type {boolean}
33
+ * @memberof WorkflowCreateSuccessEnvelope
34
+ */
35
+ success: WorkflowCreateSuccessEnvelopeSuccessEnum;
36
+ /**
37
+ *
38
+ * @type {WorkflowCreateResponse}
39
+ * @memberof WorkflowCreateSuccessEnvelope
40
+ */
41
+ data: WorkflowCreateResponse;
42
+ }
43
+
44
+
45
+ /**
46
+ * @export
47
+ */
48
+ export const WorkflowCreateSuccessEnvelopeSuccessEnum = {
49
+ true: true
50
+ } as const;
51
+ export type WorkflowCreateSuccessEnvelopeSuccessEnum = typeof WorkflowCreateSuccessEnvelopeSuccessEnum[keyof typeof WorkflowCreateSuccessEnvelopeSuccessEnum];
52
+
53
+
54
+ /**
55
+ * Check if a given object implements the WorkflowCreateSuccessEnvelope interface.
56
+ */
57
+ export function instanceOfWorkflowCreateSuccessEnvelope(value: object): value is WorkflowCreateSuccessEnvelope {
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 WorkflowCreateSuccessEnvelopeFromJSON(json: any): WorkflowCreateSuccessEnvelope {
64
+ return WorkflowCreateSuccessEnvelopeFromJSONTyped(json, false);
65
+ }
66
+
67
+ export function WorkflowCreateSuccessEnvelopeFromJSONTyped(json: any, ignoreDiscriminator: boolean): WorkflowCreateSuccessEnvelope {
68
+ if (json == null) {
69
+ return json;
70
+ }
71
+ return {
72
+
73
+ 'success': json['success'],
74
+ 'data': WorkflowCreateResponseFromJSON(json['data']),
75
+ };
76
+ }
77
+
78
+ export function WorkflowCreateSuccessEnvelopeToJSON(json: any): WorkflowCreateSuccessEnvelope {
79
+ return WorkflowCreateSuccessEnvelopeToJSONTyped(json, false);
80
+ }
81
+
82
+ export function WorkflowCreateSuccessEnvelopeToJSONTyped(value?: WorkflowCreateSuccessEnvelope | null, ignoreDiscriminator: boolean = false): any {
83
+ if (value == null) {
84
+ return value;
85
+ }
86
+
87
+ return {
88
+
89
+ 'success': value['success'],
90
+ 'data': WorkflowCreateResponseToJSON(value['data']),
91
+ };
92
+ }
93
+
@@ -0,0 +1,74 @@
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 { JobDownload } from './JobDownload';
17
+ import {
18
+ JobDownloadFromJSON,
19
+ JobDownloadFromJSONTyped,
20
+ JobDownloadToJSON,
21
+ JobDownloadToJSONTyped,
22
+ } from './JobDownload';
23
+
24
+ /**
25
+ *
26
+ * @export
27
+ * @interface WorkflowDownloadResponse
28
+ */
29
+ export interface WorkflowDownloadResponse {
30
+ /**
31
+ *
32
+ * @type {Array<JobDownload>}
33
+ * @memberof WorkflowDownloadResponse
34
+ */
35
+ downloads: Array<JobDownload>;
36
+ }
37
+
38
+ /**
39
+ * Check if a given object implements the WorkflowDownloadResponse interface.
40
+ */
41
+ export function instanceOfWorkflowDownloadResponse(value: object): value is WorkflowDownloadResponse {
42
+ if (!('downloads' in value) || value['downloads'] === undefined) return false;
43
+ return true;
44
+ }
45
+
46
+ export function WorkflowDownloadResponseFromJSON(json: any): WorkflowDownloadResponse {
47
+ return WorkflowDownloadResponseFromJSONTyped(json, false);
48
+ }
49
+
50
+ export function WorkflowDownloadResponseFromJSONTyped(json: any, ignoreDiscriminator: boolean): WorkflowDownloadResponse {
51
+ if (json == null) {
52
+ return json;
53
+ }
54
+ return {
55
+
56
+ 'downloads': ((json['downloads'] as Array<any>).map(JobDownloadFromJSON)),
57
+ };
58
+ }
59
+
60
+ export function WorkflowDownloadResponseToJSON(json: any): WorkflowDownloadResponse {
61
+ return WorkflowDownloadResponseToJSONTyped(json, false);
62
+ }
63
+
64
+ export function WorkflowDownloadResponseToJSONTyped(value?: WorkflowDownloadResponse | null, ignoreDiscriminator: boolean = false): any {
65
+ if (value == null) {
66
+ return value;
67
+ }
68
+
69
+ return {
70
+
71
+ 'downloads': ((value['downloads'] as Array<any>).map(JobDownloadToJSON)),
72
+ };
73
+ }
74
+
@@ -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 { WorkflowDownloadResponse } from './WorkflowDownloadResponse';
17
+ import {
18
+ WorkflowDownloadResponseFromJSON,
19
+ WorkflowDownloadResponseFromJSONTyped,
20
+ WorkflowDownloadResponseToJSON,
21
+ WorkflowDownloadResponseToJSONTyped,
22
+ } from './WorkflowDownloadResponse';
23
+
24
+ /**
25
+ *
26
+ * @export
27
+ * @interface WorkflowDownloadSuccessEnvelope
28
+ */
29
+ export interface WorkflowDownloadSuccessEnvelope {
30
+ /**
31
+ *
32
+ * @type {boolean}
33
+ * @memberof WorkflowDownloadSuccessEnvelope
34
+ */
35
+ success: WorkflowDownloadSuccessEnvelopeSuccessEnum;
36
+ /**
37
+ *
38
+ * @type {WorkflowDownloadResponse}
39
+ * @memberof WorkflowDownloadSuccessEnvelope
40
+ */
41
+ data: WorkflowDownloadResponse;
42
+ }
43
+
44
+
45
+ /**
46
+ * @export
47
+ */
48
+ export const WorkflowDownloadSuccessEnvelopeSuccessEnum = {
49
+ true: true
50
+ } as const;
51
+ export type WorkflowDownloadSuccessEnvelopeSuccessEnum = typeof WorkflowDownloadSuccessEnvelopeSuccessEnum[keyof typeof WorkflowDownloadSuccessEnvelopeSuccessEnum];
52
+
53
+
54
+ /**
55
+ * Check if a given object implements the WorkflowDownloadSuccessEnvelope interface.
56
+ */
57
+ export function instanceOfWorkflowDownloadSuccessEnvelope(value: object): value is WorkflowDownloadSuccessEnvelope {
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 WorkflowDownloadSuccessEnvelopeFromJSON(json: any): WorkflowDownloadSuccessEnvelope {
64
+ return WorkflowDownloadSuccessEnvelopeFromJSONTyped(json, false);
65
+ }
66
+
67
+ export function WorkflowDownloadSuccessEnvelopeFromJSONTyped(json: any, ignoreDiscriminator: boolean): WorkflowDownloadSuccessEnvelope {
68
+ if (json == null) {
69
+ return json;
70
+ }
71
+ return {
72
+
73
+ 'success': json['success'],
74
+ 'data': WorkflowDownloadResponseFromJSON(json['data']),
75
+ };
76
+ }
77
+
78
+ export function WorkflowDownloadSuccessEnvelopeToJSON(json: any): WorkflowDownloadSuccessEnvelope {
79
+ return WorkflowDownloadSuccessEnvelopeToJSONTyped(json, false);
80
+ }
81
+
82
+ export function WorkflowDownloadSuccessEnvelopeToJSONTyped(value?: WorkflowDownloadSuccessEnvelope | null, ignoreDiscriminator: boolean = false): any {
83
+ if (value == null) {
84
+ return value;
85
+ }
86
+
87
+ return {
88
+
89
+ 'success': value['success'],
90
+ 'data': WorkflowDownloadResponseToJSON(value['data']),
91
+ };
92
+ }
93
+
@@ -0,0 +1,77 @@
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
+ * Directed edge in the workflow DAG. Defines that the downstream job
18
+ * depends on the upstream job completing successfully.
19
+ *
20
+ * @export
21
+ * @interface WorkflowEdge
22
+ */
23
+ export interface WorkflowEdge {
24
+ /**
25
+ * Reference label of the upstream job
26
+ * @type {string}
27
+ * @memberof WorkflowEdge
28
+ */
29
+ from: string;
30
+ /**
31
+ * Reference label of the downstream job
32
+ * @type {string}
33
+ * @memberof WorkflowEdge
34
+ */
35
+ to: string;
36
+ }
37
+
38
+ /**
39
+ * Check if a given object implements the WorkflowEdge interface.
40
+ */
41
+ export function instanceOfWorkflowEdge(value: object): value is WorkflowEdge {
42
+ if (!('from' in value) || value['from'] === undefined) return false;
43
+ if (!('to' in value) || value['to'] === undefined) return false;
44
+ return true;
45
+ }
46
+
47
+ export function WorkflowEdgeFromJSON(json: any): WorkflowEdge {
48
+ return WorkflowEdgeFromJSONTyped(json, false);
49
+ }
50
+
51
+ export function WorkflowEdgeFromJSONTyped(json: any, ignoreDiscriminator: boolean): WorkflowEdge {
52
+ if (json == null) {
53
+ return json;
54
+ }
55
+ return {
56
+
57
+ 'from': json['from'],
58
+ 'to': json['to'],
59
+ };
60
+ }
61
+
62
+ export function WorkflowEdgeToJSON(json: any): WorkflowEdge {
63
+ return WorkflowEdgeToJSONTyped(json, false);
64
+ }
65
+
66
+ export function WorkflowEdgeToJSONTyped(value?: WorkflowEdge | null, ignoreDiscriminator: boolean = false): any {
67
+ if (value == null) {
68
+ return value;
69
+ }
70
+
71
+ return {
72
+
73
+ 'from': value['from'],
74
+ 'to': value['to'],
75
+ };
76
+ }
77
+
@@ -0,0 +1,62 @@
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
+
16
+ /**
17
+ * Workflow lifecycle status:
18
+ * - pending: Created but no jobs have started
19
+ * - in_progress: At least one job is running
20
+ * - completed: All jobs completed successfully
21
+ * - failed: All jobs finished, at least one failed, none succeeded
22
+ * - partially_failed: Some jobs succeeded, some failed
23
+ *
24
+ * @export
25
+ */
26
+ export const WorkflowStatus = {
27
+ pending: 'pending',
28
+ in_progress: 'in_progress',
29
+ completed: 'completed',
30
+ failed: 'failed',
31
+ partially_failed: 'partially_failed'
32
+ } as const;
33
+ export type WorkflowStatus = typeof WorkflowStatus[keyof typeof WorkflowStatus];
34
+
35
+
36
+ export function instanceOfWorkflowStatus(value: any): boolean {
37
+ for (const key in WorkflowStatus) {
38
+ if (Object.prototype.hasOwnProperty.call(WorkflowStatus, key)) {
39
+ if (WorkflowStatus[key as keyof typeof WorkflowStatus] === value) {
40
+ return true;
41
+ }
42
+ }
43
+ }
44
+ return false;
45
+ }
46
+
47
+ export function WorkflowStatusFromJSON(json: any): WorkflowStatus {
48
+ return WorkflowStatusFromJSONTyped(json, false);
49
+ }
50
+
51
+ export function WorkflowStatusFromJSONTyped(json: any, ignoreDiscriminator: boolean): WorkflowStatus {
52
+ return json as WorkflowStatus;
53
+ }
54
+
55
+ export function WorkflowStatusToJSON(value?: WorkflowStatus | null): any {
56
+ return value as any;
57
+ }
58
+
59
+ export function WorkflowStatusToJSONTyped(value: any, ignoreDiscriminator: boolean): WorkflowStatus {
60
+ return value as WorkflowStatus;
61
+ }
62
+