@toshicloud/sdk 0.5.1 → 0.7.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 (48) hide show
  1. package/README.md +39 -455
  2. package/dist/client.d.ts +76 -6
  3. package/dist/client.js +20 -4
  4. package/dist/gen/toshi/permission_pb.d.ts +12 -0
  5. package/dist/gen/toshi/permission_pb.js +14 -2
  6. package/dist/gen/toshi/workspace/v1/connections_pb.d.ts +358 -29
  7. package/dist/gen/toshi/workspace/v1/connections_pb.js +112 -24
  8. package/dist/gen/toshi/workspace/v1/domains_pb.d.ts +26 -26
  9. package/dist/gen/toshi/workspace/v1/domains_pb.js +4 -4
  10. package/dist/gen/toshi/workspace/v1/{channels_pb.d.ts → endpoints_pb.d.ts} +945 -822
  11. package/dist/gen/toshi/workspace/v1/endpoints_pb.js +488 -0
  12. package/dist/gen/toshi/workspace/v1/grants_pb.d.ts +10 -10
  13. package/dist/gen/toshi/workspace/v1/grants_pb.js +3 -3
  14. package/dist/gen/toshi/workspace/v1/hostjobs_pb.d.ts +62 -24
  15. package/dist/gen/toshi/workspace/v1/hostjobs_pb.js +1 -1
  16. package/dist/gen/toshi/workspace/v1/hosts_pb.d.ts +110 -36
  17. package/dist/gen/toshi/workspace/v1/hosts_pb.js +1 -1
  18. package/dist/gen/toshi/workspace/v1/model_credentials_pb.d.ts +654 -0
  19. package/dist/gen/toshi/workspace/v1/model_credentials_pb.js +110 -0
  20. package/dist/gen/toshi/workspace/v1/recordings_pb.d.ts +21 -2
  21. package/dist/gen/toshi/workspace/v1/recordings_pb.js +1 -1
  22. package/dist/gen/toshi/workspace/v1/roles_pb.d.ts +1 -1
  23. package/dist/gen/toshi/workspace/v1/roles_pb.js +1 -1
  24. package/dist/gen/toshi/workspace/v1/secrets_pb.d.ts +19 -2
  25. package/dist/gen/toshi/workspace/v1/secrets_pb.js +1 -1
  26. package/dist/gen/toshi/workspace/v1/triggers_pb.d.ts +28 -28
  27. package/dist/gen/toshi/workspace/v1/triggers_pb.js +6 -6
  28. package/dist/gen/toshi/workspace/v1/webhook_pb.d.ts +202 -202
  29. package/dist/gen/toshi/workspace/v1/webhook_pb.js +46 -46
  30. package/dist/gen/toshi/workspace/v1/workloads_pb.d.ts +579 -30
  31. package/dist/gen/toshi/workspace/v1/workloads_pb.js +85 -55
  32. package/dist/gen/toshi/workspace/v1/workspace_pb.d.ts +991 -123
  33. package/dist/gen/toshi/workspace/v1/workspace_pb.js +294 -102
  34. package/dist/gen/toshi/workspace/v1/workspace_service_pb.d.ts +390 -8
  35. package/dist/gen/toshi/workspace/v1/workspace_service_pb.js +75 -50
  36. package/dist/index.d.ts +2 -1
  37. package/dist/index.js +2 -1
  38. package/dist/retry.js +38 -22
  39. package/dist/test/alarms.d.ts +29 -0
  40. package/dist/test/alarms.js +144 -0
  41. package/dist/test/fake.js +31 -0
  42. package/dist/test/index.d.ts +12 -2
  43. package/dist/test/index.js +12 -2
  44. package/dist/test/procedures.js +40 -34
  45. package/dist/version.d.ts +1 -1
  46. package/dist/version.js +1 -1
  47. package/package.json +1 -1
  48. package/dist/gen/toshi/workspace/v1/channels_pb.js +0 -483
@@ -311,16 +311,11 @@ export type GetHostJobFailureResponse = Message<"toshi.workspace.v1.GetHostJobFa
311
311
  */
312
312
  whatToDo: string;
313
313
  /**
314
- * The host job's page on GitHub, and its page on the dashboard. Each is
315
- * empty when Toshi does not know it.
314
+ * The host job's page on GitHub. Empty when Toshi does not know it.
316
315
  *
317
316
  * @generated from field: string github_url = 7;
318
317
  */
319
318
  githubUrl: string;
320
- /**
321
- * @generated from field: string dashboard_url = 8;
322
- */
323
- dashboardUrl: string;
324
319
  /**
325
320
  * How earlier failures of the same job went when they were re-run on
326
321
  * GitHub. Unset for a host job that succeeded, has not ended or was
@@ -401,16 +396,11 @@ export type GetHostJobFailureResponseJson = {
401
396
  */
402
397
  whatToDo?: string;
403
398
  /**
404
- * The host job's page on GitHub, and its page on the dashboard. Each is
405
- * empty when Toshi does not know it.
399
+ * The host job's page on GitHub. Empty when Toshi does not know it.
406
400
  *
407
401
  * @generated from field: string github_url = 7;
408
402
  */
409
403
  githubUrl?: string;
410
- /**
411
- * @generated from field: string dashboard_url = 8;
412
- */
413
- dashboardUrl?: string;
414
404
  /**
415
405
  * How earlier failures of the same job went when they were re-run on
416
406
  * GitHub. Unset for a host job that succeeded, has not ended or was
@@ -788,7 +778,7 @@ export type HostJob = Message<"toshi.workspace.v1.HostJob"> & {
788
778
  * github_completed, runner_not_started, runner_unconfirmed, debug_ended,
789
779
  * ran_elsewhere, for a sandbox spend_cap, tenant_suspended,
790
780
  * tenant_deleted or owner, or for a service's run owner_deleted,
791
- * service_restart or sleep. Empty if it never was.
781
+ * service_restart or sleep, or policy. Empty if it never was.
792
782
  *
793
783
  * @generated from field: string stop_reason = 18;
794
784
  */
@@ -803,15 +793,22 @@ export type HostJob = Message<"toshi.workspace.v1.HostJob"> & {
803
793
  /**
804
794
  * Why the scheduler last held the job while it was queued:
805
795
  * tenant_suspended, limits_unavailable, tenant_cap, tenant_vcpu,
806
- * free_allowance, spend_cap, jobs_per_hour, burst_guard, plan_os,
807
- * installation_suspended, overflow_wait, no_own_capacity, no_capacity,
808
- * cloud_budget, reserved_for_other, volume_claimed, service_quota,
809
- * no_network_enforcement, no_build_base or host_kinds. Empty when the job
810
- * was never held. It is kept after the job starts.
796
+ * free_allowance, spend_cap, jobs_per_hour, start_rate, burst_guard,
797
+ * plan_os, installation_suspended, overflow_wait, no_own_capacity,
798
+ * no_capacity, cloud_budget, reserved_for_other, volume_claimed,
799
+ * service_quota, no_network_enforcement, no_build_base or host_kinds.
800
+ * Empty when the job was never held. It is kept after the job starts.
811
801
  *
812
802
  * @generated from field: string hold_reason = 20;
813
803
  */
814
804
  holdReason: string;
805
+ /**
806
+ * When the job's hold_reason is start_rate: the earliest time every start
807
+ * window of the workspace has room again. Unset otherwise.
808
+ *
809
+ * @generated from field: google.protobuf.Timestamp next_start_at = 56;
810
+ */
811
+ nextStartAt?: Timestamp | undefined;
815
812
  /**
816
813
  * Whether the job was placed on a host its workspace owns. Such a job sends no
817
814
  * meter event.
@@ -913,6 +910,16 @@ export type HostJob = Message<"toshi.workspace.v1.HostJob"> & {
913
910
  * @generated from field: int64 billable_minutes = 34;
914
911
  */
915
912
  billableMinutes: bigint;
913
+ /**
914
+ * The job's exact run time in seconds, from started_at to
915
+ * stop_requested_at when the job was asked to stop, else to finished_at,
916
+ * with no rounding: what a plan that bills by the second counts.
917
+ * billable_minutes is the same time rounded up to whole minutes. 0 for
918
+ * the same jobs as billable_minutes.
919
+ *
920
+ * @generated from field: double billable_seconds = 55;
921
+ */
922
+ billableSeconds: number;
916
923
  /**
917
924
  * The job's page on GitHub, on the configured GitHub web URL. Empty when
918
925
  * the job has no repository, run or workflow job id.
@@ -1083,6 +1090,13 @@ export type HostJob = Message<"toshi.workspace.v1.HostJob"> & {
1083
1090
  * @generated from field: string screen_unavailable_reason = 53;
1084
1091
  */
1085
1092
  screenUnavailableReason: string;
1093
+ /**
1094
+ * exec_rate, connection_rate, request_rate, mining, operator or runner_swap; set only
1095
+ * with stop_reason "policy".
1096
+ *
1097
+ * @generated from field: string stop_cause = 54;
1098
+ */
1099
+ stopCause: string;
1086
1100
  };
1087
1101
  /**
1088
1102
  * HostJob is one run on a host: a GitHub Actions workflow job, or the run of
@@ -1181,7 +1195,7 @@ export type HostJobJson = {
1181
1195
  * github_completed, runner_not_started, runner_unconfirmed, debug_ended,
1182
1196
  * ran_elsewhere, for a sandbox spend_cap, tenant_suspended,
1183
1197
  * tenant_deleted or owner, or for a service's run owner_deleted,
1184
- * service_restart or sleep. Empty if it never was.
1198
+ * service_restart or sleep, or policy. Empty if it never was.
1185
1199
  *
1186
1200
  * @generated from field: string stop_reason = 18;
1187
1201
  */
@@ -1196,15 +1210,22 @@ export type HostJobJson = {
1196
1210
  /**
1197
1211
  * Why the scheduler last held the job while it was queued:
1198
1212
  * tenant_suspended, limits_unavailable, tenant_cap, tenant_vcpu,
1199
- * free_allowance, spend_cap, jobs_per_hour, burst_guard, plan_os,
1200
- * installation_suspended, overflow_wait, no_own_capacity, no_capacity,
1201
- * cloud_budget, reserved_for_other, volume_claimed, service_quota,
1202
- * no_network_enforcement, no_build_base or host_kinds. Empty when the job
1203
- * was never held. It is kept after the job starts.
1213
+ * free_allowance, spend_cap, jobs_per_hour, start_rate, burst_guard,
1214
+ * plan_os, installation_suspended, overflow_wait, no_own_capacity,
1215
+ * no_capacity, cloud_budget, reserved_for_other, volume_claimed,
1216
+ * service_quota, no_network_enforcement, no_build_base or host_kinds.
1217
+ * Empty when the job was never held. It is kept after the job starts.
1204
1218
  *
1205
1219
  * @generated from field: string hold_reason = 20;
1206
1220
  */
1207
1221
  holdReason?: string;
1222
+ /**
1223
+ * When the job's hold_reason is start_rate: the earliest time every start
1224
+ * window of the workspace has room again. Unset otherwise.
1225
+ *
1226
+ * @generated from field: google.protobuf.Timestamp next_start_at = 56;
1227
+ */
1228
+ nextStartAt?: TimestampJson;
1208
1229
  /**
1209
1230
  * Whether the job was placed on a host its workspace owns. Such a job sends no
1210
1231
  * meter event.
@@ -1306,6 +1327,16 @@ export type HostJobJson = {
1306
1327
  * @generated from field: int64 billable_minutes = 34;
1307
1328
  */
1308
1329
  billableMinutes?: string;
1330
+ /**
1331
+ * The job's exact run time in seconds, from started_at to
1332
+ * stop_requested_at when the job was asked to stop, else to finished_at,
1333
+ * with no rounding: what a plan that bills by the second counts.
1334
+ * billable_minutes is the same time rounded up to whole minutes. 0 for
1335
+ * the same jobs as billable_minutes.
1336
+ *
1337
+ * @generated from field: double billable_seconds = 55;
1338
+ */
1339
+ billableSeconds?: number | "NaN" | "Infinity" | "-Infinity";
1309
1340
  /**
1310
1341
  * The job's page on GitHub, on the configured GitHub web URL. Empty when
1311
1342
  * the job has no repository, run or workflow job id.
@@ -1476,6 +1507,13 @@ export type HostJobJson = {
1476
1507
  * @generated from field: string screen_unavailable_reason = 53;
1477
1508
  */
1478
1509
  screenUnavailableReason?: string;
1510
+ /**
1511
+ * exec_rate, connection_rate, request_rate, mining, operator or runner_swap; set only
1512
+ * with stop_reason "policy".
1513
+ *
1514
+ * @generated from field: string stop_cause = 54;
1515
+ */
1516
+ stopCause?: string;
1479
1517
  };
1480
1518
  /**
1481
1519
  * Describes the message toshi.workspace.v1.HostJob.
@@ -7,7 +7,7 @@ import { file_toshi_permission } from "../../permission_pb.js";
7
7
  /**
8
8
  * Describes the file toshi/workspace/v1/hostjobs.proto.
9
9
  */
10
- export const file_toshi_workspace_v1_hostjobs = /*@__PURE__*/ fileDesc("CiF0b3NoaS93b3Jrc3BhY2UvdjEvaG9zdGpvYnMucHJvdG8SEnRvc2hpLndvcmtzcGFjZS52MSKXAQoTTGlzdEhvc3RKb2JzUmVxdWVzdBIwCgZzdGF0ZXMYASADKA4yIC50b3NoaS53b3Jrc3BhY2UudjEuSG9zdEpvYlN0YXRlEhIKCnJlcG9zaXRvcnkYAiABKAkSEwoLd29ya2xvYWRfaWQYAyABKAkSEQoJcGFnZV9zaXplGAQgASgFEhIKCnBhZ2VfdG9rZW4YBSABKAkiXwoUTGlzdEhvc3RKb2JzUmVzcG9uc2USLgoJaG9zdF9qb2JzGAEgAygLMhsudG9zaGkud29ya3NwYWNlLnYxLkhvc3RKb2ISFwoPbmV4dF9wYWdlX3Rva2VuGAIgASgJIh8KEUdldEhvc3RKb2JSZXF1ZXN0EgoKAmlkGAEgASgJInkKEkdldEhvc3RKb2JSZXNwb25zZRItCghob3N0X2pvYhgBIAEoCzIbLnRvc2hpLndvcmtzcGFjZS52MS5Ib3N0Sm9iEjQKCGF0dGVtcHRzGAIgAygLMiIudG9zaGkud29ya3NwYWNlLnYxLkhvc3RKb2JBdHRlbXB0IiIKFENhbmNlbEhvc3RKb2JSZXF1ZXN0EgoKAmlkGAEgASgJIkYKFUNhbmNlbEhvc3RKb2JSZXNwb25zZRItCghob3N0X2pvYhgBIAEoCzIbLnRvc2hpLndvcmtzcGFjZS52MS5Ib3N0Sm9iIiYKGEdldEhvc3RKb2JGYWlsdXJlUmVxdWVzdBIKCgJpZBgBIAEoCSKpAgoZR2V0SG9zdEpvYkZhaWx1cmVSZXNwb25zZRINCgVjYXVzZRgBIAEoCRITCgtleHBsYW5hdGlvbhgCIAEoCRISCgpjb25jbHVzaW9uGAMgASgJEg8KB3ZlcmRpY3QYBCABKAkSFgoOdmVyZGljdF9yZWFzb24YBSABKAkSEgoKd2hhdF90b19kbxgGIAEoCRISCgpnaXRodWJfdXJsGAcgASgJEhUKDWRhc2hib2FyZF91cmwYCCABKAkSOgoHaGlzdG9yeRgJIAEoCzIpLnRvc2hpLndvcmtzcGFjZS52MS5Ib3N0Sm9iRmFpbHVyZUhpc3RvcnkSDQoFY2FjaGUYCiABKAkSEQoJdGllcl9saW5lGAsgASgJEg4KBmpvYl9pZBgMIAEoCSIoChpHZXRIb3N0Sm9iVGVsZW1ldHJ5UmVxdWVzdBIKCgJpZBgBIAEoCSLJAQobR2V0SG9zdEpvYlRlbGVtZXRyeVJlc3BvbnNlEgwKBHNpemUYASABKAkSDQoFdmNwdXMYAiABKAUSEgoKbWVtb3J5X21pYhgDIAEoAxI8CgdzdW1tYXJ5GAQgASgLMisudG9zaGkud29ya3NwYWNlLnYxLkhvc3RKb2JUZWxlbWV0cnlTdW1tYXJ5EjsKB3NhbXBsZXMYBSADKAsyKi50b3NoaS53b3Jrc3BhY2UudjEuSG9zdEpvYlRlbGVtZXRyeVNhbXBsZSIqChxHZXRIb3N0Sm9iRGVidWdBY2Nlc3NSZXF1ZXN0EgoKAmlkGAEgASgJIoYBCh1HZXRIb3N0Sm9iRGVidWdBY2Nlc3NSZXNwb25zZRIMCgR1c2VyGAEgASgJEhMKC3ByaXZhdGVfa2V5GAIgASgMEhIKCnJlbGF5X3BhdGgYAyABKAkSLgoKZXhwaXJlc19hdBgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAiJQoXU3RvcEhvc3RKb2JEZWJ1Z1JlcXVlc3QSCgoCaWQYASABKAkiSQoYU3RvcEhvc3RKb2JEZWJ1Z1Jlc3BvbnNlEi0KCGhvc3Rfam9iGAEgASgLMhsudG9zaGkud29ya3NwYWNlLnYxLkhvc3RKb2Ii3gsKB0hvc3RKb2ISCgoCaWQYASABKAkSEgoKcmVwb3NpdG9yeRgCIAEoCRIXCg93b3JrZmxvd19qb2JfaWQYAyABKAMSDgoGcnVuX2lkGAQgASgDEhcKD2luc3RhbGxhdGlvbl9pZBgFIAEoAxIOCgZsYWJlbHMYBiADKAkSCgoCb3MYByABKAkSDAoEc2l6ZRgIIAEoCRIvCgVzdGF0ZRgJIAEoDjIgLnRvc2hpLndvcmtzcGFjZS52MS5Ib3N0Sm9iU3RhdGUSDwoHaG9zdF9pZBgKIAEoCRITCgtpbnN0YW5jZV9pZBgLIAEoCRItCglxdWV1ZWRfYXQYDCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi8KC2Fzc2lnbmVkX2F0GA0gASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgpzdGFydGVkX2F0GA4gASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIvCgtmaW5pc2hlZF9hdBgPIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASEgoKY29uY2x1c2lvbhgQIAEoCRINCgVlcnJvchgRIAEoCRITCgtzdG9wX3JlYXNvbhgSIAEoCRI1ChFzdG9wX3JlcXVlc3RlZF9hdBgTIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASEwoLaG9sZF9yZWFzb24YFCABKAkSEAoIb3duX2hvc3QYFSABKAgSHwoXZGVidWdfcmVxdWVzdGVkX21pbnV0ZXMYFiABKAUSFQoNZGVidWdfbWludXRlcxgXIAEoBRISCgpkZWJ1Z19ub3RlGBggASgJEjQKEGRlYnVnX3N0YXJ0ZWRfYXQYGSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi8KC2RlYnVnX3VudGlsGBogASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBI+Cgl0ZWxlbWV0cnkYGyABKAsyKy50b3NoaS53b3Jrc3BhY2UudjEuSG9zdEpvYlRlbGVtZXRyeVN1bW1hcnkSGgoScnVubmVyX2V4aXRfcmVhc29uGBwgASgJEhAKCG92ZXJmbG93GB0gASgIEjgKFHJ1bm5lcl9yZXF1ZXN0X3NpbmNlGB4gASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIPCgdvdXRjb21lGB8gASgJEhEKCWhvc3Rfa2luZBggIAEoCRIbChNwcmV2aW91c19wb29sX2ltYWdlGCEgASgJEhgKEGJpbGxhYmxlX21pbnV0ZXMYIiABKAMSEgoKZ2l0aHViX3VybBgjIAEoCRIVCg13b3JrZmxvd19uYW1lGCQgASgJEi8KBWNhY2hlGCUgASgLMiAudG9zaGkud29ya3NwYWNlLnYxLkhvc3RKb2JDYWNoZRI0ChBydW5uZXJfZXhpdGVkX2F0GCYgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIZChFydW5uZXJfY29uY2x1c2lvbhgnIAEoCRIMCgR0aWVyGCggASgJEhgKEG1lbW9yeV9saW1pdF9taWIYKSABKAMSEQoJdGllcl9saW5lGCogASgJEi0KBGtpbmQYKyABKA4yHy50b3NoaS53b3Jrc3BhY2UudjEuSG9zdEpvYktpbmQSEwoLd29ya2xvYWRfaWQYLCABKAkSDwoHcHJvamVjdBgtIAEoCRITCgtlbnZpcm9ubWVudBguIAEoCRIQCghwcm92aWRlchgvIAEoCRIOCgZzdGF0dXMYMCABKAkSEQoJcnVubmVyX2lkGDEgASgJEhMKC3J1bm5lcl9uYW1lGDIgASgJEg8KB2F0dGVtcHQYMyABKAUSEwoLcnVuX2F0dGVtcHQYNCABKAUSIQoZc2NyZWVuX3VuYXZhaWxhYmxlX3JlYXNvbhg1IAEoCSK0AgoOSG9zdEpvYkF0dGVtcHQSDwoHYXR0ZW1wdBgBIAEoBRIRCglydW5uZXJfaWQYAiABKAkSEwoLcnVubmVyX25hbWUYAyABKAkSDwoHaG9zdF9pZBgEIAEoCRITCgtpbnN0YW5jZV9pZBgFIAEoCRIQCghwcm92aWRlchgGIAEoCRIvCgthc3NpZ25lZF9hdBgHIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLgoKc3RhcnRlZF9hdBgIIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLwoLZmluaXNoZWRfYXQYCSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhIKCmNvbmNsdXNpb24YCiABKAkSCwoDZW5kGAsgASgJIvYBChdIb3N0Sm9iVGVsZW1ldHJ5U3VtbWFyeRISCgpvb21fa2lsbGVkGAEgASgIEhkKEWNwdV90aHJvdHRsZWRfcGN0GAIgASgBEhcKD3BlYWtfbWVtb3J5X21pYhgDIAEoAxIbChNjcHVfdXRpbGlzYXRpb25fcGN0GAQgASgBEg8KB3NhbXBsZXMYBSABKAUSGAoQbWVtb3J5X2xpbWl0X21pYhgGIAEoAxIOCgZjcHVfbXMYByABKAMSEgoKb29tX3JlYXNvbhgIIAEoCRIPCgd2ZXJkaWN0GAkgASgJEhYKDnZlcmRpY3RfcmVhc29uGAogASgJIp8BCgxIb3N0Sm9iQ2FjaGUSDgoGYXR0YWNoGAEgASgJEhcKD2Jhc2VfZ2VuZXJhdGlvbhgCIAEoAxISCgp3cml0ZV9iYWNrGAMgASgJEhMKC3NraXBfcmVhc29uGAQgASgJEhgKEGdlbmVyYXRpb25fYnl0ZXMYBSABKAMSFQoNd3JpdGVfYmFja19tcxgGIAEoAxIMCgRsaW5lGAcgASgJIvYCChZIb3N0Sm9iVGVsZW1ldHJ5U2FtcGxlEiYKAmF0GAEgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIRCgl3aW5kb3dfbXMYAiABKAUSDgoGY3B1X21zGAMgASgDEhMKC2NwdV93YWl0X21zGAQgASgDEh0KEGd1ZXN0X21lbW9yeV9taWIYBSABKANIAIgBARIXCg9ob3N0X21lbW9yeV9taWIYBiABKAMSFwoPZGlza19yZWFkX2J5dGVzGAcgASgDEhgKEGRpc2tfd3JpdGVfYnl0ZXMYCCABKAMSGQoMbmV0X3J4X2J5dGVzGAkgASgDSAGIAQESGQoMbmV0X3R4X2J5dGVzGAogASgDSAKIAQESFgoJb29tX2tpbGxzGAsgASgFSAOIAQFCEwoRX2d1ZXN0X21lbW9yeV9taWJCDwoNX25ldF9yeF9ieXRlc0IPCg1fbmV0X3R4X2J5dGVzQgwKCl9vb21fa2lsbHMirQEKFUhvc3RKb2JGYWlsdXJlSGlzdG9yeRIMCgRkYXlzGAEgASgFEhcKD3Bhc3NlZF9vbl9yZXJ1bhgCIAEoBRIUCgxmYWlsZWRfYWdhaW4YAyABKAUSDAoEc3RlcBgEIAEoCRIcChRzdGVwX3Bhc3NlZF9vbl9yZXJ1bhgFIAEoBRIZChFzdGVwX2ZhaWxlZF9hZ2FpbhgGIAEoBRIQCghzZW50ZW5jZRgHIAEoCSqxAgoMSG9zdEpvYlN0YXRlEh4KGkhPU1RfSk9CX1NUQVRFX1VOU1BFQ0lGSUVEEAASGQoVSE9TVF9KT0JfU1RBVEVfUVVFVUVEEAESGwoXSE9TVF9KT0JfU1RBVEVfQVNTSUdORUQQAhIbChdIT1NUX0pPQl9TVEFURV9TVEFSVElORxADEhoKFkhPU1RfSk9CX1NUQVRFX1JVTk5JTkcQBBIcChhIT1NUX0pPQl9TVEFURV9DT01QTEVURUQQBRIZChVIT1NUX0pPQl9TVEFURV9GQUlMRUQQBhIcChhIT1NUX0pPQl9TVEFURV9DQU5DRUxMRUQQBxIbChdIT1NUX0pPQl9TVEFURV9TVE9QUElORxAIEhwKGEhPU1RfSk9CX1NUQVRFX0RFQlVHR0lORxAJKnkKC0hvc3RKb2JLaW5kEh0KGUhPU1RfSk9CX0tJTkRfVU5TUEVDSUZJRUQQABIVChFIT1NUX0pPQl9LSU5EX0pPQhABEhkKFUhPU1RfSk9CX0tJTkRfU0FOREJPWBACEhkKFUhPU1RfSk9CX0tJTkRfU0VSVklDRRADMsQHCg5Ib3N0Sm9iU2VydmljZRJxCgxMaXN0SG9zdEpvYnMSJy50b3NoaS53b3Jrc3BhY2UudjEuTGlzdEhvc3RKb2JzUmVxdWVzdBooLnRvc2hpLndvcmtzcGFjZS52MS5MaXN0SG9zdEpvYnNSZXNwb25zZSIOwvMYCmhvc3RzLnJlYWQSawoKR2V0SG9zdEpvYhIlLnRvc2hpLndvcmtzcGFjZS52MS5HZXRIb3N0Sm9iUmVxdWVzdBomLnRvc2hpLndvcmtzcGFjZS52MS5HZXRIb3N0Sm9iUmVzcG9uc2UiDsLzGApob3N0cy5yZWFkEnUKDUNhbmNlbEhvc3RKb2ISKC50b3NoaS53b3Jrc3BhY2UudjEuQ2FuY2VsSG9zdEpvYlJlcXVlc3QaKS50b3NoaS53b3Jrc3BhY2UudjEuQ2FuY2VsSG9zdEpvYlJlc3BvbnNlIg/C8xgLaG9zdHMud3JpdGUSgAEKEUdldEhvc3RKb2JGYWlsdXJlEiwudG9zaGkud29ya3NwYWNlLnYxLkdldEhvc3RKb2JGYWlsdXJlUmVxdWVzdBotLnRvc2hpLndvcmtzcGFjZS52MS5HZXRIb3N0Sm9iRmFpbHVyZVJlc3BvbnNlIg7C8xgKaG9zdHMucmVhZBKGAQoTR2V0SG9zdEpvYlRlbGVtZXRyeRIuLnRvc2hpLndvcmtzcGFjZS52MS5HZXRIb3N0Sm9iVGVsZW1ldHJ5UmVxdWVzdBovLnRvc2hpLndvcmtzcGFjZS52MS5HZXRIb3N0Sm9iVGVsZW1ldHJ5UmVzcG9uc2UiDsLzGApob3N0cy5yZWFkErEBChVHZXRIb3N0Sm9iRGVidWdBY2Nlc3MSMC50b3NoaS53b3Jrc3BhY2UudjEuR2V0SG9zdEpvYkRlYnVnQWNjZXNzUmVxdWVzdBoxLnRvc2hpLndvcmtzcGFjZS52MS5HZXRIb3N0Sm9iRGVidWdBY2Nlc3NSZXNwb25zZSIzwvMYDWRlYnVnLmNvbm5lY3TS8xgeChxob3N0X2pvYi5kZWJ1Z19hY2Nlc3NfaXNzdWVkEpoBChBTdG9wSG9zdEpvYkRlYnVnEisudG9zaGkud29ya3NwYWNlLnYxLlN0b3BIb3N0Sm9iRGVidWdSZXF1ZXN0GiwudG9zaGkud29ya3NwYWNlLnYxLlN0b3BIb3N0Sm9iRGVidWdSZXNwb25zZSIrwvMYC2RlYnVnLndyaXRl0vMYGAoWaG9zdF9qb2IuZGVidWdfc3RvcHBlZEIiWiBnby50b3NoaWNsb3VkLmlvL2FwaS93b3Jrc3BhY2V2MWIGcHJvdG8z", [file_google_protobuf_timestamp, file_toshi_permission]);
10
+ export const file_toshi_workspace_v1_hostjobs = /*@__PURE__*/ fileDesc("CiF0b3NoaS93b3Jrc3BhY2UvdjEvaG9zdGpvYnMucHJvdG8SEnRvc2hpLndvcmtzcGFjZS52MSKXAQoTTGlzdEhvc3RKb2JzUmVxdWVzdBIwCgZzdGF0ZXMYASADKA4yIC50b3NoaS53b3Jrc3BhY2UudjEuSG9zdEpvYlN0YXRlEhIKCnJlcG9zaXRvcnkYAiABKAkSEwoLd29ya2xvYWRfaWQYAyABKAkSEQoJcGFnZV9zaXplGAQgASgFEhIKCnBhZ2VfdG9rZW4YBSABKAkiXwoUTGlzdEhvc3RKb2JzUmVzcG9uc2USLgoJaG9zdF9qb2JzGAEgAygLMhsudG9zaGkud29ya3NwYWNlLnYxLkhvc3RKb2ISFwoPbmV4dF9wYWdlX3Rva2VuGAIgASgJIh8KEUdldEhvc3RKb2JSZXF1ZXN0EgoKAmlkGAEgASgJInkKEkdldEhvc3RKb2JSZXNwb25zZRItCghob3N0X2pvYhgBIAEoCzIbLnRvc2hpLndvcmtzcGFjZS52MS5Ib3N0Sm9iEjQKCGF0dGVtcHRzGAIgAygLMiIudG9zaGkud29ya3NwYWNlLnYxLkhvc3RKb2JBdHRlbXB0IiIKFENhbmNlbEhvc3RKb2JSZXF1ZXN0EgoKAmlkGAEgASgJIkYKFUNhbmNlbEhvc3RKb2JSZXNwb25zZRItCghob3N0X2pvYhgBIAEoCzIbLnRvc2hpLndvcmtzcGFjZS52MS5Ib3N0Sm9iIiYKGEdldEhvc3RKb2JGYWlsdXJlUmVxdWVzdBIKCgJpZBgBIAEoCSKnAgoZR2V0SG9zdEpvYkZhaWx1cmVSZXNwb25zZRINCgVjYXVzZRgBIAEoCRITCgtleHBsYW5hdGlvbhgCIAEoCRISCgpjb25jbHVzaW9uGAMgASgJEg8KB3ZlcmRpY3QYBCABKAkSFgoOdmVyZGljdF9yZWFzb24YBSABKAkSEgoKd2hhdF90b19kbxgGIAEoCRISCgpnaXRodWJfdXJsGAcgASgJEjoKB2hpc3RvcnkYCSABKAsyKS50b3NoaS53b3Jrc3BhY2UudjEuSG9zdEpvYkZhaWx1cmVIaXN0b3J5Eg0KBWNhY2hlGAogASgJEhEKCXRpZXJfbGluZRgLIAEoCRIOCgZqb2JfaWQYDCABKAlKBAgIEAlSDWRhc2hib2FyZF91cmwiKAoaR2V0SG9zdEpvYlRlbGVtZXRyeVJlcXVlc3QSCgoCaWQYASABKAkiyQEKG0dldEhvc3RKb2JUZWxlbWV0cnlSZXNwb25zZRIMCgRzaXplGAEgASgJEg0KBXZjcHVzGAIgASgFEhIKCm1lbW9yeV9taWIYAyABKAMSPAoHc3VtbWFyeRgEIAEoCzIrLnRvc2hpLndvcmtzcGFjZS52MS5Ib3N0Sm9iVGVsZW1ldHJ5U3VtbWFyeRI7CgdzYW1wbGVzGAUgAygLMioudG9zaGkud29ya3NwYWNlLnYxLkhvc3RKb2JUZWxlbWV0cnlTYW1wbGUiKgocR2V0SG9zdEpvYkRlYnVnQWNjZXNzUmVxdWVzdBIKCgJpZBgBIAEoCSKGAQodR2V0SG9zdEpvYkRlYnVnQWNjZXNzUmVzcG9uc2USDAoEdXNlchgBIAEoCRITCgtwcml2YXRlX2tleRgCIAEoDBISCgpyZWxheV9wYXRoGAMgASgJEi4KCmV4cGlyZXNfYXQYBCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wIiUKF1N0b3BIb3N0Sm9iRGVidWdSZXF1ZXN0EgoKAmlkGAEgASgJIkkKGFN0b3BIb3N0Sm9iRGVidWdSZXNwb25zZRItCghob3N0X2pvYhgBIAEoCzIbLnRvc2hpLndvcmtzcGFjZS52MS5Ib3N0Sm9iIr8MCgdIb3N0Sm9iEgoKAmlkGAEgASgJEhIKCnJlcG9zaXRvcnkYAiABKAkSFwoPd29ya2Zsb3dfam9iX2lkGAMgASgDEg4KBnJ1bl9pZBgEIAEoAxIXCg9pbnN0YWxsYXRpb25faWQYBSABKAMSDgoGbGFiZWxzGAYgAygJEgoKAm9zGAcgASgJEgwKBHNpemUYCCABKAkSLwoFc3RhdGUYCSABKA4yIC50b3NoaS53b3Jrc3BhY2UudjEuSG9zdEpvYlN0YXRlEg8KB2hvc3RfaWQYCiABKAkSEwoLaW5zdGFuY2VfaWQYCyABKAkSLQoJcXVldWVkX2F0GAwgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIvCgthc3NpZ25lZF9hdBgNIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLgoKc3RhcnRlZF9hdBgOIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLwoLZmluaXNoZWRfYXQYDyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhIKCmNvbmNsdXNpb24YECABKAkSDQoFZXJyb3IYESABKAkSEwoLc3RvcF9yZWFzb24YEiABKAkSNQoRc3RvcF9yZXF1ZXN0ZWRfYXQYEyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhMKC2hvbGRfcmVhc29uGBQgASgJEjEKDW5leHRfc3RhcnRfYXQYOCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhAKCG93bl9ob3N0GBUgASgIEh8KF2RlYnVnX3JlcXVlc3RlZF9taW51dGVzGBYgASgFEhUKDWRlYnVnX21pbnV0ZXMYFyABKAUSEgoKZGVidWdfbm90ZRgYIAEoCRI0ChBkZWJ1Z19zdGFydGVkX2F0GBkgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIvCgtkZWJ1Z191bnRpbBgaIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASPgoJdGVsZW1ldHJ5GBsgASgLMisudG9zaGkud29ya3NwYWNlLnYxLkhvc3RKb2JUZWxlbWV0cnlTdW1tYXJ5EhoKEnJ1bm5lcl9leGl0X3JlYXNvbhgcIAEoCRIQCghvdmVyZmxvdxgdIAEoCBI4ChRydW5uZXJfcmVxdWVzdF9zaW5jZRgeIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASDwoHb3V0Y29tZRgfIAEoCRIRCglob3N0X2tpbmQYICABKAkSGwoTcHJldmlvdXNfcG9vbF9pbWFnZRghIAEoCRIYChBiaWxsYWJsZV9taW51dGVzGCIgASgDEhgKEGJpbGxhYmxlX3NlY29uZHMYNyABKAESEgoKZ2l0aHViX3VybBgjIAEoCRIVCg13b3JrZmxvd19uYW1lGCQgASgJEi8KBWNhY2hlGCUgASgLMiAudG9zaGkud29ya3NwYWNlLnYxLkhvc3RKb2JDYWNoZRI0ChBydW5uZXJfZXhpdGVkX2F0GCYgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIZChFydW5uZXJfY29uY2x1c2lvbhgnIAEoCRIMCgR0aWVyGCggASgJEhgKEG1lbW9yeV9saW1pdF9taWIYKSABKAMSEQoJdGllcl9saW5lGCogASgJEi0KBGtpbmQYKyABKA4yHy50b3NoaS53b3Jrc3BhY2UudjEuSG9zdEpvYktpbmQSEwoLd29ya2xvYWRfaWQYLCABKAkSDwoHcHJvamVjdBgtIAEoCRITCgtlbnZpcm9ubWVudBguIAEoCRIQCghwcm92aWRlchgvIAEoCRIOCgZzdGF0dXMYMCABKAkSEQoJcnVubmVyX2lkGDEgASgJEhMKC3J1bm5lcl9uYW1lGDIgASgJEg8KB2F0dGVtcHQYMyABKAUSEwoLcnVuX2F0dGVtcHQYNCABKAUSIQoZc2NyZWVuX3VuYXZhaWxhYmxlX3JlYXNvbhg1IAEoCRISCgpzdG9wX2NhdXNlGDYgASgJIrQCCg5Ib3N0Sm9iQXR0ZW1wdBIPCgdhdHRlbXB0GAEgASgFEhEKCXJ1bm5lcl9pZBgCIAEoCRITCgtydW5uZXJfbmFtZRgDIAEoCRIPCgdob3N0X2lkGAQgASgJEhMKC2luc3RhbmNlX2lkGAUgASgJEhAKCHByb3ZpZGVyGAYgASgJEi8KC2Fzc2lnbmVkX2F0GAcgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgpzdGFydGVkX2F0GAggASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIvCgtmaW5pc2hlZF9hdBgJIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASEgoKY29uY2x1c2lvbhgKIAEoCRILCgNlbmQYCyABKAki9gEKF0hvc3RKb2JUZWxlbWV0cnlTdW1tYXJ5EhIKCm9vbV9raWxsZWQYASABKAgSGQoRY3B1X3Rocm90dGxlZF9wY3QYAiABKAESFwoPcGVha19tZW1vcnlfbWliGAMgASgDEhsKE2NwdV91dGlsaXNhdGlvbl9wY3QYBCABKAESDwoHc2FtcGxlcxgFIAEoBRIYChBtZW1vcnlfbGltaXRfbWliGAYgASgDEg4KBmNwdV9tcxgHIAEoAxISCgpvb21fcmVhc29uGAggASgJEg8KB3ZlcmRpY3QYCSABKAkSFgoOdmVyZGljdF9yZWFzb24YCiABKAkinwEKDEhvc3RKb2JDYWNoZRIOCgZhdHRhY2gYASABKAkSFwoPYmFzZV9nZW5lcmF0aW9uGAIgASgDEhIKCndyaXRlX2JhY2sYAyABKAkSEwoLc2tpcF9yZWFzb24YBCABKAkSGAoQZ2VuZXJhdGlvbl9ieXRlcxgFIAEoAxIVCg13cml0ZV9iYWNrX21zGAYgASgDEgwKBGxpbmUYByABKAki9gIKFkhvc3RKb2JUZWxlbWV0cnlTYW1wbGUSJgoCYXQYASABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhEKCXdpbmRvd19tcxgCIAEoBRIOCgZjcHVfbXMYAyABKAMSEwoLY3B1X3dhaXRfbXMYBCABKAMSHQoQZ3Vlc3RfbWVtb3J5X21pYhgFIAEoA0gAiAEBEhcKD2hvc3RfbWVtb3J5X21pYhgGIAEoAxIXCg9kaXNrX3JlYWRfYnl0ZXMYByABKAMSGAoQZGlza193cml0ZV9ieXRlcxgIIAEoAxIZCgxuZXRfcnhfYnl0ZXMYCSABKANIAYgBARIZCgxuZXRfdHhfYnl0ZXMYCiABKANIAogBARIWCglvb21fa2lsbHMYCyABKAVIA4gBAUITChFfZ3Vlc3RfbWVtb3J5X21pYkIPCg1fbmV0X3J4X2J5dGVzQg8KDV9uZXRfdHhfYnl0ZXNCDAoKX29vbV9raWxscyKtAQoVSG9zdEpvYkZhaWx1cmVIaXN0b3J5EgwKBGRheXMYASABKAUSFwoPcGFzc2VkX29uX3JlcnVuGAIgASgFEhQKDGZhaWxlZF9hZ2FpbhgDIAEoBRIMCgRzdGVwGAQgASgJEhwKFHN0ZXBfcGFzc2VkX29uX3JlcnVuGAUgASgFEhkKEXN0ZXBfZmFpbGVkX2FnYWluGAYgASgFEhAKCHNlbnRlbmNlGAcgASgJKrECCgxIb3N0Sm9iU3RhdGUSHgoaSE9TVF9KT0JfU1RBVEVfVU5TUEVDSUZJRUQQABIZChVIT1NUX0pPQl9TVEFURV9RVUVVRUQQARIbChdIT1NUX0pPQl9TVEFURV9BU1NJR05FRBACEhsKF0hPU1RfSk9CX1NUQVRFX1NUQVJUSU5HEAMSGgoWSE9TVF9KT0JfU1RBVEVfUlVOTklORxAEEhwKGEhPU1RfSk9CX1NUQVRFX0NPTVBMRVRFRBAFEhkKFUhPU1RfSk9CX1NUQVRFX0ZBSUxFRBAGEhwKGEhPU1RfSk9CX1NUQVRFX0NBTkNFTExFRBAHEhsKF0hPU1RfSk9CX1NUQVRFX1NUT1BQSU5HEAgSHAoYSE9TVF9KT0JfU1RBVEVfREVCVUdHSU5HEAkqeQoLSG9zdEpvYktpbmQSHQoZSE9TVF9KT0JfS0lORF9VTlNQRUNJRklFRBAAEhUKEUhPU1RfSk9CX0tJTkRfSk9CEAESGQoVSE9TVF9KT0JfS0lORF9TQU5EQk9YEAISGQoVSE9TVF9KT0JfS0lORF9TRVJWSUNFEAMyxAcKDkhvc3RKb2JTZXJ2aWNlEnEKDExpc3RIb3N0Sm9icxInLnRvc2hpLndvcmtzcGFjZS52MS5MaXN0SG9zdEpvYnNSZXF1ZXN0GigudG9zaGkud29ya3NwYWNlLnYxLkxpc3RIb3N0Sm9ic1Jlc3BvbnNlIg7C8xgKaG9zdHMucmVhZBJrCgpHZXRIb3N0Sm9iEiUudG9zaGkud29ya3NwYWNlLnYxLkdldEhvc3RKb2JSZXF1ZXN0GiYudG9zaGkud29ya3NwYWNlLnYxLkdldEhvc3RKb2JSZXNwb25zZSIOwvMYCmhvc3RzLnJlYWQSdQoNQ2FuY2VsSG9zdEpvYhIoLnRvc2hpLndvcmtzcGFjZS52MS5DYW5jZWxIb3N0Sm9iUmVxdWVzdBopLnRvc2hpLndvcmtzcGFjZS52MS5DYW5jZWxIb3N0Sm9iUmVzcG9uc2UiD8LzGAtob3N0cy53cml0ZRKAAQoRR2V0SG9zdEpvYkZhaWx1cmUSLC50b3NoaS53b3Jrc3BhY2UudjEuR2V0SG9zdEpvYkZhaWx1cmVSZXF1ZXN0Gi0udG9zaGkud29ya3NwYWNlLnYxLkdldEhvc3RKb2JGYWlsdXJlUmVzcG9uc2UiDsLzGApob3N0cy5yZWFkEoYBChNHZXRIb3N0Sm9iVGVsZW1ldHJ5Ei4udG9zaGkud29ya3NwYWNlLnYxLkdldEhvc3RKb2JUZWxlbWV0cnlSZXF1ZXN0Gi8udG9zaGkud29ya3NwYWNlLnYxLkdldEhvc3RKb2JUZWxlbWV0cnlSZXNwb25zZSIOwvMYCmhvc3RzLnJlYWQSsQEKFUdldEhvc3RKb2JEZWJ1Z0FjY2VzcxIwLnRvc2hpLndvcmtzcGFjZS52MS5HZXRIb3N0Sm9iRGVidWdBY2Nlc3NSZXF1ZXN0GjEudG9zaGkud29ya3NwYWNlLnYxLkdldEhvc3RKb2JEZWJ1Z0FjY2Vzc1Jlc3BvbnNlIjPC8xgNZGVidWcuY29ubmVjdNLzGB4KHGhvc3Rfam9iLmRlYnVnX2FjY2Vzc19pc3N1ZWQSmgEKEFN0b3BIb3N0Sm9iRGVidWcSKy50b3NoaS53b3Jrc3BhY2UudjEuU3RvcEhvc3RKb2JEZWJ1Z1JlcXVlc3QaLC50b3NoaS53b3Jrc3BhY2UudjEuU3RvcEhvc3RKb2JEZWJ1Z1Jlc3BvbnNlIivC8xgLZGVidWcud3JpdGXS8xgYChZob3N0X2pvYi5kZWJ1Z19zdG9wcGVkQiJaIGdvLnRvc2hpY2xvdWQuaW8vYXBpL3dvcmtzcGFjZXYxYgZwcm90bzM", [file_google_protobuf_timestamp, file_toshi_permission]);
11
11
  /**
12
12
  * Describes the message toshi.workspace.v1.ListHostJobsRequest.
13
13
  * Use `create(ListHostJobsRequestSchema)` to create a new message.
@@ -409,13 +409,14 @@ export type CreateCloudHostRequest = Message<"toshi.workspace.v1.CreateCloudHost
409
409
  */
410
410
  name: string;
411
411
  /**
412
- * The cloud provider: "aws" (the default) or "gcp".
412
+ * The cloud provider: "aws" (the default), "gcp" or "azure".
413
413
  *
414
414
  * @generated from field: string cloud = 2;
415
415
  */
416
416
  cloud: string;
417
417
  /**
418
- * The AWS region the instances run in (AWS).
418
+ * The AWS region (AWS), the zone's region (GCP) or the location (Azure)
419
+ * the instances run in.
419
420
  *
420
421
  * @generated from field: string region = 3;
421
422
  */
@@ -427,16 +428,18 @@ export type CreateCloudHostRequest = Message<"toshi.workspace.v1.CreateCloudHost
427
428
  */
428
429
  roleArn: string;
429
430
  /**
430
- * The image the instances boot: an AMI (AWS), or a GCE image or family
431
- * (an image name, family/NAME, or a projects/... path).
431
+ * The image the instances boot: an AMI (AWS), a GCE image or family
432
+ * (an image name, family/NAME, or a projects/... path), or a Compute
433
+ * Gallery image version ID (Azure).
432
434
  *
433
435
  * @generated from field: string image = 5;
434
436
  */
435
437
  image: string;
436
438
  /**
437
- * The subnet (AWS) or subnetwork (GCP, a name in the zone's region or
438
- * regions/R/subnetworks/S) to launch into; empty means a default subnet
439
- * or the default network.
439
+ * The subnet (AWS), subnetwork (GCP, a name in the zone's region or
440
+ * regions/R/subnetworks/S) or subnet resource ID (Azure) to launch into;
441
+ * empty means a default subnet or the default network (required on
442
+ * Azure).
440
443
  *
441
444
  * @generated from field: string subnet_id = 6;
442
445
  */
@@ -527,6 +530,18 @@ export type CreateCloudHostRequest = Message<"toshi.workspace.v1.CreateCloudHost
527
530
  * @generated from field: string request_key = 19;
528
531
  */
529
532
  requestKey: string;
533
+ /**
534
+ * The Azure subscription the instances run in (Azure).
535
+ *
536
+ * @generated from field: string subscription_id = 20;
537
+ */
538
+ subscriptionId: string;
539
+ /**
540
+ * The Azure resource group the instances run in (Azure).
541
+ *
542
+ * @generated from field: string resource_group = 21;
543
+ */
544
+ resourceGroup: string;
530
545
  };
531
546
  /**
532
547
  * CreateCloudHostRequest names the cloud host to register.
@@ -541,13 +556,14 @@ export type CreateCloudHostRequestJson = {
541
556
  */
542
557
  name?: string;
543
558
  /**
544
- * The cloud provider: "aws" (the default) or "gcp".
559
+ * The cloud provider: "aws" (the default), "gcp" or "azure".
545
560
  *
546
561
  * @generated from field: string cloud = 2;
547
562
  */
548
563
  cloud?: string;
549
564
  /**
550
- * The AWS region the instances run in (AWS).
565
+ * The AWS region (AWS), the zone's region (GCP) or the location (Azure)
566
+ * the instances run in.
551
567
  *
552
568
  * @generated from field: string region = 3;
553
569
  */
@@ -559,16 +575,18 @@ export type CreateCloudHostRequestJson = {
559
575
  */
560
576
  roleArn?: string;
561
577
  /**
562
- * The image the instances boot: an AMI (AWS), or a GCE image or family
563
- * (an image name, family/NAME, or a projects/... path).
578
+ * The image the instances boot: an AMI (AWS), a GCE image or family
579
+ * (an image name, family/NAME, or a projects/... path), or a Compute
580
+ * Gallery image version ID (Azure).
564
581
  *
565
582
  * @generated from field: string image = 5;
566
583
  */
567
584
  image?: string;
568
585
  /**
569
- * The subnet (AWS) or subnetwork (GCP, a name in the zone's region or
570
- * regions/R/subnetworks/S) to launch into; empty means a default subnet
571
- * or the default network.
586
+ * The subnet (AWS), subnetwork (GCP, a name in the zone's region or
587
+ * regions/R/subnetworks/S) or subnet resource ID (Azure) to launch into;
588
+ * empty means a default subnet or the default network (required on
589
+ * Azure).
572
590
  *
573
591
  * @generated from field: string subnet_id = 6;
574
592
  */
@@ -659,6 +677,18 @@ export type CreateCloudHostRequestJson = {
659
677
  * @generated from field: string request_key = 19;
660
678
  */
661
679
  requestKey?: string;
680
+ /**
681
+ * The Azure subscription the instances run in (Azure).
682
+ *
683
+ * @generated from field: string subscription_id = 20;
684
+ */
685
+ subscriptionId?: string;
686
+ /**
687
+ * The Azure resource group the instances run in (Azure).
688
+ *
689
+ * @generated from field: string resource_group = 21;
690
+ */
691
+ resourceGroup?: string;
662
692
  };
663
693
  /**
664
694
  * Describes the message toshi.workspace.v1.CreateCloudHostRequest.
@@ -701,6 +731,13 @@ export type CreateCloudHostResponse = Message<"toshi.workspace.v1.CreateCloudHos
701
731
  * @generated from field: string gcp_principal = 5;
702
732
  */
703
733
  gcpPrincipal: string;
734
+ /**
735
+ * The application (client) id the workspace consents into its tenant and
736
+ * grants the host's role to (Azure).
737
+ *
738
+ * @generated from field: string azure_application_id = 6;
739
+ */
740
+ azureApplicationId: string;
704
741
  };
705
742
  /**
706
743
  * CreateCloudHostResponse carries the host, the trust external id and the
@@ -736,6 +773,13 @@ export type CreateCloudHostResponseJson = {
736
773
  * @generated from field: string gcp_principal = 5;
737
774
  */
738
775
  gcpPrincipal?: string;
776
+ /**
777
+ * The application (client) id the workspace consents into its tenant and
778
+ * grants the host's role to (Azure).
779
+ *
780
+ * @generated from field: string azure_application_id = 6;
781
+ */
782
+ azureApplicationId?: string;
739
783
  };
740
784
  /**
741
785
  * Describes the message toshi.workspace.v1.CreateCloudHostResponse.
@@ -936,8 +980,8 @@ export type Host = Message<"toshi.workspace.v1.Host"> & {
936
980
  */
937
981
  stopping: boolean;
938
982
  /**
939
- * The cloud the host runs in when it is a cloud host ("aws"); empty
940
- * otherwise.
983
+ * The cloud the host runs in when it is a cloud host ("aws", "gcp" or
984
+ * "azure"); empty otherwise.
941
985
  *
942
986
  * @generated from field: string cloud = 12;
943
987
  */
@@ -1143,8 +1187,8 @@ export type HostJson = {
1143
1187
  */
1144
1188
  stopping?: boolean;
1145
1189
  /**
1146
- * The cloud the host runs in when it is a cloud host ("aws"); empty
1147
- * otherwise.
1190
+ * The cloud the host runs in when it is a cloud host ("aws", "gcp" or
1191
+ * "azure"); empty otherwise.
1148
1192
  *
1149
1193
  * @generated from field: string cloud = 12;
1150
1194
  */
@@ -1721,8 +1765,8 @@ export declare const HostAlertSchema: GenMessage<HostAlert, {
1721
1765
  jsonType: HostAlertJson;
1722
1766
  }>;
1723
1767
  /**
1724
- * CloudHost is the AWS account behind a workspace-owned host the control plane
1725
- * drives.
1768
+ * CloudHost is the AWS account, GCP project or Azure subscription behind a
1769
+ * workspace-owned host the control plane drives.
1726
1770
  *
1727
1771
  * @generated from message toshi.workspace.v1.CloudHost
1728
1772
  */
@@ -1734,13 +1778,14 @@ export type CloudHost = Message<"toshi.workspace.v1.CloudHost"> & {
1734
1778
  */
1735
1779
  hostId: string;
1736
1780
  /**
1737
- * The cloud provider: "aws" or "gcp".
1781
+ * The cloud provider: "aws", "gcp" or "azure".
1738
1782
  *
1739
1783
  * @generated from field: string cloud = 2;
1740
1784
  */
1741
1785
  cloud: string;
1742
1786
  /**
1743
- * The region the instances run in; on GCP the zone's region.
1787
+ * The region the instances run in; on GCP the zone's region, on Azure
1788
+ * the location.
1744
1789
  *
1745
1790
  * @generated from field: string region = 3;
1746
1791
  */
@@ -1752,21 +1797,23 @@ export type CloudHost = Message<"toshi.workspace.v1.CloudHost"> & {
1752
1797
  */
1753
1798
  roleArn: string;
1754
1799
  /**
1755
- * The external ID the role's trust policy requires (AWS), or the project
1756
- * metadata must name (GCP); generated by Toshi.
1800
+ * The external ID the role's trust policy requires (AWS), the project
1801
+ * metadata must name (GCP), or the resource group's toshi-external-id tag
1802
+ * must name (Azure); generated by Toshi.
1757
1803
  *
1758
1804
  * @generated from field: string external_id = 5;
1759
1805
  */
1760
1806
  externalId: string;
1761
1807
  /**
1762
- * The image the instances boot: an AMI, or a GCE image path.
1808
+ * The image the instances boot: an AMI (AWS), a GCE image path (GCP) or
1809
+ * a Compute Gallery image version ID (Azure).
1763
1810
  *
1764
1811
  * @generated from field: string image = 6;
1765
1812
  */
1766
1813
  image: string;
1767
1814
  /**
1768
- * The subnet (AWS) or subnetwork (GCP) to launch into; empty means a
1769
- * default subnet or the default network.
1815
+ * The subnet (AWS), subnetwork (GCP) or subnet resource ID (Azure) to
1816
+ * launch into; empty means a default subnet or the default network.
1770
1817
  *
1771
1818
  * @generated from field: string subnet_id = 7;
1772
1819
  */
@@ -1836,10 +1883,22 @@ export type CloudHost = Message<"toshi.workspace.v1.CloudHost"> & {
1836
1883
  * @generated from field: string egress = 18;
1837
1884
  */
1838
1885
  egress: string;
1886
+ /**
1887
+ * The Azure subscription the instances run in (Azure).
1888
+ *
1889
+ * @generated from field: string subscription_id = 19;
1890
+ */
1891
+ subscriptionId: string;
1892
+ /**
1893
+ * The Azure resource group the instances run in (Azure).
1894
+ *
1895
+ * @generated from field: string resource_group = 20;
1896
+ */
1897
+ resourceGroup: string;
1839
1898
  };
1840
1899
  /**
1841
- * CloudHost is the AWS account behind a workspace-owned host the control plane
1842
- * drives.
1900
+ * CloudHost is the AWS account, GCP project or Azure subscription behind a
1901
+ * workspace-owned host the control plane drives.
1843
1902
  *
1844
1903
  * @generated from message toshi.workspace.v1.CloudHost
1845
1904
  */
@@ -1851,13 +1910,14 @@ export type CloudHostJson = {
1851
1910
  */
1852
1911
  hostId?: string;
1853
1912
  /**
1854
- * The cloud provider: "aws" or "gcp".
1913
+ * The cloud provider: "aws", "gcp" or "azure".
1855
1914
  *
1856
1915
  * @generated from field: string cloud = 2;
1857
1916
  */
1858
1917
  cloud?: string;
1859
1918
  /**
1860
- * The region the instances run in; on GCP the zone's region.
1919
+ * The region the instances run in; on GCP the zone's region, on Azure
1920
+ * the location.
1861
1921
  *
1862
1922
  * @generated from field: string region = 3;
1863
1923
  */
@@ -1869,21 +1929,23 @@ export type CloudHostJson = {
1869
1929
  */
1870
1930
  roleArn?: string;
1871
1931
  /**
1872
- * The external ID the role's trust policy requires (AWS), or the project
1873
- * metadata must name (GCP); generated by Toshi.
1932
+ * The external ID the role's trust policy requires (AWS), the project
1933
+ * metadata must name (GCP), or the resource group's toshi-external-id tag
1934
+ * must name (Azure); generated by Toshi.
1874
1935
  *
1875
1936
  * @generated from field: string external_id = 5;
1876
1937
  */
1877
1938
  externalId?: string;
1878
1939
  /**
1879
- * The image the instances boot: an AMI, or a GCE image path.
1940
+ * The image the instances boot: an AMI (AWS), a GCE image path (GCP) or
1941
+ * a Compute Gallery image version ID (Azure).
1880
1942
  *
1881
1943
  * @generated from field: string image = 6;
1882
1944
  */
1883
1945
  image?: string;
1884
1946
  /**
1885
- * The subnet (AWS) or subnetwork (GCP) to launch into; empty means a
1886
- * default subnet or the default network.
1947
+ * The subnet (AWS), subnetwork (GCP) or subnet resource ID (Azure) to
1948
+ * launch into; empty means a default subnet or the default network.
1887
1949
  *
1888
1950
  * @generated from field: string subnet_id = 7;
1889
1951
  */
@@ -1953,6 +2015,18 @@ export type CloudHostJson = {
1953
2015
  * @generated from field: string egress = 18;
1954
2016
  */
1955
2017
  egress?: string;
2018
+ /**
2019
+ * The Azure subscription the instances run in (Azure).
2020
+ *
2021
+ * @generated from field: string subscription_id = 19;
2022
+ */
2023
+ subscriptionId?: string;
2024
+ /**
2025
+ * The Azure resource group the instances run in (Azure).
2026
+ *
2027
+ * @generated from field: string resource_group = 20;
2028
+ */
2029
+ resourceGroup?: string;
1956
2030
  };
1957
2031
  /**
1958
2032
  * Describes the message toshi.workspace.v1.CloudHost.
@@ -8,7 +8,7 @@ import { file_toshi_workspace_v1_tokens } from "./tokens_pb.js";
8
8
  /**
9
9
  * Describes the file toshi/workspace/v1/hosts.proto.
10
10
  */
11
- export const file_toshi_workspace_v1_hosts = /*@__PURE__*/ fileDesc("Ch50b3NoaS93b3Jrc3BhY2UvdjEvaG9zdHMucHJvdG8SEnRvc2hpLndvcmtzcGFjZS52MSKBAQoQTGlzdEhvc3RzUmVxdWVzdBItCgZzdGF0ZXMYASADKA4yHS50b3NoaS53b3Jrc3BhY2UudjEuSG9zdFN0YXRlEhcKD2V4Y2x1ZGVfcmV2b2tlZBgCIAEoCBIRCglwYWdlX3NpemUYAyABKAUSEgoKcGFnZV90b2tlbhgEIAEoCSKMAQoRTGlzdEhvc3RzUmVzcG9uc2USJwoFaG9zdHMYASADKAsyGC50b3NoaS53b3Jrc3BhY2UudjEuSG9zdBI1ChJsb25nX29mZmxpbmVfYWZ0ZXIYAiABKAsyGS5nb29nbGUucHJvdG9idWYuRHVyYXRpb24SFwoPbmV4dF9wYWdlX3Rva2VuGAMgASgJIlAKFkxpc3RIb3N0U3RvcmFnZVJlcXVlc3QSDwoHaG9zdF9pZBgBIAEoCRIRCglwYWdlX3NpemUYAiABKAUSEgoKcGFnZV90b2tlbhgDIAEoCSJjChdMaXN0SG9zdFN0b3JhZ2VSZXNwb25zZRIvCgd2b2x1bWVzGAEgAygLMh4udG9zaGkud29ya3NwYWNlLnYxLkhvc3RWb2x1bWUSFwoPbmV4dF9wYWdlX3Rva2VuGAIgASgJIj4KFUxpc3RIb3N0QWxlcnRzUmVxdWVzdBIRCglwYWdlX3NpemUYASABKAUSEgoKcGFnZV90b2tlbhgCIAEoCSJgChZMaXN0SG9zdEFsZXJ0c1Jlc3BvbnNlEi0KBmFsZXJ0cxgBIAMoCzIdLnRvc2hpLndvcmtzcGFjZS52MS5Ib3N0QWxlcnQSFwoPbmV4dF9wYWdlX3Rva2VuGAIgASgJIk8KE1NldEhvc3RTdGF0ZVJlcXVlc3QSCgoCaWQYASABKAkSLAoFc3RhdGUYAiABKA4yHS50b3NoaS53b3Jrc3BhY2UudjEuSG9zdFN0YXRlIj4KFFNldEhvc3RTdGF0ZVJlc3BvbnNlEiYKBGhvc3QYASABKAsyGC50b3NoaS53b3Jrc3BhY2UudjEuSG9zdCIfChFSZXRpcmVIb3N0UmVxdWVzdBIKCgJpZBgBIAEoCSIUChJSZXRpcmVIb3N0UmVzcG9uc2UihgQKFkNyZWF0ZUNsb3VkSG9zdFJlcXVlc3QSDAoEbmFtZRgBIAEoCRINCgVjbG91ZBgCIAEoCRIOCgZyZWdpb24YAyABKAkSEAoIcm9sZV9hcm4YBCABKAkSDQoFaW1hZ2UYBSABKAkSEQoJc3VibmV0X2lkGAYgASgJEhoKEnNlY3VyaXR5X2dyb3VwX2lkcxgHIAMoCRJVCg5pbnN0YW5jZV90eXBlcxgIIAMoCzI9LnRvc2hpLndvcmtzcGFjZS52MS5DcmVhdGVDbG91ZEhvc3RSZXF1ZXN0Lkluc3RhbmNlVHlwZXNFbnRyeRIRCgltYXhfdmNwdXMYCSABKAUSDAoEc3BvdBgKIAEoCBIVCg1tYXhfaW5zdGFuY2VzGAsgASgFEiQKHG1heF9pbnN0YW5jZV9taW51dGVzX3Blcl9kYXkYDCABKAUSEgoKZWdyZXNzX2lwcxgNIAMoCRITCgtub19vdmVyZmxvdxgOIAEoCBIPCgdwcm9qZWN0GA8gASgJEgwKBHpvbmUYECABKAkSFwoPc2VydmljZV9hY2NvdW50GBEgASgJEg4KBmVncmVzcxgSIAEoCRITCgtyZXF1ZXN0X2tleRgTIAEoCRo0ChJJbnN0YW5jZVR5cGVzRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4ASK3AQoXQ3JlYXRlQ2xvdWRIb3N0UmVzcG9uc2USJgoEaG9zdBgBIAEoCzIYLnRvc2hpLndvcmtzcGFjZS52MS5Ib3N0EhMKC2V4dGVybmFsX2lkGAIgASgJEhUKDXByaW5jaXBhbF9hcm4YAyABKAkSMQoKY2xvdWRfaG9zdBgEIAEoCzIdLnRvc2hpLndvcmtzcGFjZS52MS5DbG91ZEhvc3QSFQoNZ2NwX3ByaW5jaXBhbBgFIAEoCSIoChVDaGVja0Nsb3VkSG9zdFJlcXVlc3QSDwoHaG9zdF9pZBgBIAEoCSJMChZDaGVja0Nsb3VkSG9zdFJlc3BvbnNlEjIKBmNoZWNrcxgBIAMoCzIiLnRvc2hpLndvcmtzcGFjZS52MS5DbG91ZEhvc3RDaGVjayIwChxDcmVhdGVFbnJvbGxtZW50VG9rZW5SZXF1ZXN0EhAKCG92ZXJmbG93GAEgASgIIlgKHUNyZWF0ZUVucm9sbG1lbnRUb2tlblJlc3BvbnNlEigKBXRva2VuGAEgASgLMhkudG9zaGkud29ya3NwYWNlLnYxLlRva2VuEg0KBXZhbHVlGAIgASgJIuAHCgRIb3N0EgoKAmlkGAEgASgJEgwKBG5hbWUYAiABKAkSCgoCb3MYAyADKAkSDAoEY3B1cxgEIAEoBRISCgptZW1vcnlfbWliGAUgASgFEjQKBmxhYmVscxgGIAMoCzIkLnRvc2hpLndvcmtzcGFjZS52MS5Ib3N0LkxhYmVsc0VudHJ5EiwKBXN0YXRlGAcgASgOMh0udG9zaGkud29ya3NwYWNlLnYxLkhvc3RTdGF0ZRIwCgxsYXN0X3NlZW5fYXQYCCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhcKD2ZyZWVfbWVtb3J5X21pYhgJIAEoAxI0CgxoZWxkX3JlZmlsbHMYCiADKAsyHi50b3NoaS53b3Jrc3BhY2UudjEuSGVsZFJlZmlsbBIQCghzdG9wcGluZxgLIAEoCBINCgVjbG91ZBgMIAEoCRIQCghvdmVyZmxvdxgNIAEoCBIuCgZlZ3Jlc3MYDiABKAsyHi50b3NoaS53b3Jrc3BhY2UudjEuSG9zdEVncmVzcxIVCg1hZ2VudF92ZXJzaW9uGA8gASgJEkQKFGFnZW50X3ZlcnNpb25fc3RhdHVzGBAgASgOMiYudG9zaGkud29ya3NwYWNlLnYxLkFnZW50VmVyc2lvblN0YXR1cxIaChJhZ2VudF92ZXJzaW9uX3NrZXcYESABKAkSFAoMbG9uZ19vZmZsaW5lGBIgASgIEhkKEWhlYXJ0YmVhdF9yZWZ1c2FsGBMgASgJEjgKFGhlYXJ0YmVhdF9yZWZ1c2VkX2F0GBQgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIMCgR0aWVyGBUgASgJEi4KCnJldm9rZWRfYXQYFiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhgKEG1lbW9yeV9saW1pdF9taWIYFyABKAMSGwoTbWVtb3J5X2xpbWl0X3NvdXJjZRgYIAEoCRIdChVhZ2VudF92ZXJzaW9uX21pbmltdW0YGSABKAkSDwoHa2VlcF92bRgaIAEoCBIsCghrZXB0X3ZtcxgbIAMoCzIaLnRvc2hpLndvcmtzcGFjZS52MS5LZXB0Vk0SFwoPa2VwdF9tZW1vcnlfbWliGBwgASgDEhcKD2tlcHRfZGlza19ieXRlcxgdIAEoAxIYChBuZXR3b3JrX2VuZm9yY2VkGB4gASgIEhYKDm5ldHdvcmtfcmVhc29uGB8gASgJGi0KC0xhYmVsc0VudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEikQEKBktlcHRWTRITCgt3b3JrbG9hZF9pZBgBIAEoCRIMCgRraW5kGAIgASgJEgwKBGZvcm0YAyABKAkSEgoKbWVtb3J5X21pYhgEIAEoAxISCgpkaXNrX2J5dGVzGAUgASgDEi4KCnN0b3BwZWRfYXQYBiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wIioKCkhlbGRSZWZpbGwSDAoEc2l6ZRgBIAEoCRIOCgZyZWFzb24YAiABKAkiewoKSG9zdEVncmVzcxILCgNpcHMYASADKAkSMAoGc291cmNlGAIgASgOMiAudG9zaGkud29ya3NwYWNlLnYxLkVncmVzc1NvdXJjZRIuCgpjaGFuZ2VkX2F0GAMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcCLdAQoKSG9zdFZvbHVtZRIRCgl2b2x1bWVfaWQYASABKAkSDwoHcHJvamVjdBgCIAEoCRISCgpwcm9qZWN0X2lkGAMgASgJEgwKBG5hbWUYBCABKAkSDAoEbW9kZRgFIAEoCRIWCg5zaXplX2NhcF9ieXRlcxgGIAEoAxIRCgl3YXJtX2NvcHkYByABKAgSEAoIY2xhaW1faWQYCCABKAkSDgoGam9iX2lkGAkgASgJEi4KCmNsYWltZWRfYXQYCiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wIpQCCglIb3N0QWxlcnQSDAoEa2luZBgBIAEoCRItCglyYWlzZWRfYXQYAiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEikKBXNpbmNlGAMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBINCgVjb3VudBgEIAEoAxI7CgdyZWFzb25zGAUgAygLMioudG9zaGkud29ya3NwYWNlLnYxLkhvc3RBbGVydC5SZWFzb25zRW50cnkSEgoKdG9wX3JlYXNvbhgGIAEoCRIPCgdtZXNzYWdlGAcgASgJGi4KDFJlYXNvbnNFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAM6AjgBIvYDCglDbG91ZEhvc3QSDwoHaG9zdF9pZBgBIAEoCRINCgVjbG91ZBgCIAEoCRIOCgZyZWdpb24YAyABKAkSEAoIcm9sZV9hcm4YBCABKAkSEwoLZXh0ZXJuYWxfaWQYBSABKAkSDQoFaW1hZ2UYBiABKAkSEQoJc3VibmV0X2lkGAcgASgJEhoKEnNlY3VyaXR5X2dyb3VwX2lkcxgIIAMoCRJICg5pbnN0YW5jZV90eXBlcxgJIAMoCzIwLnRvc2hpLndvcmtzcGFjZS52MS5DbG91ZEhvc3QuSW5zdGFuY2VUeXBlc0VudHJ5EhEKCW1heF92Y3B1cxgKIAEoBRIuCgpjcmVhdGVkX2F0GAsgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIMCgRzcG90GAwgASgIEhUKDW1heF9pbnN0YW5jZXMYDSABKAUSJAocbWF4X2luc3RhbmNlX21pbnV0ZXNfcGVyX2RheRgOIAEoBRIPCgdwcm9qZWN0GA8gASgJEgwKBHpvbmUYECABKAkSFwoPc2VydmljZV9hY2NvdW50GBEgASgJEg4KBmVncmVzcxgSIAEoCRo0ChJJbnN0YW5jZVR5cGVzRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4ASJoCg5DbG91ZEhvc3RDaGVjaxIMCgRuYW1lGAEgASgJEjgKBnN0YXR1cxgCIAEoDjIoLnRvc2hpLndvcmtzcGFjZS52MS5DbG91ZEhvc3RDaGVja1N0YXR1cxIOCgZkZXRhaWwYAyABKAkqbwoJSG9zdFN0YXRlEhoKFkhPU1RfU1RBVEVfVU5TUEVDSUZJRUQQABIVChFIT1NUX1NUQVRFX09OTElORRABEhcKE0hPU1RfU1RBVEVfRFJBSU5JTkcQAhIWChJIT1NUX1NUQVRFX09GRkxJTkUQAyqfAQoMRWdyZXNzU291cmNlEh0KGUVHUkVTU19TT1VSQ0VfVU5TUEVDSUZJRUQQABIcChhFR1JFU1NfU09VUkNFX0NPTkZJR1VSRUQQARIcChhFR1JFU1NfU09VUkNFX0RJU0NPVkVSRUQQAhIZChVFR1JFU1NfU09VUkNFX1VOS05PV04QAxIZChVFR1JFU1NfU09VUkNFX1BFUl9KT0IQBCrAAQoSQWdlbnRWZXJzaW9uU3RhdHVzEiQKIEFHRU5UX1ZFUlNJT05fU1RBVFVTX1VOU1BFQ0lGSUVEEAASIAocQUdFTlRfVkVSU0lPTl9TVEFUVVNfVU5LTk9XThABEhsKF0FHRU5UX1ZFUlNJT05fU1RBVFVTX09LEAISHQoZQUdFTlRfVkVSU0lPTl9TVEFUVVNfU0tFVxADEiYKIkFHRU5UX1ZFUlNJT05fU1RBVFVTX0JFTE9XX01JTklNVU0QBCrIAQoUQ2xvdWRIb3N0Q2hlY2tTdGF0dXMSJwojQ0xPVURfSE9TVF9DSEVDS19TVEFUVVNfVU5TUEVDSUZJRUQQABIeChpDTE9VRF9IT1NUX0NIRUNLX1NUQVRVU19PSxABEiAKHENMT1VEX0hPU1RfQ0hFQ0tfU1RBVFVTX1dBUk4QAhIgChxDTE9VRF9IT1NUX0NIRUNLX1NUQVRVU19GQUlMEAMSIwofQ0xPVURfSE9TVF9DSEVDS19TVEFUVVNfU0tJUFBFRBAEMssICgtIb3N0U2VydmljZRJoCglMaXN0SG9zdHMSJC50b3NoaS53b3Jrc3BhY2UudjEuTGlzdEhvc3RzUmVxdWVzdBolLnRvc2hpLndvcmtzcGFjZS52MS5MaXN0SG9zdHNSZXNwb25zZSIOwvMYCmhvc3RzLnJlYWQSegoPTGlzdEhvc3RTdG9yYWdlEioudG9zaGkud29ya3NwYWNlLnYxLkxpc3RIb3N0U3RvcmFnZVJlcXVlc3QaKy50b3NoaS53b3Jrc3BhY2UudjEuTGlzdEhvc3RTdG9yYWdlUmVzcG9uc2UiDsLzGApob3N0cy5yZWFkEncKDkxpc3RIb3N0QWxlcnRzEikudG9zaGkud29ya3NwYWNlLnYxLkxpc3RIb3N0QWxlcnRzUmVxdWVzdBoqLnRvc2hpLndvcmtzcGFjZS52MS5MaXN0SG9zdEFsZXJ0c1Jlc3BvbnNlIg7C8xgKaG9zdHMucmVhZBKGAQoMU2V0SG9zdFN0YXRlEicudG9zaGkud29ya3NwYWNlLnYxLlNldEhvc3RTdGF0ZVJlcXVlc3QaKC50b3NoaS53b3Jrc3BhY2UudjEuU2V0SG9zdFN0YXRlUmVzcG9uc2UiI8LzGAtob3N0cy53cml0ZdLzGBAKDmhvc3Quc3RhdGVfc2V0EmwKClJldGlyZUhvc3QSJS50b3NoaS53b3Jrc3BhY2UudjEuUmV0aXJlSG9zdFJlcXVlc3QaJi50b3NoaS53b3Jrc3BhY2UudjEuUmV0aXJlSG9zdFJlc3BvbnNlIg/C8xgLaG9zdHMud3JpdGUStQEKD0NyZWF0ZUNsb3VkSG9zdBIqLnRvc2hpLndvcmtzcGFjZS52MS5DcmVhdGVDbG91ZEhvc3RSZXF1ZXN0GisudG9zaGkud29ya3NwYWNlLnYxLkNyZWF0ZUNsb3VkSG9zdFJlc3BvbnNlIknC8xgLaG9zdHMud3JpdGXK8xgJd29ya3NwYWNl0vMYKQoQY2xvdWRfaG9zdC5hZGRlZBIVaG9zdDpyZXNwb25zZS5ob3N0LmlkEooBCg5DaGVja0Nsb3VkSG9zdBIpLnRvc2hpLndvcmtzcGFjZS52MS5DaGVja0Nsb3VkSG9zdFJlcXVlc3QaKi50b3NoaS53b3Jrc3BhY2UudjEuQ2hlY2tDbG91ZEhvc3RSZXNwb25zZSIhwvMYC2hvc3RzLndyaXRl0vMYDhIMaG9zdDpob3N0X2lkEqABChVDcmVhdGVFbnJvbGxtZW50VG9rZW4SMC50b3NoaS53b3Jrc3BhY2UudjEuQ3JlYXRlRW5yb2xsbWVudFRva2VuUmVxdWVzdBoxLnRvc2hpLndvcmtzcGFjZS52MS5DcmVhdGVFbnJvbGxtZW50VG9rZW5SZXNwb25zZSIiwvMYC2hvc3RzLndyaXRl0vMYDwoNdG9rZW4uY3JlYXRlZEIiWiBnby50b3NoaWNsb3VkLmlvL2FwaS93b3Jrc3BhY2V2MWIGcHJvdG8z", [file_google_protobuf_duration, file_google_protobuf_timestamp, file_toshi_permission, file_toshi_workspace_v1_tokens]);
11
+ export const file_toshi_workspace_v1_hosts = /*@__PURE__*/ fileDesc("Ch50b3NoaS93b3Jrc3BhY2UvdjEvaG9zdHMucHJvdG8SEnRvc2hpLndvcmtzcGFjZS52MSKBAQoQTGlzdEhvc3RzUmVxdWVzdBItCgZzdGF0ZXMYASADKA4yHS50b3NoaS53b3Jrc3BhY2UudjEuSG9zdFN0YXRlEhcKD2V4Y2x1ZGVfcmV2b2tlZBgCIAEoCBIRCglwYWdlX3NpemUYAyABKAUSEgoKcGFnZV90b2tlbhgEIAEoCSKMAQoRTGlzdEhvc3RzUmVzcG9uc2USJwoFaG9zdHMYASADKAsyGC50b3NoaS53b3Jrc3BhY2UudjEuSG9zdBI1ChJsb25nX29mZmxpbmVfYWZ0ZXIYAiABKAsyGS5nb29nbGUucHJvdG9idWYuRHVyYXRpb24SFwoPbmV4dF9wYWdlX3Rva2VuGAMgASgJIlAKFkxpc3RIb3N0U3RvcmFnZVJlcXVlc3QSDwoHaG9zdF9pZBgBIAEoCRIRCglwYWdlX3NpemUYAiABKAUSEgoKcGFnZV90b2tlbhgDIAEoCSJjChdMaXN0SG9zdFN0b3JhZ2VSZXNwb25zZRIvCgd2b2x1bWVzGAEgAygLMh4udG9zaGkud29ya3NwYWNlLnYxLkhvc3RWb2x1bWUSFwoPbmV4dF9wYWdlX3Rva2VuGAIgASgJIj4KFUxpc3RIb3N0QWxlcnRzUmVxdWVzdBIRCglwYWdlX3NpemUYASABKAUSEgoKcGFnZV90b2tlbhgCIAEoCSJgChZMaXN0SG9zdEFsZXJ0c1Jlc3BvbnNlEi0KBmFsZXJ0cxgBIAMoCzIdLnRvc2hpLndvcmtzcGFjZS52MS5Ib3N0QWxlcnQSFwoPbmV4dF9wYWdlX3Rva2VuGAIgASgJIk8KE1NldEhvc3RTdGF0ZVJlcXVlc3QSCgoCaWQYASABKAkSLAoFc3RhdGUYAiABKA4yHS50b3NoaS53b3Jrc3BhY2UudjEuSG9zdFN0YXRlIj4KFFNldEhvc3RTdGF0ZVJlc3BvbnNlEiYKBGhvc3QYASABKAsyGC50b3NoaS53b3Jrc3BhY2UudjEuSG9zdCIfChFSZXRpcmVIb3N0UmVxdWVzdBIKCgJpZBgBIAEoCSIUChJSZXRpcmVIb3N0UmVzcG9uc2UitwQKFkNyZWF0ZUNsb3VkSG9zdFJlcXVlc3QSDAoEbmFtZRgBIAEoCRINCgVjbG91ZBgCIAEoCRIOCgZyZWdpb24YAyABKAkSEAoIcm9sZV9hcm4YBCABKAkSDQoFaW1hZ2UYBSABKAkSEQoJc3VibmV0X2lkGAYgASgJEhoKEnNlY3VyaXR5X2dyb3VwX2lkcxgHIAMoCRJVCg5pbnN0YW5jZV90eXBlcxgIIAMoCzI9LnRvc2hpLndvcmtzcGFjZS52MS5DcmVhdGVDbG91ZEhvc3RSZXF1ZXN0Lkluc3RhbmNlVHlwZXNFbnRyeRIRCgltYXhfdmNwdXMYCSABKAUSDAoEc3BvdBgKIAEoCBIVCg1tYXhfaW5zdGFuY2VzGAsgASgFEiQKHG1heF9pbnN0YW5jZV9taW51dGVzX3Blcl9kYXkYDCABKAUSEgoKZWdyZXNzX2lwcxgNIAMoCRITCgtub19vdmVyZmxvdxgOIAEoCBIPCgdwcm9qZWN0GA8gASgJEgwKBHpvbmUYECABKAkSFwoPc2VydmljZV9hY2NvdW50GBEgASgJEg4KBmVncmVzcxgSIAEoCRITCgtyZXF1ZXN0X2tleRgTIAEoCRIXCg9zdWJzY3JpcHRpb25faWQYFCABKAkSFgoOcmVzb3VyY2VfZ3JvdXAYFSABKAkaNAoSSW5zdGFuY2VUeXBlc0VudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEi1QEKF0NyZWF0ZUNsb3VkSG9zdFJlc3BvbnNlEiYKBGhvc3QYASABKAsyGC50b3NoaS53b3Jrc3BhY2UudjEuSG9zdBITCgtleHRlcm5hbF9pZBgCIAEoCRIVCg1wcmluY2lwYWxfYXJuGAMgASgJEjEKCmNsb3VkX2hvc3QYBCABKAsyHS50b3NoaS53b3Jrc3BhY2UudjEuQ2xvdWRIb3N0EhUKDWdjcF9wcmluY2lwYWwYBSABKAkSHAoUYXp1cmVfYXBwbGljYXRpb25faWQYBiABKAkiKAoVQ2hlY2tDbG91ZEhvc3RSZXF1ZXN0Eg8KB2hvc3RfaWQYASABKAkiTAoWQ2hlY2tDbG91ZEhvc3RSZXNwb25zZRIyCgZjaGVja3MYASADKAsyIi50b3NoaS53b3Jrc3BhY2UudjEuQ2xvdWRIb3N0Q2hlY2siMAocQ3JlYXRlRW5yb2xsbWVudFRva2VuUmVxdWVzdBIQCghvdmVyZmxvdxgBIAEoCCJYCh1DcmVhdGVFbnJvbGxtZW50VG9rZW5SZXNwb25zZRIoCgV0b2tlbhgBIAEoCzIZLnRvc2hpLndvcmtzcGFjZS52MS5Ub2tlbhINCgV2YWx1ZRgCIAEoCSLgBwoESG9zdBIKCgJpZBgBIAEoCRIMCgRuYW1lGAIgASgJEgoKAm9zGAMgAygJEgwKBGNwdXMYBCABKAUSEgoKbWVtb3J5X21pYhgFIAEoBRI0CgZsYWJlbHMYBiADKAsyJC50b3NoaS53b3Jrc3BhY2UudjEuSG9zdC5MYWJlbHNFbnRyeRIsCgVzdGF0ZRgHIAEoDjIdLnRvc2hpLndvcmtzcGFjZS52MS5Ib3N0U3RhdGUSMAoMbGFzdF9zZWVuX2F0GAggASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIXCg9mcmVlX21lbW9yeV9taWIYCSABKAMSNAoMaGVsZF9yZWZpbGxzGAogAygLMh4udG9zaGkud29ya3NwYWNlLnYxLkhlbGRSZWZpbGwSEAoIc3RvcHBpbmcYCyABKAgSDQoFY2xvdWQYDCABKAkSEAoIb3ZlcmZsb3cYDSABKAgSLgoGZWdyZXNzGA4gASgLMh4udG9zaGkud29ya3NwYWNlLnYxLkhvc3RFZ3Jlc3MSFQoNYWdlbnRfdmVyc2lvbhgPIAEoCRJEChRhZ2VudF92ZXJzaW9uX3N0YXR1cxgQIAEoDjImLnRvc2hpLndvcmtzcGFjZS52MS5BZ2VudFZlcnNpb25TdGF0dXMSGgoSYWdlbnRfdmVyc2lvbl9za2V3GBEgASgJEhQKDGxvbmdfb2ZmbGluZRgSIAEoCBIZChFoZWFydGJlYXRfcmVmdXNhbBgTIAEoCRI4ChRoZWFydGJlYXRfcmVmdXNlZF9hdBgUIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASDAoEdGllchgVIAEoCRIuCgpyZXZva2VkX2F0GBYgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIYChBtZW1vcnlfbGltaXRfbWliGBcgASgDEhsKE21lbW9yeV9saW1pdF9zb3VyY2UYGCABKAkSHQoVYWdlbnRfdmVyc2lvbl9taW5pbXVtGBkgASgJEg8KB2tlZXBfdm0YGiABKAgSLAoIa2VwdF92bXMYGyADKAsyGi50b3NoaS53b3Jrc3BhY2UudjEuS2VwdFZNEhcKD2tlcHRfbWVtb3J5X21pYhgcIAEoAxIXCg9rZXB0X2Rpc2tfYnl0ZXMYHSABKAMSGAoQbmV0d29ya19lbmZvcmNlZBgeIAEoCBIWCg5uZXR3b3JrX3JlYXNvbhgfIAEoCRotCgtMYWJlbHNFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBIpEBCgZLZXB0Vk0SEwoLd29ya2xvYWRfaWQYASABKAkSDAoEa2luZBgCIAEoCRIMCgRmb3JtGAMgASgJEhIKCm1lbW9yeV9taWIYBCABKAMSEgoKZGlza19ieXRlcxgFIAEoAxIuCgpzdG9wcGVkX2F0GAYgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcCIqCgpIZWxkUmVmaWxsEgwKBHNpemUYASABKAkSDgoGcmVhc29uGAIgASgJInsKCkhvc3RFZ3Jlc3MSCwoDaXBzGAEgAygJEjAKBnNvdXJjZRgCIAEoDjIgLnRvc2hpLndvcmtzcGFjZS52MS5FZ3Jlc3NTb3VyY2USLgoKY2hhbmdlZF9hdBgDIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAi3QEKCkhvc3RWb2x1bWUSEQoJdm9sdW1lX2lkGAEgASgJEg8KB3Byb2plY3QYAiABKAkSEgoKcHJvamVjdF9pZBgDIAEoCRIMCgRuYW1lGAQgASgJEgwKBG1vZGUYBSABKAkSFgoOc2l6ZV9jYXBfYnl0ZXMYBiABKAMSEQoJd2FybV9jb3B5GAcgASgIEhAKCGNsYWltX2lkGAggASgJEg4KBmpvYl9pZBgJIAEoCRIuCgpjbGFpbWVkX2F0GAogASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcCKUAgoJSG9zdEFsZXJ0EgwKBGtpbmQYASABKAkSLQoJcmFpc2VkX2F0GAIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIpCgVzaW5jZRgDIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASDQoFY291bnQYBCABKAMSOwoHcmVhc29ucxgFIAMoCzIqLnRvc2hpLndvcmtzcGFjZS52MS5Ib3N0QWxlcnQuUmVhc29uc0VudHJ5EhIKCnRvcF9yZWFzb24YBiABKAkSDwoHbWVzc2FnZRgHIAEoCRouCgxSZWFzb25zRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgDOgI4ASKnBAoJQ2xvdWRIb3N0Eg8KB2hvc3RfaWQYASABKAkSDQoFY2xvdWQYAiABKAkSDgoGcmVnaW9uGAMgASgJEhAKCHJvbGVfYXJuGAQgASgJEhMKC2V4dGVybmFsX2lkGAUgASgJEg0KBWltYWdlGAYgASgJEhEKCXN1Ym5ldF9pZBgHIAEoCRIaChJzZWN1cml0eV9ncm91cF9pZHMYCCADKAkSSAoOaW5zdGFuY2VfdHlwZXMYCSADKAsyMC50b3NoaS53b3Jrc3BhY2UudjEuQ2xvdWRIb3N0Lkluc3RhbmNlVHlwZXNFbnRyeRIRCgltYXhfdmNwdXMYCiABKAUSLgoKY3JlYXRlZF9hdBgLIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASDAoEc3BvdBgMIAEoCBIVCg1tYXhfaW5zdGFuY2VzGA0gASgFEiQKHG1heF9pbnN0YW5jZV9taW51dGVzX3Blcl9kYXkYDiABKAUSDwoHcHJvamVjdBgPIAEoCRIMCgR6b25lGBAgASgJEhcKD3NlcnZpY2VfYWNjb3VudBgRIAEoCRIOCgZlZ3Jlc3MYEiABKAkSFwoPc3Vic2NyaXB0aW9uX2lkGBMgASgJEhYKDnJlc291cmNlX2dyb3VwGBQgASgJGjQKEkluc3RhbmNlVHlwZXNFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBImgKDkNsb3VkSG9zdENoZWNrEgwKBG5hbWUYASABKAkSOAoGc3RhdHVzGAIgASgOMigudG9zaGkud29ya3NwYWNlLnYxLkNsb3VkSG9zdENoZWNrU3RhdHVzEg4KBmRldGFpbBgDIAEoCSpvCglIb3N0U3RhdGUSGgoWSE9TVF9TVEFURV9VTlNQRUNJRklFRBAAEhUKEUhPU1RfU1RBVEVfT05MSU5FEAESFwoTSE9TVF9TVEFURV9EUkFJTklORxACEhYKEkhPU1RfU1RBVEVfT0ZGTElORRADKp8BCgxFZ3Jlc3NTb3VyY2USHQoZRUdSRVNTX1NPVVJDRV9VTlNQRUNJRklFRBAAEhwKGEVHUkVTU19TT1VSQ0VfQ09ORklHVVJFRBABEhwKGEVHUkVTU19TT1VSQ0VfRElTQ09WRVJFRBACEhkKFUVHUkVTU19TT1VSQ0VfVU5LTk9XThADEhkKFUVHUkVTU19TT1VSQ0VfUEVSX0pPQhAEKsABChJBZ2VudFZlcnNpb25TdGF0dXMSJAogQUdFTlRfVkVSU0lPTl9TVEFUVVNfVU5TUEVDSUZJRUQQABIgChxBR0VOVF9WRVJTSU9OX1NUQVRVU19VTktOT1dOEAESGwoXQUdFTlRfVkVSU0lPTl9TVEFUVVNfT0sQAhIdChlBR0VOVF9WRVJTSU9OX1NUQVRVU19TS0VXEAMSJgoiQUdFTlRfVkVSU0lPTl9TVEFUVVNfQkVMT1dfTUlOSU1VTRAEKsgBChRDbG91ZEhvc3RDaGVja1N0YXR1cxInCiNDTE9VRF9IT1NUX0NIRUNLX1NUQVRVU19VTlNQRUNJRklFRBAAEh4KGkNMT1VEX0hPU1RfQ0hFQ0tfU1RBVFVTX09LEAESIAocQ0xPVURfSE9TVF9DSEVDS19TVEFUVVNfV0FSThACEiAKHENMT1VEX0hPU1RfQ0hFQ0tfU1RBVFVTX0ZBSUwQAxIjCh9DTE9VRF9IT1NUX0NIRUNLX1NUQVRVU19TS0lQUEVEEAQyywgKC0hvc3RTZXJ2aWNlEmgKCUxpc3RIb3N0cxIkLnRvc2hpLndvcmtzcGFjZS52MS5MaXN0SG9zdHNSZXF1ZXN0GiUudG9zaGkud29ya3NwYWNlLnYxLkxpc3RIb3N0c1Jlc3BvbnNlIg7C8xgKaG9zdHMucmVhZBJ6Cg9MaXN0SG9zdFN0b3JhZ2USKi50b3NoaS53b3Jrc3BhY2UudjEuTGlzdEhvc3RTdG9yYWdlUmVxdWVzdBorLnRvc2hpLndvcmtzcGFjZS52MS5MaXN0SG9zdFN0b3JhZ2VSZXNwb25zZSIOwvMYCmhvc3RzLnJlYWQSdwoOTGlzdEhvc3RBbGVydHMSKS50b3NoaS53b3Jrc3BhY2UudjEuTGlzdEhvc3RBbGVydHNSZXF1ZXN0GioudG9zaGkud29ya3NwYWNlLnYxLkxpc3RIb3N0QWxlcnRzUmVzcG9uc2UiDsLzGApob3N0cy5yZWFkEoYBCgxTZXRIb3N0U3RhdGUSJy50b3NoaS53b3Jrc3BhY2UudjEuU2V0SG9zdFN0YXRlUmVxdWVzdBooLnRvc2hpLndvcmtzcGFjZS52MS5TZXRIb3N0U3RhdGVSZXNwb25zZSIjwvMYC2hvc3RzLndyaXRl0vMYEAoOaG9zdC5zdGF0ZV9zZXQSbAoKUmV0aXJlSG9zdBIlLnRvc2hpLndvcmtzcGFjZS52MS5SZXRpcmVIb3N0UmVxdWVzdBomLnRvc2hpLndvcmtzcGFjZS52MS5SZXRpcmVIb3N0UmVzcG9uc2UiD8LzGAtob3N0cy53cml0ZRK1AQoPQ3JlYXRlQ2xvdWRIb3N0EioudG9zaGkud29ya3NwYWNlLnYxLkNyZWF0ZUNsb3VkSG9zdFJlcXVlc3QaKy50b3NoaS53b3Jrc3BhY2UudjEuQ3JlYXRlQ2xvdWRIb3N0UmVzcG9uc2UiScLzGAtob3N0cy53cml0ZcrzGAl3b3Jrc3BhY2XS8xgpChBjbG91ZF9ob3N0LmFkZGVkEhVob3N0OnJlc3BvbnNlLmhvc3QuaWQSigEKDkNoZWNrQ2xvdWRIb3N0EikudG9zaGkud29ya3NwYWNlLnYxLkNoZWNrQ2xvdWRIb3N0UmVxdWVzdBoqLnRvc2hpLndvcmtzcGFjZS52MS5DaGVja0Nsb3VkSG9zdFJlc3BvbnNlIiHC8xgLaG9zdHMud3JpdGXS8xgOEgxob3N0Omhvc3RfaWQSoAEKFUNyZWF0ZUVucm9sbG1lbnRUb2tlbhIwLnRvc2hpLndvcmtzcGFjZS52MS5DcmVhdGVFbnJvbGxtZW50VG9rZW5SZXF1ZXN0GjEudG9zaGkud29ya3NwYWNlLnYxLkNyZWF0ZUVucm9sbG1lbnRUb2tlblJlc3BvbnNlIiLC8xgLaG9zdHMud3JpdGXS8xgPCg10b2tlbi5jcmVhdGVkQiJaIGdvLnRvc2hpY2xvdWQuaW8vYXBpL3dvcmtzcGFjZXYxYgZwcm90bzM", [file_google_protobuf_duration, file_google_protobuf_timestamp, file_toshi_permission, file_toshi_workspace_v1_tokens]);
12
12
  /**
13
13
  * Describes the message toshi.workspace.v1.ListHostsRequest.
14
14
  * Use `create(ListHostsRequestSchema)` to create a new message.