@giveitsmaller/contracts 0.1.2 → 0.2.3

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 (31) hide show
  1. package/asyncapi/events.yaml +2012 -0
  2. package/dist/asyncapi/OperationType.d.ts +4 -0
  3. package/dist/asyncapi/OperationType.js +4 -0
  4. package/dist/openapi/models/JobType.d.ts +8 -1
  5. package/dist/openapi/models/JobType.js +8 -1
  6. package/dist/openapi/models/MultipartCompleteRequest.d.ts +1 -1
  7. package/dist/openapi/models/MultipartCompleteRequest.js +3 -3
  8. package/dist/openapi/models/MultipartCompleteResponse.d.ts +50 -0
  9. package/dist/openapi/models/MultipartCompleteResponse.js +53 -0
  10. package/dist/openapi/models/MultipartCompleteSuccessEnvelope.d.ts +46 -0
  11. package/dist/openapi/models/MultipartCompleteSuccessEnvelope.js +54 -0
  12. package/dist/openapi/models/MultipartInitiateResponse.d.ts +1 -1
  13. package/dist/openapi/models/MultipartInitiateResponse.js +3 -3
  14. package/dist/openapi/models/OperationInputModel.d.ts +3 -1
  15. package/dist/openapi/models/OperationInputModel.js +3 -1
  16. package/dist/openapi/models/OperationType.d.ts +24 -2
  17. package/dist/openapi/models/OperationType.js +24 -2
  18. package/dist/openapi/models/index.d.ts +2 -0
  19. package/dist/openapi/models/index.js +2 -0
  20. package/dist/operations/index.d.ts +1 -0
  21. package/dist/operations/index.js +1 -0
  22. package/dist/operations/watermark.d.ts +28 -0
  23. package/dist/operations/watermark.js +19 -0
  24. package/openapi/api.yaml +2533 -0
  25. package/operations/schemas/archive.yaml +22 -0
  26. package/operations/schemas/compress.yaml +280 -0
  27. package/operations/schemas/convert.yaml +104 -0
  28. package/operations/schemas/merge.yaml +211 -0
  29. package/operations/schemas/thumbnail.yaml +120 -0
  30. package/operations/schemas/watermark.yaml +87 -0
  31. package/package.json +14 -3
@@ -1,6 +1,10 @@
1
1
  declare enum OperationType {
2
2
  COMPRESS = "compress",
3
3
  THUMBNAIL = "thumbnail",
4
+ THUMBNAIL_IMAGE = "thumbnail_image",
5
+ THUMBNAIL_VIDEO = "thumbnail_video",
6
+ THUMBNAIL_DOCUMENT = "thumbnail_document",
7
+ THUMBNAIL_OFFICE = "thumbnail_office",
4
8
  WATERMARK = "watermark",
5
9
  CONVERT = "convert",
6
10
  MERGE = "merge",
@@ -2,6 +2,10 @@ var OperationType;
2
2
  (function (OperationType) {
3
3
  OperationType["COMPRESS"] = "compress";
4
4
  OperationType["THUMBNAIL"] = "thumbnail";
5
+ OperationType["THUMBNAIL_IMAGE"] = "thumbnail_image";
6
+ OperationType["THUMBNAIL_VIDEO"] = "thumbnail_video";
7
+ OperationType["THUMBNAIL_DOCUMENT"] = "thumbnail_document";
8
+ OperationType["THUMBNAIL_OFFICE"] = "thumbnail_office";
5
9
  OperationType["WATERMARK"] = "watermark";
6
10
  OperationType["CONVERT"] = "convert";
7
11
  OperationType["MERGE"] = "merge";
@@ -10,7 +10,14 @@
10
10
  * Do not edit the class manually.
11
11
  */
12
12
  /**
13
- * Media type category derived from MIME type. Used for SNS routing:
13
+ * Media type category derived from MIME type. Used as the
14
+ * `job_type` SNS message attribute on the `job-requests` topic —
15
+ * the single filter attribute that routes compression traffic to
16
+ * per-media-type compression queues. Not used by any other SNS
17
+ * topic; non-compression operations are routed by `operation_type`
18
+ * on the separate `operations` topic.
19
+ *
20
+ * Derivation:
14
21
  * - image/* -> image
15
22
  * - video/* -> video
16
23
  * - audio/* -> audio
@@ -12,7 +12,14 @@
12
12
  * Do not edit the class manually.
13
13
  */
14
14
  /**
15
- * Media type category derived from MIME type. Used for SNS routing:
15
+ * Media type category derived from MIME type. Used as the
16
+ * `job_type` SNS message attribute on the `job-requests` topic —
17
+ * the single filter attribute that routes compression traffic to
18
+ * per-media-type compression queues. Not used by any other SNS
19
+ * topic; non-compression operations are routed by `operation_type`
20
+ * on the separate `operations` topic.
21
+ *
22
+ * Derivation:
16
23
  * - image/* -> image
17
24
  * - video/* -> video
18
25
  * - audio/* -> audio
@@ -21,7 +21,7 @@ export interface MultipartCompleteRequest {
21
21
  * @type {string}
22
22
  * @memberof MultipartCompleteRequest
23
23
  */
24
- fileId: string;
24
+ uploadId: string;
25
25
  /**
26
26
  * ETags for parts 2 through total_parts, collected from S3 PUT responses.
27
27
  * Part 1 ETag is already known from the initiate step.
@@ -16,7 +16,7 @@ import { MultipartCompleteRequestPartsInnerFromJSON, MultipartCompleteRequestPar
16
16
  * Check if a given object implements the MultipartCompleteRequest interface.
17
17
  */
18
18
  export function instanceOfMultipartCompleteRequest(value) {
19
- if (!('fileId' in value) || value['fileId'] === undefined)
19
+ if (!('uploadId' in value) || value['uploadId'] === undefined)
20
20
  return false;
21
21
  if (!('parts' in value) || value['parts'] === undefined)
22
22
  return false;
@@ -30,7 +30,7 @@ export function MultipartCompleteRequestFromJSONTyped(json, ignoreDiscriminator)
30
30
  return json;
31
31
  }
32
32
  return {
33
- 'fileId': json['file_id'],
33
+ 'uploadId': json['upload_id'],
34
34
  'parts': (json['parts'].map(MultipartCompleteRequestPartsInnerFromJSON)),
35
35
  };
36
36
  }
@@ -42,7 +42,7 @@ export function MultipartCompleteRequestToJSONTyped(value, ignoreDiscriminator =
42
42
  return value;
43
43
  }
44
44
  return {
45
- 'file_id': value['fileId'],
45
+ 'upload_id': value['uploadId'],
46
46
  'parts': (value['parts'].map(MultipartCompleteRequestPartsInnerToJSON)),
47
47
  };
48
48
  }
@@ -0,0 +1,50 @@
1
+ /**
2
+ * GISL Compression API
3
+ * 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.
4
+ *
5
+ * The version of the OpenAPI document: 2.0.0
6
+ *
7
+ *
8
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
9
+ * https://openapi-generator.tech
10
+ * Do not edit the class manually.
11
+ */
12
+ /**
13
+ * Result of finalising a multipart upload. Intentionally narrower than
14
+ * `UploadResponse` (single-upload shape) — the server returns only the
15
+ * finalised `upload_id` and a completion status. Clients who need file
16
+ * metadata (original name, MIME type, size) can use the values captured
17
+ * during initiate, or call `GET /api/uploads/{id}/metadata`.
18
+ *
19
+ * @export
20
+ * @interface MultipartCompleteResponse
21
+ */
22
+ export interface MultipartCompleteResponse {
23
+ /**
24
+ * UUID v7 format identifier (time-ordered)
25
+ * @type {string}
26
+ * @memberof MultipartCompleteResponse
27
+ */
28
+ uploadId: string;
29
+ /**
30
+ * Terminal status of the multipart upload session.
31
+ * @type {string}
32
+ * @memberof MultipartCompleteResponse
33
+ */
34
+ status: MultipartCompleteResponseStatusEnum;
35
+ }
36
+ /**
37
+ * @export
38
+ */
39
+ export declare const MultipartCompleteResponseStatusEnum: {
40
+ readonly completed: "completed";
41
+ };
42
+ export type MultipartCompleteResponseStatusEnum = typeof MultipartCompleteResponseStatusEnum[keyof typeof MultipartCompleteResponseStatusEnum];
43
+ /**
44
+ * Check if a given object implements the MultipartCompleteResponse interface.
45
+ */
46
+ export declare function instanceOfMultipartCompleteResponse(value: object): value is MultipartCompleteResponse;
47
+ export declare function MultipartCompleteResponseFromJSON(json: any): MultipartCompleteResponse;
48
+ export declare function MultipartCompleteResponseFromJSONTyped(json: any, ignoreDiscriminator: boolean): MultipartCompleteResponse;
49
+ export declare function MultipartCompleteResponseToJSON(json: any): MultipartCompleteResponse;
50
+ export declare function MultipartCompleteResponseToJSONTyped(value?: MultipartCompleteResponse | null, ignoreDiscriminator?: boolean): any;
@@ -0,0 +1,53 @@
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
+ * @export
16
+ */
17
+ export const MultipartCompleteResponseStatusEnum = {
18
+ completed: 'completed'
19
+ };
20
+ /**
21
+ * Check if a given object implements the MultipartCompleteResponse interface.
22
+ */
23
+ export function instanceOfMultipartCompleteResponse(value) {
24
+ if (!('uploadId' in value) || value['uploadId'] === undefined)
25
+ return false;
26
+ if (!('status' in value) || value['status'] === undefined)
27
+ return false;
28
+ return true;
29
+ }
30
+ export function MultipartCompleteResponseFromJSON(json) {
31
+ return MultipartCompleteResponseFromJSONTyped(json, false);
32
+ }
33
+ export function MultipartCompleteResponseFromJSONTyped(json, ignoreDiscriminator) {
34
+ if (json == null) {
35
+ return json;
36
+ }
37
+ return {
38
+ 'uploadId': json['upload_id'],
39
+ 'status': json['status'],
40
+ };
41
+ }
42
+ export function MultipartCompleteResponseToJSON(json) {
43
+ return MultipartCompleteResponseToJSONTyped(json, false);
44
+ }
45
+ export function MultipartCompleteResponseToJSONTyped(value, ignoreDiscriminator = false) {
46
+ if (value == null) {
47
+ return value;
48
+ }
49
+ return {
50
+ 'upload_id': value['uploadId'],
51
+ 'status': value['status'],
52
+ };
53
+ }
@@ -0,0 +1,46 @@
1
+ /**
2
+ * GISL Compression API
3
+ * 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.
4
+ *
5
+ * The version of the OpenAPI document: 2.0.0
6
+ *
7
+ *
8
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
9
+ * https://openapi-generator.tech
10
+ * Do not edit the class manually.
11
+ */
12
+ import type { MultipartCompleteResponse } from './MultipartCompleteResponse.js';
13
+ /**
14
+ *
15
+ * @export
16
+ * @interface MultipartCompleteSuccessEnvelope
17
+ */
18
+ export interface MultipartCompleteSuccessEnvelope {
19
+ /**
20
+ *
21
+ * @type {boolean}
22
+ * @memberof MultipartCompleteSuccessEnvelope
23
+ */
24
+ success: MultipartCompleteSuccessEnvelopeSuccessEnum;
25
+ /**
26
+ *
27
+ * @type {MultipartCompleteResponse}
28
+ * @memberof MultipartCompleteSuccessEnvelope
29
+ */
30
+ data: MultipartCompleteResponse;
31
+ }
32
+ /**
33
+ * @export
34
+ */
35
+ export declare const MultipartCompleteSuccessEnvelopeSuccessEnum: {
36
+ readonly true: true;
37
+ };
38
+ export type MultipartCompleteSuccessEnvelopeSuccessEnum = typeof MultipartCompleteSuccessEnvelopeSuccessEnum[keyof typeof MultipartCompleteSuccessEnvelopeSuccessEnum];
39
+ /**
40
+ * Check if a given object implements the MultipartCompleteSuccessEnvelope interface.
41
+ */
42
+ export declare function instanceOfMultipartCompleteSuccessEnvelope(value: object): value is MultipartCompleteSuccessEnvelope;
43
+ export declare function MultipartCompleteSuccessEnvelopeFromJSON(json: any): MultipartCompleteSuccessEnvelope;
44
+ export declare function MultipartCompleteSuccessEnvelopeFromJSONTyped(json: any, ignoreDiscriminator: boolean): MultipartCompleteSuccessEnvelope;
45
+ export declare function MultipartCompleteSuccessEnvelopeToJSON(json: any): MultipartCompleteSuccessEnvelope;
46
+ export declare function MultipartCompleteSuccessEnvelopeToJSONTyped(value?: MultipartCompleteSuccessEnvelope | null, ignoreDiscriminator?: boolean): any;
@@ -0,0 +1,54 @@
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
+ import { MultipartCompleteResponseFromJSON, MultipartCompleteResponseToJSON, } from './MultipartCompleteResponse.js';
15
+ /**
16
+ * @export
17
+ */
18
+ export const MultipartCompleteSuccessEnvelopeSuccessEnum = {
19
+ true: true
20
+ };
21
+ /**
22
+ * Check if a given object implements the MultipartCompleteSuccessEnvelope interface.
23
+ */
24
+ export function instanceOfMultipartCompleteSuccessEnvelope(value) {
25
+ if (!('success' in value) || value['success'] === undefined)
26
+ return false;
27
+ if (!('data' in value) || value['data'] === undefined)
28
+ return false;
29
+ return true;
30
+ }
31
+ export function MultipartCompleteSuccessEnvelopeFromJSON(json) {
32
+ return MultipartCompleteSuccessEnvelopeFromJSONTyped(json, false);
33
+ }
34
+ export function MultipartCompleteSuccessEnvelopeFromJSONTyped(json, ignoreDiscriminator) {
35
+ if (json == null) {
36
+ return json;
37
+ }
38
+ return {
39
+ 'success': json['success'],
40
+ 'data': MultipartCompleteResponseFromJSON(json['data']),
41
+ };
42
+ }
43
+ export function MultipartCompleteSuccessEnvelopeToJSON(json) {
44
+ return MultipartCompleteSuccessEnvelopeToJSONTyped(json, false);
45
+ }
46
+ export function MultipartCompleteSuccessEnvelopeToJSONTyped(value, ignoreDiscriminator = false) {
47
+ if (value == null) {
48
+ return value;
49
+ }
50
+ return {
51
+ 'success': value['success'],
52
+ 'data': MultipartCompleteResponseToJSON(value['data']),
53
+ };
54
+ }
@@ -21,7 +21,7 @@ export interface MultipartInitiateResponse {
21
21
  * @type {string}
22
22
  * @memberof MultipartInitiateResponse
23
23
  */
24
- fileId: string;
24
+ uploadId: string;
25
25
  /**
26
26
  * MIME type detected from the first chunk
27
27
  * @type {string}
@@ -16,7 +16,7 @@ import { PresignedUrlPartFromJSON, PresignedUrlPartToJSON, } from './PresignedUr
16
16
  * Check if a given object implements the MultipartInitiateResponse interface.
17
17
  */
18
18
  export function instanceOfMultipartInitiateResponse(value) {
19
- if (!('fileId' in value) || value['fileId'] === undefined)
19
+ if (!('uploadId' in value) || value['uploadId'] === undefined)
20
20
  return false;
21
21
  if (!('mimeType' in value) || value['mimeType'] === undefined)
22
22
  return false;
@@ -40,7 +40,7 @@ export function MultipartInitiateResponseFromJSONTyped(json, ignoreDiscriminator
40
40
  return json;
41
41
  }
42
42
  return {
43
- 'fileId': json['file_id'],
43
+ 'uploadId': json['upload_id'],
44
44
  'mimeType': json['mime_type'],
45
45
  'firstChunkEtag': json['first_chunk_etag'],
46
46
  'firstChunkSizeBytes': json['first_chunk_size_bytes'],
@@ -57,7 +57,7 @@ export function MultipartInitiateResponseToJSONTyped(value, ignoreDiscriminator
57
57
  return value;
58
58
  }
59
59
  return {
60
- 'file_id': value['fileId'],
60
+ 'upload_id': value['uploadId'],
61
61
  'mime_type': value['mimeType'],
62
62
  'first_chunk_etag': value['firstChunkEtag'],
63
63
  'first_chunk_size_bytes': value['firstChunkSizeBytes'],
@@ -11,7 +11,9 @@
11
11
  */
12
12
  /**
13
13
  * Whether the operation accepts a single file or multiple files:
14
- * - single: One input file (compress, thumbnail, watermark, convert)
14
+ * - single: One input file (compress, thumbnail, thumbnail_image,
15
+ * thumbnail_video, thumbnail_document, thumbnail_office,
16
+ * watermark, convert)
15
17
  * - multi: Multiple input files (merge, archive)
16
18
  *
17
19
  * @export
@@ -13,7 +13,9 @@
13
13
  */
14
14
  /**
15
15
  * Whether the operation accepts a single file or multiple files:
16
- * - single: One input file (compress, thumbnail, watermark, convert)
16
+ * - single: One input file (compress, thumbnail, thumbnail_image,
17
+ * thumbnail_video, thumbnail_document, thumbnail_office,
18
+ * watermark, convert)
17
19
  * - multi: Multiple input files (merge, archive)
18
20
  *
19
21
  * @export
@@ -12,17 +12,39 @@
12
12
  /**
13
13
  * Available operation types:
14
14
  * - compress: Reduce file size (images, audio, video, documents)
15
- * - thumbnail: Generate preview image (images, video, documents)
16
- * - watermark: Apply branding/protection (images, video, audio, documents)
15
+ * - thumbnail: Legacy thumbnail value. Generates a preview image
16
+ * for any media type via a single Lambda. Currently the only
17
+ * thumbnail value the compression_api publisher emits; retirement
18
+ * is planned after the publisher adopts the four sub-type values
19
+ * below in a follow-up API PR.
20
+ * - thumbnail_image: Image thumbnail sub-type. Backed by a dedicated
21
+ * Rust image Lambda. Not yet emitted by the publisher.
22
+ * - thumbnail_video: Video thumbnail sub-type. Backed by a dedicated
23
+ * FFmpeg Lambda. Not yet emitted.
24
+ * - thumbnail_document: PDF/EPUB thumbnail sub-type. Backed by a
25
+ * dedicated Ghostscript Lambda. Not yet emitted.
26
+ * - thumbnail_office: Office document (DOCX/XLSX/PPTX/ODT/ODS/ODP)
27
+ * thumbnail sub-type. Backed by a dedicated LibreOffice Lambda.
28
+ * Not yet emitted.
29
+ * - watermark: Apply branding/protection (images only)
17
30
  * - merge: Concatenate/combine multiple files into one (images, video, audio, documents/PDF). Multi-input.
18
31
  * - archive: Bundle files into ZIP/tar.gz (all types). Multi-input.
19
32
  * - convert: Change file format (all types)
20
33
  *
34
+ * Both the legacy `thumbnail` value and the four sub-type values
35
+ * are valid routing targets today during the thumbnail migration
36
+ * window. See `asyncapi/events.yaml` for the full routing
37
+ * vocabulary and the publisher branching rule.
38
+ *
21
39
  * @export
22
40
  */
23
41
  export declare const OperationType: {
24
42
  readonly compress: "compress";
25
43
  readonly thumbnail: "thumbnail";
44
+ readonly thumbnail_image: "thumbnail_image";
45
+ readonly thumbnail_video: "thumbnail_video";
46
+ readonly thumbnail_document: "thumbnail_document";
47
+ readonly thumbnail_office: "thumbnail_office";
26
48
  readonly watermark: "watermark";
27
49
  readonly merge: "merge";
28
50
  readonly archive: "archive";
@@ -14,17 +14,39 @@
14
14
  /**
15
15
  * Available operation types:
16
16
  * - compress: Reduce file size (images, audio, video, documents)
17
- * - thumbnail: Generate preview image (images, video, documents)
18
- * - watermark: Apply branding/protection (images, video, audio, documents)
17
+ * - thumbnail: Legacy thumbnail value. Generates a preview image
18
+ * for any media type via a single Lambda. Currently the only
19
+ * thumbnail value the compression_api publisher emits; retirement
20
+ * is planned after the publisher adopts the four sub-type values
21
+ * below in a follow-up API PR.
22
+ * - thumbnail_image: Image thumbnail sub-type. Backed by a dedicated
23
+ * Rust image Lambda. Not yet emitted by the publisher.
24
+ * - thumbnail_video: Video thumbnail sub-type. Backed by a dedicated
25
+ * FFmpeg Lambda. Not yet emitted.
26
+ * - thumbnail_document: PDF/EPUB thumbnail sub-type. Backed by a
27
+ * dedicated Ghostscript Lambda. Not yet emitted.
28
+ * - thumbnail_office: Office document (DOCX/XLSX/PPTX/ODT/ODS/ODP)
29
+ * thumbnail sub-type. Backed by a dedicated LibreOffice Lambda.
30
+ * Not yet emitted.
31
+ * - watermark: Apply branding/protection (images only)
19
32
  * - merge: Concatenate/combine multiple files into one (images, video, audio, documents/PDF). Multi-input.
20
33
  * - archive: Bundle files into ZIP/tar.gz (all types). Multi-input.
21
34
  * - convert: Change file format (all types)
22
35
  *
36
+ * Both the legacy `thumbnail` value and the four sub-type values
37
+ * are valid routing targets today during the thumbnail migration
38
+ * window. See `asyncapi/events.yaml` for the full routing
39
+ * vocabulary and the publisher branching rule.
40
+ *
23
41
  * @export
24
42
  */
25
43
  export const OperationType = {
26
44
  compress: 'compress',
27
45
  thumbnail: 'thumbnail',
46
+ thumbnail_image: 'thumbnail_image',
47
+ thumbnail_video: 'thumbnail_video',
48
+ thumbnail_document: 'thumbnail_document',
49
+ thumbnail_office: 'thumbnail_office',
28
50
  watermark: 'watermark',
29
51
  merge: 'merge',
30
52
  archive: 'archive',
@@ -20,6 +20,8 @@ export * from './MetadataSuccessEnvelope.js';
20
20
  export * from './MimeGroupSchema.js';
21
21
  export * from './MultipartCompleteRequest.js';
22
22
  export * from './MultipartCompleteRequestPartsInner.js';
23
+ export * from './MultipartCompleteResponse.js';
24
+ export * from './MultipartCompleteSuccessEnvelope.js';
23
25
  export * from './MultipartInitiateResponse.js';
24
26
  export * from './MultipartInitiateSuccessEnvelope.js';
25
27
  export * from './OperationDefinition.js';
@@ -22,6 +22,8 @@ export * from './MetadataSuccessEnvelope.js';
22
22
  export * from './MimeGroupSchema.js';
23
23
  export * from './MultipartCompleteRequest.js';
24
24
  export * from './MultipartCompleteRequestPartsInner.js';
25
+ export * from './MultipartCompleteResponse.js';
26
+ export * from './MultipartCompleteSuccessEnvelope.js';
25
27
  export * from './MultipartInitiateResponse.js';
26
28
  export * from './MultipartInitiateSuccessEnvelope.js';
27
29
  export * from './OperationDefinition.js';
@@ -3,3 +3,4 @@ export * from './compress.js';
3
3
  export * from './convert.js';
4
4
  export * from './merge.js';
5
5
  export * from './thumbnail.js';
6
+ export * from './watermark.js';
@@ -4,3 +4,4 @@ export * from './compress.js';
4
4
  export * from './convert.js';
5
5
  export * from './merge.js';
6
6
  export * from './thumbnail.js';
7
+ export * from './watermark.js';
@@ -0,0 +1,28 @@
1
+ export declare enum WatermarkImageWatermarkType {
2
+ Image = "image",
3
+ Text = "text"
4
+ }
5
+ export declare enum WatermarkImagePosition {
6
+ Center = "center",
7
+ TopLeft = "top-left",
8
+ TopRight = "top-right",
9
+ BottomLeft = "bottom-left",
10
+ BottomRight = "bottom-right"
11
+ }
12
+ export declare enum WatermarkImageWatermarkMode {
13
+ Single = "single",
14
+ Tiled = "tiled"
15
+ }
16
+ export interface WatermarkImageOptions {
17
+ watermark_type?: WatermarkImageWatermarkType;
18
+ position?: WatermarkImagePosition;
19
+ opacity?: number;
20
+ watermark_bucket?: string;
21
+ watermark_key?: string;
22
+ text?: string;
23
+ font_size?: number;
24
+ color?: string;
25
+ watermark_mode?: WatermarkImageWatermarkMode;
26
+ rotation?: number;
27
+ tile_spacing?: number;
28
+ }
@@ -0,0 +1,19 @@
1
+ // Auto-generated from watermark.yaml -- do not edit
2
+ export var WatermarkImageWatermarkType;
3
+ (function (WatermarkImageWatermarkType) {
4
+ WatermarkImageWatermarkType["Image"] = "image";
5
+ WatermarkImageWatermarkType["Text"] = "text";
6
+ })(WatermarkImageWatermarkType || (WatermarkImageWatermarkType = {}));
7
+ export var WatermarkImagePosition;
8
+ (function (WatermarkImagePosition) {
9
+ WatermarkImagePosition["Center"] = "center";
10
+ WatermarkImagePosition["TopLeft"] = "top-left";
11
+ WatermarkImagePosition["TopRight"] = "top-right";
12
+ WatermarkImagePosition["BottomLeft"] = "bottom-left";
13
+ WatermarkImagePosition["BottomRight"] = "bottom-right";
14
+ })(WatermarkImagePosition || (WatermarkImagePosition = {}));
15
+ export var WatermarkImageWatermarkMode;
16
+ (function (WatermarkImageWatermarkMode) {
17
+ WatermarkImageWatermarkMode["Single"] = "single";
18
+ WatermarkImageWatermarkMode["Tiled"] = "tiled";
19
+ })(WatermarkImageWatermarkMode || (WatermarkImageWatermarkMode = {}));