@mamindom/contracts 1.0.54 → 1.0.55

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.
@@ -5,6 +5,14 @@ export declare enum MediaStatus {
5
5
  MEDIA_STATUS_PENDING = 1,
6
6
  MEDIA_STATUS_READY = 2,
7
7
  MEDIA_STATUS_FAILED = 3,
8
+ MEDIA_STATUS_PROCESSING = 4,
9
+ UNRECOGNIZED = -1
10
+ }
11
+ export declare enum MediaType {
12
+ MEDIA_TYPE_UNSPECIFIED = 0,
13
+ MEDIA_TYPE_IMAGE = 1,
14
+ MEDIA_TYPE_VIDEO = 2,
15
+ MEDIA_TYPE_DOCUMENT = 3,
8
16
  UNRECOGNIZED = -1
9
17
  }
10
18
  export interface GetPresignedUrlRequest {
@@ -27,6 +35,50 @@ export interface GetMultiplePresignedUrlsResponse {
27
35
  export interface ConfirmUploadRequest {
28
36
  fileId: string;
29
37
  }
38
+ export interface InitMultipartUploadRequest {
39
+ fileName: string;
40
+ mimeType: string;
41
+ fileSize: number;
42
+ createdById: string;
43
+ totalParts: number;
44
+ }
45
+ export interface InitMultipartUploadResponse {
46
+ fileId: string;
47
+ uploadId: string;
48
+ s3Key: string;
49
+ }
50
+ export interface GetMultipartPresignedUrlsRequest {
51
+ fileId: string;
52
+ uploadId: string;
53
+ s3Key: string;
54
+ partStart: number;
55
+ partEnd: number;
56
+ }
57
+ export interface PresignedPartUrl {
58
+ partNumber: number;
59
+ uploadUrl: string;
60
+ }
61
+ export interface GetMultipartPresignedUrlsResponse {
62
+ parts: PresignedPartUrl[];
63
+ }
64
+ export interface CompletedPart {
65
+ partNumber: number;
66
+ etag: string;
67
+ }
68
+ export interface CompleteMultipartUploadRequest {
69
+ fileId: string;
70
+ uploadId: string;
71
+ s3Key: string;
72
+ parts: CompletedPart[];
73
+ }
74
+ export interface AbortMultipartUploadRequest {
75
+ fileId: string;
76
+ uploadId: string;
77
+ s3Key: string;
78
+ }
79
+ export interface AbortMultipartUploadResponse {
80
+ success: boolean;
81
+ }
30
82
  export interface DeleteMediaRequest {
31
83
  fileId: string;
32
84
  }
@@ -44,12 +96,19 @@ export interface MediaResponse {
44
96
  publicUrl: string;
45
97
  createdById: string;
46
98
  status: MediaStatus;
99
+ type: MediaType;
100
+ thumbnailUrl?: string | undefined;
101
+ duration?: number | undefined;
47
102
  }
48
103
  export declare const MEDIA_V1_PACKAGE_NAME = "media.v1";
49
104
  export interface MediaServiceClient {
50
105
  getPresignedUploadUrl(request: GetPresignedUrlRequest): Observable<GetPresignedUrlResponse>;
51
106
  getMultiplePresignedUploadUrls(request: GetMultiplePresignedUrlsRequest): Observable<GetMultiplePresignedUrlsResponse>;
52
107
  confirmUpload(request: ConfirmUploadRequest): Observable<MediaResponse>;
108
+ initMultipartUpload(request: InitMultipartUploadRequest): Observable<InitMultipartUploadResponse>;
109
+ getMultipartPresignedUrls(request: GetMultipartPresignedUrlsRequest): Observable<GetMultipartPresignedUrlsResponse>;
110
+ completeMultipartUpload(request: CompleteMultipartUploadRequest): Observable<MediaResponse>;
111
+ abortMultipartUpload(request: AbortMultipartUploadRequest): Observable<AbortMultipartUploadResponse>;
53
112
  deleteMedia(request: DeleteMediaRequest): Observable<DeleteMediaResponse>;
54
113
  getMedia(request: GetMediaRequest): Observable<MediaResponse>;
55
114
  }
@@ -57,6 +116,10 @@ export interface MediaServiceController {
57
116
  getPresignedUploadUrl(request: GetPresignedUrlRequest): Promise<GetPresignedUrlResponse> | Observable<GetPresignedUrlResponse> | GetPresignedUrlResponse;
58
117
  getMultiplePresignedUploadUrls(request: GetMultiplePresignedUrlsRequest): Promise<GetMultiplePresignedUrlsResponse> | Observable<GetMultiplePresignedUrlsResponse> | GetMultiplePresignedUrlsResponse;
59
118
  confirmUpload(request: ConfirmUploadRequest): Promise<MediaResponse> | Observable<MediaResponse> | MediaResponse;
119
+ initMultipartUpload(request: InitMultipartUploadRequest): Promise<InitMultipartUploadResponse> | Observable<InitMultipartUploadResponse> | InitMultipartUploadResponse;
120
+ getMultipartPresignedUrls(request: GetMultipartPresignedUrlsRequest): Promise<GetMultipartPresignedUrlsResponse> | Observable<GetMultipartPresignedUrlsResponse> | GetMultipartPresignedUrlsResponse;
121
+ completeMultipartUpload(request: CompleteMultipartUploadRequest): Promise<MediaResponse> | Observable<MediaResponse> | MediaResponse;
122
+ abortMultipartUpload(request: AbortMultipartUploadRequest): Promise<AbortMultipartUploadResponse> | Observable<AbortMultipartUploadResponse> | AbortMultipartUploadResponse;
60
123
  deleteMedia(request: DeleteMediaRequest): Promise<DeleteMediaResponse> | Observable<DeleteMediaResponse> | DeleteMediaResponse;
61
124
  getMedia(request: GetMediaRequest): Promise<MediaResponse> | Observable<MediaResponse> | MediaResponse;
62
125
  }
package/dist/gen/media.js CHANGED
@@ -5,7 +5,7 @@
5
5
  // protoc v3.21.12
6
6
  // source: media.proto
7
7
  Object.defineProperty(exports, "__esModule", { value: true });
8
- exports.MEDIA_SERVICE_NAME = exports.MEDIA_V1_PACKAGE_NAME = exports.MediaStatus = exports.protobufPackage = void 0;
8
+ exports.MEDIA_SERVICE_NAME = exports.MEDIA_V1_PACKAGE_NAME = exports.MediaType = exports.MediaStatus = exports.protobufPackage = void 0;
9
9
  exports.MediaServiceControllerMethods = MediaServiceControllerMethods;
10
10
  /* eslint-disable */
11
11
  const microservices_1 = require("@nestjs/microservices");
@@ -16,8 +16,17 @@ var MediaStatus;
16
16
  MediaStatus[MediaStatus["MEDIA_STATUS_PENDING"] = 1] = "MEDIA_STATUS_PENDING";
17
17
  MediaStatus[MediaStatus["MEDIA_STATUS_READY"] = 2] = "MEDIA_STATUS_READY";
18
18
  MediaStatus[MediaStatus["MEDIA_STATUS_FAILED"] = 3] = "MEDIA_STATUS_FAILED";
19
+ MediaStatus[MediaStatus["MEDIA_STATUS_PROCESSING"] = 4] = "MEDIA_STATUS_PROCESSING";
19
20
  MediaStatus[MediaStatus["UNRECOGNIZED"] = -1] = "UNRECOGNIZED";
20
21
  })(MediaStatus || (exports.MediaStatus = MediaStatus = {}));
22
+ var MediaType;
23
+ (function (MediaType) {
24
+ MediaType[MediaType["MEDIA_TYPE_UNSPECIFIED"] = 0] = "MEDIA_TYPE_UNSPECIFIED";
25
+ MediaType[MediaType["MEDIA_TYPE_IMAGE"] = 1] = "MEDIA_TYPE_IMAGE";
26
+ MediaType[MediaType["MEDIA_TYPE_VIDEO"] = 2] = "MEDIA_TYPE_VIDEO";
27
+ MediaType[MediaType["MEDIA_TYPE_DOCUMENT"] = 3] = "MEDIA_TYPE_DOCUMENT";
28
+ MediaType[MediaType["UNRECOGNIZED"] = -1] = "UNRECOGNIZED";
29
+ })(MediaType || (exports.MediaType = MediaType = {}));
21
30
  exports.MEDIA_V1_PACKAGE_NAME = "media.v1";
22
31
  function MediaServiceControllerMethods() {
23
32
  return function (constructor) {
@@ -25,6 +34,10 @@ function MediaServiceControllerMethods() {
25
34
  "getPresignedUploadUrl",
26
35
  "getMultiplePresignedUploadUrls",
27
36
  "confirmUpload",
37
+ "initMultipartUpload",
38
+ "getMultipartPresignedUrls",
39
+ "completeMultipartUpload",
40
+ "abortMultipartUpload",
28
41
  "deleteMedia",
29
42
  "getMedia",
30
43
  ];
@@ -4,39 +4,50 @@ package media.v1;
4
4
 
5
5
  service MediaService {
6
6
 
7
- rpc GetPresignedUploadUrl (GetPresignedUrlRequest) returns (GetPresignedUrlResponse);
8
-
9
7
 
8
+ rpc GetPresignedUploadUrl (GetPresignedUrlRequest) returns (GetPresignedUrlResponse);
10
9
  rpc GetMultiplePresignedUploadUrls (GetMultiplePresignedUrlsRequest) returns (GetMultiplePresignedUrlsResponse);
11
-
12
-
13
10
  rpc ConfirmUpload (ConfirmUploadRequest) returns (MediaResponse);
14
-
15
11
 
16
- rpc DeleteMedia (DeleteMediaRequest) returns (DeleteMediaResponse);
17
12
 
13
+ rpc InitMultipartUpload (InitMultipartUploadRequest) returns (InitMultipartUploadResponse);
14
+ rpc GetMultipartPresignedUrls (GetMultipartPresignedUrlsRequest) returns (GetMultipartPresignedUrlsResponse);
15
+ rpc CompleteMultipartUpload (CompleteMultipartUploadRequest) returns (MediaResponse);
16
+ rpc AbortMultipartUpload (AbortMultipartUploadRequest) returns (AbortMultipartUploadResponse);
18
17
 
18
+
19
+ rpc DeleteMedia (DeleteMediaRequest) returns (DeleteMediaResponse);
19
20
  rpc GetMedia (GetMediaRequest) returns (MediaResponse);
20
21
  }
21
22
 
22
23
  enum MediaStatus {
23
24
  MEDIA_STATUS_UNSPECIFIED = 0;
24
- MEDIA_STATUS_PENDING = 1;
25
+ MEDIA_STATUS_PENDING = 1;
25
26
  MEDIA_STATUS_READY = 2;
26
- MEDIA_STATUS_FAILED = 3;
27
+ MEDIA_STATUS_FAILED = 3;
28
+ MEDIA_STATUS_PROCESSING = 4;
29
+ }
30
+
31
+ enum MediaType {
32
+ MEDIA_TYPE_UNSPECIFIED = 0;
33
+ MEDIA_TYPE_IMAGE = 1;
34
+ MEDIA_TYPE_VIDEO = 2;
35
+ MEDIA_TYPE_DOCUMENT = 3;
27
36
  }
28
37
 
38
+
39
+
29
40
  message GetPresignedUrlRequest {
30
- string file_name = 1;
31
- string mime_type = 2;
32
- int64 file_size = 3;
33
- string created_by_id = 4;
41
+ string file_name = 1;
42
+ string mime_type = 2;
43
+ int64 file_size = 3;
44
+ string created_by_id = 4;
34
45
  }
35
46
 
36
47
  message GetPresignedUrlResponse {
37
- string upload_url = 1;
38
- string file_id = 2;
39
- string public_url = 3;
48
+ string upload_url = 1;
49
+ string file_id = 2;
50
+ string public_url = 3;
40
51
  }
41
52
 
42
53
  message GetMultiplePresignedUrlsRequest {
@@ -48,9 +59,66 @@ message GetMultiplePresignedUrlsResponse {
48
59
  }
49
60
 
50
61
  message ConfirmUploadRequest {
51
- string file_id = 1;
62
+ string file_id = 1;
63
+ }
64
+
65
+
66
+
67
+ message InitMultipartUploadRequest {
68
+ string file_name = 1;
69
+ string mime_type = 2;
70
+ int64 file_size = 3;
71
+ string created_by_id = 4;
72
+ int32 total_parts = 5;
73
+ }
74
+
75
+ message InitMultipartUploadResponse {
76
+ string file_id = 1;
77
+ string upload_id = 2;
78
+ string s3_key = 3;
52
79
  }
53
80
 
81
+ message GetMultipartPresignedUrlsRequest {
82
+ string file_id = 1;
83
+ string upload_id = 2;
84
+ string s3_key = 3;
85
+ int32 part_start = 4;
86
+ int32 part_end = 5;
87
+ }
88
+
89
+ message PresignedPartUrl {
90
+ int32 part_number = 1;
91
+ string upload_url = 2;
92
+ }
93
+
94
+ message GetMultipartPresignedUrlsResponse {
95
+ repeated PresignedPartUrl parts = 1;
96
+ }
97
+
98
+ message CompletedPart {
99
+ int32 part_number = 1;
100
+ string etag = 2;
101
+ }
102
+
103
+ message CompleteMultipartUploadRequest {
104
+ string file_id = 1;
105
+ string upload_id = 2;
106
+ string s3_key = 3;
107
+ repeated CompletedPart parts = 4;
108
+ }
109
+
110
+ message AbortMultipartUploadRequest {
111
+ string file_id = 1;
112
+ string upload_id = 2;
113
+ string s3_key = 3;
114
+ }
115
+
116
+ message AbortMultipartUploadResponse {
117
+ bool success = 1;
118
+ }
119
+
120
+
121
+
54
122
  message DeleteMediaRequest {
55
123
  string file_id = 1;
56
124
  }
@@ -68,7 +136,10 @@ message MediaResponse {
68
136
  string file_name = 2;
69
137
  string mime_type = 3;
70
138
  int64 file_size = 4;
71
- string public_url = 5;
139
+ string public_url = 5;
72
140
  string created_by_id = 6;
73
- MediaStatus status = 7;
74
- }
141
+ MediaStatus status = 7;
142
+ MediaType type = 8;
143
+ optional string thumbnail_url = 9;
144
+ optional int32 duration = 10;
145
+ }
package/gen/media.ts CHANGED
@@ -15,6 +15,15 @@ export enum MediaStatus {
15
15
  MEDIA_STATUS_PENDING = 1,
16
16
  MEDIA_STATUS_READY = 2,
17
17
  MEDIA_STATUS_FAILED = 3,
18
+ MEDIA_STATUS_PROCESSING = 4,
19
+ UNRECOGNIZED = -1,
20
+ }
21
+
22
+ export enum MediaType {
23
+ MEDIA_TYPE_UNSPECIFIED = 0,
24
+ MEDIA_TYPE_IMAGE = 1,
25
+ MEDIA_TYPE_VIDEO = 2,
26
+ MEDIA_TYPE_DOCUMENT = 3,
18
27
  UNRECOGNIZED = -1,
19
28
  }
20
29
 
@@ -43,6 +52,59 @@ export interface ConfirmUploadRequest {
43
52
  fileId: string;
44
53
  }
45
54
 
55
+ export interface InitMultipartUploadRequest {
56
+ fileName: string;
57
+ mimeType: string;
58
+ fileSize: number;
59
+ createdById: string;
60
+ totalParts: number;
61
+ }
62
+
63
+ export interface InitMultipartUploadResponse {
64
+ fileId: string;
65
+ uploadId: string;
66
+ s3Key: string;
67
+ }
68
+
69
+ export interface GetMultipartPresignedUrlsRequest {
70
+ fileId: string;
71
+ uploadId: string;
72
+ s3Key: string;
73
+ partStart: number;
74
+ partEnd: number;
75
+ }
76
+
77
+ export interface PresignedPartUrl {
78
+ partNumber: number;
79
+ uploadUrl: string;
80
+ }
81
+
82
+ export interface GetMultipartPresignedUrlsResponse {
83
+ parts: PresignedPartUrl[];
84
+ }
85
+
86
+ export interface CompletedPart {
87
+ partNumber: number;
88
+ etag: string;
89
+ }
90
+
91
+ export interface CompleteMultipartUploadRequest {
92
+ fileId: string;
93
+ uploadId: string;
94
+ s3Key: string;
95
+ parts: CompletedPart[];
96
+ }
97
+
98
+ export interface AbortMultipartUploadRequest {
99
+ fileId: string;
100
+ uploadId: string;
101
+ s3Key: string;
102
+ }
103
+
104
+ export interface AbortMultipartUploadResponse {
105
+ success: boolean;
106
+ }
107
+
46
108
  export interface DeleteMediaRequest {
47
109
  fileId: string;
48
110
  }
@@ -63,6 +125,9 @@ export interface MediaResponse {
63
125
  publicUrl: string;
64
126
  createdById: string;
65
127
  status: MediaStatus;
128
+ type: MediaType;
129
+ thumbnailUrl?: string | undefined;
130
+ duration?: number | undefined;
66
131
  }
67
132
 
68
133
  export const MEDIA_V1_PACKAGE_NAME = "media.v1";
@@ -76,6 +141,14 @@ export interface MediaServiceClient {
76
141
 
77
142
  confirmUpload(request: ConfirmUploadRequest): Observable<MediaResponse>;
78
143
 
144
+ initMultipartUpload(request: InitMultipartUploadRequest): Observable<InitMultipartUploadResponse>;
145
+
146
+ getMultipartPresignedUrls(request: GetMultipartPresignedUrlsRequest): Observable<GetMultipartPresignedUrlsResponse>;
147
+
148
+ completeMultipartUpload(request: CompleteMultipartUploadRequest): Observable<MediaResponse>;
149
+
150
+ abortMultipartUpload(request: AbortMultipartUploadRequest): Observable<AbortMultipartUploadResponse>;
151
+
79
152
  deleteMedia(request: DeleteMediaRequest): Observable<DeleteMediaResponse>;
80
153
 
81
154
  getMedia(request: GetMediaRequest): Observable<MediaResponse>;
@@ -95,6 +168,25 @@ export interface MediaServiceController {
95
168
 
96
169
  confirmUpload(request: ConfirmUploadRequest): Promise<MediaResponse> | Observable<MediaResponse> | MediaResponse;
97
170
 
171
+ initMultipartUpload(
172
+ request: InitMultipartUploadRequest,
173
+ ): Promise<InitMultipartUploadResponse> | Observable<InitMultipartUploadResponse> | InitMultipartUploadResponse;
174
+
175
+ getMultipartPresignedUrls(
176
+ request: GetMultipartPresignedUrlsRequest,
177
+ ):
178
+ | Promise<GetMultipartPresignedUrlsResponse>
179
+ | Observable<GetMultipartPresignedUrlsResponse>
180
+ | GetMultipartPresignedUrlsResponse;
181
+
182
+ completeMultipartUpload(
183
+ request: CompleteMultipartUploadRequest,
184
+ ): Promise<MediaResponse> | Observable<MediaResponse> | MediaResponse;
185
+
186
+ abortMultipartUpload(
187
+ request: AbortMultipartUploadRequest,
188
+ ): Promise<AbortMultipartUploadResponse> | Observable<AbortMultipartUploadResponse> | AbortMultipartUploadResponse;
189
+
98
190
  deleteMedia(
99
191
  request: DeleteMediaRequest,
100
192
  ): Promise<DeleteMediaResponse> | Observable<DeleteMediaResponse> | DeleteMediaResponse;
@@ -108,6 +200,10 @@ export function MediaServiceControllerMethods() {
108
200
  "getPresignedUploadUrl",
109
201
  "getMultiplePresignedUploadUrls",
110
202
  "confirmUpload",
203
+ "initMultipartUpload",
204
+ "getMultipartPresignedUrls",
205
+ "completeMultipartUpload",
206
+ "abortMultipartUpload",
111
207
  "deleteMedia",
112
208
  "getMedia",
113
209
  ];
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@mamindom/contracts",
3
3
  "description": "proto",
4
- "version": "1.0.54",
4
+ "version": "1.0.55",
5
5
  "main": "./dist/src/index.js",
6
6
  "types": "./dist/src/index.d.ts",
7
7
  "exports": {
package/proto/media.proto CHANGED
@@ -4,39 +4,50 @@ package media.v1;
4
4
 
5
5
  service MediaService {
6
6
 
7
- rpc GetPresignedUploadUrl (GetPresignedUrlRequest) returns (GetPresignedUrlResponse);
8
-
9
7
 
8
+ rpc GetPresignedUploadUrl (GetPresignedUrlRequest) returns (GetPresignedUrlResponse);
10
9
  rpc GetMultiplePresignedUploadUrls (GetMultiplePresignedUrlsRequest) returns (GetMultiplePresignedUrlsResponse);
11
-
12
-
13
10
  rpc ConfirmUpload (ConfirmUploadRequest) returns (MediaResponse);
14
-
15
11
 
16
- rpc DeleteMedia (DeleteMediaRequest) returns (DeleteMediaResponse);
17
12
 
13
+ rpc InitMultipartUpload (InitMultipartUploadRequest) returns (InitMultipartUploadResponse);
14
+ rpc GetMultipartPresignedUrls (GetMultipartPresignedUrlsRequest) returns (GetMultipartPresignedUrlsResponse);
15
+ rpc CompleteMultipartUpload (CompleteMultipartUploadRequest) returns (MediaResponse);
16
+ rpc AbortMultipartUpload (AbortMultipartUploadRequest) returns (AbortMultipartUploadResponse);
18
17
 
18
+
19
+ rpc DeleteMedia (DeleteMediaRequest) returns (DeleteMediaResponse);
19
20
  rpc GetMedia (GetMediaRequest) returns (MediaResponse);
20
21
  }
21
22
 
22
23
  enum MediaStatus {
23
24
  MEDIA_STATUS_UNSPECIFIED = 0;
24
- MEDIA_STATUS_PENDING = 1;
25
+ MEDIA_STATUS_PENDING = 1;
25
26
  MEDIA_STATUS_READY = 2;
26
- MEDIA_STATUS_FAILED = 3;
27
+ MEDIA_STATUS_FAILED = 3;
28
+ MEDIA_STATUS_PROCESSING = 4;
29
+ }
30
+
31
+ enum MediaType {
32
+ MEDIA_TYPE_UNSPECIFIED = 0;
33
+ MEDIA_TYPE_IMAGE = 1;
34
+ MEDIA_TYPE_VIDEO = 2;
35
+ MEDIA_TYPE_DOCUMENT = 3;
27
36
  }
28
37
 
38
+
39
+
29
40
  message GetPresignedUrlRequest {
30
- string file_name = 1;
31
- string mime_type = 2;
32
- int64 file_size = 3;
33
- string created_by_id = 4;
41
+ string file_name = 1;
42
+ string mime_type = 2;
43
+ int64 file_size = 3;
44
+ string created_by_id = 4;
34
45
  }
35
46
 
36
47
  message GetPresignedUrlResponse {
37
- string upload_url = 1;
38
- string file_id = 2;
39
- string public_url = 3;
48
+ string upload_url = 1;
49
+ string file_id = 2;
50
+ string public_url = 3;
40
51
  }
41
52
 
42
53
  message GetMultiplePresignedUrlsRequest {
@@ -48,9 +59,66 @@ message GetMultiplePresignedUrlsResponse {
48
59
  }
49
60
 
50
61
  message ConfirmUploadRequest {
51
- string file_id = 1;
62
+ string file_id = 1;
63
+ }
64
+
65
+
66
+
67
+ message InitMultipartUploadRequest {
68
+ string file_name = 1;
69
+ string mime_type = 2;
70
+ int64 file_size = 3;
71
+ string created_by_id = 4;
72
+ int32 total_parts = 5;
73
+ }
74
+
75
+ message InitMultipartUploadResponse {
76
+ string file_id = 1;
77
+ string upload_id = 2;
78
+ string s3_key = 3;
52
79
  }
53
80
 
81
+ message GetMultipartPresignedUrlsRequest {
82
+ string file_id = 1;
83
+ string upload_id = 2;
84
+ string s3_key = 3;
85
+ int32 part_start = 4;
86
+ int32 part_end = 5;
87
+ }
88
+
89
+ message PresignedPartUrl {
90
+ int32 part_number = 1;
91
+ string upload_url = 2;
92
+ }
93
+
94
+ message GetMultipartPresignedUrlsResponse {
95
+ repeated PresignedPartUrl parts = 1;
96
+ }
97
+
98
+ message CompletedPart {
99
+ int32 part_number = 1;
100
+ string etag = 2;
101
+ }
102
+
103
+ message CompleteMultipartUploadRequest {
104
+ string file_id = 1;
105
+ string upload_id = 2;
106
+ string s3_key = 3;
107
+ repeated CompletedPart parts = 4;
108
+ }
109
+
110
+ message AbortMultipartUploadRequest {
111
+ string file_id = 1;
112
+ string upload_id = 2;
113
+ string s3_key = 3;
114
+ }
115
+
116
+ message AbortMultipartUploadResponse {
117
+ bool success = 1;
118
+ }
119
+
120
+
121
+
54
122
  message DeleteMediaRequest {
55
123
  string file_id = 1;
56
124
  }
@@ -68,7 +136,10 @@ message MediaResponse {
68
136
  string file_name = 2;
69
137
  string mime_type = 3;
70
138
  int64 file_size = 4;
71
- string public_url = 5;
139
+ string public_url = 5;
72
140
  string created_by_id = 6;
73
- MediaStatus status = 7;
74
- }
141
+ MediaStatus status = 7;
142
+ MediaType type = 8;
143
+ optional string thumbnail_url = 9;
144
+ optional int32 duration = 10;
145
+ }