@toshicloud/sdk 0.0.0-stage → 0.3.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 (45) hide show
  1. package/LICENSE +202 -0
  2. package/README.md +250 -2
  3. package/dist/client.d.ts +153 -0
  4. package/dist/client.js +92 -0
  5. package/dist/errors.d.ts +28 -0
  6. package/dist/errors.js +77 -0
  7. package/dist/execute.d.ts +7 -0
  8. package/dist/execute.js +380 -0
  9. package/dist/gen/toshi/workspace/v1/artifacts_pb.d.ts +843 -0
  10. package/dist/gen/toshi/workspace/v1/artifacts_pb.js +96 -0
  11. package/dist/gen/toshi/workspace/v1/channels_pb.d.ts +2713 -0
  12. package/dist/gen/toshi/workspace/v1/channels_pb.js +336 -0
  13. package/dist/gen/toshi/workspace/v1/display_pb.d.ts +1166 -0
  14. package/dist/gen/toshi/workspace/v1/display_pb.js +214 -0
  15. package/dist/gen/toshi/workspace/v1/projects_pb.d.ts +1540 -0
  16. package/dist/gen/toshi/workspace/v1/projects_pb.js +207 -0
  17. package/dist/gen/toshi/workspace/v1/recordings_pb.d.ts +1024 -0
  18. package/dist/gen/toshi/workspace/v1/recordings_pb.js +201 -0
  19. package/dist/gen/toshi/workspace/v1/secrets_pb.d.ts +1214 -0
  20. package/dist/gen/toshi/workspace/v1/secrets_pb.js +182 -0
  21. package/dist/gen/toshi/workspace/v1/volumes_pb.d.ts +444 -0
  22. package/dist/gen/toshi/workspace/v1/volumes_pb.js +107 -0
  23. package/dist/gen/toshi/workspace/v1/webhook_pb.d.ts +1018 -0
  24. package/dist/gen/toshi/workspace/v1/webhook_pb.js +153 -0
  25. package/dist/gen/toshi/workspace/v1/workloads_pb.d.ts +2858 -0
  26. package/dist/gen/toshi/workspace/v1/workloads_pb.js +261 -0
  27. package/dist/gen/toshi/workspace/v1/workspace_pb.d.ts +5380 -0
  28. package/dist/gen/toshi/workspace/v1/workspace_pb.js +855 -0
  29. package/dist/index.d.ts +15 -0
  30. package/dist/index.js +14 -0
  31. package/dist/interceptors.d.ts +10 -0
  32. package/dist/interceptors.js +159 -0
  33. package/dist/output.d.ts +7 -0
  34. package/dist/output.js +77 -0
  35. package/dist/retry.d.ts +42 -0
  36. package/dist/retry.js +254 -0
  37. package/dist/run.d.ts +10 -0
  38. package/dist/run.js +175 -0
  39. package/dist/stream.d.ts +21 -0
  40. package/dist/stream.js +84 -0
  41. package/dist/wait.d.ts +13 -0
  42. package/dist/wait.js +41 -0
  43. package/dist/watch.d.ts +16 -0
  44. package/dist/watch.js +277 -0
  45. package/package.json +47 -4
@@ -0,0 +1,1166 @@
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/display.proto.
6
+ */
7
+ export declare const file_toshi_workspace_v1_display: GenFile;
8
+ /**
9
+ * @generated from message toshi.workspace.v1.DisplaySession
10
+ */
11
+ export type DisplaySession = Message<"toshi.workspace.v1.DisplaySession"> & {
12
+ /**
13
+ * Assigned by the server; unique within the workspace.
14
+ *
15
+ * @generated from field: string id = 1;
16
+ */
17
+ id: string;
18
+ /**
19
+ * The job the session views: its ID as the jobs API and `toshi host-job
20
+ * list` show it.
21
+ *
22
+ * @generated from field: string job_id = 2;
23
+ */
24
+ jobId: string;
25
+ /**
26
+ * @generated from field: toshi.workspace.v1.DisplayMode mode = 3;
27
+ */
28
+ mode: DisplayMode;
29
+ /**
30
+ * For an agent's run: whether a person may take the input from the
31
+ * agent. Recorded; takeover itself is not served yet.
32
+ *
33
+ * @generated from field: bool allow_takeover = 4;
34
+ */
35
+ allowTakeover: boolean;
36
+ /**
37
+ * The session ends once no bytes of the screen's protocol have gone
38
+ * either way for this long.
39
+ *
40
+ * @generated from field: google.protobuf.Duration idle_close = 5;
41
+ */
42
+ idleClose?: Duration | undefined;
43
+ /**
44
+ * @generated from field: toshi.workspace.v1.DisplaySessionState state = 6;
45
+ */
46
+ state: DisplaySessionState;
47
+ /**
48
+ * @generated from field: toshi.workspace.v1.DisplayOpener opened_by = 7;
49
+ */
50
+ openedBy: DisplayOpener;
51
+ /**
52
+ * @generated from field: google.protobuf.Timestamp opened_at = 8;
53
+ */
54
+ openedAt?: Timestamp | undefined;
55
+ /**
56
+ * When the token expires: a session not attached by then closes.
57
+ *
58
+ * @generated from field: google.protobuf.Timestamp attach_by = 9;
59
+ */
60
+ attachBy?: Timestamp | undefined;
61
+ /**
62
+ * Unset until the viewer attaches.
63
+ *
64
+ * @generated from field: google.protobuf.Timestamp attached_at = 10;
65
+ */
66
+ attachedAt?: Timestamp | undefined;
67
+ /**
68
+ * Unset while the session is open.
69
+ *
70
+ * @generated from field: google.protobuf.Timestamp closed_at = 11;
71
+ */
72
+ closedAt?: Timestamp | undefined;
73
+ /**
74
+ * Why it closed: closed, idle, expired, suspended, ended (its job
75
+ * stopped running where the session was opened), protocol_error (the
76
+ * viewer sent what the relay does not accept), unavailable (the job's
77
+ * host did not open the screen) or shutdown (the control plane
78
+ * stopped). Empty while it is open.
79
+ *
80
+ * @generated from field: string close_reason = 12;
81
+ */
82
+ closeReason: string;
83
+ /**
84
+ * Who opened it, as the audit log names the caller: the GitHub login of
85
+ * the signed-in person for DISPLAY_OPENER_PERSON, the API token's id for
86
+ * DISPLAY_OPENER_PROGRAM.
87
+ *
88
+ * @generated from field: string opener_id = 13;
89
+ */
90
+ openerId: string;
91
+ /**
92
+ * The web origin of the call that opened it, for example
93
+ * "https://toshi.example.com"; empty for a call that sent none.
94
+ *
95
+ * @generated from field: string origin = 14;
96
+ */
97
+ origin: string;
98
+ /**
99
+ * The id (jti) of the one token that attaches the session: an id, never
100
+ * the token.
101
+ *
102
+ * @generated from field: string attach_token_id = 15;
103
+ */
104
+ attachTokenId: string;
105
+ };
106
+ /**
107
+ * @generated from message toshi.workspace.v1.DisplaySession
108
+ */
109
+ export type DisplaySessionJson = {
110
+ /**
111
+ * Assigned by the server; unique within the workspace.
112
+ *
113
+ * @generated from field: string id = 1;
114
+ */
115
+ id?: string;
116
+ /**
117
+ * The job the session views: its ID as the jobs API and `toshi host-job
118
+ * list` show it.
119
+ *
120
+ * @generated from field: string job_id = 2;
121
+ */
122
+ jobId?: string;
123
+ /**
124
+ * @generated from field: toshi.workspace.v1.DisplayMode mode = 3;
125
+ */
126
+ mode?: DisplayModeJson;
127
+ /**
128
+ * For an agent's run: whether a person may take the input from the
129
+ * agent. Recorded; takeover itself is not served yet.
130
+ *
131
+ * @generated from field: bool allow_takeover = 4;
132
+ */
133
+ allowTakeover?: boolean;
134
+ /**
135
+ * The session ends once no bytes of the screen's protocol have gone
136
+ * either way for this long.
137
+ *
138
+ * @generated from field: google.protobuf.Duration idle_close = 5;
139
+ */
140
+ idleClose?: DurationJson;
141
+ /**
142
+ * @generated from field: toshi.workspace.v1.DisplaySessionState state = 6;
143
+ */
144
+ state?: DisplaySessionStateJson;
145
+ /**
146
+ * @generated from field: toshi.workspace.v1.DisplayOpener opened_by = 7;
147
+ */
148
+ openedBy?: DisplayOpenerJson;
149
+ /**
150
+ * @generated from field: google.protobuf.Timestamp opened_at = 8;
151
+ */
152
+ openedAt?: TimestampJson;
153
+ /**
154
+ * When the token expires: a session not attached by then closes.
155
+ *
156
+ * @generated from field: google.protobuf.Timestamp attach_by = 9;
157
+ */
158
+ attachBy?: TimestampJson;
159
+ /**
160
+ * Unset until the viewer attaches.
161
+ *
162
+ * @generated from field: google.protobuf.Timestamp attached_at = 10;
163
+ */
164
+ attachedAt?: TimestampJson;
165
+ /**
166
+ * Unset while the session is open.
167
+ *
168
+ * @generated from field: google.protobuf.Timestamp closed_at = 11;
169
+ */
170
+ closedAt?: TimestampJson;
171
+ /**
172
+ * Why it closed: closed, idle, expired, suspended, ended (its job
173
+ * stopped running where the session was opened), protocol_error (the
174
+ * viewer sent what the relay does not accept), unavailable (the job's
175
+ * host did not open the screen) or shutdown (the control plane
176
+ * stopped). Empty while it is open.
177
+ *
178
+ * @generated from field: string close_reason = 12;
179
+ */
180
+ closeReason?: string;
181
+ /**
182
+ * Who opened it, as the audit log names the caller: the GitHub login of
183
+ * the signed-in person for DISPLAY_OPENER_PERSON, the API token's id for
184
+ * DISPLAY_OPENER_PROGRAM.
185
+ *
186
+ * @generated from field: string opener_id = 13;
187
+ */
188
+ openerId?: string;
189
+ /**
190
+ * The web origin of the call that opened it, for example
191
+ * "https://toshi.example.com"; empty for a call that sent none.
192
+ *
193
+ * @generated from field: string origin = 14;
194
+ */
195
+ origin?: string;
196
+ /**
197
+ * The id (jti) of the one token that attaches the session: an id, never
198
+ * the token.
199
+ *
200
+ * @generated from field: string attach_token_id = 15;
201
+ */
202
+ attachTokenId?: string;
203
+ };
204
+ /**
205
+ * Describes the message toshi.workspace.v1.DisplaySession.
206
+ * Use `create(DisplaySessionSchema)` to create a new message.
207
+ */
208
+ export declare const DisplaySessionSchema: GenMessage<DisplaySession, {
209
+ jsonType: DisplaySessionJson;
210
+ }>;
211
+ /**
212
+ * @generated from message toshi.workspace.v1.OpenDisplaySessionRequest
213
+ */
214
+ export type OpenDisplaySessionRequest = Message<"toshi.workspace.v1.OpenDisplaySessionRequest"> & {
215
+ /**
216
+ * What to view. A job runs on a host and has a screen; a workload of
217
+ * WorkloadService has none yet and fails with FAILED_PRECONDITION.
218
+ *
219
+ * @generated from oneof toshi.workspace.v1.OpenDisplaySessionRequest.target
220
+ */
221
+ target: {
222
+ /**
223
+ * @generated from field: string job_id = 1;
224
+ */
225
+ value: string;
226
+ case: "jobId";
227
+ } | {
228
+ /**
229
+ * @generated from field: string workload_id = 2;
230
+ */
231
+ value: string;
232
+ case: "workloadId";
233
+ } | {
234
+ case: undefined;
235
+ value?: undefined;
236
+ };
237
+ /**
238
+ * @generated from field: toshi.workspace.v1.DisplayMode mode = 3;
239
+ */
240
+ mode: DisplayMode;
241
+ /**
242
+ * The idle close, at most the plan's; unset is the plan's.
243
+ *
244
+ * @generated from field: google.protobuf.Duration idle_close = 4;
245
+ */
246
+ idleClose?: Duration | undefined;
247
+ /**
248
+ * @generated from field: bool allow_takeover = 5;
249
+ */
250
+ allowTakeover: boolean;
251
+ /**
252
+ * @generated from field: string request_key = 6;
253
+ */
254
+ requestKey: string;
255
+ };
256
+ /**
257
+ * @generated from message toshi.workspace.v1.OpenDisplaySessionRequest
258
+ */
259
+ export type OpenDisplaySessionRequestJson = {
260
+ /**
261
+ * @generated from field: string job_id = 1;
262
+ */
263
+ jobId?: string;
264
+ /**
265
+ * @generated from field: string workload_id = 2;
266
+ */
267
+ workloadId?: string;
268
+ /**
269
+ * @generated from field: toshi.workspace.v1.DisplayMode mode = 3;
270
+ */
271
+ mode?: DisplayModeJson;
272
+ /**
273
+ * The idle close, at most the plan's; unset is the plan's.
274
+ *
275
+ * @generated from field: google.protobuf.Duration idle_close = 4;
276
+ */
277
+ idleClose?: DurationJson;
278
+ /**
279
+ * @generated from field: bool allow_takeover = 5;
280
+ */
281
+ allowTakeover?: boolean;
282
+ /**
283
+ * @generated from field: string request_key = 6;
284
+ */
285
+ requestKey?: string;
286
+ };
287
+ /**
288
+ * Describes the message toshi.workspace.v1.OpenDisplaySessionRequest.
289
+ * Use `create(OpenDisplaySessionRequestSchema)` to create a new message.
290
+ */
291
+ export declare const OpenDisplaySessionRequestSchema: GenMessage<OpenDisplaySessionRequest, {
292
+ jsonType: OpenDisplaySessionRequestJson;
293
+ }>;
294
+ /**
295
+ * @generated from message toshi.workspace.v1.OpenDisplaySessionResponse
296
+ */
297
+ export type OpenDisplaySessionResponse = Message<"toshi.workspace.v1.OpenDisplaySessionResponse"> & {
298
+ /**
299
+ * @generated from field: toshi.workspace.v1.DisplaySession session = 1;
300
+ */
301
+ session?: DisplaySession | undefined;
302
+ /**
303
+ * The session's WebSocket URL path, on the control plane's address:
304
+ * /display/<id>.
305
+ *
306
+ * @generated from field: string url = 2;
307
+ */
308
+ url: string;
309
+ /**
310
+ * The token that attaches the session, once, before
311
+ * session.attach_by. The viewer sends it as a WebSocket subprotocol,
312
+ * toshi.display.<token>, beside the subprotocol binary. Empty on a
313
+ * retry.
314
+ *
315
+ * @generated from field: string token = 3;
316
+ */
317
+ token: string;
318
+ /**
319
+ * Set when this answers a retry of the call that opened the session:
320
+ * nothing was opened and no token is returned.
321
+ *
322
+ * @generated from field: bool replayed = 4;
323
+ */
324
+ replayed: boolean;
325
+ };
326
+ /**
327
+ * @generated from message toshi.workspace.v1.OpenDisplaySessionResponse
328
+ */
329
+ export type OpenDisplaySessionResponseJson = {
330
+ /**
331
+ * @generated from field: toshi.workspace.v1.DisplaySession session = 1;
332
+ */
333
+ session?: DisplaySessionJson;
334
+ /**
335
+ * The session's WebSocket URL path, on the control plane's address:
336
+ * /display/<id>.
337
+ *
338
+ * @generated from field: string url = 2;
339
+ */
340
+ url?: string;
341
+ /**
342
+ * The token that attaches the session, once, before
343
+ * session.attach_by. The viewer sends it as a WebSocket subprotocol,
344
+ * toshi.display.<token>, beside the subprotocol binary. Empty on a
345
+ * retry.
346
+ *
347
+ * @generated from field: string token = 3;
348
+ */
349
+ token?: string;
350
+ /**
351
+ * Set when this answers a retry of the call that opened the session:
352
+ * nothing was opened and no token is returned.
353
+ *
354
+ * @generated from field: bool replayed = 4;
355
+ */
356
+ replayed?: boolean;
357
+ };
358
+ /**
359
+ * Describes the message toshi.workspace.v1.OpenDisplaySessionResponse.
360
+ * Use `create(OpenDisplaySessionResponseSchema)` to create a new message.
361
+ */
362
+ export declare const OpenDisplaySessionResponseSchema: GenMessage<OpenDisplaySessionResponse, {
363
+ jsonType: OpenDisplaySessionResponseJson;
364
+ }>;
365
+ /**
366
+ * @generated from message toshi.workspace.v1.GetDisplaySessionRequest
367
+ */
368
+ export type GetDisplaySessionRequest = Message<"toshi.workspace.v1.GetDisplaySessionRequest"> & {
369
+ /**
370
+ * @generated from field: string session_id = 1;
371
+ */
372
+ sessionId: string;
373
+ };
374
+ /**
375
+ * @generated from message toshi.workspace.v1.GetDisplaySessionRequest
376
+ */
377
+ export type GetDisplaySessionRequestJson = {
378
+ /**
379
+ * @generated from field: string session_id = 1;
380
+ */
381
+ sessionId?: string;
382
+ };
383
+ /**
384
+ * Describes the message toshi.workspace.v1.GetDisplaySessionRequest.
385
+ * Use `create(GetDisplaySessionRequestSchema)` to create a new message.
386
+ */
387
+ export declare const GetDisplaySessionRequestSchema: GenMessage<GetDisplaySessionRequest, {
388
+ jsonType: GetDisplaySessionRequestJson;
389
+ }>;
390
+ /**
391
+ * @generated from message toshi.workspace.v1.GetDisplaySessionResponse
392
+ */
393
+ export type GetDisplaySessionResponse = Message<"toshi.workspace.v1.GetDisplaySessionResponse"> & {
394
+ /**
395
+ * @generated from field: toshi.workspace.v1.DisplaySession session = 1;
396
+ */
397
+ session?: DisplaySession | undefined;
398
+ };
399
+ /**
400
+ * @generated from message toshi.workspace.v1.GetDisplaySessionResponse
401
+ */
402
+ export type GetDisplaySessionResponseJson = {
403
+ /**
404
+ * @generated from field: toshi.workspace.v1.DisplaySession session = 1;
405
+ */
406
+ session?: DisplaySessionJson;
407
+ };
408
+ /**
409
+ * Describes the message toshi.workspace.v1.GetDisplaySessionResponse.
410
+ * Use `create(GetDisplaySessionResponseSchema)` to create a new message.
411
+ */
412
+ export declare const GetDisplaySessionResponseSchema: GenMessage<GetDisplaySessionResponse, {
413
+ jsonType: GetDisplaySessionResponseJson;
414
+ }>;
415
+ /**
416
+ * @generated from message toshi.workspace.v1.ListDisplaySessionsRequest
417
+ */
418
+ export type ListDisplaySessionsRequest = Message<"toshi.workspace.v1.ListDisplaySessionsRequest"> & {
419
+ /**
420
+ * Only this job's sessions; empty lists every job's.
421
+ *
422
+ * @generated from field: string job_id = 1;
423
+ */
424
+ jobId: string;
425
+ /**
426
+ * Only the sessions that have not closed.
427
+ *
428
+ * @generated from field: bool open_only = 2;
429
+ */
430
+ openOnly: boolean;
431
+ /**
432
+ * The most sessions in one page; zero lets the server choose.
433
+ *
434
+ * @generated from field: int32 page_size = 3;
435
+ */
436
+ pageSize: number;
437
+ /**
438
+ * From an earlier response's next_page_token; empty for the first page.
439
+ *
440
+ * @generated from field: string page_token = 4;
441
+ */
442
+ pageToken: string;
443
+ };
444
+ /**
445
+ * @generated from message toshi.workspace.v1.ListDisplaySessionsRequest
446
+ */
447
+ export type ListDisplaySessionsRequestJson = {
448
+ /**
449
+ * Only this job's sessions; empty lists every job's.
450
+ *
451
+ * @generated from field: string job_id = 1;
452
+ */
453
+ jobId?: string;
454
+ /**
455
+ * Only the sessions that have not closed.
456
+ *
457
+ * @generated from field: bool open_only = 2;
458
+ */
459
+ openOnly?: boolean;
460
+ /**
461
+ * The most sessions in one page; zero lets the server choose.
462
+ *
463
+ * @generated from field: int32 page_size = 3;
464
+ */
465
+ pageSize?: number;
466
+ /**
467
+ * From an earlier response's next_page_token; empty for the first page.
468
+ *
469
+ * @generated from field: string page_token = 4;
470
+ */
471
+ pageToken?: string;
472
+ };
473
+ /**
474
+ * Describes the message toshi.workspace.v1.ListDisplaySessionsRequest.
475
+ * Use `create(ListDisplaySessionsRequestSchema)` to create a new message.
476
+ */
477
+ export declare const ListDisplaySessionsRequestSchema: GenMessage<ListDisplaySessionsRequest, {
478
+ jsonType: ListDisplaySessionsRequestJson;
479
+ }>;
480
+ /**
481
+ * @generated from message toshi.workspace.v1.ListDisplaySessionsResponse
482
+ */
483
+ export type ListDisplaySessionsResponse = Message<"toshi.workspace.v1.ListDisplaySessionsResponse"> & {
484
+ /**
485
+ * @generated from field: repeated toshi.workspace.v1.DisplaySession sessions = 1;
486
+ */
487
+ sessions: DisplaySession[];
488
+ /**
489
+ * Empty on the last page.
490
+ *
491
+ * @generated from field: string next_page_token = 2;
492
+ */
493
+ nextPageToken: string;
494
+ };
495
+ /**
496
+ * @generated from message toshi.workspace.v1.ListDisplaySessionsResponse
497
+ */
498
+ export type ListDisplaySessionsResponseJson = {
499
+ /**
500
+ * @generated from field: repeated toshi.workspace.v1.DisplaySession sessions = 1;
501
+ */
502
+ sessions?: DisplaySessionJson[];
503
+ /**
504
+ * Empty on the last page.
505
+ *
506
+ * @generated from field: string next_page_token = 2;
507
+ */
508
+ nextPageToken?: string;
509
+ };
510
+ /**
511
+ * Describes the message toshi.workspace.v1.ListDisplaySessionsResponse.
512
+ * Use `create(ListDisplaySessionsResponseSchema)` to create a new message.
513
+ */
514
+ export declare const ListDisplaySessionsResponseSchema: GenMessage<ListDisplaySessionsResponse, {
515
+ jsonType: ListDisplaySessionsResponseJson;
516
+ }>;
517
+ /**
518
+ * @generated from message toshi.workspace.v1.CloseDisplaySessionRequest
519
+ */
520
+ export type CloseDisplaySessionRequest = Message<"toshi.workspace.v1.CloseDisplaySessionRequest"> & {
521
+ /**
522
+ * @generated from field: string session_id = 1;
523
+ */
524
+ sessionId: string;
525
+ };
526
+ /**
527
+ * @generated from message toshi.workspace.v1.CloseDisplaySessionRequest
528
+ */
529
+ export type CloseDisplaySessionRequestJson = {
530
+ /**
531
+ * @generated from field: string session_id = 1;
532
+ */
533
+ sessionId?: string;
534
+ };
535
+ /**
536
+ * Describes the message toshi.workspace.v1.CloseDisplaySessionRequest.
537
+ * Use `create(CloseDisplaySessionRequestSchema)` to create a new message.
538
+ */
539
+ export declare const CloseDisplaySessionRequestSchema: GenMessage<CloseDisplaySessionRequest, {
540
+ jsonType: CloseDisplaySessionRequestJson;
541
+ }>;
542
+ /**
543
+ * @generated from message toshi.workspace.v1.CloseDisplaySessionResponse
544
+ */
545
+ export type CloseDisplaySessionResponse = Message<"toshi.workspace.v1.CloseDisplaySessionResponse"> & {
546
+ /**
547
+ * @generated from field: toshi.workspace.v1.DisplaySession session = 1;
548
+ */
549
+ session?: DisplaySession | undefined;
550
+ };
551
+ /**
552
+ * @generated from message toshi.workspace.v1.CloseDisplaySessionResponse
553
+ */
554
+ export type CloseDisplaySessionResponseJson = {
555
+ /**
556
+ * @generated from field: toshi.workspace.v1.DisplaySession session = 1;
557
+ */
558
+ session?: DisplaySessionJson;
559
+ };
560
+ /**
561
+ * Describes the message toshi.workspace.v1.CloseDisplaySessionResponse.
562
+ * Use `create(CloseDisplaySessionResponseSchema)` to create a new message.
563
+ */
564
+ export declare const CloseDisplaySessionResponseSchema: GenMessage<CloseDisplaySessionResponse, {
565
+ jsonType: CloseDisplaySessionResponseJson;
566
+ }>;
567
+ /**
568
+ * @generated from message toshi.workspace.v1.SendDisplayKeysRequest
569
+ */
570
+ export type SendDisplayKeysRequest = Message<"toshi.workspace.v1.SendDisplayKeysRequest"> & {
571
+ /**
572
+ * @generated from field: string session_id = 1;
573
+ */
574
+ sessionId: string;
575
+ /**
576
+ * @generated from oneof toshi.workspace.v1.SendDisplayKeysRequest.input
577
+ */
578
+ input: {
579
+ /**
580
+ * Text typed one character at a time, at most 4096 characters of
581
+ * printable ASCII, newlines ("\n") and tabs; any other character fails
582
+ * the call with INVALID_ARGUMENT before any key is sent. A character
583
+ * that needs Shift on a US keyboard is typed with it; a newline is
584
+ * Return.
585
+ *
586
+ * @generated from field: string text = 2;
587
+ */
588
+ value: string;
589
+ case: "text";
590
+ } | {
591
+ /**
592
+ * Keys pressed in order, at most 256, each a key or a chord such as
593
+ * "Return", "ctrl+c", "ctrl+alt+t" or "shift+Tab": modifiers (ctrl,
594
+ * shift, alt, super) go down in order, then the key goes down and up,
595
+ * then the modifiers go up. A key is one character or an X11 keysym
596
+ * name: Return, Tab, Escape, BackSpace, Delete, Insert, Home, End,
597
+ * Page_Up, Page_Down, Left, Up, Right, Down, space, F1 to F12. An
598
+ * unknown key fails the call with INVALID_ARGUMENT before any key is
599
+ * sent.
600
+ *
601
+ * @generated from field: toshi.workspace.v1.DisplayKeys keys = 3;
602
+ */
603
+ value: DisplayKeys;
604
+ case: "keys";
605
+ } | {
606
+ case: undefined;
607
+ value?: undefined;
608
+ };
609
+ };
610
+ /**
611
+ * @generated from message toshi.workspace.v1.SendDisplayKeysRequest
612
+ */
613
+ export type SendDisplayKeysRequestJson = {
614
+ /**
615
+ * @generated from field: string session_id = 1;
616
+ */
617
+ sessionId?: string;
618
+ /**
619
+ * Text typed one character at a time, at most 4096 characters of
620
+ * printable ASCII, newlines ("\n") and tabs; any other character fails
621
+ * the call with INVALID_ARGUMENT before any key is sent. A character
622
+ * that needs Shift on a US keyboard is typed with it; a newline is
623
+ * Return.
624
+ *
625
+ * @generated from field: string text = 2;
626
+ */
627
+ text?: string;
628
+ /**
629
+ * Keys pressed in order, at most 256, each a key or a chord such as
630
+ * "Return", "ctrl+c", "ctrl+alt+t" or "shift+Tab": modifiers (ctrl,
631
+ * shift, alt, super) go down in order, then the key goes down and up,
632
+ * then the modifiers go up. A key is one character or an X11 keysym
633
+ * name: Return, Tab, Escape, BackSpace, Delete, Insert, Home, End,
634
+ * Page_Up, Page_Down, Left, Up, Right, Down, space, F1 to F12. An
635
+ * unknown key fails the call with INVALID_ARGUMENT before any key is
636
+ * sent.
637
+ *
638
+ * @generated from field: toshi.workspace.v1.DisplayKeys keys = 3;
639
+ */
640
+ keys?: DisplayKeysJson;
641
+ };
642
+ /**
643
+ * Describes the message toshi.workspace.v1.SendDisplayKeysRequest.
644
+ * Use `create(SendDisplayKeysRequestSchema)` to create a new message.
645
+ */
646
+ export declare const SendDisplayKeysRequestSchema: GenMessage<SendDisplayKeysRequest, {
647
+ jsonType: SendDisplayKeysRequestJson;
648
+ }>;
649
+ /**
650
+ * DisplayKeys is a list of keys and chords.
651
+ *
652
+ * @generated from message toshi.workspace.v1.DisplayKeys
653
+ */
654
+ export type DisplayKeys = Message<"toshi.workspace.v1.DisplayKeys"> & {
655
+ /**
656
+ * @generated from field: repeated string keys = 1;
657
+ */
658
+ keys: string[];
659
+ };
660
+ /**
661
+ * DisplayKeys is a list of keys and chords.
662
+ *
663
+ * @generated from message toshi.workspace.v1.DisplayKeys
664
+ */
665
+ export type DisplayKeysJson = {
666
+ /**
667
+ * @generated from field: repeated string keys = 1;
668
+ */
669
+ keys?: string[];
670
+ };
671
+ /**
672
+ * Describes the message toshi.workspace.v1.DisplayKeys.
673
+ * Use `create(DisplayKeysSchema)` to create a new message.
674
+ */
675
+ export declare const DisplayKeysSchema: GenMessage<DisplayKeys, {
676
+ jsonType: DisplayKeysJson;
677
+ }>;
678
+ /**
679
+ * @generated from message toshi.workspace.v1.SendDisplayKeysResponse
680
+ */
681
+ export type SendDisplayKeysResponse = Message<"toshi.workspace.v1.SendDisplayKeysResponse"> & {};
682
+ /**
683
+ * @generated from message toshi.workspace.v1.SendDisplayKeysResponse
684
+ */
685
+ export type SendDisplayKeysResponseJson = {};
686
+ /**
687
+ * Describes the message toshi.workspace.v1.SendDisplayKeysResponse.
688
+ * Use `create(SendDisplayKeysResponseSchema)` to create a new message.
689
+ */
690
+ export declare const SendDisplayKeysResponseSchema: GenMessage<SendDisplayKeysResponse, {
691
+ jsonType: SendDisplayKeysResponseJson;
692
+ }>;
693
+ /**
694
+ * @generated from message toshi.workspace.v1.SendDisplayPointerRequest
695
+ */
696
+ export type SendDisplayPointerRequest = Message<"toshi.workspace.v1.SendDisplayPointerRequest"> & {
697
+ /**
698
+ * @generated from field: string session_id = 1;
699
+ */
700
+ sessionId: string;
701
+ /**
702
+ * Pointer states sent in order, at most 256.
703
+ *
704
+ * @generated from field: repeated toshi.workspace.v1.DisplayPointerEvent events = 2;
705
+ */
706
+ events: DisplayPointerEvent[];
707
+ };
708
+ /**
709
+ * @generated from message toshi.workspace.v1.SendDisplayPointerRequest
710
+ */
711
+ export type SendDisplayPointerRequestJson = {
712
+ /**
713
+ * @generated from field: string session_id = 1;
714
+ */
715
+ sessionId?: string;
716
+ /**
717
+ * Pointer states sent in order, at most 256.
718
+ *
719
+ * @generated from field: repeated toshi.workspace.v1.DisplayPointerEvent events = 2;
720
+ */
721
+ events?: DisplayPointerEventJson[];
722
+ };
723
+ /**
724
+ * Describes the message toshi.workspace.v1.SendDisplayPointerRequest.
725
+ * Use `create(SendDisplayPointerRequestSchema)` to create a new message.
726
+ */
727
+ export declare const SendDisplayPointerRequestSchema: GenMessage<SendDisplayPointerRequest, {
728
+ jsonType: SendDisplayPointerRequestJson;
729
+ }>;
730
+ /**
731
+ * DisplayPointerEvent is where the pointer is and which buttons are down.
732
+ *
733
+ * @generated from message toshi.workspace.v1.DisplayPointerEvent
734
+ */
735
+ export type DisplayPointerEvent = Message<"toshi.workspace.v1.DisplayPointerEvent"> & {
736
+ /**
737
+ * Pixels from the screen's left and top edges, inside the screen as
738
+ * TakeDisplayScreenshot sees it; a point outside fails the call with
739
+ * INVALID_ARGUMENT before any event is sent.
740
+ *
741
+ * @generated from field: int32 x = 1;
742
+ */
743
+ x: number;
744
+ /**
745
+ * @generated from field: int32 y = 2;
746
+ */
747
+ y: number;
748
+ /**
749
+ * The buttons held down: 1 left, 2 middle, 4 right, 8 wheel up, 16
750
+ * wheel down. A click is an event with the button and one without; a
751
+ * wheel step is an event with 8 or 16 and one without.
752
+ *
753
+ * @generated from field: uint32 buttons = 3;
754
+ */
755
+ buttons: number;
756
+ };
757
+ /**
758
+ * DisplayPointerEvent is where the pointer is and which buttons are down.
759
+ *
760
+ * @generated from message toshi.workspace.v1.DisplayPointerEvent
761
+ */
762
+ export type DisplayPointerEventJson = {
763
+ /**
764
+ * Pixels from the screen's left and top edges, inside the screen as
765
+ * TakeDisplayScreenshot sees it; a point outside fails the call with
766
+ * INVALID_ARGUMENT before any event is sent.
767
+ *
768
+ * @generated from field: int32 x = 1;
769
+ */
770
+ x?: number;
771
+ /**
772
+ * @generated from field: int32 y = 2;
773
+ */
774
+ y?: number;
775
+ /**
776
+ * The buttons held down: 1 left, 2 middle, 4 right, 8 wheel up, 16
777
+ * wheel down. A click is an event with the button and one without; a
778
+ * wheel step is an event with 8 or 16 and one without.
779
+ *
780
+ * @generated from field: uint32 buttons = 3;
781
+ */
782
+ buttons?: number;
783
+ };
784
+ /**
785
+ * Describes the message toshi.workspace.v1.DisplayPointerEvent.
786
+ * Use `create(DisplayPointerEventSchema)` to create a new message.
787
+ */
788
+ export declare const DisplayPointerEventSchema: GenMessage<DisplayPointerEvent, {
789
+ jsonType: DisplayPointerEventJson;
790
+ }>;
791
+ /**
792
+ * @generated from message toshi.workspace.v1.SendDisplayPointerResponse
793
+ */
794
+ export type SendDisplayPointerResponse = Message<"toshi.workspace.v1.SendDisplayPointerResponse"> & {};
795
+ /**
796
+ * @generated from message toshi.workspace.v1.SendDisplayPointerResponse
797
+ */
798
+ export type SendDisplayPointerResponseJson = {};
799
+ /**
800
+ * Describes the message toshi.workspace.v1.SendDisplayPointerResponse.
801
+ * Use `create(SendDisplayPointerResponseSchema)` to create a new message.
802
+ */
803
+ export declare const SendDisplayPointerResponseSchema: GenMessage<SendDisplayPointerResponse, {
804
+ jsonType: SendDisplayPointerResponseJson;
805
+ }>;
806
+ /**
807
+ * @generated from message toshi.workspace.v1.SetDisplayClipboardRequest
808
+ */
809
+ export type SetDisplayClipboardRequest = Message<"toshi.workspace.v1.SetDisplayClipboardRequest"> & {
810
+ /**
811
+ * @generated from field: string session_id = 1;
812
+ */
813
+ sessionId: string;
814
+ /**
815
+ * At most 256 KiB, in Latin-1 (the RFB protocol's clipboard); other
816
+ * text fails the call with INVALID_ARGUMENT.
817
+ *
818
+ * @generated from field: string text = 2;
819
+ */
820
+ text: string;
821
+ };
822
+ /**
823
+ * @generated from message toshi.workspace.v1.SetDisplayClipboardRequest
824
+ */
825
+ export type SetDisplayClipboardRequestJson = {
826
+ /**
827
+ * @generated from field: string session_id = 1;
828
+ */
829
+ sessionId?: string;
830
+ /**
831
+ * At most 256 KiB, in Latin-1 (the RFB protocol's clipboard); other
832
+ * text fails the call with INVALID_ARGUMENT.
833
+ *
834
+ * @generated from field: string text = 2;
835
+ */
836
+ text?: string;
837
+ };
838
+ /**
839
+ * Describes the message toshi.workspace.v1.SetDisplayClipboardRequest.
840
+ * Use `create(SetDisplayClipboardRequestSchema)` to create a new message.
841
+ */
842
+ export declare const SetDisplayClipboardRequestSchema: GenMessage<SetDisplayClipboardRequest, {
843
+ jsonType: SetDisplayClipboardRequestJson;
844
+ }>;
845
+ /**
846
+ * @generated from message toshi.workspace.v1.SetDisplayClipboardResponse
847
+ */
848
+ export type SetDisplayClipboardResponse = Message<"toshi.workspace.v1.SetDisplayClipboardResponse"> & {};
849
+ /**
850
+ * @generated from message toshi.workspace.v1.SetDisplayClipboardResponse
851
+ */
852
+ export type SetDisplayClipboardResponseJson = {};
853
+ /**
854
+ * Describes the message toshi.workspace.v1.SetDisplayClipboardResponse.
855
+ * Use `create(SetDisplayClipboardResponseSchema)` to create a new message.
856
+ */
857
+ export declare const SetDisplayClipboardResponseSchema: GenMessage<SetDisplayClipboardResponse, {
858
+ jsonType: SetDisplayClipboardResponseJson;
859
+ }>;
860
+ /**
861
+ * @generated from message toshi.workspace.v1.TakeDisplayScreenshotRequest
862
+ */
863
+ export type TakeDisplayScreenshotRequest = Message<"toshi.workspace.v1.TakeDisplayScreenshotRequest"> & {
864
+ /**
865
+ * @generated from field: string session_id = 1;
866
+ */
867
+ sessionId: string;
868
+ };
869
+ /**
870
+ * @generated from message toshi.workspace.v1.TakeDisplayScreenshotRequest
871
+ */
872
+ export type TakeDisplayScreenshotRequestJson = {
873
+ /**
874
+ * @generated from field: string session_id = 1;
875
+ */
876
+ sessionId?: string;
877
+ };
878
+ /**
879
+ * Describes the message toshi.workspace.v1.TakeDisplayScreenshotRequest.
880
+ * Use `create(TakeDisplayScreenshotRequestSchema)` to create a new message.
881
+ */
882
+ export declare const TakeDisplayScreenshotRequestSchema: GenMessage<TakeDisplayScreenshotRequest, {
883
+ jsonType: TakeDisplayScreenshotRequestJson;
884
+ }>;
885
+ /**
886
+ * @generated from message toshi.workspace.v1.TakeDisplayScreenshotResponse
887
+ */
888
+ export type TakeDisplayScreenshotResponse = Message<"toshi.workspace.v1.TakeDisplayScreenshotResponse"> & {
889
+ /**
890
+ * The screen as a PNG image.
891
+ *
892
+ * @generated from field: bytes png = 1;
893
+ */
894
+ png: Uint8Array;
895
+ /**
896
+ * @generated from field: int32 width = 2;
897
+ */
898
+ width: number;
899
+ /**
900
+ * @generated from field: int32 height = 3;
901
+ */
902
+ height: number;
903
+ /**
904
+ * @generated from field: google.protobuf.Timestamp taken_at = 4;
905
+ */
906
+ takenAt?: Timestamp | undefined;
907
+ };
908
+ /**
909
+ * @generated from message toshi.workspace.v1.TakeDisplayScreenshotResponse
910
+ */
911
+ export type TakeDisplayScreenshotResponseJson = {
912
+ /**
913
+ * The screen as a PNG image.
914
+ *
915
+ * @generated from field: bytes png = 1;
916
+ */
917
+ png?: string;
918
+ /**
919
+ * @generated from field: int32 width = 2;
920
+ */
921
+ width?: number;
922
+ /**
923
+ * @generated from field: int32 height = 3;
924
+ */
925
+ height?: number;
926
+ /**
927
+ * @generated from field: google.protobuf.Timestamp taken_at = 4;
928
+ */
929
+ takenAt?: TimestampJson;
930
+ };
931
+ /**
932
+ * Describes the message toshi.workspace.v1.TakeDisplayScreenshotResponse.
933
+ * Use `create(TakeDisplayScreenshotResponseSchema)` to create a new message.
934
+ */
935
+ export declare const TakeDisplayScreenshotResponseSchema: GenMessage<TakeDisplayScreenshotResponse, {
936
+ jsonType: TakeDisplayScreenshotResponseJson;
937
+ }>;
938
+ /**
939
+ * DisplayMode is what a session's viewer may do.
940
+ *
941
+ * @generated from enum toshi.workspace.v1.DisplayMode
942
+ */
943
+ export declare enum DisplayMode {
944
+ /**
945
+ * View only.
946
+ *
947
+ * @generated from enum value: DISPLAY_MODE_UNSPECIFIED = 0;
948
+ */
949
+ UNSPECIFIED = 0,
950
+ /**
951
+ * The viewer sees the screen; the relay drops its keys, pointer and
952
+ * clipboard.
953
+ *
954
+ * @generated from enum value: DISPLAY_MODE_VIEW_ONLY = 1;
955
+ */
956
+ VIEW_ONLY = 1,
957
+ /**
958
+ * The viewer sees the screen and sends keys, pointer and clipboard. One
959
+ * open session of a job has input at a time.
960
+ *
961
+ * @generated from enum value: DISPLAY_MODE_WITH_INPUT = 2;
962
+ */
963
+ WITH_INPUT = 2
964
+ }
965
+ /**
966
+ * DisplayMode is what a session's viewer may do.
967
+ *
968
+ * @generated from enum toshi.workspace.v1.DisplayMode
969
+ */
970
+ export type DisplayModeJson = "DISPLAY_MODE_UNSPECIFIED" | "DISPLAY_MODE_VIEW_ONLY" | "DISPLAY_MODE_WITH_INPUT";
971
+ /**
972
+ * Describes the enum toshi.workspace.v1.DisplayMode.
973
+ */
974
+ export declare const DisplayModeSchema: GenEnum<DisplayMode, DisplayModeJson>;
975
+ /**
976
+ * @generated from enum toshi.workspace.v1.DisplaySessionState
977
+ */
978
+ export declare enum DisplaySessionState {
979
+ /**
980
+ * @generated from enum value: DISPLAY_SESSION_STATE_UNSPECIFIED = 0;
981
+ */
982
+ UNSPECIFIED = 0,
983
+ /**
984
+ * Opened; its viewer has not presented the token yet.
985
+ *
986
+ * @generated from enum value: DISPLAY_SESSION_STATE_WAITING = 1;
987
+ */
988
+ WAITING = 1,
989
+ /**
990
+ * Its viewer is attached.
991
+ *
992
+ * @generated from enum value: DISPLAY_SESSION_STATE_ATTACHED = 2;
993
+ */
994
+ ATTACHED = 2,
995
+ /**
996
+ * @generated from enum value: DISPLAY_SESSION_STATE_CLOSED = 3;
997
+ */
998
+ CLOSED = 3
999
+ }
1000
+ /**
1001
+ * @generated from enum toshi.workspace.v1.DisplaySessionState
1002
+ */
1003
+ export type DisplaySessionStateJson = "DISPLAY_SESSION_STATE_UNSPECIFIED" | "DISPLAY_SESSION_STATE_WAITING" | "DISPLAY_SESSION_STATE_ATTACHED" | "DISPLAY_SESSION_STATE_CLOSED";
1004
+ /**
1005
+ * Describes the enum toshi.workspace.v1.DisplaySessionState.
1006
+ */
1007
+ export declare const DisplaySessionStateSchema: GenEnum<DisplaySessionState, DisplaySessionStateJson>;
1008
+ /**
1009
+ * DisplayOpener is how a session was opened.
1010
+ *
1011
+ * @generated from enum toshi.workspace.v1.DisplayOpener
1012
+ */
1013
+ export declare enum DisplayOpener {
1014
+ /**
1015
+ * @generated from enum value: DISPLAY_OPENER_UNSPECIFIED = 0;
1016
+ */
1017
+ UNSPECIFIED = 0,
1018
+ /**
1019
+ * A person, signed in to the dashboard.
1020
+ *
1021
+ * @generated from enum value: DISPLAY_OPENER_PERSON = 1;
1022
+ */
1023
+ PERSON = 1,
1024
+ /**
1025
+ * A program, with an API token.
1026
+ *
1027
+ * @generated from enum value: DISPLAY_OPENER_PROGRAM = 2;
1028
+ */
1029
+ PROGRAM = 2
1030
+ }
1031
+ /**
1032
+ * DisplayOpener is how a session was opened.
1033
+ *
1034
+ * @generated from enum toshi.workspace.v1.DisplayOpener
1035
+ */
1036
+ export type DisplayOpenerJson = "DISPLAY_OPENER_UNSPECIFIED" | "DISPLAY_OPENER_PERSON" | "DISPLAY_OPENER_PROGRAM";
1037
+ /**
1038
+ * Describes the enum toshi.workspace.v1.DisplayOpener.
1039
+ */
1040
+ export declare const DisplayOpenerSchema: GenEnum<DisplayOpener, DisplayOpenerJson>;
1041
+ /**
1042
+ * DisplayService opens display sessions: one viewer's live view of the
1043
+ * screen of a VM that runs one of the workspace's CI jobs. The caller's
1044
+ * credential names the workspace, as for WorkloadService; a session or a job
1045
+ * of another workspace is NOT_FOUND.
1046
+ *
1047
+ * A session carries the screen as the RFB protocol (RFC 6143) over a
1048
+ * WebSocket at the session's URL, the framing noVNC speaks. Its token,
1049
+ * in the answer to OpenDisplaySession and in no other, attaches it once:
1050
+ * the viewer presents it before the token expires, and a closed, attached
1051
+ * or expired session refuses it.
1052
+ *
1053
+ * The plan sets how many sessions one job may have at once, attached or
1054
+ * waiting for their viewer, and the longest idle close; a plan without
1055
+ * displays refuses every open with FAILED_PRECONDITION. A suspended
1056
+ * workspace opens none, and its open sessions close.
1057
+ *
1058
+ * @generated from service toshi.workspace.v1.DisplayService
1059
+ */
1060
+ export declare const DisplayService: GenService<{
1061
+ /**
1062
+ * OpenDisplaySession opens a session on a running job and returns its
1063
+ * URL and token. A job that is not running, or one beyond the plan's
1064
+ * viewers, or a second session with input on a job, fails with
1065
+ * FAILED_PRECONDITION. A session ends when it is closed, when no bytes
1066
+ * of the screen's protocol go either way for its idle close, when its
1067
+ * token expires before it attaches, when its job stops running on the
1068
+ * VM it was opened on, or when the workspace is suspended.
1069
+ *
1070
+ * request_key works as WorkloadService's, except that a retry never
1071
+ * returns the token: it returns the session the first call opened, with
1072
+ * replayed set and no token, and opens nothing. Open another session for
1073
+ * a new token.
1074
+ *
1075
+ * @generated from rpc toshi.workspace.v1.DisplayService.OpenDisplaySession
1076
+ */
1077
+ openDisplaySession: {
1078
+ methodKind: "unary";
1079
+ input: typeof OpenDisplaySessionRequestSchema;
1080
+ output: typeof OpenDisplaySessionResponseSchema;
1081
+ };
1082
+ /**
1083
+ * GetDisplaySession returns one session. An unknown ID fails with
1084
+ * NOT_FOUND.
1085
+ *
1086
+ * @generated from rpc toshi.workspace.v1.DisplayService.GetDisplaySession
1087
+ */
1088
+ getDisplaySession: {
1089
+ methodKind: "unary";
1090
+ input: typeof GetDisplaySessionRequestSchema;
1091
+ output: typeof GetDisplaySessionResponseSchema;
1092
+ };
1093
+ /**
1094
+ * ListDisplaySessions returns the workspace's sessions, the newest
1095
+ * first.
1096
+ *
1097
+ * A page holds 50 sessions when page_size is zero, and 200 at most.
1098
+ *
1099
+ * @generated from rpc toshi.workspace.v1.DisplayService.ListDisplaySessions
1100
+ */
1101
+ listDisplaySessions: {
1102
+ methodKind: "unary";
1103
+ input: typeof ListDisplaySessionsRequestSchema;
1104
+ output: typeof ListDisplaySessionsResponseSchema;
1105
+ };
1106
+ /**
1107
+ * CloseDisplaySession closes a session and ends its viewer's connection.
1108
+ * Closing a closed session changes nothing.
1109
+ *
1110
+ * @generated from rpc toshi.workspace.v1.DisplayService.CloseDisplaySession
1111
+ */
1112
+ closeDisplaySession: {
1113
+ methodKind: "unary";
1114
+ input: typeof CloseDisplaySessionRequestSchema;
1115
+ output: typeof CloseDisplaySessionResponseSchema;
1116
+ };
1117
+ /**
1118
+ * SendDisplayKeys presses and releases keys on the screen. A view-only
1119
+ * session refuses it with FAILED_PRECONDITION.
1120
+ *
1121
+ * @generated from rpc toshi.workspace.v1.DisplayService.SendDisplayKeys
1122
+ */
1123
+ sendDisplayKeys: {
1124
+ methodKind: "unary";
1125
+ input: typeof SendDisplayKeysRequestSchema;
1126
+ output: typeof SendDisplayKeysResponseSchema;
1127
+ };
1128
+ /**
1129
+ * SendDisplayPointer moves the pointer and presses or releases its
1130
+ * buttons. A view-only session refuses it with FAILED_PRECONDITION.
1131
+ *
1132
+ * @generated from rpc toshi.workspace.v1.DisplayService.SendDisplayPointer
1133
+ */
1134
+ sendDisplayPointer: {
1135
+ methodKind: "unary";
1136
+ input: typeof SendDisplayPointerRequestSchema;
1137
+ output: typeof SendDisplayPointerResponseSchema;
1138
+ };
1139
+ /**
1140
+ * SetDisplayClipboard sets the screen's clipboard. It reaches the
1141
+ * guest's own clipboard only where the guest image runs a clipboard
1142
+ * agent. A view-only session refuses it with FAILED_PRECONDITION.
1143
+ *
1144
+ * @generated from rpc toshi.workspace.v1.DisplayService.SetDisplayClipboard
1145
+ */
1146
+ setDisplayClipboard: {
1147
+ methodKind: "unary";
1148
+ input: typeof SetDisplayClipboardRequestSchema;
1149
+ output: typeof SetDisplayClipboardResponseSchema;
1150
+ };
1151
+ /**
1152
+ * TakeDisplayScreenshot returns the whole screen as it is now, as a
1153
+ * PNG, once every pixel of a new frame has arrived: within the call's
1154
+ * deadline and at most 10 s, or DEADLINE_EXCEEDED. A screen larger
1155
+ * than 3840 x 2160 fails with FAILED_PRECONDITION; the control plane's
1156
+ * memory for frames, shared by its sessions, with RESOURCE_EXHAUSTED. A
1157
+ * view-only session takes them too.
1158
+ *
1159
+ * @generated from rpc toshi.workspace.v1.DisplayService.TakeDisplayScreenshot
1160
+ */
1161
+ takeDisplayScreenshot: {
1162
+ methodKind: "unary";
1163
+ input: typeof TakeDisplayScreenshotRequestSchema;
1164
+ output: typeof TakeDisplayScreenshotResponseSchema;
1165
+ };
1166
+ }>;