@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,108 @@
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
+ * Export configuration. When set, all operation outputs are copied to the
18
+ * customer's destination in addition to GISL's own S3 storage.
19
+ * Currently supports AWS S3 via cross-account AssumeRole.
20
+ *
21
+ * @export
22
+ * @interface ExportConfig
23
+ */
24
+ export interface ExportConfig {
25
+ /**
26
+ * Destination service
27
+ * @type {string}
28
+ * @memberof ExportConfig
29
+ */
30
+ service: ExportConfigServiceEnum;
31
+ /**
32
+ * Destination bucket name
33
+ * @type {string}
34
+ * @memberof ExportConfig
35
+ */
36
+ bucket: string;
37
+ /**
38
+ * Key prefix for exported files
39
+ * @type {string}
40
+ * @memberof ExportConfig
41
+ */
42
+ keyPrefix?: string;
43
+ /**
44
+ * IAM role ARN in the customer's AWS account. GISL's Lambda assumes this
45
+ * role to write to the customer's bucket. The customer must configure a
46
+ * trust policy allowing GISL's execution role to assume it.
47
+ *
48
+ * @type {string}
49
+ * @memberof ExportConfig
50
+ */
51
+ roleArn: string;
52
+ }
53
+
54
+
55
+ /**
56
+ * @export
57
+ */
58
+ export const ExportConfigServiceEnum = {
59
+ s3: 's3'
60
+ } as const;
61
+ export type ExportConfigServiceEnum = typeof ExportConfigServiceEnum[keyof typeof ExportConfigServiceEnum];
62
+
63
+
64
+ /**
65
+ * Check if a given object implements the ExportConfig interface.
66
+ */
67
+ export function instanceOfExportConfig(value: object): value is ExportConfig {
68
+ if (!('service' in value) || value['service'] === undefined) return false;
69
+ if (!('bucket' in value) || value['bucket'] === undefined) return false;
70
+ if (!('roleArn' in value) || value['roleArn'] === undefined) return false;
71
+ return true;
72
+ }
73
+
74
+ export function ExportConfigFromJSON(json: any): ExportConfig {
75
+ return ExportConfigFromJSONTyped(json, false);
76
+ }
77
+
78
+ export function ExportConfigFromJSONTyped(json: any, ignoreDiscriminator: boolean): ExportConfig {
79
+ if (json == null) {
80
+ return json;
81
+ }
82
+ return {
83
+
84
+ 'service': json['service'],
85
+ 'bucket': json['bucket'],
86
+ 'keyPrefix': json['key_prefix'] == null ? undefined : json['key_prefix'],
87
+ 'roleArn': json['role_arn'],
88
+ };
89
+ }
90
+
91
+ export function ExportConfigToJSON(json: any): ExportConfig {
92
+ return ExportConfigToJSONTyped(json, false);
93
+ }
94
+
95
+ export function ExportConfigToJSONTyped(value?: ExportConfig | null, ignoreDiscriminator: boolean = false): any {
96
+ if (value == null) {
97
+ return value;
98
+ }
99
+
100
+ return {
101
+
102
+ 'service': value['service'],
103
+ 'bucket': value['bucket'],
104
+ 'key_prefix': value['keyPrefix'],
105
+ 'role_arn': value['roleArn'],
106
+ };
107
+ }
108
+
@@ -0,0 +1,56 @@
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
+ * @type JobDefinition
17
+ * A job within a workflow. Each job must have exactly one source:
18
+ * - `file_id`: Direct reference to an uploaded file
19
+ * - `source`: Reference another job's output (single-input downstream)
20
+ * - `inputs`: Reference multiple job outputs (multi-input: merge/archive)
21
+ *
22
+ * Future versions will add `url` and `import` source types for external
23
+ * file references (V2).
24
+ *
25
+ * For single-input jobs with `file_id`, `operations` defaults to
26
+ * `[{ "type": "compress" }]` if omitted. Multi-input jobs must specify
27
+ * operations explicitly.
28
+ *
29
+ * @export
30
+ */
31
+ export type JobDefinition = any;
32
+
33
+ export function JobDefinitionFromJSON(json: any): JobDefinition {
34
+ return JobDefinitionFromJSONTyped(json, false);
35
+ }
36
+
37
+ export function JobDefinitionFromJSONTyped(json: any, ignoreDiscriminator: boolean): JobDefinition {
38
+ if (json == null) {
39
+ return json;
40
+ }
41
+
42
+ return {} as any;
43
+ }
44
+
45
+ export function JobDefinitionToJSON(json: any): any {
46
+ return JobDefinitionToJSONTyped(json, false);
47
+ }
48
+
49
+ export function JobDefinitionToJSONTyped(value?: JobDefinition | null, ignoreDiscriminator: boolean = false): any {
50
+ if (value == null) {
51
+ return value;
52
+ }
53
+
54
+ return {};
55
+ }
56
+
@@ -0,0 +1,92 @@
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 { OperationDownload } from './OperationDownload';
17
+ import {
18
+ OperationDownloadFromJSON,
19
+ OperationDownloadFromJSONTyped,
20
+ OperationDownloadToJSON,
21
+ OperationDownloadToJSONTyped,
22
+ } from './OperationDownload';
23
+
24
+ /**
25
+ *
26
+ * @export
27
+ * @interface JobDownload
28
+ */
29
+ export interface JobDownload {
30
+ /**
31
+ * Job reference label
32
+ * @type {string}
33
+ * @memberof JobDownload
34
+ */
35
+ ref: string;
36
+ /**
37
+ * UUID v7 format identifier (time-ordered)
38
+ * @type {string}
39
+ * @memberof JobDownload
40
+ */
41
+ jobId: string;
42
+ /**
43
+ *
44
+ * @type {Array<OperationDownload>}
45
+ * @memberof JobDownload
46
+ */
47
+ files: Array<OperationDownload>;
48
+ }
49
+
50
+ /**
51
+ * Check if a given object implements the JobDownload interface.
52
+ */
53
+ export function instanceOfJobDownload(value: object): value is JobDownload {
54
+ if (!('ref' in value) || value['ref'] === undefined) return false;
55
+ if (!('jobId' in value) || value['jobId'] === undefined) return false;
56
+ if (!('files' in value) || value['files'] === undefined) return false;
57
+ return true;
58
+ }
59
+
60
+ export function JobDownloadFromJSON(json: any): JobDownload {
61
+ return JobDownloadFromJSONTyped(json, false);
62
+ }
63
+
64
+ export function JobDownloadFromJSONTyped(json: any, ignoreDiscriminator: boolean): JobDownload {
65
+ if (json == null) {
66
+ return json;
67
+ }
68
+ return {
69
+
70
+ 'ref': json['ref'],
71
+ 'jobId': json['job_id'],
72
+ 'files': ((json['files'] as Array<any>).map(OperationDownloadFromJSON)),
73
+ };
74
+ }
75
+
76
+ export function JobDownloadToJSON(json: any): JobDownload {
77
+ return JobDownloadToJSONTyped(json, false);
78
+ }
79
+
80
+ export function JobDownloadToJSONTyped(value?: JobDownload | null, ignoreDiscriminator: boolean = false): any {
81
+ if (value == null) {
82
+ return value;
83
+ }
84
+
85
+ return {
86
+
87
+ 'ref': value['ref'],
88
+ 'job_id': value['jobId'],
89
+ 'files': ((value['files'] as Array<any>).map(OperationDownloadToJSON)),
90
+ };
91
+ }
92
+
@@ -0,0 +1,89 @@
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
+ * Single input reference for multi-input operations. Each references a
18
+ * specific job and optionally a specific operation output from that job.
19
+ *
20
+ * @export
21
+ * @interface JobInput
22
+ */
23
+ export interface JobInput {
24
+ /**
25
+ * Reference label of the upstream job
26
+ * @type {string}
27
+ * @memberof JobInput
28
+ */
29
+ ref: string;
30
+ /**
31
+ * Specific operation output to use. If omitted, uses the last
32
+ * operation's output.
33
+ *
34
+ * @type {string}
35
+ * @memberof JobInput
36
+ */
37
+ operation?: string;
38
+ /**
39
+ * Per-input option overrides. For merge operations, individual inputs
40
+ * can override global transition settings for the join point preceding
41
+ * this input. Keys are option names, values are the override values.
42
+ *
43
+ * @type {{ [key: string]: any; }}
44
+ * @memberof JobInput
45
+ */
46
+ perInputOptions?: { [key: string]: any; };
47
+ }
48
+
49
+ /**
50
+ * Check if a given object implements the JobInput interface.
51
+ */
52
+ export function instanceOfJobInput(value: object): value is JobInput {
53
+ if (!('ref' in value) || value['ref'] === undefined) return false;
54
+ return true;
55
+ }
56
+
57
+ export function JobInputFromJSON(json: any): JobInput {
58
+ return JobInputFromJSONTyped(json, false);
59
+ }
60
+
61
+ export function JobInputFromJSONTyped(json: any, ignoreDiscriminator: boolean): JobInput {
62
+ if (json == null) {
63
+ return json;
64
+ }
65
+ return {
66
+
67
+ 'ref': json['ref'],
68
+ 'operation': json['operation'] == null ? undefined : json['operation'],
69
+ 'perInputOptions': json['per_input_options'] == null ? undefined : json['per_input_options'],
70
+ };
71
+ }
72
+
73
+ export function JobInputToJSON(json: any): JobInput {
74
+ return JobInputToJSONTyped(json, false);
75
+ }
76
+
77
+ export function JobInputToJSONTyped(value?: JobInput | null, ignoreDiscriminator: boolean = false): any {
78
+ if (value == null) {
79
+ return value;
80
+ }
81
+
82
+ return {
83
+
84
+ 'ref': value['ref'],
85
+ 'operation': value['operation'],
86
+ 'per_input_options': value['perInputOptions'],
87
+ };
88
+ }
89
+
@@ -0,0 +1,119 @@
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 { JobStatus } from './JobStatus';
17
+ import {
18
+ JobStatusFromJSON,
19
+ JobStatusFromJSONTyped,
20
+ JobStatusToJSON,
21
+ JobStatusToJSONTyped,
22
+ } from './JobStatus';
23
+ import type { OperationResponse } from './OperationResponse';
24
+ import {
25
+ OperationResponseFromJSON,
26
+ OperationResponseFromJSONTyped,
27
+ OperationResponseToJSON,
28
+ OperationResponseToJSONTyped,
29
+ } from './OperationResponse';
30
+
31
+ /**
32
+ * Job status within a workflow response
33
+ * @export
34
+ * @interface JobResponse
35
+ */
36
+ export interface JobResponse {
37
+ /**
38
+ * Job reference label
39
+ * @type {string}
40
+ * @memberof JobResponse
41
+ */
42
+ ref: string;
43
+ /**
44
+ * UUID v7 format identifier (time-ordered)
45
+ * @type {string}
46
+ * @memberof JobResponse
47
+ */
48
+ jobId: string;
49
+ /**
50
+ *
51
+ * @type {JobStatus}
52
+ * @memberof JobResponse
53
+ */
54
+ status: JobStatus;
55
+ /**
56
+ * List of upstream job refs this job depends on
57
+ * @type {Array<string>}
58
+ * @memberof JobResponse
59
+ */
60
+ dependsOn: Array<string>;
61
+ /**
62
+ *
63
+ * @type {Array<OperationResponse>}
64
+ * @memberof JobResponse
65
+ */
66
+ operations: Array<OperationResponse>;
67
+ }
68
+
69
+
70
+
71
+ /**
72
+ * Check if a given object implements the JobResponse interface.
73
+ */
74
+ export function instanceOfJobResponse(value: object): value is JobResponse {
75
+ if (!('ref' in value) || value['ref'] === undefined) return false;
76
+ if (!('jobId' in value) || value['jobId'] === undefined) return false;
77
+ if (!('status' in value) || value['status'] === undefined) return false;
78
+ if (!('dependsOn' in value) || value['dependsOn'] === undefined) return false;
79
+ if (!('operations' in value) || value['operations'] === undefined) return false;
80
+ return true;
81
+ }
82
+
83
+ export function JobResponseFromJSON(json: any): JobResponse {
84
+ return JobResponseFromJSONTyped(json, false);
85
+ }
86
+
87
+ export function JobResponseFromJSONTyped(json: any, ignoreDiscriminator: boolean): JobResponse {
88
+ if (json == null) {
89
+ return json;
90
+ }
91
+ return {
92
+
93
+ 'ref': json['ref'],
94
+ 'jobId': json['job_id'],
95
+ 'status': JobStatusFromJSON(json['status']),
96
+ 'dependsOn': json['depends_on'],
97
+ 'operations': ((json['operations'] as Array<any>).map(OperationResponseFromJSON)),
98
+ };
99
+ }
100
+
101
+ export function JobResponseToJSON(json: any): JobResponse {
102
+ return JobResponseToJSONTyped(json, false);
103
+ }
104
+
105
+ export function JobResponseToJSONTyped(value?: JobResponse | null, ignoreDiscriminator: boolean = false): any {
106
+ if (value == null) {
107
+ return value;
108
+ }
109
+
110
+ return {
111
+
112
+ 'ref': value['ref'],
113
+ 'job_id': value['jobId'],
114
+ 'status': JobStatusToJSON(value['status']),
115
+ 'depends_on': value['dependsOn'],
116
+ 'operations': ((value['operations'] as Array<any>).map(OperationResponseToJSON)),
117
+ };
118
+ }
119
+
@@ -0,0 +1,79 @@
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
+ * Reference to another job's output for single-input downstream jobs.
18
+ * The input is the referenced job's output, resolved via the incoming
19
+ * workflow edge.
20
+ *
21
+ * @export
22
+ * @interface JobSource
23
+ */
24
+ export interface JobSource {
25
+ /**
26
+ * Reference label of the upstream job
27
+ * @type {string}
28
+ * @memberof JobSource
29
+ */
30
+ ref: string;
31
+ /**
32
+ * Specific operation output to use from the upstream job.
33
+ * If omitted, uses the last operation's output.
34
+ *
35
+ * @type {string}
36
+ * @memberof JobSource
37
+ */
38
+ operation?: string;
39
+ }
40
+
41
+ /**
42
+ * Check if a given object implements the JobSource interface.
43
+ */
44
+ export function instanceOfJobSource(value: object): value is JobSource {
45
+ if (!('ref' in value) || value['ref'] === undefined) return false;
46
+ return true;
47
+ }
48
+
49
+ export function JobSourceFromJSON(json: any): JobSource {
50
+ return JobSourceFromJSONTyped(json, false);
51
+ }
52
+
53
+ export function JobSourceFromJSONTyped(json: any, ignoreDiscriminator: boolean): JobSource {
54
+ if (json == null) {
55
+ return json;
56
+ }
57
+ return {
58
+
59
+ 'ref': json['ref'],
60
+ 'operation': json['operation'] == null ? undefined : json['operation'],
61
+ };
62
+ }
63
+
64
+ export function JobSourceToJSON(json: any): JobSource {
65
+ return JobSourceToJSONTyped(json, false);
66
+ }
67
+
68
+ export function JobSourceToJSONTyped(value?: JobSource | null, ignoreDiscriminator: boolean = false): any {
69
+ if (value == null) {
70
+ return value;
71
+ }
72
+
73
+ return {
74
+
75
+ 'ref': value['ref'],
76
+ 'operation': value['operation'],
77
+ };
78
+ }
79
+
@@ -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
+ * Job lifecycle status:
18
+ * - pending: Created, waiting to be scheduled
19
+ * - waiting: Blocked by upstream job dependencies (workflow_edges)
20
+ * - in_progress: At least one operation is running
21
+ * - completed: All operations completed successfully
22
+ * - failed: Job failed (at least one operation failed)
23
+ *
24
+ * @export
25
+ */
26
+ export const JobStatus = {
27
+ pending: 'pending',
28
+ waiting: 'waiting',
29
+ in_progress: 'in_progress',
30
+ completed: 'completed',
31
+ failed: 'failed'
32
+ } as const;
33
+ export type JobStatus = typeof JobStatus[keyof typeof JobStatus];
34
+
35
+
36
+ export function instanceOfJobStatus(value: any): boolean {
37
+ for (const key in JobStatus) {
38
+ if (Object.prototype.hasOwnProperty.call(JobStatus, key)) {
39
+ if (JobStatus[key as keyof typeof JobStatus] === value) {
40
+ return true;
41
+ }
42
+ }
43
+ }
44
+ return false;
45
+ }
46
+
47
+ export function JobStatusFromJSON(json: any): JobStatus {
48
+ return JobStatusFromJSONTyped(json, false);
49
+ }
50
+
51
+ export function JobStatusFromJSONTyped(json: any, ignoreDiscriminator: boolean): JobStatus {
52
+ return json as JobStatus;
53
+ }
54
+
55
+ export function JobStatusToJSON(value?: JobStatus | null): any {
56
+ return value as any;
57
+ }
58
+
59
+ export function JobStatusToJSONTyped(value: any, ignoreDiscriminator: boolean): JobStatus {
60
+ return value as JobStatus;
61
+ }
62
+
@@ -0,0 +1,60 @@
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
+ * Media type category derived from MIME type. Used for SNS routing:
18
+ * - image/* -> image
19
+ * - video/* -> video
20
+ * - audio/* -> audio
21
+ * - document types -> document (PDF, DOCX, XLSX, PPTX, ODT, ODS, ODP, EPUB)
22
+ *
23
+ * @export
24
+ */
25
+ export const JobType = {
26
+ image: 'image',
27
+ video: 'video',
28
+ audio: 'audio',
29
+ document: 'document'
30
+ } as const;
31
+ export type JobType = typeof JobType[keyof typeof JobType];
32
+
33
+
34
+ export function instanceOfJobType(value: any): boolean {
35
+ for (const key in JobType) {
36
+ if (Object.prototype.hasOwnProperty.call(JobType, key)) {
37
+ if (JobType[key as keyof typeof JobType] === value) {
38
+ return true;
39
+ }
40
+ }
41
+ }
42
+ return false;
43
+ }
44
+
45
+ export function JobTypeFromJSON(json: any): JobType {
46
+ return JobTypeFromJSONTyped(json, false);
47
+ }
48
+
49
+ export function JobTypeFromJSONTyped(json: any, ignoreDiscriminator: boolean): JobType {
50
+ return json as JobType;
51
+ }
52
+
53
+ export function JobTypeToJSON(value?: JobType | null): any {
54
+ return value as any;
55
+ }
56
+
57
+ export function JobTypeToJSONTyped(value: any, ignoreDiscriminator: boolean): JobType {
58
+ return value as JobType;
59
+ }
60
+