@toshicloud/sdk 0.4.0 → 0.5.1

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 (71) hide show
  1. package/README.md +102 -19
  2. package/dist/client.d.ts +40 -4
  3. package/dist/client.js +35 -4
  4. package/dist/errors.d.ts +99 -0
  5. package/dist/errors.js +208 -0
  6. package/dist/gen/toshi/permission_pb.d.ts +244 -0
  7. package/dist/gen/toshi/permission_pb.js +94 -0
  8. package/dist/gen/toshi/workspace/v1/account_pb.d.ts +590 -0
  9. package/dist/gen/toshi/workspace/v1/account_pb.js +75 -0
  10. package/dist/gen/toshi/workspace/v1/artifacts_pb.d.ts +14 -8
  11. package/dist/gen/toshi/workspace/v1/artifacts_pb.js +10 -7
  12. package/dist/gen/toshi/workspace/v1/audit_events_pb.d.ts +191 -6
  13. package/dist/gen/toshi/workspace/v1/audit_events_pb.js +12 -1
  14. package/dist/gen/toshi/workspace/v1/channels_pb.d.ts +1194 -21
  15. package/dist/gen/toshi/workspace/v1/channels_pb.js +186 -39
  16. package/dist/gen/toshi/workspace/v1/connections_pb.d.ts +1481 -0
  17. package/dist/gen/toshi/workspace/v1/connections_pb.js +208 -0
  18. package/dist/gen/toshi/workspace/v1/discovery_pb.d.ts +924 -0
  19. package/dist/gen/toshi/workspace/v1/discovery_pb.js +231 -0
  20. package/dist/gen/toshi/workspace/v1/display_pb.d.ts +198 -15
  21. package/dist/gen/toshi/workspace/v1/display_pb.js +53 -2
  22. package/dist/gen/toshi/workspace/v1/domains_pb.d.ts +864 -0
  23. package/dist/gen/toshi/workspace/v1/domains_pb.js +152 -0
  24. package/dist/gen/toshi/workspace/v1/fillers_pb.d.ts +12 -4
  25. package/dist/gen/toshi/workspace/v1/fillers_pb.js +2 -1
  26. package/dist/gen/toshi/workspace/v1/grants_pb.d.ts +1297 -0
  27. package/dist/gen/toshi/workspace/v1/grants_pb.js +271 -0
  28. package/dist/gen/toshi/workspace/v1/hostjobs_pb.d.ts +315 -15
  29. package/dist/gen/toshi/workspace/v1/hostjobs_pb.js +11 -5
  30. package/dist/gen/toshi/workspace/v1/hosts_pb.d.ts +196 -7
  31. package/dist/gen/toshi/workspace/v1/hosts_pb.js +13 -7
  32. package/dist/gen/toshi/workspace/v1/images_pb.d.ts +1463 -0
  33. package/dist/gen/toshi/workspace/v1/images_pb.js +263 -0
  34. package/dist/gen/toshi/workspace/v1/products_pb.d.ts +506 -0
  35. package/dist/gen/toshi/workspace/v1/products_pb.js +60 -0
  36. package/dist/gen/toshi/workspace/v1/projects_pb.d.ts +1474 -99
  37. package/dist/gen/toshi/workspace/v1/projects_pb.js +151 -33
  38. package/dist/gen/toshi/workspace/v1/recordings_pb.d.ts +181 -14
  39. package/dist/gen/toshi/workspace/v1/recordings_pb.js +55 -14
  40. package/dist/gen/toshi/workspace/v1/roles_pb.d.ts +1994 -0
  41. package/dist/gen/toshi/workspace/v1/roles_pb.js +355 -0
  42. package/dist/gen/toshi/workspace/v1/secrets_pb.d.ts +314 -8
  43. package/dist/gen/toshi/workspace/v1/secrets_pb.js +43 -18
  44. package/dist/gen/toshi/workspace/v1/storage_providers_pb.d.ts +14 -0
  45. package/dist/gen/toshi/workspace/v1/storage_providers_pb.js +2 -1
  46. package/dist/gen/toshi/workspace/v1/tokens_pb.d.ts +434 -5
  47. package/dist/gen/toshi/workspace/v1/tokens_pb.js +66 -8
  48. package/dist/gen/toshi/workspace/v1/triggers_pb.d.ts +1099 -0
  49. package/dist/gen/toshi/workspace/v1/triggers_pb.js +185 -0
  50. package/dist/gen/toshi/workspace/v1/volumes_pb.d.ts +1052 -33
  51. package/dist/gen/toshi/workspace/v1/volumes_pb.js +170 -11
  52. package/dist/gen/toshi/workspace/v1/webhook_pb.d.ts +66 -8
  53. package/dist/gen/toshi/workspace/v1/webhook_pb.js +5 -4
  54. package/dist/gen/toshi/workspace/v1/workloads_pb.d.ts +2043 -54
  55. package/dist/gen/toshi/workspace/v1/workloads_pb.js +205 -54
  56. package/dist/gen/toshi/workspace/v1/workspace_pb.d.ts +6292 -939
  57. package/dist/gen/toshi/workspace/v1/workspace_pb.js +801 -88
  58. package/dist/gen/toshi/workspace/v1/workspace_service_pb.d.ts +2176 -630
  59. package/dist/gen/toshi/workspace/v1/workspace_service_pb.js +192 -74
  60. package/dist/index.d.ts +10 -1
  61. package/dist/index.js +10 -1
  62. package/dist/interceptors.d.ts +11 -1
  63. package/dist/interceptors.js +38 -4
  64. package/dist/retry.d.ts +18 -0
  65. package/dist/retry.js +228 -22
  66. package/dist/test/procedures.js +100 -5
  67. package/dist/version.d.ts +1 -1
  68. package/dist/version.js +1 -1
  69. package/dist/wait.d.ts +4 -0
  70. package/dist/wait.js +24 -1
  71. package/package.json +3 -2
@@ -154,6 +154,13 @@ export type GetHostJobResponse = Message<"toshi.workspace.v1.GetHostJobResponse"
154
154
  * @generated from field: toshi.workspace.v1.HostJob host_job = 1;
155
155
  */
156
156
  hostJob?: HostJob | undefined;
157
+ /**
158
+ * The job's attempts, oldest first: one for each assignment to a host,
159
+ * the current one last while the job holds it.
160
+ *
161
+ * @generated from field: repeated toshi.workspace.v1.HostJobAttempt attempts = 2;
162
+ */
163
+ attempts: HostJobAttempt[];
157
164
  };
158
165
  /**
159
166
  * @generated from message toshi.workspace.v1.GetHostJobResponse
@@ -163,6 +170,13 @@ export type GetHostJobResponseJson = {
163
170
  * @generated from field: toshi.workspace.v1.HostJob host_job = 1;
164
171
  */
165
172
  hostJob?: HostJobJson;
173
+ /**
174
+ * The job's attempts, oldest first: one for each assignment to a host,
175
+ * the current one last while the job holds it.
176
+ *
177
+ * @generated from field: repeated toshi.workspace.v1.HostJobAttempt attempts = 2;
178
+ */
179
+ attempts?: HostJobAttemptJson[];
166
180
  };
167
181
  /**
168
182
  * Describes the message toshi.workspace.v1.GetHostJobResponse.
@@ -772,8 +786,9 @@ export type HostJob = Message<"toshi.workspace.v1.HostJob"> & {
772
786
  /**
773
787
  * Why the job was stopped: github_cancelled, max_duration, operator,
774
788
  * github_completed, runner_not_started, runner_unconfirmed, debug_ended,
775
- * ran_elsewhere, or for a sandbox spend_cap, tenant_suspended or
776
- * tenant_deleted. Empty if it never was.
789
+ * ran_elsewhere, for a sandbox spend_cap, tenant_suspended,
790
+ * tenant_deleted or owner, or for a service's run owner_deleted,
791
+ * service_restart or sleep. Empty if it never was.
777
792
  *
778
793
  * @generated from field: string stop_reason = 18;
779
794
  */
@@ -787,10 +802,12 @@ export type HostJob = Message<"toshi.workspace.v1.HostJob"> & {
787
802
  stopRequestedAt?: Timestamp | undefined;
788
803
  /**
789
804
  * Why the scheduler last held the job while it was queued:
790
- * tenant_suspended, tenant_cap, tenant_vcpu, free_allowance, spend_cap,
791
- * jobs_per_hour, burst_guard, plan_os, installation_suspended,
792
- * overflow_wait, no_own_capacity or no_capacity. Empty when the job was
793
- * never held. It is kept after the job starts.
805
+ * 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.
794
811
  *
795
812
  * @generated from field: string hold_reason = 20;
796
813
  */
@@ -975,7 +992,11 @@ export type HostJob = Message<"toshi.workspace.v1.HostJob"> & {
975
992
  /**
976
993
  * The Workspace API workload the job runs: a sandbox's or a service's
977
994
  * id, or the id of a job workload run on a host. Empty for a
978
- * CI job.
995
+ * CI job, which runs no workload: it has no recordings and no
996
+ * workload events. Its artifacts carry workload_kind "job" and this
997
+ * job's id as their workload_id, so ArtifactService.ListArtifacts
998
+ * with workload_id set to the id lists them; its display sessions
999
+ * are ListDisplaySessions' by job_id.
979
1000
  *
980
1001
  * @generated from field: string workload_id = 44;
981
1002
  */
@@ -998,6 +1019,70 @@ export type HostJob = Message<"toshi.workspace.v1.HostJob"> & {
998
1019
  * @generated from field: string environment = 46;
999
1020
  */
1000
1021
  environment: string;
1022
+ /**
1023
+ * The kind of provider that created instance_id, as the host's agent
1024
+ * reported it with the instance: "container", "fake", "qemu" or "vz".
1025
+ * It stays with the attempt when the host's agent later reports another
1026
+ * kind. Empty while the job has no instance, for a job whose agent sent
1027
+ * none or recorded before the field, and for a cloud host's job.
1028
+ *
1029
+ * @generated from field: string provider = 47;
1030
+ */
1031
+ provider: string;
1032
+ /**
1033
+ * The state in GitHub's words: "queued" while queued, assigned or
1034
+ * starting, "in_progress" while running, debugging or stopping once its
1035
+ * attempt started, "completed" once completed, failed or cancelled. A
1036
+ * Workspace API job's attempt starts when its host's start of the
1037
+ * command is admitted: until then it is queued.
1038
+ *
1039
+ * @generated from field: string status = 48;
1040
+ */
1041
+ status: string;
1042
+ /**
1043
+ * The runner that runs, or ran, the job's current attempt: for a GitHub
1044
+ * job GitHub's runner id in decimal and the name it was registered
1045
+ * with, for a Workspace API job its attempt's name as both. Unset until
1046
+ * the attempt started, and for a job that ended before any did; the
1047
+ * host it was assigned to is host_id.
1048
+ *
1049
+ * @generated from field: string runner_id = 49;
1050
+ */
1051
+ runnerId: string;
1052
+ /**
1053
+ * @generated from field: string runner_name = 50;
1054
+ */
1055
+ runnerName: string;
1056
+ /**
1057
+ * The current attempt once it started, counting from 1: each assignment
1058
+ * of the job is one, and a requeue makes the next. 0 until it started,
1059
+ * and for a job that ended before any attempt did; attempts on the get
1060
+ * answer list every assignment.
1061
+ *
1062
+ * @generated from field: int32 attempt = 51;
1063
+ */
1064
+ attempt: number;
1065
+ /**
1066
+ * GitHub's attempt of the workflow run the job is part of, as the
1067
+ * workflow_job webhook Toshi made the job from said: 1 for a run's first
1068
+ * attempt, 2 for its first re-run. 0 when it was not recorded, as for a
1069
+ * job that is not a GitHub job or one stored before the field.
1070
+ *
1071
+ * @generated from field: int32 run_attempt = 52;
1072
+ */
1073
+ runAttempt: number;
1074
+ /**
1075
+ * TOSHI_LICENSED_WINDOWS when the job runs on a cloud pool's Windows: no
1076
+ * one sees its screen, so it opens no display session, takes no takeover
1077
+ * and records no screen. DESKTOP_SEAT_REQUIRED when it runs on a host
1078
+ * whose pool has licence = "toshi": only a person who holds a desktop seat
1079
+ * in the workspace opens a display session on it, and it records no
1080
+ * screen. Empty when its screen is available, and for a job without a
1081
+ * host. A workspace's own hosts and its own cloud account show the screen.
1082
+ *
1083
+ * @generated from field: string screen_unavailable_reason = 53;
1084
+ */
1085
+ screenUnavailableReason: string;
1001
1086
  };
1002
1087
  /**
1003
1088
  * HostJob is one run on a host: a GitHub Actions workflow job, or the run of
@@ -1094,8 +1179,9 @@ export type HostJobJson = {
1094
1179
  /**
1095
1180
  * Why the job was stopped: github_cancelled, max_duration, operator,
1096
1181
  * github_completed, runner_not_started, runner_unconfirmed, debug_ended,
1097
- * ran_elsewhere, or for a sandbox spend_cap, tenant_suspended or
1098
- * tenant_deleted. Empty if it never was.
1182
+ * ran_elsewhere, for a sandbox spend_cap, tenant_suspended,
1183
+ * tenant_deleted or owner, or for a service's run owner_deleted,
1184
+ * service_restart or sleep. Empty if it never was.
1099
1185
  *
1100
1186
  * @generated from field: string stop_reason = 18;
1101
1187
  */
@@ -1109,10 +1195,12 @@ export type HostJobJson = {
1109
1195
  stopRequestedAt?: TimestampJson;
1110
1196
  /**
1111
1197
  * Why the scheduler last held the job while it was queued:
1112
- * tenant_suspended, tenant_cap, tenant_vcpu, free_allowance, spend_cap,
1113
- * jobs_per_hour, burst_guard, plan_os, installation_suspended,
1114
- * overflow_wait, no_own_capacity or no_capacity. Empty when the job was
1115
- * never held. It is kept after the job starts.
1198
+ * 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.
1116
1204
  *
1117
1205
  * @generated from field: string hold_reason = 20;
1118
1206
  */
@@ -1297,7 +1385,11 @@ export type HostJobJson = {
1297
1385
  /**
1298
1386
  * The Workspace API workload the job runs: a sandbox's or a service's
1299
1387
  * id, or the id of a job workload run on a host. Empty for a
1300
- * CI job.
1388
+ * CI job, which runs no workload: it has no recordings and no
1389
+ * workload events. Its artifacts carry workload_kind "job" and this
1390
+ * job's id as their workload_id, so ArtifactService.ListArtifacts
1391
+ * with workload_id set to the id lists them; its display sessions
1392
+ * are ListDisplaySessions' by job_id.
1301
1393
  *
1302
1394
  * @generated from field: string workload_id = 44;
1303
1395
  */
@@ -1320,6 +1412,70 @@ export type HostJobJson = {
1320
1412
  * @generated from field: string environment = 46;
1321
1413
  */
1322
1414
  environment?: string;
1415
+ /**
1416
+ * The kind of provider that created instance_id, as the host's agent
1417
+ * reported it with the instance: "container", "fake", "qemu" or "vz".
1418
+ * It stays with the attempt when the host's agent later reports another
1419
+ * kind. Empty while the job has no instance, for a job whose agent sent
1420
+ * none or recorded before the field, and for a cloud host's job.
1421
+ *
1422
+ * @generated from field: string provider = 47;
1423
+ */
1424
+ provider?: string;
1425
+ /**
1426
+ * The state in GitHub's words: "queued" while queued, assigned or
1427
+ * starting, "in_progress" while running, debugging or stopping once its
1428
+ * attempt started, "completed" once completed, failed or cancelled. A
1429
+ * Workspace API job's attempt starts when its host's start of the
1430
+ * command is admitted: until then it is queued.
1431
+ *
1432
+ * @generated from field: string status = 48;
1433
+ */
1434
+ status?: string;
1435
+ /**
1436
+ * The runner that runs, or ran, the job's current attempt: for a GitHub
1437
+ * job GitHub's runner id in decimal and the name it was registered
1438
+ * with, for a Workspace API job its attempt's name as both. Unset until
1439
+ * the attempt started, and for a job that ended before any did; the
1440
+ * host it was assigned to is host_id.
1441
+ *
1442
+ * @generated from field: string runner_id = 49;
1443
+ */
1444
+ runnerId?: string;
1445
+ /**
1446
+ * @generated from field: string runner_name = 50;
1447
+ */
1448
+ runnerName?: string;
1449
+ /**
1450
+ * The current attempt once it started, counting from 1: each assignment
1451
+ * of the job is one, and a requeue makes the next. 0 until it started,
1452
+ * and for a job that ended before any attempt did; attempts on the get
1453
+ * answer list every assignment.
1454
+ *
1455
+ * @generated from field: int32 attempt = 51;
1456
+ */
1457
+ attempt?: number;
1458
+ /**
1459
+ * GitHub's attempt of the workflow run the job is part of, as the
1460
+ * workflow_job webhook Toshi made the job from said: 1 for a run's first
1461
+ * attempt, 2 for its first re-run. 0 when it was not recorded, as for a
1462
+ * job that is not a GitHub job or one stored before the field.
1463
+ *
1464
+ * @generated from field: int32 run_attempt = 52;
1465
+ */
1466
+ runAttempt?: number;
1467
+ /**
1468
+ * TOSHI_LICENSED_WINDOWS when the job runs on a cloud pool's Windows: no
1469
+ * one sees its screen, so it opens no display session, takes no takeover
1470
+ * and records no screen. DESKTOP_SEAT_REQUIRED when it runs on a host
1471
+ * whose pool has licence = "toshi": only a person who holds a desktop seat
1472
+ * in the workspace opens a display session on it, and it records no
1473
+ * screen. Empty when its screen is available, and for a job without a
1474
+ * host. A workspace's own hosts and its own cloud account show the screen.
1475
+ *
1476
+ * @generated from field: string screen_unavailable_reason = 53;
1477
+ */
1478
+ screenUnavailableReason?: string;
1323
1479
  };
1324
1480
  /**
1325
1481
  * Describes the message toshi.workspace.v1.HostJob.
@@ -1328,6 +1484,149 @@ export type HostJobJson = {
1328
1484
  export declare const HostJobSchema: GenMessage<HostJob, {
1329
1485
  jsonType: HostJobJson;
1330
1486
  }>;
1487
+ /**
1488
+ * HostJobAttempt is one attempt of a host job: one assignment to a host
1489
+ * and its runner, and why it ended.
1490
+ *
1491
+ * @generated from message toshi.workspace.v1.HostJobAttempt
1492
+ */
1493
+ export type HostJobAttempt = Message<"toshi.workspace.v1.HostJobAttempt"> & {
1494
+ /**
1495
+ * Counting from 1.
1496
+ *
1497
+ * @generated from field: int32 attempt = 1;
1498
+ */
1499
+ attempt: number;
1500
+ /**
1501
+ * As HostJob.runner_id and HostJob.runner_name; empty when no runner was
1502
+ * named for the assignment.
1503
+ *
1504
+ * @generated from field: string runner_id = 2;
1505
+ */
1506
+ runnerId: string;
1507
+ /**
1508
+ * @generated from field: string runner_name = 3;
1509
+ */
1510
+ runnerName: string;
1511
+ /**
1512
+ * @generated from field: string host_id = 4;
1513
+ */
1514
+ hostId: string;
1515
+ /**
1516
+ * @generated from field: string instance_id = 5;
1517
+ */
1518
+ instanceId: string;
1519
+ /**
1520
+ * @generated from field: string provider = 6;
1521
+ */
1522
+ provider: string;
1523
+ /**
1524
+ * @generated from field: google.protobuf.Timestamp assigned_at = 7;
1525
+ */
1526
+ assignedAt?: Timestamp | undefined;
1527
+ /**
1528
+ * Unset when the attempt was assigned and never started.
1529
+ *
1530
+ * @generated from field: google.protobuf.Timestamp started_at = 8;
1531
+ */
1532
+ startedAt?: Timestamp | undefined;
1533
+ /**
1534
+ * When the attempt ended; unset for the current attempt until the job
1535
+ * finished.
1536
+ *
1537
+ * @generated from field: google.protobuf.Timestamp finished_at = 9;
1538
+ */
1539
+ finishedAt?: Timestamp | undefined;
1540
+ /**
1541
+ * The job's conclusion as GitHub or its runner reported it in the
1542
+ * attempt, such as "success"; empty when none was.
1543
+ *
1544
+ * @generated from field: string conclusion = 10;
1545
+ */
1546
+ conclusion: string;
1547
+ /**
1548
+ * Why an attempt that was queued again ended, such as "requeued: its
1549
+ * assignment timed out"; empty for the current attempt.
1550
+ *
1551
+ * @generated from field: string end = 11;
1552
+ */
1553
+ end: string;
1554
+ };
1555
+ /**
1556
+ * HostJobAttempt is one attempt of a host job: one assignment to a host
1557
+ * and its runner, and why it ended.
1558
+ *
1559
+ * @generated from message toshi.workspace.v1.HostJobAttempt
1560
+ */
1561
+ export type HostJobAttemptJson = {
1562
+ /**
1563
+ * Counting from 1.
1564
+ *
1565
+ * @generated from field: int32 attempt = 1;
1566
+ */
1567
+ attempt?: number;
1568
+ /**
1569
+ * As HostJob.runner_id and HostJob.runner_name; empty when no runner was
1570
+ * named for the assignment.
1571
+ *
1572
+ * @generated from field: string runner_id = 2;
1573
+ */
1574
+ runnerId?: string;
1575
+ /**
1576
+ * @generated from field: string runner_name = 3;
1577
+ */
1578
+ runnerName?: string;
1579
+ /**
1580
+ * @generated from field: string host_id = 4;
1581
+ */
1582
+ hostId?: string;
1583
+ /**
1584
+ * @generated from field: string instance_id = 5;
1585
+ */
1586
+ instanceId?: string;
1587
+ /**
1588
+ * @generated from field: string provider = 6;
1589
+ */
1590
+ provider?: string;
1591
+ /**
1592
+ * @generated from field: google.protobuf.Timestamp assigned_at = 7;
1593
+ */
1594
+ assignedAt?: TimestampJson;
1595
+ /**
1596
+ * Unset when the attempt was assigned and never started.
1597
+ *
1598
+ * @generated from field: google.protobuf.Timestamp started_at = 8;
1599
+ */
1600
+ startedAt?: TimestampJson;
1601
+ /**
1602
+ * When the attempt ended; unset for the current attempt until the job
1603
+ * finished.
1604
+ *
1605
+ * @generated from field: google.protobuf.Timestamp finished_at = 9;
1606
+ */
1607
+ finishedAt?: TimestampJson;
1608
+ /**
1609
+ * The job's conclusion as GitHub or its runner reported it in the
1610
+ * attempt, such as "success"; empty when none was.
1611
+ *
1612
+ * @generated from field: string conclusion = 10;
1613
+ */
1614
+ conclusion?: string;
1615
+ /**
1616
+ * Why an attempt that was queued again ended, such as "requeued: its
1617
+ * assignment timed out"; empty for the current attempt.
1618
+ *
1619
+ * @generated from field: string end = 11;
1620
+ */
1621
+ end?: string;
1622
+ };
1623
+ /**
1624
+ * Describes the message toshi.workspace.v1.HostJobAttempt.
1625
+ * Use `create(HostJobAttemptSchema)` to create a new message.
1626
+ */
1627
+ export declare const HostJobAttemptSchema: GenMessage<HostJobAttempt, {
1628
+ jsonType: HostJobAttemptJson;
1629
+ }>;
1331
1630
  /**
1332
1631
  * HostJobTelemetrySummary sums up a job VM's resource samples.
1333
1632
  *
@@ -2036,7 +2335,8 @@ export declare const HostJobService: GenService<{
2036
2335
  * host job moves to HOST_JOB_STATE_STOPPING with stop_reason debug_ended,
2037
2336
  * its host destroys the kept VM and the host job finishes completed with
2038
2337
  * its conclusion unchanged. A host job that is not debugging fails with
2039
- * FAILED_PRECONDITION; one already stopping is returned unchanged.
2338
+ * FAILED_PRECONDITION, as does one stopping for another reason; one
2339
+ * already stopping with debug_ended is returned unchanged.
2040
2340
  *
2041
2341
  * @generated from rpc toshi.workspace.v1.HostJobService.StopHostJobDebug
2042
2342
  */
@@ -3,10 +3,11 @@
3
3
  /* eslint-disable */
4
4
  import { enumDesc, fileDesc, messageDesc, serviceDesc } from "@bufbuild/protobuf/codegenv2";
5
5
  import { file_google_protobuf_timestamp } from "@bufbuild/protobuf/wkt";
6
+ import { file_toshi_permission } from "../../permission_pb.js";
6
7
  /**
7
8
  * Describes the file toshi/workspace/v1/hostjobs.proto.
8
9
  */
9
- export const file_toshi_workspace_v1_hostjobs = /*@__PURE__*/ fileDesc("CiF0b3NoaS93b3Jrc3BhY2UvdjEvaG9zdGpvYnMucHJvdG8SEnRvc2hpLndvcmtzcGFjZS52MSKXAQoTTGlzdEhvc3RKb2JzUmVxdWVzdBIwCgZzdGF0ZXMYASADKA4yIC50b3NoaS53b3Jrc3BhY2UudjEuSG9zdEpvYlN0YXRlEhIKCnJlcG9zaXRvcnkYAiABKAkSEwoLd29ya2xvYWRfaWQYAyABKAkSEQoJcGFnZV9zaXplGAQgASgFEhIKCnBhZ2VfdG9rZW4YBSABKAkiXwoUTGlzdEhvc3RKb2JzUmVzcG9uc2USLgoJaG9zdF9qb2JzGAEgAygLMhsudG9zaGkud29ya3NwYWNlLnYxLkhvc3RKb2ISFwoPbmV4dF9wYWdlX3Rva2VuGAIgASgJIh8KEUdldEhvc3RKb2JSZXF1ZXN0EgoKAmlkGAEgASgJIkMKEkdldEhvc3RKb2JSZXNwb25zZRItCghob3N0X2pvYhgBIAEoCzIbLnRvc2hpLndvcmtzcGFjZS52MS5Ib3N0Sm9iIiIKFENhbmNlbEhvc3RKb2JSZXF1ZXN0EgoKAmlkGAEgASgJIkYKFUNhbmNlbEhvc3RKb2JSZXNwb25zZRItCghob3N0X2pvYhgBIAEoCzIbLnRvc2hpLndvcmtzcGFjZS52MS5Ib3N0Sm9iIiYKGEdldEhvc3RKb2JGYWlsdXJlUmVxdWVzdBIKCgJpZBgBIAEoCSKpAgoZR2V0SG9zdEpvYkZhaWx1cmVSZXNwb25zZRINCgVjYXVzZRgBIAEoCRITCgtleHBsYW5hdGlvbhgCIAEoCRISCgpjb25jbHVzaW9uGAMgASgJEg8KB3ZlcmRpY3QYBCABKAkSFgoOdmVyZGljdF9yZWFzb24YBSABKAkSEgoKd2hhdF90b19kbxgGIAEoCRISCgpnaXRodWJfdXJsGAcgASgJEhUKDWRhc2hib2FyZF91cmwYCCABKAkSOgoHaGlzdG9yeRgJIAEoCzIpLnRvc2hpLndvcmtzcGFjZS52MS5Ib3N0Sm9iRmFpbHVyZUhpc3RvcnkSDQoFY2FjaGUYCiABKAkSEQoJdGllcl9saW5lGAsgASgJEg4KBmpvYl9pZBgMIAEoCSIoChpHZXRIb3N0Sm9iVGVsZW1ldHJ5UmVxdWVzdBIKCgJpZBgBIAEoCSLJAQobR2V0SG9zdEpvYlRlbGVtZXRyeVJlc3BvbnNlEgwKBHNpemUYASABKAkSDQoFdmNwdXMYAiABKAUSEgoKbWVtb3J5X21pYhgDIAEoAxI8CgdzdW1tYXJ5GAQgASgLMisudG9zaGkud29ya3NwYWNlLnYxLkhvc3RKb2JUZWxlbWV0cnlTdW1tYXJ5EjsKB3NhbXBsZXMYBSADKAsyKi50b3NoaS53b3Jrc3BhY2UudjEuSG9zdEpvYlRlbGVtZXRyeVNhbXBsZSIqChxHZXRIb3N0Sm9iRGVidWdBY2Nlc3NSZXF1ZXN0EgoKAmlkGAEgASgJIoYBCh1HZXRIb3N0Sm9iRGVidWdBY2Nlc3NSZXNwb25zZRIMCgR1c2VyGAEgASgJEhMKC3ByaXZhdGVfa2V5GAIgASgMEhIKCnJlbGF5X3BhdGgYAyABKAkSLgoKZXhwaXJlc19hdBgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAiJQoXU3RvcEhvc3RKb2JEZWJ1Z1JlcXVlc3QSCgoCaWQYASABKAkiSQoYU3RvcEhvc3RKb2JEZWJ1Z1Jlc3BvbnNlEi0KCGhvc3Rfam9iGAEgASgLMhsudG9zaGkud29ya3NwYWNlLnYxLkhvc3RKb2IiywoKB0hvc3RKb2ISCgoCaWQYASABKAkSEgoKcmVwb3NpdG9yeRgCIAEoCRIXCg93b3JrZmxvd19qb2JfaWQYAyABKAMSDgoGcnVuX2lkGAQgASgDEhcKD2luc3RhbGxhdGlvbl9pZBgFIAEoAxIOCgZsYWJlbHMYBiADKAkSCgoCb3MYByABKAkSDAoEc2l6ZRgIIAEoCRIvCgVzdGF0ZRgJIAEoDjIgLnRvc2hpLndvcmtzcGFjZS52MS5Ib3N0Sm9iU3RhdGUSDwoHaG9zdF9pZBgKIAEoCRITCgtpbnN0YW5jZV9pZBgLIAEoCRItCglxdWV1ZWRfYXQYDCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi8KC2Fzc2lnbmVkX2F0GA0gASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgpzdGFydGVkX2F0GA4gASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIvCgtmaW5pc2hlZF9hdBgPIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASEgoKY29uY2x1c2lvbhgQIAEoCRINCgVlcnJvchgRIAEoCRITCgtzdG9wX3JlYXNvbhgSIAEoCRI1ChFzdG9wX3JlcXVlc3RlZF9hdBgTIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASEwoLaG9sZF9yZWFzb24YFCABKAkSEAoIb3duX2hvc3QYFSABKAgSHwoXZGVidWdfcmVxdWVzdGVkX21pbnV0ZXMYFiABKAUSFQoNZGVidWdfbWludXRlcxgXIAEoBRISCgpkZWJ1Z19ub3RlGBggASgJEjQKEGRlYnVnX3N0YXJ0ZWRfYXQYGSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi8KC2RlYnVnX3VudGlsGBogASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBI+Cgl0ZWxlbWV0cnkYGyABKAsyKy50b3NoaS53b3Jrc3BhY2UudjEuSG9zdEpvYlRlbGVtZXRyeVN1bW1hcnkSGgoScnVubmVyX2V4aXRfcmVhc29uGBwgASgJEhAKCG92ZXJmbG93GB0gASgIEjgKFHJ1bm5lcl9yZXF1ZXN0X3NpbmNlGB4gASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIPCgdvdXRjb21lGB8gASgJEhEKCWhvc3Rfa2luZBggIAEoCRIbChNwcmV2aW91c19wb29sX2ltYWdlGCEgASgJEhgKEGJpbGxhYmxlX21pbnV0ZXMYIiABKAMSEgoKZ2l0aHViX3VybBgjIAEoCRIVCg13b3JrZmxvd19uYW1lGCQgASgJEi8KBWNhY2hlGCUgASgLMiAudG9zaGkud29ya3NwYWNlLnYxLkhvc3RKb2JDYWNoZRI0ChBydW5uZXJfZXhpdGVkX2F0GCYgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIZChFydW5uZXJfY29uY2x1c2lvbhgnIAEoCRIMCgR0aWVyGCggASgJEhgKEG1lbW9yeV9saW1pdF9taWIYKSABKAMSEQoJdGllcl9saW5lGCogASgJEi0KBGtpbmQYKyABKA4yHy50b3NoaS53b3Jrc3BhY2UudjEuSG9zdEpvYktpbmQSEwoLd29ya2xvYWRfaWQYLCABKAkSDwoHcHJvamVjdBgtIAEoCRITCgtlbnZpcm9ubWVudBguIAEoCSL2AQoXSG9zdEpvYlRlbGVtZXRyeVN1bW1hcnkSEgoKb29tX2tpbGxlZBgBIAEoCBIZChFjcHVfdGhyb3R0bGVkX3BjdBgCIAEoARIXCg9wZWFrX21lbW9yeV9taWIYAyABKAMSGwoTY3B1X3V0aWxpc2F0aW9uX3BjdBgEIAEoARIPCgdzYW1wbGVzGAUgASgFEhgKEG1lbW9yeV9saW1pdF9taWIYBiABKAMSDgoGY3B1X21zGAcgASgDEhIKCm9vbV9yZWFzb24YCCABKAkSDwoHdmVyZGljdBgJIAEoCRIWCg52ZXJkaWN0X3JlYXNvbhgKIAEoCSKfAQoMSG9zdEpvYkNhY2hlEg4KBmF0dGFjaBgBIAEoCRIXCg9iYXNlX2dlbmVyYXRpb24YAiABKAMSEgoKd3JpdGVfYmFjaxgDIAEoCRITCgtza2lwX3JlYXNvbhgEIAEoCRIYChBnZW5lcmF0aW9uX2J5dGVzGAUgASgDEhUKDXdyaXRlX2JhY2tfbXMYBiABKAMSDAoEbGluZRgHIAEoCSL2AgoWSG9zdEpvYlRlbGVtZXRyeVNhbXBsZRImCgJhdBgBIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASEQoJd2luZG93X21zGAIgASgFEg4KBmNwdV9tcxgDIAEoAxITCgtjcHVfd2FpdF9tcxgEIAEoAxIdChBndWVzdF9tZW1vcnlfbWliGAUgASgDSACIAQESFwoPaG9zdF9tZW1vcnlfbWliGAYgASgDEhcKD2Rpc2tfcmVhZF9ieXRlcxgHIAEoAxIYChBkaXNrX3dyaXRlX2J5dGVzGAggASgDEhkKDG5ldF9yeF9ieXRlcxgJIAEoA0gBiAEBEhkKDG5ldF90eF9ieXRlcxgKIAEoA0gCiAEBEhYKCW9vbV9raWxscxgLIAEoBUgDiAEBQhMKEV9ndWVzdF9tZW1vcnlfbWliQg8KDV9uZXRfcnhfYnl0ZXNCDwoNX25ldF90eF9ieXRlc0IMCgpfb29tX2tpbGxzIq0BChVIb3N0Sm9iRmFpbHVyZUhpc3RvcnkSDAoEZGF5cxgBIAEoBRIXCg9wYXNzZWRfb25fcmVydW4YAiABKAUSFAoMZmFpbGVkX2FnYWluGAMgASgFEgwKBHN0ZXAYBCABKAkSHAoUc3RlcF9wYXNzZWRfb25fcmVydW4YBSABKAUSGQoRc3RlcF9mYWlsZWRfYWdhaW4YBiABKAUSEAoIc2VudGVuY2UYByABKAkqsQIKDEhvc3RKb2JTdGF0ZRIeChpIT1NUX0pPQl9TVEFURV9VTlNQRUNJRklFRBAAEhkKFUhPU1RfSk9CX1NUQVRFX1FVRVVFRBABEhsKF0hPU1RfSk9CX1NUQVRFX0FTU0lHTkVEEAISGwoXSE9TVF9KT0JfU1RBVEVfU1RBUlRJTkcQAxIaChZIT1NUX0pPQl9TVEFURV9SVU5OSU5HEAQSHAoYSE9TVF9KT0JfU1RBVEVfQ09NUExFVEVEEAUSGQoVSE9TVF9KT0JfU1RBVEVfRkFJTEVEEAYSHAoYSE9TVF9KT0JfU1RBVEVfQ0FOQ0VMTEVEEAcSGwoXSE9TVF9KT0JfU1RBVEVfU1RPUFBJTkcQCBIcChhIT1NUX0pPQl9TVEFURV9ERUJVR0dJTkcQCSp5CgtIb3N0Sm9iS2luZBIdChlIT1NUX0pPQl9LSU5EX1VOU1BFQ0lGSUVEEAASFQoRSE9TVF9KT0JfS0lORF9KT0IQARIZChVIT1NUX0pPQl9LSU5EX1NBTkRCT1gQAhIZChVIT1NUX0pPQl9LSU5EX1NFUlZJQ0UQAzKNBgoOSG9zdEpvYlNlcnZpY2USYQoMTGlzdEhvc3RKb2JzEicudG9zaGkud29ya3NwYWNlLnYxLkxpc3RIb3N0Sm9ic1JlcXVlc3QaKC50b3NoaS53b3Jrc3BhY2UudjEuTGlzdEhvc3RKb2JzUmVzcG9uc2USWwoKR2V0SG9zdEpvYhIlLnRvc2hpLndvcmtzcGFjZS52MS5HZXRIb3N0Sm9iUmVxdWVzdBomLnRvc2hpLndvcmtzcGFjZS52MS5HZXRIb3N0Sm9iUmVzcG9uc2USZAoNQ2FuY2VsSG9zdEpvYhIoLnRvc2hpLndvcmtzcGFjZS52MS5DYW5jZWxIb3N0Sm9iUmVxdWVzdBopLnRvc2hpLndvcmtzcGFjZS52MS5DYW5jZWxIb3N0Sm9iUmVzcG9uc2UScAoRR2V0SG9zdEpvYkZhaWx1cmUSLC50b3NoaS53b3Jrc3BhY2UudjEuR2V0SG9zdEpvYkZhaWx1cmVSZXF1ZXN0Gi0udG9zaGkud29ya3NwYWNlLnYxLkdldEhvc3RKb2JGYWlsdXJlUmVzcG9uc2USdgoTR2V0SG9zdEpvYlRlbGVtZXRyeRIuLnRvc2hpLndvcmtzcGFjZS52MS5HZXRIb3N0Sm9iVGVsZW1ldHJ5UmVxdWVzdBovLnRvc2hpLndvcmtzcGFjZS52MS5HZXRIb3N0Sm9iVGVsZW1ldHJ5UmVzcG9uc2USfAoVR2V0SG9zdEpvYkRlYnVnQWNjZXNzEjAudG9zaGkud29ya3NwYWNlLnYxLkdldEhvc3RKb2JEZWJ1Z0FjY2Vzc1JlcXVlc3QaMS50b3NoaS53b3Jrc3BhY2UudjEuR2V0SG9zdEpvYkRlYnVnQWNjZXNzUmVzcG9uc2USbQoQU3RvcEhvc3RKb2JEZWJ1ZxIrLnRvc2hpLndvcmtzcGFjZS52MS5TdG9wSG9zdEpvYkRlYnVnUmVxdWVzdBosLnRvc2hpLndvcmtzcGFjZS52MS5TdG9wSG9zdEpvYkRlYnVnUmVzcG9uc2VCLVorZ2l0aHViLmNvbS90b3NoaWNsb3VkL3Rvc2hpLWFwaS93b3Jrc3BhY2V2MWIGcHJvdG8z", [file_google_protobuf_timestamp]);
10
+ export const file_toshi_workspace_v1_hostjobs = /*@__PURE__*/ fileDesc("CiF0b3NoaS93b3Jrc3BhY2UvdjEvaG9zdGpvYnMucHJvdG8SEnRvc2hpLndvcmtzcGFjZS52MSKXAQoTTGlzdEhvc3RKb2JzUmVxdWVzdBIwCgZzdGF0ZXMYASADKA4yIC50b3NoaS53b3Jrc3BhY2UudjEuSG9zdEpvYlN0YXRlEhIKCnJlcG9zaXRvcnkYAiABKAkSEwoLd29ya2xvYWRfaWQYAyABKAkSEQoJcGFnZV9zaXplGAQgASgFEhIKCnBhZ2VfdG9rZW4YBSABKAkiXwoUTGlzdEhvc3RKb2JzUmVzcG9uc2USLgoJaG9zdF9qb2JzGAEgAygLMhsudG9zaGkud29ya3NwYWNlLnYxLkhvc3RKb2ISFwoPbmV4dF9wYWdlX3Rva2VuGAIgASgJIh8KEUdldEhvc3RKb2JSZXF1ZXN0EgoKAmlkGAEgASgJInkKEkdldEhvc3RKb2JSZXNwb25zZRItCghob3N0X2pvYhgBIAEoCzIbLnRvc2hpLndvcmtzcGFjZS52MS5Ib3N0Sm9iEjQKCGF0dGVtcHRzGAIgAygLMiIudG9zaGkud29ya3NwYWNlLnYxLkhvc3RKb2JBdHRlbXB0IiIKFENhbmNlbEhvc3RKb2JSZXF1ZXN0EgoKAmlkGAEgASgJIkYKFUNhbmNlbEhvc3RKb2JSZXNwb25zZRItCghob3N0X2pvYhgBIAEoCzIbLnRvc2hpLndvcmtzcGFjZS52MS5Ib3N0Sm9iIiYKGEdldEhvc3RKb2JGYWlsdXJlUmVxdWVzdBIKCgJpZBgBIAEoCSKpAgoZR2V0SG9zdEpvYkZhaWx1cmVSZXNwb25zZRINCgVjYXVzZRgBIAEoCRITCgtleHBsYW5hdGlvbhgCIAEoCRISCgpjb25jbHVzaW9uGAMgASgJEg8KB3ZlcmRpY3QYBCABKAkSFgoOdmVyZGljdF9yZWFzb24YBSABKAkSEgoKd2hhdF90b19kbxgGIAEoCRISCgpnaXRodWJfdXJsGAcgASgJEhUKDWRhc2hib2FyZF91cmwYCCABKAkSOgoHaGlzdG9yeRgJIAEoCzIpLnRvc2hpLndvcmtzcGFjZS52MS5Ib3N0Sm9iRmFpbHVyZUhpc3RvcnkSDQoFY2FjaGUYCiABKAkSEQoJdGllcl9saW5lGAsgASgJEg4KBmpvYl9pZBgMIAEoCSIoChpHZXRIb3N0Sm9iVGVsZW1ldHJ5UmVxdWVzdBIKCgJpZBgBIAEoCSLJAQobR2V0SG9zdEpvYlRlbGVtZXRyeVJlc3BvbnNlEgwKBHNpemUYASABKAkSDQoFdmNwdXMYAiABKAUSEgoKbWVtb3J5X21pYhgDIAEoAxI8CgdzdW1tYXJ5GAQgASgLMisudG9zaGkud29ya3NwYWNlLnYxLkhvc3RKb2JUZWxlbWV0cnlTdW1tYXJ5EjsKB3NhbXBsZXMYBSADKAsyKi50b3NoaS53b3Jrc3BhY2UudjEuSG9zdEpvYlRlbGVtZXRyeVNhbXBsZSIqChxHZXRIb3N0Sm9iRGVidWdBY2Nlc3NSZXF1ZXN0EgoKAmlkGAEgASgJIoYBCh1HZXRIb3N0Sm9iRGVidWdBY2Nlc3NSZXNwb25zZRIMCgR1c2VyGAEgASgJEhMKC3ByaXZhdGVfa2V5GAIgASgMEhIKCnJlbGF5X3BhdGgYAyABKAkSLgoKZXhwaXJlc19hdBgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAiJQoXU3RvcEhvc3RKb2JEZWJ1Z1JlcXVlc3QSCgoCaWQYASABKAkiSQoYU3RvcEhvc3RKb2JEZWJ1Z1Jlc3BvbnNlEi0KCGhvc3Rfam9iGAEgASgLMhsudG9zaGkud29ya3NwYWNlLnYxLkhvc3RKb2Ii3gsKB0hvc3RKb2ISCgoCaWQYASABKAkSEgoKcmVwb3NpdG9yeRgCIAEoCRIXCg93b3JrZmxvd19qb2JfaWQYAyABKAMSDgoGcnVuX2lkGAQgASgDEhcKD2luc3RhbGxhdGlvbl9pZBgFIAEoAxIOCgZsYWJlbHMYBiADKAkSCgoCb3MYByABKAkSDAoEc2l6ZRgIIAEoCRIvCgVzdGF0ZRgJIAEoDjIgLnRvc2hpLndvcmtzcGFjZS52MS5Ib3N0Sm9iU3RhdGUSDwoHaG9zdF9pZBgKIAEoCRITCgtpbnN0YW5jZV9pZBgLIAEoCRItCglxdWV1ZWRfYXQYDCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi8KC2Fzc2lnbmVkX2F0GA0gASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgpzdGFydGVkX2F0GA4gASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIvCgtmaW5pc2hlZF9hdBgPIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASEgoKY29uY2x1c2lvbhgQIAEoCRINCgVlcnJvchgRIAEoCRITCgtzdG9wX3JlYXNvbhgSIAEoCRI1ChFzdG9wX3JlcXVlc3RlZF9hdBgTIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASEwoLaG9sZF9yZWFzb24YFCABKAkSEAoIb3duX2hvc3QYFSABKAgSHwoXZGVidWdfcmVxdWVzdGVkX21pbnV0ZXMYFiABKAUSFQoNZGVidWdfbWludXRlcxgXIAEoBRISCgpkZWJ1Z19ub3RlGBggASgJEjQKEGRlYnVnX3N0YXJ0ZWRfYXQYGSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi8KC2RlYnVnX3VudGlsGBogASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBI+Cgl0ZWxlbWV0cnkYGyABKAsyKy50b3NoaS53b3Jrc3BhY2UudjEuSG9zdEpvYlRlbGVtZXRyeVN1bW1hcnkSGgoScnVubmVyX2V4aXRfcmVhc29uGBwgASgJEhAKCG92ZXJmbG93GB0gASgIEjgKFHJ1bm5lcl9yZXF1ZXN0X3NpbmNlGB4gASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIPCgdvdXRjb21lGB8gASgJEhEKCWhvc3Rfa2luZBggIAEoCRIbChNwcmV2aW91c19wb29sX2ltYWdlGCEgASgJEhgKEGJpbGxhYmxlX21pbnV0ZXMYIiABKAMSEgoKZ2l0aHViX3VybBgjIAEoCRIVCg13b3JrZmxvd19uYW1lGCQgASgJEi8KBWNhY2hlGCUgASgLMiAudG9zaGkud29ya3NwYWNlLnYxLkhvc3RKb2JDYWNoZRI0ChBydW5uZXJfZXhpdGVkX2F0GCYgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIZChFydW5uZXJfY29uY2x1c2lvbhgnIAEoCRIMCgR0aWVyGCggASgJEhgKEG1lbW9yeV9saW1pdF9taWIYKSABKAMSEQoJdGllcl9saW5lGCogASgJEi0KBGtpbmQYKyABKA4yHy50b3NoaS53b3Jrc3BhY2UudjEuSG9zdEpvYktpbmQSEwoLd29ya2xvYWRfaWQYLCABKAkSDwoHcHJvamVjdBgtIAEoCRITCgtlbnZpcm9ubWVudBguIAEoCRIQCghwcm92aWRlchgvIAEoCRIOCgZzdGF0dXMYMCABKAkSEQoJcnVubmVyX2lkGDEgASgJEhMKC3J1bm5lcl9uYW1lGDIgASgJEg8KB2F0dGVtcHQYMyABKAUSEwoLcnVuX2F0dGVtcHQYNCABKAUSIQoZc2NyZWVuX3VuYXZhaWxhYmxlX3JlYXNvbhg1IAEoCSK0AgoOSG9zdEpvYkF0dGVtcHQSDwoHYXR0ZW1wdBgBIAEoBRIRCglydW5uZXJfaWQYAiABKAkSEwoLcnVubmVyX25hbWUYAyABKAkSDwoHaG9zdF9pZBgEIAEoCRITCgtpbnN0YW5jZV9pZBgFIAEoCRIQCghwcm92aWRlchgGIAEoCRIvCgthc3NpZ25lZF9hdBgHIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLgoKc3RhcnRlZF9hdBgIIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLwoLZmluaXNoZWRfYXQYCSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhIKCmNvbmNsdXNpb24YCiABKAkSCwoDZW5kGAsgASgJIvYBChdIb3N0Sm9iVGVsZW1ldHJ5U3VtbWFyeRISCgpvb21fa2lsbGVkGAEgASgIEhkKEWNwdV90aHJvdHRsZWRfcGN0GAIgASgBEhcKD3BlYWtfbWVtb3J5X21pYhgDIAEoAxIbChNjcHVfdXRpbGlzYXRpb25fcGN0GAQgASgBEg8KB3NhbXBsZXMYBSABKAUSGAoQbWVtb3J5X2xpbWl0X21pYhgGIAEoAxIOCgZjcHVfbXMYByABKAMSEgoKb29tX3JlYXNvbhgIIAEoCRIPCgd2ZXJkaWN0GAkgASgJEhYKDnZlcmRpY3RfcmVhc29uGAogASgJIp8BCgxIb3N0Sm9iQ2FjaGUSDgoGYXR0YWNoGAEgASgJEhcKD2Jhc2VfZ2VuZXJhdGlvbhgCIAEoAxISCgp3cml0ZV9iYWNrGAMgASgJEhMKC3NraXBfcmVhc29uGAQgASgJEhgKEGdlbmVyYXRpb25fYnl0ZXMYBSABKAMSFQoNd3JpdGVfYmFja19tcxgGIAEoAxIMCgRsaW5lGAcgASgJIvYCChZIb3N0Sm9iVGVsZW1ldHJ5U2FtcGxlEiYKAmF0GAEgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIRCgl3aW5kb3dfbXMYAiABKAUSDgoGY3B1X21zGAMgASgDEhMKC2NwdV93YWl0X21zGAQgASgDEh0KEGd1ZXN0X21lbW9yeV9taWIYBSABKANIAIgBARIXCg9ob3N0X21lbW9yeV9taWIYBiABKAMSFwoPZGlza19yZWFkX2J5dGVzGAcgASgDEhgKEGRpc2tfd3JpdGVfYnl0ZXMYCCABKAMSGQoMbmV0X3J4X2J5dGVzGAkgASgDSAGIAQESGQoMbmV0X3R4X2J5dGVzGAogASgDSAKIAQESFgoJb29tX2tpbGxzGAsgASgFSAOIAQFCEwoRX2d1ZXN0X21lbW9yeV9taWJCDwoNX25ldF9yeF9ieXRlc0IPCg1fbmV0X3R4X2J5dGVzQgwKCl9vb21fa2lsbHMirQEKFUhvc3RKb2JGYWlsdXJlSGlzdG9yeRIMCgRkYXlzGAEgASgFEhcKD3Bhc3NlZF9vbl9yZXJ1bhgCIAEoBRIUCgxmYWlsZWRfYWdhaW4YAyABKAUSDAoEc3RlcBgEIAEoCRIcChRzdGVwX3Bhc3NlZF9vbl9yZXJ1bhgFIAEoBRIZChFzdGVwX2ZhaWxlZF9hZ2FpbhgGIAEoBRIQCghzZW50ZW5jZRgHIAEoCSqxAgoMSG9zdEpvYlN0YXRlEh4KGkhPU1RfSk9CX1NUQVRFX1VOU1BFQ0lGSUVEEAASGQoVSE9TVF9KT0JfU1RBVEVfUVVFVUVEEAESGwoXSE9TVF9KT0JfU1RBVEVfQVNTSUdORUQQAhIbChdIT1NUX0pPQl9TVEFURV9TVEFSVElORxADEhoKFkhPU1RfSk9CX1NUQVRFX1JVTk5JTkcQBBIcChhIT1NUX0pPQl9TVEFURV9DT01QTEVURUQQBRIZChVIT1NUX0pPQl9TVEFURV9GQUlMRUQQBhIcChhIT1NUX0pPQl9TVEFURV9DQU5DRUxMRUQQBxIbChdIT1NUX0pPQl9TVEFURV9TVE9QUElORxAIEhwKGEhPU1RfSk9CX1NUQVRFX0RFQlVHR0lORxAJKnkKC0hvc3RKb2JLaW5kEh0KGUhPU1RfSk9CX0tJTkRfVU5TUEVDSUZJRUQQABIVChFIT1NUX0pPQl9LSU5EX0pPQhABEhkKFUhPU1RfSk9CX0tJTkRfU0FOREJPWBACEhkKFUhPU1RfSk9CX0tJTkRfU0VSVklDRRADMsQHCg5Ib3N0Sm9iU2VydmljZRJxCgxMaXN0SG9zdEpvYnMSJy50b3NoaS53b3Jrc3BhY2UudjEuTGlzdEhvc3RKb2JzUmVxdWVzdBooLnRvc2hpLndvcmtzcGFjZS52MS5MaXN0SG9zdEpvYnNSZXNwb25zZSIOwvMYCmhvc3RzLnJlYWQSawoKR2V0SG9zdEpvYhIlLnRvc2hpLndvcmtzcGFjZS52MS5HZXRIb3N0Sm9iUmVxdWVzdBomLnRvc2hpLndvcmtzcGFjZS52MS5HZXRIb3N0Sm9iUmVzcG9uc2UiDsLzGApob3N0cy5yZWFkEnUKDUNhbmNlbEhvc3RKb2ISKC50b3NoaS53b3Jrc3BhY2UudjEuQ2FuY2VsSG9zdEpvYlJlcXVlc3QaKS50b3NoaS53b3Jrc3BhY2UudjEuQ2FuY2VsSG9zdEpvYlJlc3BvbnNlIg/C8xgLaG9zdHMud3JpdGUSgAEKEUdldEhvc3RKb2JGYWlsdXJlEiwudG9zaGkud29ya3NwYWNlLnYxLkdldEhvc3RKb2JGYWlsdXJlUmVxdWVzdBotLnRvc2hpLndvcmtzcGFjZS52MS5HZXRIb3N0Sm9iRmFpbHVyZVJlc3BvbnNlIg7C8xgKaG9zdHMucmVhZBKGAQoTR2V0SG9zdEpvYlRlbGVtZXRyeRIuLnRvc2hpLndvcmtzcGFjZS52MS5HZXRIb3N0Sm9iVGVsZW1ldHJ5UmVxdWVzdBovLnRvc2hpLndvcmtzcGFjZS52MS5HZXRIb3N0Sm9iVGVsZW1ldHJ5UmVzcG9uc2UiDsLzGApob3N0cy5yZWFkErEBChVHZXRIb3N0Sm9iRGVidWdBY2Nlc3MSMC50b3NoaS53b3Jrc3BhY2UudjEuR2V0SG9zdEpvYkRlYnVnQWNjZXNzUmVxdWVzdBoxLnRvc2hpLndvcmtzcGFjZS52MS5HZXRIb3N0Sm9iRGVidWdBY2Nlc3NSZXNwb25zZSIzwvMYDWRlYnVnLmNvbm5lY3TS8xgeChxob3N0X2pvYi5kZWJ1Z19hY2Nlc3NfaXNzdWVkEpoBChBTdG9wSG9zdEpvYkRlYnVnEisudG9zaGkud29ya3NwYWNlLnYxLlN0b3BIb3N0Sm9iRGVidWdSZXF1ZXN0GiwudG9zaGkud29ya3NwYWNlLnYxLlN0b3BIb3N0Sm9iRGVidWdSZXNwb25zZSIrwvMYC2RlYnVnLndyaXRl0vMYGAoWaG9zdF9qb2IuZGVidWdfc3RvcHBlZEIiWiBnby50b3NoaWNsb3VkLmlvL2FwaS93b3Jrc3BhY2V2MWIGcHJvdG8z", [file_google_protobuf_timestamp, file_toshi_permission]);
10
11
  /**
11
12
  * Describes the message toshi.workspace.v1.ListHostJobsRequest.
12
13
  * Use `create(ListHostJobsRequestSchema)` to create a new message.
@@ -82,26 +83,31 @@ export const StopHostJobDebugResponseSchema = /*@__PURE__*/ messageDesc(file_tos
82
83
  * Use `create(HostJobSchema)` to create a new message.
83
84
  */
84
85
  export const HostJobSchema = /*@__PURE__*/ messageDesc(file_toshi_workspace_v1_hostjobs, 14);
86
+ /**
87
+ * Describes the message toshi.workspace.v1.HostJobAttempt.
88
+ * Use `create(HostJobAttemptSchema)` to create a new message.
89
+ */
90
+ export const HostJobAttemptSchema = /*@__PURE__*/ messageDesc(file_toshi_workspace_v1_hostjobs, 15);
85
91
  /**
86
92
  * Describes the message toshi.workspace.v1.HostJobTelemetrySummary.
87
93
  * Use `create(HostJobTelemetrySummarySchema)` to create a new message.
88
94
  */
89
- export const HostJobTelemetrySummarySchema = /*@__PURE__*/ messageDesc(file_toshi_workspace_v1_hostjobs, 15);
95
+ export const HostJobTelemetrySummarySchema = /*@__PURE__*/ messageDesc(file_toshi_workspace_v1_hostjobs, 16);
90
96
  /**
91
97
  * Describes the message toshi.workspace.v1.HostJobCache.
92
98
  * Use `create(HostJobCacheSchema)` to create a new message.
93
99
  */
94
- export const HostJobCacheSchema = /*@__PURE__*/ messageDesc(file_toshi_workspace_v1_hostjobs, 16);
100
+ export const HostJobCacheSchema = /*@__PURE__*/ messageDesc(file_toshi_workspace_v1_hostjobs, 17);
95
101
  /**
96
102
  * Describes the message toshi.workspace.v1.HostJobTelemetrySample.
97
103
  * Use `create(HostJobTelemetrySampleSchema)` to create a new message.
98
104
  */
99
- export const HostJobTelemetrySampleSchema = /*@__PURE__*/ messageDesc(file_toshi_workspace_v1_hostjobs, 17);
105
+ export const HostJobTelemetrySampleSchema = /*@__PURE__*/ messageDesc(file_toshi_workspace_v1_hostjobs, 18);
100
106
  /**
101
107
  * Describes the message toshi.workspace.v1.HostJobFailureHistory.
102
108
  * Use `create(HostJobFailureHistorySchema)` to create a new message.
103
109
  */
104
- export const HostJobFailureHistorySchema = /*@__PURE__*/ messageDesc(file_toshi_workspace_v1_hostjobs, 18);
110
+ export const HostJobFailureHistorySchema = /*@__PURE__*/ messageDesc(file_toshi_workspace_v1_hostjobs, 19);
105
111
  /**
106
112
  * HostJobState is where a host job is in its life cycle.
107
113
  *