@toshicloud/sdk 0.5.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 +82 -40
  2. package/dist/client.d.ts +33 -2
  3. package/dist/client.js +28 -3
  4. package/dist/errors.d.ts +74 -22
  5. package/dist/errors.js +99 -27
  6. package/dist/gen/toshi/permission_pb.d.ts +207 -2
  7. package/dist/gen/toshi/permission_pb.js +54 -2
  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 +9 -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 +11 -1
  14. package/dist/gen/toshi/workspace/v1/channels_pb.d.ts +1194 -21
  15. package/dist/gen/toshi/workspace/v1/channels_pb.js +185 -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 +291 -43
  19. package/dist/gen/toshi/workspace/v1/discovery_pb.js +79 -30
  20. package/dist/gen/toshi/workspace/v1/display_pb.d.ts +198 -15
  21. package/dist/gen/toshi/workspace/v1/display_pb.js +52 -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 +1 -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 +10 -5
  30. package/dist/gen/toshi/workspace/v1/hosts_pb.d.ts +196 -7
  31. package/dist/gen/toshi/workspace/v1/hosts_pb.js +12 -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 +99 -296
  35. package/dist/gen/toshi/workspace/v1/products_pb.js +7 -53
  36. package/dist/gen/toshi/workspace/v1/projects_pb.d.ts +1474 -99
  37. package/dist/gen/toshi/workspace/v1/projects_pb.js +150 -33
  38. package/dist/gen/toshi/workspace/v1/recordings_pb.d.ts +181 -14
  39. package/dist/gen/toshi/workspace/v1/recordings_pb.js +54 -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 +42 -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 +1 -1
  46. package/dist/gen/toshi/workspace/v1/tokens_pb.d.ts +434 -5
  47. package/dist/gen/toshi/workspace/v1/tokens_pb.js +65 -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 +169 -11
  52. package/dist/gen/toshi/workspace/v1/webhook_pb.d.ts +66 -8
  53. package/dist/gen/toshi/workspace/v1/webhook_pb.js +4 -4
  54. package/dist/gen/toshi/workspace/v1/workloads_pb.d.ts +2043 -54
  55. package/dist/gen/toshi/workspace/v1/workloads_pb.js +204 -54
  56. package/dist/gen/toshi/workspace/v1/workspace_pb.d.ts +6290 -937
  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 +191 -74
  60. package/dist/index.d.ts +8 -1
  61. package/dist/index.js +8 -1
  62. package/dist/interceptors.d.ts +6 -2
  63. package/dist/interceptors.js +13 -8
  64. package/dist/retry.d.ts +18 -0
  65. package/dist/retry.js +225 -23
  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
@@ -1,5 +1,5 @@
1
1
  import type { GenEnum, GenFile, GenMessage, GenService } from "@bufbuild/protobuf/codegenv2";
2
- import type { Timestamp, TimestampJson } from "@bufbuild/protobuf/wkt";
2
+ import type { FieldMask, FieldMaskJson, Timestamp, TimestampJson } from "@bufbuild/protobuf/wkt";
3
3
  import type { Message } from "@bufbuild/protobuf";
4
4
  /**
5
5
  * Describes the file toshi/workspace/v1/secrets.proto.
@@ -29,6 +29,43 @@ export type SecretSet = Message<"toshi.workspace.v1.SecretSet"> & {
29
29
  * @generated from field: google.protobuf.Timestamp created_at = 4;
30
30
  */
31
31
  createdAt?: Timestamp | undefined;
32
+ /**
33
+ * Who manages this object: "manifest" when the project manifest declares
34
+ * it, empty when nothing does. A manifest apply sets managed_by,
35
+ * manifest_digest, manifest_origin and managed_fields together.
36
+ *
37
+ * @generated from field: string managed_by = 5;
38
+ */
39
+ managedBy: string;
40
+ /**
41
+ * The SHA-256 of the manifest file that last set this object, as 64
42
+ * lowercase hex characters. Empty when managed_by is empty.
43
+ *
44
+ * @generated from field: string manifest_digest = 6;
45
+ */
46
+ manifestDigest: string;
47
+ /**
48
+ * The fields of this object the manifest declares, as update mask paths.
49
+ * Empty when managed_by is empty.
50
+ *
51
+ * @generated from field: repeated string managed_fields = 7;
52
+ */
53
+ managedFields: string[];
54
+ /**
55
+ * How the manifest came to manage this object: "created" when a manifest
56
+ * apply created it, "adopted" when an apply took over an object that
57
+ * already existed. Empty when managed_by is empty.
58
+ *
59
+ * @generated from field: string manifest_origin = 8;
60
+ */
61
+ manifestOrigin: string;
62
+ /**
63
+ * The names of the set's keys, sorted; never a value. A person's own
64
+ * keys are not listed.
65
+ *
66
+ * @generated from field: repeated string keys = 9;
67
+ */
68
+ keys: string[];
32
69
  };
33
70
  /**
34
71
  * SecretSet is a project's set: an environment's, or the shared one.
@@ -54,6 +91,43 @@ export type SecretSetJson = {
54
91
  * @generated from field: google.protobuf.Timestamp created_at = 4;
55
92
  */
56
93
  createdAt?: TimestampJson;
94
+ /**
95
+ * Who manages this object: "manifest" when the project manifest declares
96
+ * it, empty when nothing does. A manifest apply sets managed_by,
97
+ * manifest_digest, manifest_origin and managed_fields together.
98
+ *
99
+ * @generated from field: string managed_by = 5;
100
+ */
101
+ managedBy?: string;
102
+ /**
103
+ * The SHA-256 of the manifest file that last set this object, as 64
104
+ * lowercase hex characters. Empty when managed_by is empty.
105
+ *
106
+ * @generated from field: string manifest_digest = 6;
107
+ */
108
+ manifestDigest?: string;
109
+ /**
110
+ * The fields of this object the manifest declares, as update mask paths.
111
+ * Empty when managed_by is empty.
112
+ *
113
+ * @generated from field: repeated string managed_fields = 7;
114
+ */
115
+ managedFields?: string[];
116
+ /**
117
+ * How the manifest came to manage this object: "created" when a manifest
118
+ * apply created it, "adopted" when an apply took over an object that
119
+ * already existed. Empty when managed_by is empty.
120
+ *
121
+ * @generated from field: string manifest_origin = 8;
122
+ */
123
+ manifestOrigin?: string;
124
+ /**
125
+ * The names of the set's keys, sorted; never a value. A person's own
126
+ * keys are not listed.
127
+ *
128
+ * @generated from field: repeated string keys = 9;
129
+ */
130
+ keys?: string[];
57
131
  };
58
132
  /**
59
133
  * Describes the message toshi.workspace.v1.SecretSet.
@@ -88,6 +162,26 @@ export type Secret = Message<"toshi.workspace.v1.Secret"> & {
88
162
  * @generated from field: google.protobuf.Timestamp updated_at = 4;
89
163
  */
90
164
  updatedAt?: Timestamp | undefined;
165
+ /**
166
+ * The user id of the person whose own key it is; empty for a key of the
167
+ * set.
168
+ *
169
+ * @generated from field: string owner = 5;
170
+ */
171
+ owner: string;
172
+ /**
173
+ * The key is the caller's own.
174
+ *
175
+ * @generated from field: bool mine = 6;
176
+ */
177
+ mine: boolean;
178
+ /**
179
+ * The key's owner holds no role in the workspace any more: no workload
180
+ * receives it, and it stays until it is deleted.
181
+ *
182
+ * @generated from field: bool owner_left = 7;
183
+ */
184
+ ownerLeft: boolean;
91
185
  };
92
186
  /**
93
187
  * Secret is a key as anyone may see it: never its value.
@@ -115,6 +209,26 @@ export type SecretJson = {
115
209
  * @generated from field: google.protobuf.Timestamp updated_at = 4;
116
210
  */
117
211
  updatedAt?: TimestampJson;
212
+ /**
213
+ * The user id of the person whose own key it is; empty for a key of the
214
+ * set.
215
+ *
216
+ * @generated from field: string owner = 5;
217
+ */
218
+ owner?: string;
219
+ /**
220
+ * The key is the caller's own.
221
+ *
222
+ * @generated from field: bool mine = 6;
223
+ */
224
+ mine?: boolean;
225
+ /**
226
+ * The key's owner holds no role in the workspace any more: no workload
227
+ * receives it, and it stays until it is deleted.
228
+ *
229
+ * @generated from field: bool owner_left = 7;
230
+ */
231
+ ownerLeft?: boolean;
118
232
  };
119
233
  /**
120
234
  * Describes the message toshi.workspace.v1.Secret.
@@ -225,6 +339,10 @@ export type CreateSecretSetRequest = Message<"toshi.workspace.v1.CreateSecretSet
225
339
  * @generated from field: bool shared = 3;
226
340
  */
227
341
  shared: boolean;
342
+ /**
343
+ * @generated from field: string request_key = 4;
344
+ */
345
+ requestKey: string;
228
346
  };
229
347
  /**
230
348
  * @generated from message toshi.workspace.v1.CreateSecretSetRequest
@@ -242,6 +360,10 @@ export type CreateSecretSetRequestJson = {
242
360
  * @generated from field: bool shared = 3;
243
361
  */
244
362
  shared?: boolean;
363
+ /**
364
+ * @generated from field: string request_key = 4;
365
+ */
366
+ requestKey?: string;
245
367
  };
246
368
  /**
247
369
  * Describes the message toshi.workspace.v1.CreateSecretSetRequest.
@@ -417,6 +539,88 @@ export type DeleteSecretSetResponseJson = {};
417
539
  export declare const DeleteSecretSetResponseSchema: GenMessage<DeleteSecretSetResponse, {
418
540
  jsonType: DeleteSecretSetResponseJson;
419
541
  }>;
542
+ /**
543
+ * @generated from message toshi.workspace.v1.UpdateSecretSetRequest
544
+ */
545
+ export type UpdateSecretSetRequest = Message<"toshi.workspace.v1.UpdateSecretSetRequest"> & {
546
+ /**
547
+ * project, environment and shared name the set, as in
548
+ * DeleteSecretSetRequest; the fields update_mask names carry the new
549
+ * values.
550
+ *
551
+ * @generated from field: toshi.workspace.v1.SecretSet set = 1;
552
+ */
553
+ set?: SecretSet | undefined;
554
+ /**
555
+ * keys, or the four paths of the management mark: managed_by,
556
+ * manifest_digest, manifest_origin and managed_fields set it and go
557
+ * together: all four or none, and on their own; managed_by "manifest"
558
+ * needs the digest, an origin and at least one field path, and an empty
559
+ * managed_by clears all four. An unset mask never sets the mark.
560
+ *
561
+ * @generated from field: google.protobuf.FieldMask update_mask = 2;
562
+ */
563
+ updateMask?: FieldMask | undefined;
564
+ };
565
+ /**
566
+ * @generated from message toshi.workspace.v1.UpdateSecretSetRequest
567
+ */
568
+ export type UpdateSecretSetRequestJson = {
569
+ /**
570
+ * project, environment and shared name the set, as in
571
+ * DeleteSecretSetRequest; the fields update_mask names carry the new
572
+ * values.
573
+ *
574
+ * @generated from field: toshi.workspace.v1.SecretSet set = 1;
575
+ */
576
+ set?: SecretSetJson;
577
+ /**
578
+ * keys, or the four paths of the management mark: managed_by,
579
+ * manifest_digest, manifest_origin and managed_fields set it and go
580
+ * together: all four or none, and on their own; managed_by "manifest"
581
+ * needs the digest, an origin and at least one field path, and an empty
582
+ * managed_by clears all four. An unset mask never sets the mark.
583
+ *
584
+ * @generated from field: google.protobuf.FieldMask update_mask = 2;
585
+ */
586
+ updateMask?: FieldMaskJson;
587
+ };
588
+ /**
589
+ * Describes the message toshi.workspace.v1.UpdateSecretSetRequest.
590
+ * Use `create(UpdateSecretSetRequestSchema)` to create a new message.
591
+ */
592
+ export declare const UpdateSecretSetRequestSchema: GenMessage<UpdateSecretSetRequest, {
593
+ jsonType: UpdateSecretSetRequestJson;
594
+ }>;
595
+ /**
596
+ * @generated from message toshi.workspace.v1.UpdateSecretSetResponse
597
+ */
598
+ export type UpdateSecretSetResponse = Message<"toshi.workspace.v1.UpdateSecretSetResponse"> & {
599
+ /**
600
+ * The set as stored.
601
+ *
602
+ * @generated from field: toshi.workspace.v1.SecretSet set = 1;
603
+ */
604
+ set?: SecretSet | undefined;
605
+ };
606
+ /**
607
+ * @generated from message toshi.workspace.v1.UpdateSecretSetResponse
608
+ */
609
+ export type UpdateSecretSetResponseJson = {
610
+ /**
611
+ * The set as stored.
612
+ *
613
+ * @generated from field: toshi.workspace.v1.SecretSet set = 1;
614
+ */
615
+ set?: SecretSetJson;
616
+ };
617
+ /**
618
+ * Describes the message toshi.workspace.v1.UpdateSecretSetResponse.
619
+ * Use `create(UpdateSecretSetResponseSchema)` to create a new message.
620
+ */
621
+ export declare const UpdateSecretSetResponseSchema: GenMessage<UpdateSecretSetResponse, {
622
+ jsonType: UpdateSecretSetResponseJson;
623
+ }>;
420
624
  /**
421
625
  * @generated from message toshi.workspace.v1.PutSecretRequest
422
626
  */
@@ -444,6 +648,12 @@ export type PutSecretRequest = Message<"toshi.workspace.v1.PutSecretRequest"> &
444
648
  * @generated from field: bytes value = 5;
445
649
  */
446
650
  value: Uint8Array;
651
+ /**
652
+ * The key is the caller's own.
653
+ *
654
+ * @generated from field: bool own = 6;
655
+ */
656
+ own: boolean;
447
657
  };
448
658
  /**
449
659
  * @generated from message toshi.workspace.v1.PutSecretRequest
@@ -472,6 +682,12 @@ export type PutSecretRequestJson = {
472
682
  * @generated from field: bytes value = 5;
473
683
  */
474
684
  value?: string;
685
+ /**
686
+ * The key is the caller's own.
687
+ *
688
+ * @generated from field: bool own = 6;
689
+ */
690
+ own?: boolean;
475
691
  };
476
692
  /**
477
693
  * Describes the message toshi.workspace.v1.PutSecretRequest.
@@ -525,6 +741,18 @@ export type DeleteSecretRequest = Message<"toshi.workspace.v1.DeleteSecretReques
525
741
  * @generated from field: string name = 4;
526
742
  */
527
743
  name: string;
744
+ /**
745
+ * The caller's own key; not with owner.
746
+ *
747
+ * @generated from field: bool own = 5;
748
+ */
749
+ own: boolean;
750
+ /**
751
+ * The own key of the person with this user id; not with own.
752
+ *
753
+ * @generated from field: string owner = 6;
754
+ */
755
+ owner: string;
528
756
  };
529
757
  /**
530
758
  * @generated from message toshi.workspace.v1.DeleteSecretRequest
@@ -546,6 +774,18 @@ export type DeleteSecretRequestJson = {
546
774
  * @generated from field: string name = 4;
547
775
  */
548
776
  name?: string;
777
+ /**
778
+ * The caller's own key; not with owner.
779
+ *
780
+ * @generated from field: bool own = 5;
781
+ */
782
+ own?: boolean;
783
+ /**
784
+ * The own key of the person with this user id; not with own.
785
+ *
786
+ * @generated from field: string owner = 6;
787
+ */
788
+ owner?: string;
549
789
  };
550
790
  /**
551
791
  * Describes the message toshi.workspace.v1.DeleteSecretRequest.
@@ -703,6 +943,18 @@ export type ListSecretVersionsRequest = Message<"toshi.workspace.v1.ListSecretVe
703
943
  * @generated from field: string page_token = 6;
704
944
  */
705
945
  pageToken: string;
946
+ /**
947
+ * The caller's own key; not with owner.
948
+ *
949
+ * @generated from field: bool own = 7;
950
+ */
951
+ own: boolean;
952
+ /**
953
+ * The own key of the person with this user id; not with own.
954
+ *
955
+ * @generated from field: string owner = 8;
956
+ */
957
+ owner: string;
706
958
  };
707
959
  /**
708
960
  * @generated from message toshi.workspace.v1.ListSecretVersionsRequest
@@ -736,6 +988,18 @@ export type ListSecretVersionsRequestJson = {
736
988
  * @generated from field: string page_token = 6;
737
989
  */
738
990
  pageToken?: string;
991
+ /**
992
+ * The caller's own key; not with owner.
993
+ *
994
+ * @generated from field: bool own = 7;
995
+ */
996
+ own?: boolean;
997
+ /**
998
+ * The own key of the person with this user id; not with own.
999
+ *
1000
+ * @generated from field: string owner = 8;
1001
+ */
1002
+ owner?: string;
739
1003
  };
740
1004
  /**
741
1005
  * Describes the message toshi.workspace.v1.ListSecretVersionsRequest.
@@ -1064,14 +1328,21 @@ export declare enum SecretGranteeKind {
1064
1328
  *
1065
1329
  * @generated from enum value: SECRET_GRANTEE_KIND_SERVICE = 3;
1066
1330
  */
1067
- SERVICE = 3
1331
+ SERVICE = 3,
1332
+ /**
1333
+ * The builds of an image: grantee is the image's name. Its values reach
1334
+ * the build's setup command only, never a VM started from the image.
1335
+ *
1336
+ * @generated from enum value: SECRET_GRANTEE_KIND_IMAGE_BUILD = 4;
1337
+ */
1338
+ IMAGE_BUILD = 4
1068
1339
  }
1069
1340
  /**
1070
1341
  * SecretGranteeKind is what a set is granted to.
1071
1342
  *
1072
1343
  * @generated from enum toshi.workspace.v1.SecretGranteeKind
1073
1344
  */
1074
- export type SecretGranteeKindJson = "SECRET_GRANTEE_KIND_UNSPECIFIED" | "SECRET_GRANTEE_KIND_KIND" | "SECRET_GRANTEE_KIND_IMAGE" | "SECRET_GRANTEE_KIND_SERVICE";
1345
+ export type SecretGranteeKindJson = "SECRET_GRANTEE_KIND_UNSPECIFIED" | "SECRET_GRANTEE_KIND_KIND" | "SECRET_GRANTEE_KIND_IMAGE" | "SECRET_GRANTEE_KIND_SERVICE" | "SECRET_GRANTEE_KIND_IMAGE_BUILD";
1075
1346
  /**
1076
1347
  * Describes the enum toshi.workspace.v1.SecretGranteeKind.
1077
1348
  */
@@ -1089,8 +1360,15 @@ export declare const SecretGranteeKindSchema: GenEnum<SecretGranteeKind, SecretG
1089
1360
  * workspace does not have is NOT_FOUND.
1090
1361
  *
1091
1362
  * No call returns a value: a key is answered with its name, version, size
1092
- * and time. The calls take no request_key: a retried PutSecret makes one
1093
- * more version.
1363
+ * and time. CreateSecretSet takes a request_key; the other calls take none:
1364
+ * a retried PutSecret makes one more version.
1365
+ *
1366
+ * A key can be one person's own: only the workloads that person starts
1367
+ * receive it, beside the keys of the environment's set, while the person
1368
+ * holds a role in the workspace. A sandbox's commands receive it only when
1369
+ * that person runs them, and CI jobs never. A workspace token starts
1370
+ * workloads as the person who created it. The calls on keys take own, for
1371
+ * the caller's own key, or owner, a person's user id, for that person's.
1094
1372
  *
1095
1373
  * @generated from service toshi.workspace.v1.SecretService
1096
1374
  */
@@ -1128,6 +1406,25 @@ export declare const SecretService: GenService<{
1128
1406
  input: typeof DeleteSecretSetRequestSchema;
1129
1407
  output: typeof DeleteSecretSetResponseSchema;
1130
1408
  };
1409
+ /**
1410
+ * UpdateSecretSet sets the fields update_mask names on a set. keys
1411
+ * names the keys the set keeps: a key of the set the list leaves out is
1412
+ * deleted with all its versions, in one write. The request never carries
1413
+ * a value, so a name the set does not hold is FAILED_PRECONDITION naming
1414
+ * it: its value is set with PutSecret first. A person's own keys are not
1415
+ * in a set's list and are never deleted by it. An omitted mask means the
1416
+ * fields the request sets; an empty list deletes every key of the set
1417
+ * only when the mask names keys. "*" and a path of any other field are
1418
+ * INVALID_ARGUMENT, and so are an empty and a repeated name. A set the
1419
+ * project does not have is NOT_FOUND.
1420
+ *
1421
+ * @generated from rpc toshi.workspace.v1.SecretService.UpdateSecretSet
1422
+ */
1423
+ updateSecretSet: {
1424
+ methodKind: "unary";
1425
+ input: typeof UpdateSecretSetRequestSchema;
1426
+ output: typeof UpdateSecretSetResponseSchema;
1427
+ };
1131
1428
  /**
1132
1429
  * PutSecret makes the key's next version, holding value, and returns the
1133
1430
  * key without it. A name is either shared or set per environment: a
@@ -1135,6 +1432,12 @@ export declare const SecretService: GenService<{
1135
1432
  * in the shared set, fails with FAILED_PRECONDITION. Two environments'
1136
1433
  * sets may hold the same name.
1137
1434
  *
1435
+ * With own the key is the caller's own, set apart from the environment's
1436
+ * set, which need not exist; a call that acts for no person fails with
1437
+ * FAILED_PRECONDITION. A person's own names follow the same rule among
1438
+ * themselves, and a name may not be both someone's own and not: either
1439
+ * fails with FAILED_PRECONDITION. Two people may own the same name.
1440
+ *
1138
1441
  * @generated from rpc toshi.workspace.v1.SecretService.PutSecret
1139
1442
  */
1140
1443
  putSecret: {
@@ -1143,7 +1446,8 @@ export declare const SecretService: GenService<{
1143
1446
  output: typeof PutSecretResponseSchema;
1144
1447
  };
1145
1448
  /**
1146
- * DeleteSecret removes the key and every version of it.
1449
+ * DeleteSecret removes the key and every version of it: with own the
1450
+ * caller's own key, with owner that person's.
1147
1451
  *
1148
1452
  * @generated from rpc toshi.workspace.v1.SecretService.DeleteSecret
1149
1453
  */
@@ -1154,7 +1458,8 @@ export declare const SecretService: GenService<{
1154
1458
  };
1155
1459
  /**
1156
1460
  * ListSecrets returns the set's keys by name, each with its newest
1157
- * version.
1461
+ * version, and every person's own keys of the same place beside them,
1462
+ * each with its owner.
1158
1463
  *
1159
1464
  * A page holds 100 keys when page_size is zero, and 1000 at most.
1160
1465
  *
@@ -1166,7 +1471,8 @@ export declare const SecretService: GenService<{
1166
1471
  output: typeof ListSecretsResponseSchema;
1167
1472
  };
1168
1473
  /**
1169
- * ListSecretVersions returns the key's versions, oldest first.
1474
+ * ListSecretVersions returns the key's versions, oldest first: with own
1475
+ * the caller's own key's, with owner that person's.
1170
1476
  *
1171
1477
  * A page holds 100 versions when page_size is zero, and 1000 at most.
1172
1478
  *
@@ -2,12 +2,12 @@
2
2
  // @generated from file toshi/workspace/v1/secrets.proto (package toshi.workspace.v1, syntax proto3)
3
3
  /* eslint-disable */
4
4
  import { enumDesc, fileDesc, messageDesc, serviceDesc } from "@bufbuild/protobuf/codegenv2";
5
- import { file_google_protobuf_timestamp } from "@bufbuild/protobuf/wkt";
5
+ import { file_google_protobuf_field_mask, file_google_protobuf_timestamp } from "@bufbuild/protobuf/wkt";
6
6
  import { file_toshi_permission } from "../../permission_pb.js";
7
7
  /**
8
8
  * Describes the file toshi/workspace/v1/secrets.proto.
9
9
  */
10
- export const file_toshi_workspace_v1_secrets = /*@__PURE__*/ fileDesc("CiB0b3NoaS93b3Jrc3BhY2UvdjEvc2VjcmV0cy5wcm90bxISdG9zaGkud29ya3NwYWNlLnYxInEKCVNlY3JldFNldBIPCgdwcm9qZWN0GAEgASgJEhMKC2Vudmlyb25tZW50GAIgASgJEg4KBnNoYXJlZBgDIAEoCBIuCgpjcmVhdGVkX2F0GAQgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcCJlCgZTZWNyZXQSDAoEbmFtZRgBIAEoCRIPCgd2ZXJzaW9uGAIgASgDEgwKBHNpemUYAyABKAMSLgoKdXBkYXRlZF9hdBgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAiXgoNU2VjcmV0VmVyc2lvbhIPCgd2ZXJzaW9uGAEgASgDEgwKBHNpemUYAiABKAMSLgoKY3JlYXRlZF9hdBgDIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAigwEKC1NlY3JldEdyYW50EjMKBGtpbmQYASABKA4yJS50b3NoaS53b3Jrc3BhY2UudjEuU2VjcmV0R3JhbnRlZUtpbmQSDwoHZ3JhbnRlZRgCIAEoCRIuCgpjcmVhdGVkX2F0GAMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcCJOChZDcmVhdGVTZWNyZXRTZXRSZXF1ZXN0Eg8KB3Byb2plY3QYASABKAkSEwoLZW52aXJvbm1lbnQYAiABKAkSDgoGc2hhcmVkGAMgASgIIkUKF0NyZWF0ZVNlY3JldFNldFJlc3BvbnNlEioKA3NldBgBIAEoCzIdLnRvc2hpLndvcmtzcGFjZS52MS5TZWNyZXRTZXQiTwoVTGlzdFNlY3JldFNldHNSZXF1ZXN0Eg8KB3Byb2plY3QYASABKAkSEQoJcGFnZV9zaXplGAIgASgFEhIKCnBhZ2VfdG9rZW4YAyABKAkiXgoWTGlzdFNlY3JldFNldHNSZXNwb25zZRIrCgRzZXRzGAEgAygLMh0udG9zaGkud29ya3NwYWNlLnYxLlNlY3JldFNldBIXCg9uZXh0X3BhZ2VfdG9rZW4YAiABKAkiTgoWRGVsZXRlU2VjcmV0U2V0UmVxdWVzdBIPCgdwcm9qZWN0GAEgASgJEhMKC2Vudmlyb25tZW50GAIgASgJEg4KBnNoYXJlZBgDIAEoCCIZChdEZWxldGVTZWNyZXRTZXRSZXNwb25zZSJlChBQdXRTZWNyZXRSZXF1ZXN0Eg8KB3Byb2plY3QYASABKAkSEwoLZW52aXJvbm1lbnQYAiABKAkSDgoGc2hhcmVkGAMgASgIEgwKBG5hbWUYBCABKAkSDQoFdmFsdWUYBSABKAwiPwoRUHV0U2VjcmV0UmVzcG9uc2USKgoGc2VjcmV0GAEgASgLMhoudG9zaGkud29ya3NwYWNlLnYxLlNlY3JldCJZChNEZWxldGVTZWNyZXRSZXF1ZXN0Eg8KB3Byb2plY3QYASABKAkSEwoLZW52aXJvbm1lbnQYAiABKAkSDgoGc2hhcmVkGAMgASgIEgwKBG5hbWUYBCABKAkiFgoURGVsZXRlU2VjcmV0UmVzcG9uc2UicQoSTGlzdFNlY3JldHNSZXF1ZXN0Eg8KB3Byb2plY3QYASABKAkSEwoLZW52aXJvbm1lbnQYAiABKAkSDgoGc2hhcmVkGAMgASgIEhEKCXBhZ2Vfc2l6ZRgEIAEoBRISCgpwYWdlX3Rva2VuGAUgASgJIlsKE0xpc3RTZWNyZXRzUmVzcG9uc2USKwoHc2VjcmV0cxgBIAMoCzIaLnRvc2hpLndvcmtzcGFjZS52MS5TZWNyZXQSFwoPbmV4dF9wYWdlX3Rva2VuGAIgASgJIoYBChlMaXN0U2VjcmV0VmVyc2lvbnNSZXF1ZXN0Eg8KB3Byb2plY3QYASABKAkSEwoLZW52aXJvbm1lbnQYAiABKAkSDgoGc2hhcmVkGAMgASgIEgwKBG5hbWUYBCABKAkSEQoJcGFnZV9zaXplGAUgASgFEhIKCnBhZ2VfdG9rZW4YBiABKAkiagoaTGlzdFNlY3JldFZlcnNpb25zUmVzcG9uc2USMwoIdmVyc2lvbnMYASADKAsyIS50b3NoaS53b3Jrc3BhY2UudjEuU2VjcmV0VmVyc2lvbhIXCg9uZXh0X3BhZ2VfdG9rZW4YAiABKAkikwEKFUdyYW50U2VjcmV0U2V0UmVxdWVzdBIPCgdwcm9qZWN0GAEgASgJEhMKC2Vudmlyb25tZW50GAIgASgJEg4KBnNoYXJlZBgDIAEoCBIzCgRraW5kGAQgASgOMiUudG9zaGkud29ya3NwYWNlLnYxLlNlY3JldEdyYW50ZWVLaW5kEg8KB2dyYW50ZWUYBSABKAkiSAoWR3JhbnRTZWNyZXRTZXRSZXNwb25zZRIuCgVncmFudBgBIAEoCzIfLnRvc2hpLndvcmtzcGFjZS52MS5TZWNyZXRHcmFudCKUAQoWUmV2b2tlU2VjcmV0U2V0UmVxdWVzdBIPCgdwcm9qZWN0GAEgASgJEhMKC2Vudmlyb25tZW50GAIgASgJEg4KBnNoYXJlZBgDIAEoCBIzCgRraW5kGAQgASgOMiUudG9zaGkud29ya3NwYWNlLnYxLlNlY3JldEdyYW50ZWVLaW5kEg8KB2dyYW50ZWUYBSABKAkiGQoXUmV2b2tlU2VjcmV0U2V0UmVzcG9uc2UieQoaTGlzdFNlY3JldFNldEdyYW50c1JlcXVlc3QSDwoHcHJvamVjdBgBIAEoCRITCgtlbnZpcm9ubWVudBgCIAEoCRIOCgZzaGFyZWQYAyABKAgSEQoJcGFnZV9zaXplGAQgASgFEhIKCnBhZ2VfdG9rZW4YBSABKAkiZwobTGlzdFNlY3JldFNldEdyYW50c1Jlc3BvbnNlEi8KBmdyYW50cxgBIAMoCzIfLnRvc2hpLndvcmtzcGFjZS52MS5TZWNyZXRHcmFudBIXCg9uZXh0X3BhZ2VfdG9rZW4YAiABKAkqlgEKEVNlY3JldEdyYW50ZWVLaW5kEiMKH1NFQ1JFVF9HUkFOVEVFX0tJTkRfVU5TUEVDSUZJRUQQABIcChhTRUNSRVRfR1JBTlRFRV9LSU5EX0tJTkQQARIdChlTRUNSRVRfR1JBTlRFRV9LSU5EX0lNQUdFEAISHwobU0VDUkVUX0dSQU5URUVfS0lORF9TRVJWSUNFEAMygwsKDVNlY3JldFNlcnZpY2USjAEKD0NyZWF0ZVNlY3JldFNldBIqLnRvc2hpLndvcmtzcGFjZS52MS5DcmVhdGVTZWNyZXRTZXRSZXF1ZXN0GisudG9zaGkud29ya3NwYWNlLnYxLkNyZWF0ZVNlY3JldFNldFJlc3BvbnNlIiDC8xgNc2VjcmV0cy53cml0ZcrzGAtlbnZpcm9ubWVudBKEAQoOTGlzdFNlY3JldFNldHMSKS50b3NoaS53b3Jrc3BhY2UudjEuTGlzdFNlY3JldFNldHNSZXF1ZXN0GioudG9zaGkud29ya3NwYWNlLnYxLkxpc3RTZWNyZXRTZXRzUmVzcG9uc2UiG8LzGAxzZWNyZXRzLnJlYWTK8xgHcHJvamVjdBKMAQoPRGVsZXRlU2VjcmV0U2V0EioudG9zaGkud29ya3NwYWNlLnYxLkRlbGV0ZVNlY3JldFNldFJlcXVlc3QaKy50b3NoaS53b3Jrc3BhY2UudjEuRGVsZXRlU2VjcmV0U2V0UmVzcG9uc2UiIMLzGA1zZWNyZXRzLndyaXRlyvMYC2Vudmlyb25tZW50EnoKCVB1dFNlY3JldBIkLnRvc2hpLndvcmtzcGFjZS52MS5QdXRTZWNyZXRSZXF1ZXN0GiUudG9zaGkud29ya3NwYWNlLnYxLlB1dFNlY3JldFJlc3BvbnNlIiDC8xgNc2VjcmV0cy53cml0ZcrzGAtlbnZpcm9ubWVudBKDAQoMRGVsZXRlU2VjcmV0EicudG9zaGkud29ya3NwYWNlLnYxLkRlbGV0ZVNlY3JldFJlcXVlc3QaKC50b3NoaS53b3Jrc3BhY2UudjEuRGVsZXRlU2VjcmV0UmVzcG9uc2UiIMLzGA1zZWNyZXRzLndyaXRlyvMYC2Vudmlyb25tZW50En8KC0xpc3RTZWNyZXRzEiYudG9zaGkud29ya3NwYWNlLnYxLkxpc3RTZWNyZXRzUmVxdWVzdBonLnRvc2hpLndvcmtzcGFjZS52MS5MaXN0U2VjcmV0c1Jlc3BvbnNlIh/C8xgMc2VjcmV0cy5yZWFkyvMYC2Vudmlyb25tZW50EpQBChJMaXN0U2VjcmV0VmVyc2lvbnMSLS50b3NoaS53b3Jrc3BhY2UudjEuTGlzdFNlY3JldFZlcnNpb25zUmVxdWVzdBouLnRvc2hpLndvcmtzcGFjZS52MS5MaXN0U2VjcmV0VmVyc2lvbnNSZXNwb25zZSIfwvMYDHNlY3JldHMucmVhZMrzGAtlbnZpcm9ubWVudBKJAQoOR3JhbnRTZWNyZXRTZXQSKS50b3NoaS53b3Jrc3BhY2UudjEuR3JhbnRTZWNyZXRTZXRSZXF1ZXN0GioudG9zaGkud29ya3NwYWNlLnYxLkdyYW50U2VjcmV0U2V0UmVzcG9uc2UiIMLzGA1zZWNyZXRzLndyaXRlyvMYC2Vudmlyb25tZW50EowBCg9SZXZva2VTZWNyZXRTZXQSKi50b3NoaS53b3Jrc3BhY2UudjEuUmV2b2tlU2VjcmV0U2V0UmVxdWVzdBorLnRvc2hpLndvcmtzcGFjZS52MS5SZXZva2VTZWNyZXRTZXRSZXNwb25zZSIgwvMYDXNlY3JldHMud3JpdGXK8xgLZW52aXJvbm1lbnQSlwEKE0xpc3RTZWNyZXRTZXRHcmFudHMSLi50b3NoaS53b3Jrc3BhY2UudjEuTGlzdFNlY3JldFNldEdyYW50c1JlcXVlc3QaLy50b3NoaS53b3Jrc3BhY2UudjEuTGlzdFNlY3JldFNldEdyYW50c1Jlc3BvbnNlIh/C8xgMc2VjcmV0cy5yZWFkyvMYC2Vudmlyb25tZW50QiJaIGdvLnRvc2hpY2xvdWQuaW8vYXBpL3dvcmtzcGFjZXYxYgZwcm90bzM", [file_google_protobuf_timestamp, file_toshi_permission]);
10
+ export const file_toshi_workspace_v1_secrets = /*@__PURE__*/ fileDesc("CiB0b3NoaS93b3Jrc3BhY2UvdjEvc2VjcmV0cy5wcm90bxISdG9zaGkud29ya3NwYWNlLnYxIt0BCglTZWNyZXRTZXQSDwoHcHJvamVjdBgBIAEoCRITCgtlbnZpcm9ubWVudBgCIAEoCRIOCgZzaGFyZWQYAyABKAgSLgoKY3JlYXRlZF9hdBgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASEgoKbWFuYWdlZF9ieRgFIAEoCRIXCg9tYW5pZmVzdF9kaWdlc3QYBiABKAkSFgoObWFuYWdlZF9maWVsZHMYByADKAkSFwoPbWFuaWZlc3Rfb3JpZ2luGAggASgJEgwKBGtleXMYCSADKAkilgEKBlNlY3JldBIMCgRuYW1lGAEgASgJEg8KB3ZlcnNpb24YAiABKAMSDAoEc2l6ZRgDIAEoAxIuCgp1cGRhdGVkX2F0GAQgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBINCgVvd25lchgFIAEoCRIMCgRtaW5lGAYgASgIEhIKCm93bmVyX2xlZnQYByABKAgiXgoNU2VjcmV0VmVyc2lvbhIPCgd2ZXJzaW9uGAEgASgDEgwKBHNpemUYAiABKAMSLgoKY3JlYXRlZF9hdBgDIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAigwEKC1NlY3JldEdyYW50EjMKBGtpbmQYASABKA4yJS50b3NoaS53b3Jrc3BhY2UudjEuU2VjcmV0R3JhbnRlZUtpbmQSDwoHZ3JhbnRlZRgCIAEoCRIuCgpjcmVhdGVkX2F0GAMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcCJjChZDcmVhdGVTZWNyZXRTZXRSZXF1ZXN0Eg8KB3Byb2plY3QYASABKAkSEwoLZW52aXJvbm1lbnQYAiABKAkSDgoGc2hhcmVkGAMgASgIEhMKC3JlcXVlc3Rfa2V5GAQgASgJIkUKF0NyZWF0ZVNlY3JldFNldFJlc3BvbnNlEioKA3NldBgBIAEoCzIdLnRvc2hpLndvcmtzcGFjZS52MS5TZWNyZXRTZXQiTwoVTGlzdFNlY3JldFNldHNSZXF1ZXN0Eg8KB3Byb2plY3QYASABKAkSEQoJcGFnZV9zaXplGAIgASgFEhIKCnBhZ2VfdG9rZW4YAyABKAkiXgoWTGlzdFNlY3JldFNldHNSZXNwb25zZRIrCgRzZXRzGAEgAygLMh0udG9zaGkud29ya3NwYWNlLnYxLlNlY3JldFNldBIXCg9uZXh0X3BhZ2VfdG9rZW4YAiABKAkiTgoWRGVsZXRlU2VjcmV0U2V0UmVxdWVzdBIPCgdwcm9qZWN0GAEgASgJEhMKC2Vudmlyb25tZW50GAIgASgJEg4KBnNoYXJlZBgDIAEoCCIZChdEZWxldGVTZWNyZXRTZXRSZXNwb25zZSJ1ChZVcGRhdGVTZWNyZXRTZXRSZXF1ZXN0EioKA3NldBgBIAEoCzIdLnRvc2hpLndvcmtzcGFjZS52MS5TZWNyZXRTZXQSLwoLdXBkYXRlX21hc2sYAiABKAsyGi5nb29nbGUucHJvdG9idWYuRmllbGRNYXNrIkUKF1VwZGF0ZVNlY3JldFNldFJlc3BvbnNlEioKA3NldBgBIAEoCzIdLnRvc2hpLndvcmtzcGFjZS52MS5TZWNyZXRTZXQicgoQUHV0U2VjcmV0UmVxdWVzdBIPCgdwcm9qZWN0GAEgASgJEhMKC2Vudmlyb25tZW50GAIgASgJEg4KBnNoYXJlZBgDIAEoCBIMCgRuYW1lGAQgASgJEg0KBXZhbHVlGAUgASgMEgsKA293bhgGIAEoCCI/ChFQdXRTZWNyZXRSZXNwb25zZRIqCgZzZWNyZXQYASABKAsyGi50b3NoaS53b3Jrc3BhY2UudjEuU2VjcmV0InUKE0RlbGV0ZVNlY3JldFJlcXVlc3QSDwoHcHJvamVjdBgBIAEoCRITCgtlbnZpcm9ubWVudBgCIAEoCRIOCgZzaGFyZWQYAyABKAgSDAoEbmFtZRgEIAEoCRILCgNvd24YBSABKAgSDQoFb3duZXIYBiABKAkiFgoURGVsZXRlU2VjcmV0UmVzcG9uc2UicQoSTGlzdFNlY3JldHNSZXF1ZXN0Eg8KB3Byb2plY3QYASABKAkSEwoLZW52aXJvbm1lbnQYAiABKAkSDgoGc2hhcmVkGAMgASgIEhEKCXBhZ2Vfc2l6ZRgEIAEoBRISCgpwYWdlX3Rva2VuGAUgASgJIlsKE0xpc3RTZWNyZXRzUmVzcG9uc2USKwoHc2VjcmV0cxgBIAMoCzIaLnRvc2hpLndvcmtzcGFjZS52MS5TZWNyZXQSFwoPbmV4dF9wYWdlX3Rva2VuGAIgASgJIqIBChlMaXN0U2VjcmV0VmVyc2lvbnNSZXF1ZXN0Eg8KB3Byb2plY3QYASABKAkSEwoLZW52aXJvbm1lbnQYAiABKAkSDgoGc2hhcmVkGAMgASgIEgwKBG5hbWUYBCABKAkSEQoJcGFnZV9zaXplGAUgASgFEhIKCnBhZ2VfdG9rZW4YBiABKAkSCwoDb3duGAcgASgIEg0KBW93bmVyGAggASgJImoKGkxpc3RTZWNyZXRWZXJzaW9uc1Jlc3BvbnNlEjMKCHZlcnNpb25zGAEgAygLMiEudG9zaGkud29ya3NwYWNlLnYxLlNlY3JldFZlcnNpb24SFwoPbmV4dF9wYWdlX3Rva2VuGAIgASgJIpMBChVHcmFudFNlY3JldFNldFJlcXVlc3QSDwoHcHJvamVjdBgBIAEoCRITCgtlbnZpcm9ubWVudBgCIAEoCRIOCgZzaGFyZWQYAyABKAgSMwoEa2luZBgEIAEoDjIlLnRvc2hpLndvcmtzcGFjZS52MS5TZWNyZXRHcmFudGVlS2luZBIPCgdncmFudGVlGAUgASgJIkgKFkdyYW50U2VjcmV0U2V0UmVzcG9uc2USLgoFZ3JhbnQYASABKAsyHy50b3NoaS53b3Jrc3BhY2UudjEuU2VjcmV0R3JhbnQilAEKFlJldm9rZVNlY3JldFNldFJlcXVlc3QSDwoHcHJvamVjdBgBIAEoCRITCgtlbnZpcm9ubWVudBgCIAEoCRIOCgZzaGFyZWQYAyABKAgSMwoEa2luZBgEIAEoDjIlLnRvc2hpLndvcmtzcGFjZS52MS5TZWNyZXRHcmFudGVlS2luZBIPCgdncmFudGVlGAUgASgJIhkKF1Jldm9rZVNlY3JldFNldFJlc3BvbnNlInkKGkxpc3RTZWNyZXRTZXRHcmFudHNSZXF1ZXN0Eg8KB3Byb2plY3QYASABKAkSEwoLZW52aXJvbm1lbnQYAiABKAkSDgoGc2hhcmVkGAMgASgIEhEKCXBhZ2Vfc2l6ZRgEIAEoBRISCgpwYWdlX3Rva2VuGAUgASgJImcKG0xpc3RTZWNyZXRTZXRHcmFudHNSZXNwb25zZRIvCgZncmFudHMYASADKAsyHy50b3NoaS53b3Jrc3BhY2UudjEuU2VjcmV0R3JhbnQSFwoPbmV4dF9wYWdlX3Rva2VuGAIgASgJKrsBChFTZWNyZXRHcmFudGVlS2luZBIjCh9TRUNSRVRfR1JBTlRFRV9LSU5EX1VOU1BFQ0lGSUVEEAASHAoYU0VDUkVUX0dSQU5URUVfS0lORF9LSU5EEAESHQoZU0VDUkVUX0dSQU5URUVfS0lORF9JTUFHRRACEh8KG1NFQ1JFVF9HUkFOVEVFX0tJTkRfU0VSVklDRRADEiMKH1NFQ1JFVF9HUkFOVEVFX0tJTkRfSU1BR0VfQlVJTEQQBDLlDAoNU2VjcmV0U2VydmljZRKWAQoPQ3JlYXRlU2VjcmV0U2V0EioudG9zaGkud29ya3NwYWNlLnYxLkNyZWF0ZVNlY3JldFNldFJlcXVlc3QaKy50b3NoaS53b3Jrc3BhY2UudjEuQ3JlYXRlU2VjcmV0U2V0UmVzcG9uc2UiKsLzGA1zZWNyZXRzLndyaXRlyvMYC2Vudmlyb25tZW500vMYBhIEbm9uZRKEAQoOTGlzdFNlY3JldFNldHMSKS50b3NoaS53b3Jrc3BhY2UudjEuTGlzdFNlY3JldFNldHNSZXF1ZXN0GioudG9zaGkud29ya3NwYWNlLnYxLkxpc3RTZWNyZXRTZXRzUmVzcG9uc2UiG8LzGAxzZWNyZXRzLnJlYWTK8xgHcHJvamVjdBKWAQoPRGVsZXRlU2VjcmV0U2V0EioudG9zaGkud29ya3NwYWNlLnYxLkRlbGV0ZVNlY3JldFNldFJlcXVlc3QaKy50b3NoaS53b3Jrc3BhY2UudjEuRGVsZXRlU2VjcmV0U2V0UmVzcG9uc2UiKsLzGA1zZWNyZXRzLndyaXRlyvMYC2Vudmlyb25tZW500vMYBhIEbm9uZRKWAQoPVXBkYXRlU2VjcmV0U2V0EioudG9zaGkud29ya3NwYWNlLnYxLlVwZGF0ZVNlY3JldFNldFJlcXVlc3QaKy50b3NoaS53b3Jrc3BhY2UudjEuVXBkYXRlU2VjcmV0U2V0UmVzcG9uc2UiKsLzGA1zZWNyZXRzLndyaXRlyvMYC2Vudmlyb25tZW500vMYBhIEbm9uZRKQAQoJUHV0U2VjcmV0EiQudG9zaGkud29ya3NwYWNlLnYxLlB1dFNlY3JldFJlcXVlc3QaJS50b3NoaS53b3Jrc3BhY2UudjEuUHV0U2VjcmV0UmVzcG9uc2UiNsLzGA1zZWNyZXRzLndyaXRlyvMYC2Vudmlyb25tZW500vMYEgoKc2VjcmV0LnNldBIEbm9uZRKNAQoMRGVsZXRlU2VjcmV0EicudG9zaGkud29ya3NwYWNlLnYxLkRlbGV0ZVNlY3JldFJlcXVlc3QaKC50b3NoaS53b3Jrc3BhY2UudjEuRGVsZXRlU2VjcmV0UmVzcG9uc2UiKsLzGA1zZWNyZXRzLndyaXRlyvMYC2Vudmlyb25tZW500vMYBhIEbm9uZRJ/CgtMaXN0U2VjcmV0cxImLnRvc2hpLndvcmtzcGFjZS52MS5MaXN0U2VjcmV0c1JlcXVlc3QaJy50b3NoaS53b3Jrc3BhY2UudjEuTGlzdFNlY3JldHNSZXNwb25zZSIfwvMYDHNlY3JldHMucmVhZMrzGAtlbnZpcm9ubWVudBKUAQoSTGlzdFNlY3JldFZlcnNpb25zEi0udG9zaGkud29ya3NwYWNlLnYxLkxpc3RTZWNyZXRWZXJzaW9uc1JlcXVlc3QaLi50b3NoaS53b3Jrc3BhY2UudjEuTGlzdFNlY3JldFZlcnNpb25zUmVzcG9uc2UiH8LzGAxzZWNyZXRzLnJlYWTK8xgLZW52aXJvbm1lbnQSkwEKDkdyYW50U2VjcmV0U2V0EikudG9zaGkud29ya3NwYWNlLnYxLkdyYW50U2VjcmV0U2V0UmVxdWVzdBoqLnRvc2hpLndvcmtzcGFjZS52MS5HcmFudFNlY3JldFNldFJlc3BvbnNlIirC8xgNc2VjcmV0cy53cml0ZcrzGAtlbnZpcm9ubWVudNLzGAYSBG5vbmUSlgEKD1Jldm9rZVNlY3JldFNldBIqLnRvc2hpLndvcmtzcGFjZS52MS5SZXZva2VTZWNyZXRTZXRSZXF1ZXN0GisudG9zaGkud29ya3NwYWNlLnYxLlJldm9rZVNlY3JldFNldFJlc3BvbnNlIirC8xgNc2VjcmV0cy53cml0ZcrzGAtlbnZpcm9ubWVudNLzGAYSBG5vbmUSlwEKE0xpc3RTZWNyZXRTZXRHcmFudHMSLi50b3NoaS53b3Jrc3BhY2UudjEuTGlzdFNlY3JldFNldEdyYW50c1JlcXVlc3QaLy50b3NoaS53b3Jrc3BhY2UudjEuTGlzdFNlY3JldFNldEdyYW50c1Jlc3BvbnNlIh/C8xgMc2VjcmV0cy5yZWFkyvMYC2Vudmlyb25tZW50QiJaIGdvLnRvc2hpY2xvdWQuaW8vYXBpL3dvcmtzcGFjZXYxYgZwcm90bzM", [file_google_protobuf_field_mask, file_google_protobuf_timestamp, file_toshi_permission]);
11
11
  /**
12
12
  * Describes the message toshi.workspace.v1.SecretSet.
13
13
  * Use `create(SecretSetSchema)` to create a new message.
@@ -58,76 +58,86 @@ export const DeleteSecretSetRequestSchema = /*@__PURE__*/ messageDesc(file_toshi
58
58
  * Use `create(DeleteSecretSetResponseSchema)` to create a new message.
59
59
  */
60
60
  export const DeleteSecretSetResponseSchema = /*@__PURE__*/ messageDesc(file_toshi_workspace_v1_secrets, 9);
61
+ /**
62
+ * Describes the message toshi.workspace.v1.UpdateSecretSetRequest.
63
+ * Use `create(UpdateSecretSetRequestSchema)` to create a new message.
64
+ */
65
+ export const UpdateSecretSetRequestSchema = /*@__PURE__*/ messageDesc(file_toshi_workspace_v1_secrets, 10);
66
+ /**
67
+ * Describes the message toshi.workspace.v1.UpdateSecretSetResponse.
68
+ * Use `create(UpdateSecretSetResponseSchema)` to create a new message.
69
+ */
70
+ export const UpdateSecretSetResponseSchema = /*@__PURE__*/ messageDesc(file_toshi_workspace_v1_secrets, 11);
61
71
  /**
62
72
  * Describes the message toshi.workspace.v1.PutSecretRequest.
63
73
  * Use `create(PutSecretRequestSchema)` to create a new message.
64
74
  */
65
- export const PutSecretRequestSchema = /*@__PURE__*/ messageDesc(file_toshi_workspace_v1_secrets, 10);
75
+ export const PutSecretRequestSchema = /*@__PURE__*/ messageDesc(file_toshi_workspace_v1_secrets, 12);
66
76
  /**
67
77
  * Describes the message toshi.workspace.v1.PutSecretResponse.
68
78
  * Use `create(PutSecretResponseSchema)` to create a new message.
69
79
  */
70
- export const PutSecretResponseSchema = /*@__PURE__*/ messageDesc(file_toshi_workspace_v1_secrets, 11);
80
+ export const PutSecretResponseSchema = /*@__PURE__*/ messageDesc(file_toshi_workspace_v1_secrets, 13);
71
81
  /**
72
82
  * Describes the message toshi.workspace.v1.DeleteSecretRequest.
73
83
  * Use `create(DeleteSecretRequestSchema)` to create a new message.
74
84
  */
75
- export const DeleteSecretRequestSchema = /*@__PURE__*/ messageDesc(file_toshi_workspace_v1_secrets, 12);
85
+ export const DeleteSecretRequestSchema = /*@__PURE__*/ messageDesc(file_toshi_workspace_v1_secrets, 14);
76
86
  /**
77
87
  * Describes the message toshi.workspace.v1.DeleteSecretResponse.
78
88
  * Use `create(DeleteSecretResponseSchema)` to create a new message.
79
89
  */
80
- export const DeleteSecretResponseSchema = /*@__PURE__*/ messageDesc(file_toshi_workspace_v1_secrets, 13);
90
+ export const DeleteSecretResponseSchema = /*@__PURE__*/ messageDesc(file_toshi_workspace_v1_secrets, 15);
81
91
  /**
82
92
  * Describes the message toshi.workspace.v1.ListSecretsRequest.
83
93
  * Use `create(ListSecretsRequestSchema)` to create a new message.
84
94
  */
85
- export const ListSecretsRequestSchema = /*@__PURE__*/ messageDesc(file_toshi_workspace_v1_secrets, 14);
95
+ export const ListSecretsRequestSchema = /*@__PURE__*/ messageDesc(file_toshi_workspace_v1_secrets, 16);
86
96
  /**
87
97
  * Describes the message toshi.workspace.v1.ListSecretsResponse.
88
98
  * Use `create(ListSecretsResponseSchema)` to create a new message.
89
99
  */
90
- export const ListSecretsResponseSchema = /*@__PURE__*/ messageDesc(file_toshi_workspace_v1_secrets, 15);
100
+ export const ListSecretsResponseSchema = /*@__PURE__*/ messageDesc(file_toshi_workspace_v1_secrets, 17);
91
101
  /**
92
102
  * Describes the message toshi.workspace.v1.ListSecretVersionsRequest.
93
103
  * Use `create(ListSecretVersionsRequestSchema)` to create a new message.
94
104
  */
95
- export const ListSecretVersionsRequestSchema = /*@__PURE__*/ messageDesc(file_toshi_workspace_v1_secrets, 16);
105
+ export const ListSecretVersionsRequestSchema = /*@__PURE__*/ messageDesc(file_toshi_workspace_v1_secrets, 18);
96
106
  /**
97
107
  * Describes the message toshi.workspace.v1.ListSecretVersionsResponse.
98
108
  * Use `create(ListSecretVersionsResponseSchema)` to create a new message.
99
109
  */
100
- export const ListSecretVersionsResponseSchema = /*@__PURE__*/ messageDesc(file_toshi_workspace_v1_secrets, 17);
110
+ export const ListSecretVersionsResponseSchema = /*@__PURE__*/ messageDesc(file_toshi_workspace_v1_secrets, 19);
101
111
  /**
102
112
  * Describes the message toshi.workspace.v1.GrantSecretSetRequest.
103
113
  * Use `create(GrantSecretSetRequestSchema)` to create a new message.
104
114
  */
105
- export const GrantSecretSetRequestSchema = /*@__PURE__*/ messageDesc(file_toshi_workspace_v1_secrets, 18);
115
+ export const GrantSecretSetRequestSchema = /*@__PURE__*/ messageDesc(file_toshi_workspace_v1_secrets, 20);
106
116
  /**
107
117
  * Describes the message toshi.workspace.v1.GrantSecretSetResponse.
108
118
  * Use `create(GrantSecretSetResponseSchema)` to create a new message.
109
119
  */
110
- export const GrantSecretSetResponseSchema = /*@__PURE__*/ messageDesc(file_toshi_workspace_v1_secrets, 19);
120
+ export const GrantSecretSetResponseSchema = /*@__PURE__*/ messageDesc(file_toshi_workspace_v1_secrets, 21);
111
121
  /**
112
122
  * Describes the message toshi.workspace.v1.RevokeSecretSetRequest.
113
123
  * Use `create(RevokeSecretSetRequestSchema)` to create a new message.
114
124
  */
115
- export const RevokeSecretSetRequestSchema = /*@__PURE__*/ messageDesc(file_toshi_workspace_v1_secrets, 20);
125
+ export const RevokeSecretSetRequestSchema = /*@__PURE__*/ messageDesc(file_toshi_workspace_v1_secrets, 22);
116
126
  /**
117
127
  * Describes the message toshi.workspace.v1.RevokeSecretSetResponse.
118
128
  * Use `create(RevokeSecretSetResponseSchema)` to create a new message.
119
129
  */
120
- export const RevokeSecretSetResponseSchema = /*@__PURE__*/ messageDesc(file_toshi_workspace_v1_secrets, 21);
130
+ export const RevokeSecretSetResponseSchema = /*@__PURE__*/ messageDesc(file_toshi_workspace_v1_secrets, 23);
121
131
  /**
122
132
  * Describes the message toshi.workspace.v1.ListSecretSetGrantsRequest.
123
133
  * Use `create(ListSecretSetGrantsRequestSchema)` to create a new message.
124
134
  */
125
- export const ListSecretSetGrantsRequestSchema = /*@__PURE__*/ messageDesc(file_toshi_workspace_v1_secrets, 22);
135
+ export const ListSecretSetGrantsRequestSchema = /*@__PURE__*/ messageDesc(file_toshi_workspace_v1_secrets, 24);
126
136
  /**
127
137
  * Describes the message toshi.workspace.v1.ListSecretSetGrantsResponse.
128
138
  * Use `create(ListSecretSetGrantsResponseSchema)` to create a new message.
129
139
  */
130
- export const ListSecretSetGrantsResponseSchema = /*@__PURE__*/ messageDesc(file_toshi_workspace_v1_secrets, 23);
140
+ export const ListSecretSetGrantsResponseSchema = /*@__PURE__*/ messageDesc(file_toshi_workspace_v1_secrets, 25);
131
141
  /**
132
142
  * SecretGranteeKind is what a set is granted to.
133
143
  *
@@ -157,6 +167,13 @@ export var SecretGranteeKind;
157
167
  * @generated from enum value: SECRET_GRANTEE_KIND_SERVICE = 3;
158
168
  */
159
169
  SecretGranteeKind[SecretGranteeKind["SERVICE"] = 3] = "SERVICE";
170
+ /**
171
+ * The builds of an image: grantee is the image's name. Its values reach
172
+ * the build's setup command only, never a VM started from the image.
173
+ *
174
+ * @generated from enum value: SECRET_GRANTEE_KIND_IMAGE_BUILD = 4;
175
+ */
176
+ SecretGranteeKind[SecretGranteeKind["IMAGE_BUILD"] = 4] = "IMAGE_BUILD";
160
177
  })(SecretGranteeKind || (SecretGranteeKind = {}));
161
178
  /**
162
179
  * Describes the enum toshi.workspace.v1.SecretGranteeKind.
@@ -175,8 +192,15 @@ export const SecretGranteeKindSchema = /*@__PURE__*/ enumDesc(file_toshi_workspa
175
192
  * workspace does not have is NOT_FOUND.
176
193
  *
177
194
  * No call returns a value: a key is answered with its name, version, size
178
- * and time. The calls take no request_key: a retried PutSecret makes one
179
- * more version.
195
+ * and time. CreateSecretSet takes a request_key; the other calls take none:
196
+ * a retried PutSecret makes one more version.
197
+ *
198
+ * A key can be one person's own: only the workloads that person starts
199
+ * receive it, beside the keys of the environment's set, while the person
200
+ * holds a role in the workspace. A sandbox's commands receive it only when
201
+ * that person runs them, and CI jobs never. A workspace token starts
202
+ * workloads as the person who created it. The calls on keys take own, for
203
+ * the caller's own key, or owner, a person's user id, for that person's.
180
204
  *
181
205
  * @generated from service toshi.workspace.v1.SecretService
182
206
  */
@@ -230,6 +230,13 @@ export type CreateStorageProviderRequest = Message<"toshi.workspace.v1.CreateSto
230
230
  * @generated from field: string mode = 10;
231
231
  */
232
232
  mode: string;
233
+ /**
234
+ * A key that makes the call safe to retry: a retry with the same key and
235
+ * the same request answers with the provider the first call stored.
236
+ *
237
+ * @generated from field: string request_key = 11;
238
+ */
239
+ requestKey: string;
233
240
  };
234
241
  /**
235
242
  * CreateStorageProviderRequest describes the workspace's own bucket.
@@ -285,6 +292,13 @@ export type CreateStorageProviderRequestJson = {
285
292
  * @generated from field: string mode = 10;
286
293
  */
287
294
  mode?: string;
295
+ /**
296
+ * A key that makes the call safe to retry: a retry with the same key and
297
+ * the same request answers with the provider the first call stored.
298
+ *
299
+ * @generated from field: string request_key = 11;
300
+ */
301
+ requestKey?: string;
288
302
  };
289
303
  /**
290
304
  * Describes the message toshi.workspace.v1.CreateStorageProviderRequest.