@toshicloud/sdk 0.0.0-stage → 0.2.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 (39) hide show
  1. package/LICENSE +202 -0
  2. package/README.md +201 -2
  3. package/dist/client.d.ts +78 -0
  4. package/dist/client.js +42 -0
  5. package/dist/errors.d.ts +20 -0
  6. package/dist/errors.js +55 -0
  7. package/dist/execute.d.ts +6 -0
  8. package/dist/execute.js +380 -0
  9. package/dist/gen/toshi/workspace/v1/artifacts_pb.d.ts +841 -0
  10. package/dist/gen/toshi/workspace/v1/artifacts_pb.js +96 -0
  11. package/dist/gen/toshi/workspace/v1/display_pb.d.ts +1142 -0
  12. package/dist/gen/toshi/workspace/v1/display_pb.js +214 -0
  13. package/dist/gen/toshi/workspace/v1/projects_pb.d.ts +1386 -0
  14. package/dist/gen/toshi/workspace/v1/projects_pb.js +207 -0
  15. package/dist/gen/toshi/workspace/v1/recordings_pb.d.ts +948 -0
  16. package/dist/gen/toshi/workspace/v1/recordings_pb.js +201 -0
  17. package/dist/gen/toshi/workspace/v1/secrets_pb.d.ts +1062 -0
  18. package/dist/gen/toshi/workspace/v1/secrets_pb.js +182 -0
  19. package/dist/gen/toshi/workspace/v1/volumes_pb.d.ts +406 -0
  20. package/dist/gen/toshi/workspace/v1/volumes_pb.js +107 -0
  21. package/dist/gen/toshi/workspace/v1/webhook_pb.d.ts +974 -0
  22. package/dist/gen/toshi/workspace/v1/webhook_pb.js +153 -0
  23. package/dist/gen/toshi/workspace/v1/workspace_pb.d.ts +6133 -0
  24. package/dist/gen/toshi/workspace/v1/workspace_pb.js +892 -0
  25. package/dist/index.d.ts +10 -0
  26. package/dist/index.js +9 -0
  27. package/dist/interceptors.d.ts +10 -0
  28. package/dist/interceptors.js +159 -0
  29. package/dist/output.d.ts +6 -0
  30. package/dist/output.js +77 -0
  31. package/dist/retry.d.ts +42 -0
  32. package/dist/retry.js +213 -0
  33. package/dist/stream.d.ts +21 -0
  34. package/dist/stream.js +84 -0
  35. package/dist/wait.d.ts +8 -0
  36. package/dist/wait.js +29 -0
  37. package/dist/watch.d.ts +8 -0
  38. package/dist/watch.js +224 -0
  39. package/package.json +47 -4
@@ -0,0 +1,948 @@
1
+ import type { GenEnum, GenFile, GenMessage, GenService } from "@bufbuild/protobuf/codegenv2";
2
+ import type { Duration, DurationJson, Timestamp, TimestampJson } from "@bufbuild/protobuf/wkt";
3
+ import type { Message } from "@bufbuild/protobuf";
4
+ /**
5
+ * Describes the file toshi/workspace/v1/recordings.proto.
6
+ */
7
+ export declare const file_toshi_workspace_v1_recordings: GenFile;
8
+ /**
9
+ * Recording is one recording of a run attempt: its screenshot strip or
10
+ * video, or a video or trace its test framework wrote. Its record, never a key or a
11
+ * URL.
12
+ *
13
+ * @generated from message toshi.workspace.v1.Recording
14
+ */
15
+ export type Recording = Message<"toshi.workspace.v1.Recording"> & {
16
+ /**
17
+ * @generated from field: string id = 1;
18
+ */
19
+ id: string;
20
+ /**
21
+ * @generated from field: string project_id = 2;
22
+ */
23
+ projectId: string;
24
+ /**
25
+ * @generated from field: string environment_id = 3;
26
+ */
27
+ environmentId: string;
28
+ /**
29
+ * @generated from field: string workload_id = 4;
30
+ */
31
+ workloadId: string;
32
+ /**
33
+ * @generated from field: toshi.workspace.v1.RecordingState state = 5;
34
+ */
35
+ state: RecordingState;
36
+ /**
37
+ * Why it is unavailable or lost, or why a run whose policy asked for a
38
+ * video has a strip.
39
+ *
40
+ * @generated from field: string reason = 6;
41
+ */
42
+ reason: string;
43
+ /**
44
+ * The artifact that holds it: complete when the recording became ready,
45
+ * deleted once its retention has passed.
46
+ *
47
+ * @generated from field: string artifact_id = 7;
48
+ */
49
+ artifactId: string;
50
+ /**
51
+ * A strip's time between two screenshots; unset for a video or trace.
52
+ *
53
+ * @generated from field: google.protobuf.Duration interval = 8;
54
+ */
55
+ interval?: Duration | undefined;
56
+ /**
57
+ * A strip's ticks or the frames of its host's video, and the screenshots
58
+ * left out; 0 for a video or trace the test framework wrote.
59
+ *
60
+ * @generated from field: int32 frames = 9;
61
+ */
62
+ frames: number;
63
+ /**
64
+ * @generated from field: int32 dropped = 10;
65
+ */
66
+ dropped: number;
67
+ /**
68
+ * The host's capture of a strip or video stopped at a bound before the
69
+ * run ended.
70
+ *
71
+ * @generated from field: bool truncated = 11;
72
+ */
73
+ truncated: boolean;
74
+ /**
75
+ * The spans a strip or its host's video left out while an input session
76
+ * was open.
77
+ *
78
+ * @generated from field: repeated toshi.workspace.v1.RecordingPause pauses = 12;
79
+ */
80
+ pauses: RecordingPause[];
81
+ /**
82
+ * @generated from field: google.protobuf.Timestamp created_at = 13;
83
+ */
84
+ createdAt?: Timestamp | undefined;
85
+ /**
86
+ * Set once it is no longer capturing.
87
+ *
88
+ * @generated from field: google.protobuf.Timestamp ended_at = 14;
89
+ */
90
+ endedAt?: Timestamp | undefined;
91
+ /**
92
+ * What it holds: never UNSPECIFIED.
93
+ *
94
+ * @generated from field: toshi.workspace.v1.RecordingKind kind = 15;
95
+ */
96
+ kind: RecordingKind;
97
+ };
98
+ /**
99
+ * Recording is one recording of a run attempt: its screenshot strip or
100
+ * video, or a video or trace its test framework wrote. Its record, never a key or a
101
+ * URL.
102
+ *
103
+ * @generated from message toshi.workspace.v1.Recording
104
+ */
105
+ export type RecordingJson = {
106
+ /**
107
+ * @generated from field: string id = 1;
108
+ */
109
+ id?: string;
110
+ /**
111
+ * @generated from field: string project_id = 2;
112
+ */
113
+ projectId?: string;
114
+ /**
115
+ * @generated from field: string environment_id = 3;
116
+ */
117
+ environmentId?: string;
118
+ /**
119
+ * @generated from field: string workload_id = 4;
120
+ */
121
+ workloadId?: string;
122
+ /**
123
+ * @generated from field: toshi.workspace.v1.RecordingState state = 5;
124
+ */
125
+ state?: RecordingStateJson;
126
+ /**
127
+ * Why it is unavailable or lost, or why a run whose policy asked for a
128
+ * video has a strip.
129
+ *
130
+ * @generated from field: string reason = 6;
131
+ */
132
+ reason?: string;
133
+ /**
134
+ * The artifact that holds it: complete when the recording became ready,
135
+ * deleted once its retention has passed.
136
+ *
137
+ * @generated from field: string artifact_id = 7;
138
+ */
139
+ artifactId?: string;
140
+ /**
141
+ * A strip's time between two screenshots; unset for a video or trace.
142
+ *
143
+ * @generated from field: google.protobuf.Duration interval = 8;
144
+ */
145
+ interval?: DurationJson;
146
+ /**
147
+ * A strip's ticks or the frames of its host's video, and the screenshots
148
+ * left out; 0 for a video or trace the test framework wrote.
149
+ *
150
+ * @generated from field: int32 frames = 9;
151
+ */
152
+ frames?: number;
153
+ /**
154
+ * @generated from field: int32 dropped = 10;
155
+ */
156
+ dropped?: number;
157
+ /**
158
+ * The host's capture of a strip or video stopped at a bound before the
159
+ * run ended.
160
+ *
161
+ * @generated from field: bool truncated = 11;
162
+ */
163
+ truncated?: boolean;
164
+ /**
165
+ * The spans a strip or its host's video left out while an input session
166
+ * was open.
167
+ *
168
+ * @generated from field: repeated toshi.workspace.v1.RecordingPause pauses = 12;
169
+ */
170
+ pauses?: RecordingPauseJson[];
171
+ /**
172
+ * @generated from field: google.protobuf.Timestamp created_at = 13;
173
+ */
174
+ createdAt?: TimestampJson;
175
+ /**
176
+ * Set once it is no longer capturing.
177
+ *
178
+ * @generated from field: google.protobuf.Timestamp ended_at = 14;
179
+ */
180
+ endedAt?: TimestampJson;
181
+ /**
182
+ * What it holds: never UNSPECIFIED.
183
+ *
184
+ * @generated from field: toshi.workspace.v1.RecordingKind kind = 15;
185
+ */
186
+ kind?: RecordingKindJson;
187
+ };
188
+ /**
189
+ * Describes the message toshi.workspace.v1.Recording.
190
+ * Use `create(RecordingSchema)` to create a new message.
191
+ */
192
+ export declare const RecordingSchema: GenMessage<Recording, {
193
+ jsonType: RecordingJson;
194
+ }>;
195
+ /**
196
+ * RecordingPause is a span with no screenshot, while a display session
197
+ * with input was open.
198
+ *
199
+ * @generated from message toshi.workspace.v1.RecordingPause
200
+ */
201
+ export type RecordingPause = Message<"toshi.workspace.v1.RecordingPause"> & {
202
+ /**
203
+ * @generated from field: string session_id = 1;
204
+ */
205
+ sessionId: string;
206
+ /**
207
+ * person or program.
208
+ *
209
+ * @generated from field: string actor = 2;
210
+ */
211
+ actor: string;
212
+ /**
213
+ * websocket or api.
214
+ *
215
+ * @generated from field: string via = 3;
216
+ */
217
+ via: string;
218
+ /**
219
+ * @generated from field: google.protobuf.Timestamp start = 4;
220
+ */
221
+ start?: Timestamp | undefined;
222
+ /**
223
+ * @generated from field: google.protobuf.Timestamp end = 5;
224
+ */
225
+ end?: Timestamp | undefined;
226
+ };
227
+ /**
228
+ * RecordingPause is a span with no screenshot, while a display session
229
+ * with input was open.
230
+ *
231
+ * @generated from message toshi.workspace.v1.RecordingPause
232
+ */
233
+ export type RecordingPauseJson = {
234
+ /**
235
+ * @generated from field: string session_id = 1;
236
+ */
237
+ sessionId?: string;
238
+ /**
239
+ * person or program.
240
+ *
241
+ * @generated from field: string actor = 2;
242
+ */
243
+ actor?: string;
244
+ /**
245
+ * websocket or api.
246
+ *
247
+ * @generated from field: string via = 3;
248
+ */
249
+ via?: string;
250
+ /**
251
+ * @generated from field: google.protobuf.Timestamp start = 4;
252
+ */
253
+ start?: TimestampJson;
254
+ /**
255
+ * @generated from field: google.protobuf.Timestamp end = 5;
256
+ */
257
+ end?: TimestampJson;
258
+ };
259
+ /**
260
+ * Describes the message toshi.workspace.v1.RecordingPause.
261
+ * Use `create(RecordingPauseSchema)` to create a new message.
262
+ */
263
+ export declare const RecordingPauseSchema: GenMessage<RecordingPause, {
264
+ jsonType: RecordingPauseJson;
265
+ }>;
266
+ /**
267
+ * @generated from message toshi.workspace.v1.ListRecordingsRequest
268
+ */
269
+ export type ListRecordingsRequest = Message<"toshi.workspace.v1.ListRecordingsRequest"> & {
270
+ /**
271
+ * @generated from field: string workload_id = 1;
272
+ */
273
+ workloadId: string;
274
+ };
275
+ /**
276
+ * @generated from message toshi.workspace.v1.ListRecordingsRequest
277
+ */
278
+ export type ListRecordingsRequestJson = {
279
+ /**
280
+ * @generated from field: string workload_id = 1;
281
+ */
282
+ workloadId?: string;
283
+ };
284
+ /**
285
+ * Describes the message toshi.workspace.v1.ListRecordingsRequest.
286
+ * Use `create(ListRecordingsRequestSchema)` to create a new message.
287
+ */
288
+ export declare const ListRecordingsRequestSchema: GenMessage<ListRecordingsRequest, {
289
+ jsonType: ListRecordingsRequestJson;
290
+ }>;
291
+ /**
292
+ * @generated from message toshi.workspace.v1.ListRecordingsResponse
293
+ */
294
+ export type ListRecordingsResponse = Message<"toshi.workspace.v1.ListRecordingsResponse"> & {
295
+ /**
296
+ * @generated from field: repeated toshi.workspace.v1.Recording recordings = 1;
297
+ */
298
+ recordings: Recording[];
299
+ };
300
+ /**
301
+ * @generated from message toshi.workspace.v1.ListRecordingsResponse
302
+ */
303
+ export type ListRecordingsResponseJson = {
304
+ /**
305
+ * @generated from field: repeated toshi.workspace.v1.Recording recordings = 1;
306
+ */
307
+ recordings?: RecordingJson[];
308
+ };
309
+ /**
310
+ * Describes the message toshi.workspace.v1.ListRecordingsResponse.
311
+ * Use `create(ListRecordingsResponseSchema)` to create a new message.
312
+ */
313
+ export declare const ListRecordingsResponseSchema: GenMessage<ListRecordingsResponse, {
314
+ jsonType: ListRecordingsResponseJson;
315
+ }>;
316
+ /**
317
+ * @generated from message toshi.workspace.v1.GetRecordingRequest
318
+ */
319
+ export type GetRecordingRequest = Message<"toshi.workspace.v1.GetRecordingRequest"> & {
320
+ /**
321
+ * @generated from field: string recording_id = 1;
322
+ */
323
+ recordingId: string;
324
+ /**
325
+ * How long the strip's URL lives: 0 is the default (300 seconds), and
326
+ * above 3600 fails with INVALID_ARGUMENT.
327
+ *
328
+ * @generated from field: int64 ttl_seconds = 2;
329
+ */
330
+ ttlSeconds: bigint;
331
+ };
332
+ /**
333
+ * @generated from message toshi.workspace.v1.GetRecordingRequest
334
+ */
335
+ export type GetRecordingRequestJson = {
336
+ /**
337
+ * @generated from field: string recording_id = 1;
338
+ */
339
+ recordingId?: string;
340
+ /**
341
+ * How long the strip's URL lives: 0 is the default (300 seconds), and
342
+ * above 3600 fails with INVALID_ARGUMENT.
343
+ *
344
+ * @generated from field: int64 ttl_seconds = 2;
345
+ */
346
+ ttlSeconds?: string;
347
+ };
348
+ /**
349
+ * Describes the message toshi.workspace.v1.GetRecordingRequest.
350
+ * Use `create(GetRecordingRequestSchema)` to create a new message.
351
+ */
352
+ export declare const GetRecordingRequestSchema: GenMessage<GetRecordingRequest, {
353
+ jsonType: GetRecordingRequestJson;
354
+ }>;
355
+ /**
356
+ * @generated from message toshi.workspace.v1.GetRecordingResponse
357
+ */
358
+ export type GetRecordingResponse = Message<"toshi.workspace.v1.GetRecordingResponse"> & {
359
+ /**
360
+ * @generated from field: toshi.workspace.v1.Recording recording = 1;
361
+ */
362
+ recording?: Recording | undefined;
363
+ /**
364
+ * A signed GET for its object, set only when the recording is ready. It
365
+ * honours a byte Range, so one frame of a strip can be fetched by its
366
+ * offset in the strip's index.
367
+ *
368
+ * @generated from field: string url = 2;
369
+ */
370
+ url: string;
371
+ /**
372
+ * @generated from field: google.protobuf.Timestamp expires_at = 3;
373
+ */
374
+ expiresAt?: Timestamp | undefined;
375
+ };
376
+ /**
377
+ * @generated from message toshi.workspace.v1.GetRecordingResponse
378
+ */
379
+ export type GetRecordingResponseJson = {
380
+ /**
381
+ * @generated from field: toshi.workspace.v1.Recording recording = 1;
382
+ */
383
+ recording?: RecordingJson;
384
+ /**
385
+ * A signed GET for its object, set only when the recording is ready. It
386
+ * honours a byte Range, so one frame of a strip can be fetched by its
387
+ * offset in the strip's index.
388
+ *
389
+ * @generated from field: string url = 2;
390
+ */
391
+ url?: string;
392
+ /**
393
+ * @generated from field: google.protobuf.Timestamp expires_at = 3;
394
+ */
395
+ expiresAt?: TimestampJson;
396
+ };
397
+ /**
398
+ * Describes the message toshi.workspace.v1.GetRecordingResponse.
399
+ * Use `create(GetRecordingResponseSchema)` to create a new message.
400
+ */
401
+ export declare const GetRecordingResponseSchema: GenMessage<GetRecordingResponse, {
402
+ jsonType: GetRecordingResponseJson;
403
+ }>;
404
+ /**
405
+ * RecordingShareLink is one share link of a recording, without the link
406
+ * itself.
407
+ *
408
+ * @generated from message toshi.workspace.v1.RecordingShareLink
409
+ */
410
+ export type RecordingShareLink = Message<"toshi.workspace.v1.RecordingShareLink"> & {
411
+ /**
412
+ * Assigned by the server.
413
+ *
414
+ * @generated from field: string id = 1;
415
+ */
416
+ id: string;
417
+ /**
418
+ * @generated from field: string recording_id = 2;
419
+ */
420
+ recordingId: string;
421
+ /**
422
+ * The recording's kind.
423
+ *
424
+ * @generated from field: toshi.workspace.v1.RecordingKind kind = 3;
425
+ */
426
+ kind: RecordingKind;
427
+ /**
428
+ * @generated from field: toshi.workspace.v1.RecordingShareLinkState state = 4;
429
+ */
430
+ state: RecordingShareLinkState;
431
+ /**
432
+ * @generated from field: google.protobuf.Timestamp created_at = 5;
433
+ */
434
+ createdAt?: Timestamp | undefined;
435
+ /**
436
+ * @generated from field: google.protobuf.Timestamp expires_at = 6;
437
+ */
438
+ expiresAt?: Timestamp | undefined;
439
+ /**
440
+ * The most bytes its fetches may take.
441
+ *
442
+ * @generated from field: int64 max_bytes = 7;
443
+ */
444
+ maxBytes: bigint;
445
+ /**
446
+ * The bytes its fetches have taken so far: the object's size once per
447
+ * fetch.
448
+ *
449
+ * @generated from field: int64 used_bytes = 8;
450
+ */
451
+ usedBytes: bigint;
452
+ /**
453
+ * Unset unless it was revoked.
454
+ *
455
+ * @generated from field: google.protobuf.Timestamp revoked_at = 9;
456
+ */
457
+ revokedAt?: Timestamp | undefined;
458
+ /**
459
+ * Who minted it: a person's sign-in or an API token, as in the audit.
460
+ *
461
+ * @generated from field: string created_by = 10;
462
+ */
463
+ createdBy: string;
464
+ };
465
+ /**
466
+ * RecordingShareLink is one share link of a recording, without the link
467
+ * itself.
468
+ *
469
+ * @generated from message toshi.workspace.v1.RecordingShareLink
470
+ */
471
+ export type RecordingShareLinkJson = {
472
+ /**
473
+ * Assigned by the server.
474
+ *
475
+ * @generated from field: string id = 1;
476
+ */
477
+ id?: string;
478
+ /**
479
+ * @generated from field: string recording_id = 2;
480
+ */
481
+ recordingId?: string;
482
+ /**
483
+ * The recording's kind.
484
+ *
485
+ * @generated from field: toshi.workspace.v1.RecordingKind kind = 3;
486
+ */
487
+ kind?: RecordingKindJson;
488
+ /**
489
+ * @generated from field: toshi.workspace.v1.RecordingShareLinkState state = 4;
490
+ */
491
+ state?: RecordingShareLinkStateJson;
492
+ /**
493
+ * @generated from field: google.protobuf.Timestamp created_at = 5;
494
+ */
495
+ createdAt?: TimestampJson;
496
+ /**
497
+ * @generated from field: google.protobuf.Timestamp expires_at = 6;
498
+ */
499
+ expiresAt?: TimestampJson;
500
+ /**
501
+ * The most bytes its fetches may take.
502
+ *
503
+ * @generated from field: int64 max_bytes = 7;
504
+ */
505
+ maxBytes?: string;
506
+ /**
507
+ * The bytes its fetches have taken so far: the object's size once per
508
+ * fetch.
509
+ *
510
+ * @generated from field: int64 used_bytes = 8;
511
+ */
512
+ usedBytes?: string;
513
+ /**
514
+ * Unset unless it was revoked.
515
+ *
516
+ * @generated from field: google.protobuf.Timestamp revoked_at = 9;
517
+ */
518
+ revokedAt?: TimestampJson;
519
+ /**
520
+ * Who minted it: a person's sign-in or an API token, as in the audit.
521
+ *
522
+ * @generated from field: string created_by = 10;
523
+ */
524
+ createdBy?: string;
525
+ };
526
+ /**
527
+ * Describes the message toshi.workspace.v1.RecordingShareLink.
528
+ * Use `create(RecordingShareLinkSchema)` to create a new message.
529
+ */
530
+ export declare const RecordingShareLinkSchema: GenMessage<RecordingShareLink, {
531
+ jsonType: RecordingShareLinkJson;
532
+ }>;
533
+ /**
534
+ * @generated from message toshi.workspace.v1.CreateRecordingShareLinkRequest
535
+ */
536
+ export type CreateRecordingShareLinkRequest = Message<"toshi.workspace.v1.CreateRecordingShareLinkRequest"> & {
537
+ /**
538
+ * @generated from field: string recording_id = 1;
539
+ */
540
+ recordingId: string;
541
+ /**
542
+ * How long the link stays valid; unset is the server's default, and
543
+ * more than its maximum is INVALID_ARGUMENT.
544
+ *
545
+ * @generated from field: google.protobuf.Duration expires_in = 2;
546
+ */
547
+ expiresIn?: Duration | undefined;
548
+ /**
549
+ * The most bytes its fetches may take; 0 is the server's default, and
550
+ * more than its maximum, or less than the recording's object, is
551
+ * INVALID_ARGUMENT.
552
+ *
553
+ * @generated from field: int64 max_bytes = 3;
554
+ */
555
+ maxBytes: bigint;
556
+ };
557
+ /**
558
+ * @generated from message toshi.workspace.v1.CreateRecordingShareLinkRequest
559
+ */
560
+ export type CreateRecordingShareLinkRequestJson = {
561
+ /**
562
+ * @generated from field: string recording_id = 1;
563
+ */
564
+ recordingId?: string;
565
+ /**
566
+ * How long the link stays valid; unset is the server's default, and
567
+ * more than its maximum is INVALID_ARGUMENT.
568
+ *
569
+ * @generated from field: google.protobuf.Duration expires_in = 2;
570
+ */
571
+ expiresIn?: DurationJson;
572
+ /**
573
+ * The most bytes its fetches may take; 0 is the server's default, and
574
+ * more than its maximum, or less than the recording's object, is
575
+ * INVALID_ARGUMENT.
576
+ *
577
+ * @generated from field: int64 max_bytes = 3;
578
+ */
579
+ maxBytes?: string;
580
+ };
581
+ /**
582
+ * Describes the message toshi.workspace.v1.CreateRecordingShareLinkRequest.
583
+ * Use `create(CreateRecordingShareLinkRequestSchema)` to create a new message.
584
+ */
585
+ export declare const CreateRecordingShareLinkRequestSchema: GenMessage<CreateRecordingShareLinkRequest, {
586
+ jsonType: CreateRecordingShareLinkRequestJson;
587
+ }>;
588
+ /**
589
+ * @generated from message toshi.workspace.v1.CreateRecordingShareLinkResponse
590
+ */
591
+ export type CreateRecordingShareLinkResponse = Message<"toshi.workspace.v1.CreateRecordingShareLinkResponse"> & {
592
+ /**
593
+ * @generated from field: toshi.workspace.v1.RecordingShareLink share_link = 1;
594
+ */
595
+ shareLink?: RecordingShareLink | undefined;
596
+ /**
597
+ * The URL to give the viewer: a GET of it redirects to a signed URL for
598
+ * the recording's object. It is in this answer only.
599
+ *
600
+ * @generated from field: string url = 2;
601
+ */
602
+ url: string;
603
+ /**
604
+ * The URL of the link's player page: a GET of it plays the recording in
605
+ * the page and is charged against the link as a GET of url is. It is in
606
+ * this answer only.
607
+ *
608
+ * @generated from field: string player_url = 3;
609
+ */
610
+ playerUrl: string;
611
+ };
612
+ /**
613
+ * @generated from message toshi.workspace.v1.CreateRecordingShareLinkResponse
614
+ */
615
+ export type CreateRecordingShareLinkResponseJson = {
616
+ /**
617
+ * @generated from field: toshi.workspace.v1.RecordingShareLink share_link = 1;
618
+ */
619
+ shareLink?: RecordingShareLinkJson;
620
+ /**
621
+ * The URL to give the viewer: a GET of it redirects to a signed URL for
622
+ * the recording's object. It is in this answer only.
623
+ *
624
+ * @generated from field: string url = 2;
625
+ */
626
+ url?: string;
627
+ /**
628
+ * The URL of the link's player page: a GET of it plays the recording in
629
+ * the page and is charged against the link as a GET of url is. It is in
630
+ * this answer only.
631
+ *
632
+ * @generated from field: string player_url = 3;
633
+ */
634
+ playerUrl?: string;
635
+ };
636
+ /**
637
+ * Describes the message toshi.workspace.v1.CreateRecordingShareLinkResponse.
638
+ * Use `create(CreateRecordingShareLinkResponseSchema)` to create a new message.
639
+ */
640
+ export declare const CreateRecordingShareLinkResponseSchema: GenMessage<CreateRecordingShareLinkResponse, {
641
+ jsonType: CreateRecordingShareLinkResponseJson;
642
+ }>;
643
+ /**
644
+ * @generated from message toshi.workspace.v1.ListRecordingShareLinksRequest
645
+ */
646
+ export type ListRecordingShareLinksRequest = Message<"toshi.workspace.v1.ListRecordingShareLinksRequest"> & {
647
+ /**
648
+ * @generated from field: string recording_id = 1;
649
+ */
650
+ recordingId: string;
651
+ };
652
+ /**
653
+ * @generated from message toshi.workspace.v1.ListRecordingShareLinksRequest
654
+ */
655
+ export type ListRecordingShareLinksRequestJson = {
656
+ /**
657
+ * @generated from field: string recording_id = 1;
658
+ */
659
+ recordingId?: string;
660
+ };
661
+ /**
662
+ * Describes the message toshi.workspace.v1.ListRecordingShareLinksRequest.
663
+ * Use `create(ListRecordingShareLinksRequestSchema)` to create a new message.
664
+ */
665
+ export declare const ListRecordingShareLinksRequestSchema: GenMessage<ListRecordingShareLinksRequest, {
666
+ jsonType: ListRecordingShareLinksRequestJson;
667
+ }>;
668
+ /**
669
+ * @generated from message toshi.workspace.v1.ListRecordingShareLinksResponse
670
+ */
671
+ export type ListRecordingShareLinksResponse = Message<"toshi.workspace.v1.ListRecordingShareLinksResponse"> & {
672
+ /**
673
+ * @generated from field: repeated toshi.workspace.v1.RecordingShareLink share_links = 1;
674
+ */
675
+ shareLinks: RecordingShareLink[];
676
+ };
677
+ /**
678
+ * @generated from message toshi.workspace.v1.ListRecordingShareLinksResponse
679
+ */
680
+ export type ListRecordingShareLinksResponseJson = {
681
+ /**
682
+ * @generated from field: repeated toshi.workspace.v1.RecordingShareLink share_links = 1;
683
+ */
684
+ shareLinks?: RecordingShareLinkJson[];
685
+ };
686
+ /**
687
+ * Describes the message toshi.workspace.v1.ListRecordingShareLinksResponse.
688
+ * Use `create(ListRecordingShareLinksResponseSchema)` to create a new message.
689
+ */
690
+ export declare const ListRecordingShareLinksResponseSchema: GenMessage<ListRecordingShareLinksResponse, {
691
+ jsonType: ListRecordingShareLinksResponseJson;
692
+ }>;
693
+ /**
694
+ * @generated from message toshi.workspace.v1.RevokeRecordingShareLinkRequest
695
+ */
696
+ export type RevokeRecordingShareLinkRequest = Message<"toshi.workspace.v1.RevokeRecordingShareLinkRequest"> & {
697
+ /**
698
+ * @generated from field: string share_link_id = 1;
699
+ */
700
+ shareLinkId: string;
701
+ };
702
+ /**
703
+ * @generated from message toshi.workspace.v1.RevokeRecordingShareLinkRequest
704
+ */
705
+ export type RevokeRecordingShareLinkRequestJson = {
706
+ /**
707
+ * @generated from field: string share_link_id = 1;
708
+ */
709
+ shareLinkId?: string;
710
+ };
711
+ /**
712
+ * Describes the message toshi.workspace.v1.RevokeRecordingShareLinkRequest.
713
+ * Use `create(RevokeRecordingShareLinkRequestSchema)` to create a new message.
714
+ */
715
+ export declare const RevokeRecordingShareLinkRequestSchema: GenMessage<RevokeRecordingShareLinkRequest, {
716
+ jsonType: RevokeRecordingShareLinkRequestJson;
717
+ }>;
718
+ /**
719
+ * @generated from message toshi.workspace.v1.RevokeRecordingShareLinkResponse
720
+ */
721
+ export type RevokeRecordingShareLinkResponse = Message<"toshi.workspace.v1.RevokeRecordingShareLinkResponse"> & {
722
+ /**
723
+ * @generated from field: toshi.workspace.v1.RecordingShareLink share_link = 1;
724
+ */
725
+ shareLink?: RecordingShareLink | undefined;
726
+ };
727
+ /**
728
+ * @generated from message toshi.workspace.v1.RevokeRecordingShareLinkResponse
729
+ */
730
+ export type RevokeRecordingShareLinkResponseJson = {
731
+ /**
732
+ * @generated from field: toshi.workspace.v1.RecordingShareLink share_link = 1;
733
+ */
734
+ shareLink?: RecordingShareLinkJson;
735
+ };
736
+ /**
737
+ * Describes the message toshi.workspace.v1.RevokeRecordingShareLinkResponse.
738
+ * Use `create(RevokeRecordingShareLinkResponseSchema)` to create a new message.
739
+ */
740
+ export declare const RevokeRecordingShareLinkResponseSchema: GenMessage<RevokeRecordingShareLinkResponse, {
741
+ jsonType: RevokeRecordingShareLinkResponseJson;
742
+ }>;
743
+ /**
744
+ * RecordingState is where a recording is in its life.
745
+ *
746
+ * @generated from enum toshi.workspace.v1.RecordingState
747
+ */
748
+ export declare enum RecordingState {
749
+ /**
750
+ * @generated from enum value: RECORDING_STATE_UNSPECIFIED = 0;
751
+ */
752
+ UNSPECIFIED = 0,
753
+ /**
754
+ * The run attempt may still finish it: its host captures a strip or
755
+ * uploads what it captured, or the run's upload of a video or trace has
756
+ * not completed.
757
+ *
758
+ * @generated from enum value: RECORDING_STATE_CAPTURING = 1;
759
+ */
760
+ CAPTURING = 1,
761
+ /**
762
+ * Its object's upload completed. The object is kept for its retention;
763
+ * the recording stays ready after that.
764
+ *
765
+ * @generated from enum value: RECORDING_STATE_READY = 2;
766
+ */
767
+ READY = 2,
768
+ /**
769
+ * A strip ended without its object, and its host said why.
770
+ *
771
+ * @generated from enum value: RECORDING_STATE_UNAVAILABLE = 3;
772
+ */
773
+ UNAVAILABLE = 3,
774
+ /**
775
+ * A strip ended without its object and without its host's report, or a
776
+ * video's or trace's upload did not complete before its deadline.
777
+ *
778
+ * @generated from enum value: RECORDING_STATE_LOST = 4;
779
+ */
780
+ LOST = 4
781
+ }
782
+ /**
783
+ * RecordingState is where a recording is in its life.
784
+ *
785
+ * @generated from enum toshi.workspace.v1.RecordingState
786
+ */
787
+ export type RecordingStateJson = "RECORDING_STATE_UNSPECIFIED" | "RECORDING_STATE_CAPTURING" | "RECORDING_STATE_READY" | "RECORDING_STATE_UNAVAILABLE" | "RECORDING_STATE_LOST";
788
+ /**
789
+ * Describes the enum toshi.workspace.v1.RecordingState.
790
+ */
791
+ export declare const RecordingStateSchema: GenEnum<RecordingState, RecordingStateJson>;
792
+ /**
793
+ * RecordingKind is what a recording holds.
794
+ *
795
+ * @generated from enum toshi.workspace.v1.RecordingKind
796
+ */
797
+ export declare enum RecordingKind {
798
+ /**
799
+ * @generated from enum value: RECORDING_KIND_UNSPECIFIED = 0;
800
+ */
801
+ UNSPECIFIED = 0,
802
+ /**
803
+ * A screenshot strip of the run's screen, taken by its host.
804
+ *
805
+ * @generated from enum value: RECORDING_KIND_STRIP = 1;
806
+ */
807
+ STRIP = 1,
808
+ /**
809
+ * A video of the run's screen, recorded by its host, or one the run's
810
+ * test framework wrote, such as Playwright's or Cypress's, uploaded with
811
+ * ArtifactUploadService.
812
+ *
813
+ * @generated from enum value: RECORDING_KIND_VIDEO = 2;
814
+ */
815
+ VIDEO = 2,
816
+ /**
817
+ * A trace the run's test framework wrote, such as a Playwright trace,
818
+ * uploaded with ArtifactUploadService.
819
+ *
820
+ * @generated from enum value: RECORDING_KIND_TRACE = 3;
821
+ */
822
+ TRACE = 3
823
+ }
824
+ /**
825
+ * RecordingKind is what a recording holds.
826
+ *
827
+ * @generated from enum toshi.workspace.v1.RecordingKind
828
+ */
829
+ export type RecordingKindJson = "RECORDING_KIND_UNSPECIFIED" | "RECORDING_KIND_STRIP" | "RECORDING_KIND_VIDEO" | "RECORDING_KIND_TRACE";
830
+ /**
831
+ * Describes the enum toshi.workspace.v1.RecordingKind.
832
+ */
833
+ export declare const RecordingKindSchema: GenEnum<RecordingKind, RecordingKindJson>;
834
+ /**
835
+ * RecordingShareLinkState is where a recording's share link is in its
836
+ * life.
837
+ *
838
+ * @generated from enum toshi.workspace.v1.RecordingShareLinkState
839
+ */
840
+ export declare enum RecordingShareLinkState {
841
+ /**
842
+ * @generated from enum value: RECORDING_SHARE_LINK_STATE_UNSPECIFIED = 0;
843
+ */
844
+ UNSPECIFIED = 0,
845
+ /**
846
+ * It fetches the recording's object.
847
+ *
848
+ * @generated from enum value: RECORDING_SHARE_LINK_STATE_ACTIVE = 1;
849
+ */
850
+ ACTIVE = 1,
851
+ /**
852
+ * @generated from enum value: RECORDING_SHARE_LINK_STATE_REVOKED = 2;
853
+ */
854
+ REVOKED = 2,
855
+ /**
856
+ * @generated from enum value: RECORDING_SHARE_LINK_STATE_EXPIRED = 3;
857
+ */
858
+ EXPIRED = 3,
859
+ /**
860
+ * What is left of its byte cap is less than the object's size.
861
+ *
862
+ * @generated from enum value: RECORDING_SHARE_LINK_STATE_ENDED = 4;
863
+ */
864
+ ENDED = 4
865
+ }
866
+ /**
867
+ * RecordingShareLinkState is where a recording's share link is in its
868
+ * life.
869
+ *
870
+ * @generated from enum toshi.workspace.v1.RecordingShareLinkState
871
+ */
872
+ export type RecordingShareLinkStateJson = "RECORDING_SHARE_LINK_STATE_UNSPECIFIED" | "RECORDING_SHARE_LINK_STATE_ACTIVE" | "RECORDING_SHARE_LINK_STATE_REVOKED" | "RECORDING_SHARE_LINK_STATE_EXPIRED" | "RECORDING_SHARE_LINK_STATE_ENDED";
873
+ /**
874
+ * Describes the enum toshi.workspace.v1.RecordingShareLinkState.
875
+ */
876
+ export declare const RecordingShareLinkStateSchema: GenEnum<RecordingShareLinkState, RecordingShareLinkStateJson>;
877
+ /**
878
+ * RecordingService lists a workload's recordings and signs a URL for a
879
+ * recording's object. The caller is a workspace's API token or a dashboard
880
+ * session, as for ArtifactService. A credential limited to a project or an
881
+ * environment sees only its own.
882
+ *
883
+ * @generated from service toshi.workspace.v1.RecordingService
884
+ */
885
+ export declare const RecordingService: GenService<{
886
+ /**
887
+ * ListRecordings returns one workload's recordings, oldest first: a
888
+ * run attempt's strip, and each video or trace a run attempt uploaded as
889
+ * its test framework's recording, so an attempt may have several. Never
890
+ * a URL.
891
+ *
892
+ * @generated from rpc toshi.workspace.v1.RecordingService.ListRecordings
893
+ */
894
+ listRecordings: {
895
+ methodKind: "unary";
896
+ input: typeof ListRecordingsRequestSchema;
897
+ output: typeof ListRecordingsResponseSchema;
898
+ };
899
+ /**
900
+ * GetRecording returns one recording and, when it is ready, a signed URL
901
+ * for its object that expires. A ready recording whose object's
902
+ * retention has deleted it is FAILED_PRECONDITION.
903
+ *
904
+ * @generated from rpc toshi.workspace.v1.RecordingService.GetRecording
905
+ */
906
+ getRecording: {
907
+ methodKind: "unary";
908
+ input: typeof GetRecordingRequestSchema;
909
+ output: typeof GetRecordingResponseSchema;
910
+ };
911
+ /**
912
+ * CreateRecordingShareLink mints a share link for a ready recording: a
913
+ * URL that fetches its object without a Toshi sign-in until the link
914
+ * expires, is revoked or has used its byte cap. Each fetch through it
915
+ * counts the object's whole size against the cap, and each fetch and
916
+ * each refusal is in the audit. A recording that is not ready, or whose
917
+ * object's retention has deleted it, is FAILED_PRECONDITION.
918
+ *
919
+ * @generated from rpc toshi.workspace.v1.RecordingService.CreateRecordingShareLink
920
+ */
921
+ createRecordingShareLink: {
922
+ methodKind: "unary";
923
+ input: typeof CreateRecordingShareLinkRequestSchema;
924
+ output: typeof CreateRecordingShareLinkResponseSchema;
925
+ };
926
+ /**
927
+ * ListRecordingShareLinks returns a recording's share links, oldest
928
+ * first, without the links themselves.
929
+ *
930
+ * @generated from rpc toshi.workspace.v1.RecordingService.ListRecordingShareLinks
931
+ */
932
+ listRecordingShareLinks: {
933
+ methodKind: "unary";
934
+ input: typeof ListRecordingShareLinksRequestSchema;
935
+ output: typeof ListRecordingShareLinksResponseSchema;
936
+ };
937
+ /**
938
+ * RevokeRecordingShareLink ends a share link before it expires. A link
939
+ * already revoked is returned as it is.
940
+ *
941
+ * @generated from rpc toshi.workspace.v1.RecordingService.RevokeRecordingShareLink
942
+ */
943
+ revokeRecordingShareLink: {
944
+ methodKind: "unary";
945
+ input: typeof RevokeRecordingShareLinkRequestSchema;
946
+ output: typeof RevokeRecordingShareLinkResponseSchema;
947
+ };
948
+ }>;