@milaboratories/pl-client 3.11.5 → 3.12.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 (206) hide show
  1. package/dist/core/PromiseTracker.cjs.map +1 -1
  2. package/dist/core/PromiseTracker.d.ts.map +1 -1
  3. package/dist/core/PromiseTracker.js.map +1 -1
  4. package/dist/core/StatefulPromise.cjs +2 -0
  5. package/dist/core/StatefulPromise.cjs.map +1 -1
  6. package/dist/core/StatefulPromise.js +2 -0
  7. package/dist/core/StatefulPromise.js.map +1 -1
  8. package/dist/core/abstract_stream.d.ts +1 -1
  9. package/dist/core/advisory_locks.cjs.map +1 -1
  10. package/dist/core/advisory_locks.js.map +1 -1
  11. package/dist/core/auth.cjs.map +1 -1
  12. package/dist/core/auth.d.ts.map +1 -1
  13. package/dist/core/auth.js.map +1 -1
  14. package/dist/core/cache.d.ts.map +1 -1
  15. package/dist/core/capabilities.cjs.map +1 -1
  16. package/dist/core/capabilities.d.ts +2 -3
  17. package/dist/core/capabilities.d.ts.map +1 -1
  18. package/dist/core/capabilities.js.map +1 -1
  19. package/dist/core/client.cjs +23 -6
  20. package/dist/core/client.cjs.map +1 -1
  21. package/dist/core/client.d.ts +14 -4
  22. package/dist/core/client.d.ts.map +1 -1
  23. package/dist/core/client.js +22 -5
  24. package/dist/core/client.js.map +1 -1
  25. package/dist/core/config.cjs.map +1 -1
  26. package/dist/core/config.d.ts.map +1 -1
  27. package/dist/core/config.js.map +1 -1
  28. package/dist/core/default_client.cjs +5 -5
  29. package/dist/core/default_client.cjs.map +1 -1
  30. package/dist/core/default_client.d.ts.map +1 -1
  31. package/dist/core/default_client.js.map +1 -1
  32. package/dist/core/driver.cjs.map +1 -1
  33. package/dist/core/driver.d.ts.map +1 -1
  34. package/dist/core/driver.js.map +1 -1
  35. package/dist/core/error_resource.cjs.map +1 -1
  36. package/dist/core/error_resource.js.map +1 -1
  37. package/dist/core/errors.cjs +11 -11
  38. package/dist/core/errors.cjs.map +1 -1
  39. package/dist/core/errors.d.ts.map +1 -1
  40. package/dist/core/errors.js +11 -10
  41. package/dist/core/errors.js.map +1 -1
  42. package/dist/core/final.cjs +6 -2
  43. package/dist/core/final.cjs.map +1 -1
  44. package/dist/core/final.d.ts.map +1 -1
  45. package/dist/core/final.js +4 -1
  46. package/dist/core/final.js.map +1 -1
  47. package/dist/core/ll_client.cjs +60 -16
  48. package/dist/core/ll_client.cjs.map +1 -1
  49. package/dist/core/ll_client.d.ts +23 -7
  50. package/dist/core/ll_client.d.ts.map +1 -1
  51. package/dist/core/ll_client.js +62 -17
  52. package/dist/core/ll_client.js.map +1 -1
  53. package/dist/core/ll_transaction.cjs +3 -1
  54. package/dist/core/ll_transaction.cjs.map +1 -1
  55. package/dist/core/ll_transaction.d.ts +1 -1
  56. package/dist/core/ll_transaction.d.ts.map +1 -1
  57. package/dist/core/ll_transaction.js +2 -1
  58. package/dist/core/ll_transaction.js.map +1 -1
  59. package/dist/core/stat.cjs.map +1 -1
  60. package/dist/core/stat.js.map +1 -1
  61. package/dist/core/transaction.cjs +91 -4
  62. package/dist/core/transaction.cjs.map +1 -1
  63. package/dist/core/transaction.d.ts +52 -2
  64. package/dist/core/transaction.d.ts.map +1 -1
  65. package/dist/core/transaction.js +90 -5
  66. package/dist/core/transaction.js.map +1 -1
  67. package/dist/core/tree_filter.cjs +73 -18
  68. package/dist/core/tree_filter.cjs.map +1 -1
  69. package/dist/core/tree_filter.d.ts +1 -1
  70. package/dist/core/tree_filter.d.ts.map +1 -1
  71. package/dist/core/tree_filter.js +72 -19
  72. package/dist/core/tree_filter.js.map +1 -1
  73. package/dist/core/type_conversion.cjs +19 -20
  74. package/dist/core/type_conversion.cjs.map +1 -1
  75. package/dist/core/type_conversion.js +19 -19
  76. package/dist/core/type_conversion.js.map +1 -1
  77. package/dist/core/types.cjs +2 -3
  78. package/dist/core/types.cjs.map +1 -1
  79. package/dist/core/types.d.ts.map +1 -1
  80. package/dist/core/types.js +2 -2
  81. package/dist/core/types.js.map +1 -1
  82. package/dist/core/unauth_client.cjs +7 -6
  83. package/dist/core/unauth_client.cjs.map +1 -1
  84. package/dist/core/unauth_client.d.ts +9 -0
  85. package/dist/core/unauth_client.d.ts.map +1 -1
  86. package/dist/core/unauth_client.js +7 -5
  87. package/dist/core/unauth_client.js.map +1 -1
  88. package/dist/core/user_resources.cjs +57 -1
  89. package/dist/core/user_resources.cjs.map +1 -1
  90. package/dist/core/user_resources.d.ts +55 -1
  91. package/dist/core/user_resources.d.ts.map +1 -1
  92. package/dist/core/user_resources.js +57 -0
  93. package/dist/core/user_resources.js.map +1 -1
  94. package/dist/core/websocket_stream.cjs +17 -20
  95. package/dist/core/websocket_stream.cjs.map +1 -1
  96. package/dist/core/websocket_stream.js +16 -19
  97. package/dist/core/websocket_stream.js.map +1 -1
  98. package/dist/core/wire.d.ts.map +1 -1
  99. package/dist/helpers/pl.cjs +25 -0
  100. package/dist/helpers/pl.cjs.map +1 -1
  101. package/dist/helpers/pl.d.ts +1 -1
  102. package/dist/helpers/pl.d.ts.map +1 -1
  103. package/dist/helpers/pl.js +1 -1
  104. package/dist/helpers/pl.js.map +1 -1
  105. package/dist/helpers/poll.cjs +5 -1
  106. package/dist/helpers/poll.cjs.map +1 -1
  107. package/dist/helpers/poll.d.ts.map +1 -1
  108. package/dist/helpers/poll.js +4 -0
  109. package/dist/helpers/poll.js.map +1 -1
  110. package/dist/helpers/retry_strategy.cjs +1 -0
  111. package/dist/helpers/retry_strategy.cjs.map +1 -1
  112. package/dist/helpers/retry_strategy.js +1 -1
  113. package/dist/helpers/retry_strategy.js.map +1 -1
  114. package/dist/helpers/tx_helpers.cjs +0 -1
  115. package/dist/helpers/tx_helpers.cjs.map +1 -1
  116. package/dist/helpers/tx_helpers.d.ts.map +1 -1
  117. package/dist/helpers/tx_helpers.js.map +1 -1
  118. package/dist/index.cjs +3 -1
  119. package/dist/index.d.ts +3 -3
  120. package/dist/index.js +2 -2
  121. package/dist/proto-grpc/github.com/googleapis/googleapis/google/rpc/status.cjs +0 -1
  122. package/dist/proto-grpc/github.com/googleapis/googleapis/google/rpc/status.cjs.map +1 -1
  123. package/dist/proto-grpc/github.com/googleapis/googleapis/google/rpc/status.d.ts.map +1 -1
  124. package/dist/proto-grpc/github.com/googleapis/googleapis/google/rpc/status.js.map +1 -1
  125. package/dist/proto-grpc/github.com/milaboratory/pl/plapi/plapiproto/api.cjs +537 -83
  126. package/dist/proto-grpc/github.com/milaboratory/pl/plapi/plapiproto/api.cjs.map +1 -1
  127. package/dist/proto-grpc/github.com/milaboratory/pl/plapi/plapiproto/api.client.cjs +11 -4
  128. package/dist/proto-grpc/github.com/milaboratory/pl/plapi/plapiproto/api.client.cjs.map +1 -1
  129. package/dist/proto-grpc/github.com/milaboratory/pl/plapi/plapiproto/api.client.d.ts +12 -6
  130. package/dist/proto-grpc/github.com/milaboratory/pl/plapi/plapiproto/api.client.d.ts.map +1 -1
  131. package/dist/proto-grpc/github.com/milaboratory/pl/plapi/plapiproto/api.client.js +11 -3
  132. package/dist/proto-grpc/github.com/milaboratory/pl/plapi/plapiproto/api.client.js.map +1 -1
  133. package/dist/proto-grpc/github.com/milaboratory/pl/plapi/plapiproto/api.d.ts +112 -7
  134. package/dist/proto-grpc/github.com/milaboratory/pl/plapi/plapiproto/api.d.ts.map +1 -1
  135. package/dist/proto-grpc/github.com/milaboratory/pl/plapi/plapiproto/api.js +336 -83
  136. package/dist/proto-grpc/github.com/milaboratory/pl/plapi/plapiproto/api.js.map +1 -1
  137. package/dist/proto-grpc/github.com/milaboratory/pl/plapi/plapiproto/api_types.cjs +23 -7
  138. package/dist/proto-grpc/github.com/milaboratory/pl/plapi/plapiproto/api_types.cjs.map +1 -1
  139. package/dist/proto-grpc/github.com/milaboratory/pl/plapi/plapiproto/api_types.d.ts +10 -3
  140. package/dist/proto-grpc/github.com/milaboratory/pl/plapi/plapiproto/api_types.d.ts.map +1 -1
  141. package/dist/proto-grpc/github.com/milaboratory/pl/plapi/plapiproto/api_types.js +18 -7
  142. package/dist/proto-grpc/github.com/milaboratory/pl/plapi/plapiproto/api_types.js.map +1 -1
  143. package/dist/proto-grpc/github.com/milaboratory/pl/plapi/plapiproto/base_types.cjs +1 -2
  144. package/dist/proto-grpc/github.com/milaboratory/pl/plapi/plapiproto/base_types.cjs.map +1 -1
  145. package/dist/proto-grpc/github.com/milaboratory/pl/plapi/plapiproto/base_types.d.ts.map +1 -1
  146. package/dist/proto-grpc/github.com/milaboratory/pl/plapi/plapiproto/base_types.js +1 -1
  147. package/dist/proto-grpc/github.com/milaboratory/pl/plapi/plapiproto/base_types.js.map +1 -1
  148. package/dist/proto-grpc/github.com/milaboratory/pl/plapi/plapiproto/resource_types.cjs +2 -2
  149. package/dist/proto-grpc/github.com/milaboratory/pl/plapi/plapiproto/resource_types.cjs.map +1 -1
  150. package/dist/proto-grpc/github.com/milaboratory/pl/plapi/plapiproto/resource_types.d.ts +1 -1
  151. package/dist/proto-grpc/github.com/milaboratory/pl/plapi/plapiproto/resource_types.d.ts.map +1 -1
  152. package/dist/proto-grpc/github.com/milaboratory/pl/plapi/plapiproto/resource_types.js +2 -2
  153. package/dist/proto-grpc/github.com/milaboratory/pl/plapi/plapiproto/resource_types.js.map +1 -1
  154. package/dist/proto-grpc/google/protobuf/any.cjs +1 -2
  155. package/dist/proto-grpc/google/protobuf/any.cjs.map +1 -1
  156. package/dist/proto-grpc/google/protobuf/any.d.ts.map +1 -1
  157. package/dist/proto-grpc/google/protobuf/any.js +1 -1
  158. package/dist/proto-grpc/google/protobuf/any.js.map +1 -1
  159. package/dist/proto-grpc/google/protobuf/duration.cjs +0 -1
  160. package/dist/proto-grpc/google/protobuf/duration.cjs.map +1 -1
  161. package/dist/proto-grpc/google/protobuf/duration.d.ts.map +1 -1
  162. package/dist/proto-grpc/google/protobuf/duration.js.map +1 -1
  163. package/dist/proto-grpc/google/protobuf/timestamp.cjs +0 -1
  164. package/dist/proto-grpc/google/protobuf/timestamp.cjs.map +1 -1
  165. package/dist/proto-grpc/google/protobuf/timestamp.d.ts.map +1 -1
  166. package/dist/proto-grpc/google/protobuf/timestamp.js.map +1 -1
  167. package/dist/proto-grpc/google/rpc/code.d.ts.map +1 -1
  168. package/dist/proto-rest/index.cjs +1 -1
  169. package/dist/proto-rest/index.cjs.map +1 -1
  170. package/dist/proto-rest/index.d.ts +1 -1
  171. package/dist/proto-rest/index.d.ts.map +1 -1
  172. package/dist/proto-rest/index.js.map +1 -1
  173. package/dist/proto-rest/plapi.d.ts +30 -9
  174. package/dist/proto-rest/plapi.d.ts.map +1 -1
  175. package/dist/test/tcp-proxy.cjs +2 -2
  176. package/dist/test/tcp-proxy.cjs.map +1 -1
  177. package/dist/test/tcp-proxy.d.ts +1 -1
  178. package/dist/test/tcp-proxy.js.map +1 -1
  179. package/dist/test/test_config.cjs +8 -2
  180. package/dist/test/test_config.cjs.map +1 -1
  181. package/dist/test/test_config.d.ts +1 -1
  182. package/dist/test/test_config.d.ts.map +1 -1
  183. package/dist/test/test_config.js +1 -1
  184. package/dist/test/test_config.js.map +1 -1
  185. package/dist/util/pl.cjs.map +1 -1
  186. package/dist/util/pl.js.map +1 -1
  187. package/dist/util/util.cjs.map +1 -1
  188. package/dist/util/util.js.map +1 -1
  189. package/package.json +4 -4
  190. package/src/core/capabilities.ts +10 -3
  191. package/src/core/client.ts +30 -3
  192. package/src/core/errors.ts +2 -0
  193. package/src/core/final.ts +4 -0
  194. package/src/core/ll_client.test.ts +15 -2
  195. package/src/core/ll_client.ts +66 -11
  196. package/src/core/transaction.ts +103 -3
  197. package/src/core/unauth_client.ts +17 -2
  198. package/src/core/user_resources.ts +85 -0
  199. package/src/proto-grpc/github.com/milaboratory/pl/plapi/plapiproto/api.client.ts +16 -3
  200. package/src/proto-grpc/github.com/milaboratory/pl/plapi/plapiproto/api.ts +335 -12
  201. package/src/proto-grpc/github.com/milaboratory/pl/plapi/plapiproto/api_types.ts +21 -7
  202. package/src/proto-rest/plapi.ts +29 -8
  203. package/dist/proto-grpc/google/rpc/code.cjs +0 -224
  204. package/dist/proto-grpc/google/rpc/code.cjs.map +0 -1
  205. package/dist/proto-grpc/google/rpc/code.js +0 -224
  206. package/dist/proto-grpc/google/rpc/code.js.map +0 -1
@@ -539,6 +539,12 @@ export interface TxAPI_ClientMessage {
539
539
  * @generated from protobuf field: MiLaboratories.PL.API.AuthAPI.RevokeAccess.Request revoke_access = 411
540
540
  */
541
541
  revokeAccess: AuthAPI_RevokeAccess_Request; // revoke access to a resource within transaction
542
+ } | {
543
+ oneofKind: "listGrants";
544
+ /**
545
+ * @generated from protobuf field: MiLaboratories.PL.API.AuthAPI.ListGrants.Request list_grants = 412
546
+ */
547
+ listGrants: AuthAPI_ListGrants_Request; // list grants on a resource within transaction
542
548
  } | {
543
549
  oneofKind: undefined;
544
550
  };
@@ -928,6 +934,12 @@ export interface TxAPI_ServerMessage {
928
934
  * @generated from protobuf field: MiLaboratories.PL.API.AuthAPI.RevokeAccess.Response revoke_access = 411
929
935
  */
930
936
  revokeAccess: AuthAPI_RevokeAccess_Response;
937
+ } | {
938
+ oneofKind: "listGrants";
939
+ /**
940
+ * @generated from protobuf field: MiLaboratories.PL.API.AuthAPI.ListGrants.TxResponse list_grants = 412
941
+ */
942
+ listGrants: AuthAPI_ListGrants_TxResponse;
931
943
  } | {
932
944
  oneofKind: undefined;
933
945
  };
@@ -3593,6 +3605,10 @@ export interface AuthAPI_ListMethods_SSOAuthMethod {
3593
3605
  * @generated from protobuf field: MiLaboratories.PL.API.AuthAPI.ListMethods.SSOAuthMethod.FlowType flow_type = 10
3594
3606
  */
3595
3607
  flowType: AuthAPI_ListMethods_SSOAuthMethod_FlowType;
3608
+ /**
3609
+ * @generated from protobuf field: optional string access_type = 11
3610
+ */
3611
+ accessType?: string; // "online" | "offline"; Google-specific (offline → refresh token)
3596
3612
  }
3597
3613
  /**
3598
3614
  * @generated from protobuf enum MiLaboratories.PL.API.AuthAPI.ListMethods.SSOAuthMethod.FlowType
@@ -3672,6 +3688,17 @@ export interface AuthAPI_BeginSSOLogin_PublicPKCE {
3672
3688
  * @generated from protobuf field: google.protobuf.Timestamp expires_at = 2
3673
3689
  */
3674
3690
  expiresAt?: Timestamp; // after this, nonce is no longer valid (when enforced)
3691
+ /**
3692
+ * Confidential-client secret for the IdP token exchange; absent for public clients.
3693
+ * Rationale: Google's OIDC does not support public clients — it requires a
3694
+ * client_secret at the token endpoint even for the PKCE auth-code flow. That is a
3695
+ * gap in Google Cloud OIDC: a desktop app cannot use Google OIDC without the secret
3696
+ * leaving the server. So the backend holds the secret and forwards it here to the
3697
+ * desktop, which performs the token exchange as a confidential client.
3698
+ *
3699
+ * @generated from protobuf field: optional string client_secret = 3
3700
+ */
3701
+ clientSecret?: string;
3675
3702
  }
3676
3703
  /**
3677
3704
  * @generated from protobuf message MiLaboratories.PL.API.AuthAPI.BeginSSOLogin.Response
@@ -3911,7 +3938,7 @@ export interface AuthAPI_GrantAccess_Request {
3911
3938
  /**
3912
3939
  * @generated from protobuf field: MiLaboratories.PL.API.AuthAPI.GrantAccess.GrantType grant_type = 5
3913
3940
  */
3914
- grantType: AuthAPI_GrantAccess_GrantType; // default: GENERAL
3941
+ grantType: AuthAPI_GrantAccess_GrantType; // default: SINGLE_USER
3915
3942
  }
3916
3943
  /**
3917
3944
  * @generated from protobuf message MiLaboratories.PL.API.AuthAPI.GrantAccess.Response
@@ -3925,17 +3952,17 @@ export interface AuthAPI_GrantAccess_Response {
3925
3952
  */
3926
3953
  export enum AuthAPI_GrantAccess_GrantType {
3927
3954
  /**
3928
- * regular user-to-user grant (default)
3955
+ * grants access for single user (default).
3929
3956
  *
3930
- * @generated from protobuf enum value: GENERAL = 0;
3957
+ * @generated from protobuf enum value: SINGLE_USER = 0;
3931
3958
  */
3932
- GENERAL = 0,
3959
+ SINGLE_USER = 0,
3933
3960
  /**
3934
- * make resource publically-accessible, showing it in ListUserResources for all users. Requires controller role.
3961
+ * makes resource publically-accessible, showing it in ListUserResources for all authorised clients.
3935
3962
  *
3936
- * @generated from protobuf enum value: MAKE_RESOURCE_PUBLIC = 1;
3963
+ * @generated from protobuf enum value: ANY_AUTHORISED = 1;
3937
3964
  */
3938
- MAKE_RESOURCE_PUBLIC = 1
3965
+ ANY_AUTHORISED = 1
3939
3966
  }
3940
3967
  /**
3941
3968
  * @generated from protobuf message MiLaboratories.PL.API.AuthAPI.RevokeAccess
@@ -3991,6 +4018,15 @@ export interface AuthAPI_ListGrants_Response {
3991
4018
  */
3992
4019
  grant?: AuthAPI_Grant; // one per stream message
3993
4020
  }
4021
+ /**
4022
+ * @generated from protobuf message MiLaboratories.PL.API.AuthAPI.ListGrants.TxResponse
4023
+ */
4024
+ export interface AuthAPI_ListGrants_TxResponse {
4025
+ /**
4026
+ * @generated from protobuf field: repeated MiLaboratories.PL.API.AuthAPI.Grant grants = 1
4027
+ */
4028
+ grants: AuthAPI_Grant[]; // all grants for the resource in a single transactional response
4029
+ }
3994
4030
  /**
3995
4031
  * @generated from protobuf message MiLaboratories.PL.API.AuthAPI.Grant
3996
4032
  */
@@ -3998,11 +4034,11 @@ export interface AuthAPI_Grant {
3998
4034
  /**
3999
4035
  * @generated from protobuf field: string user = 1
4000
4036
  */
4001
- user: string;
4037
+ user: string; // grantee
4002
4038
  /**
4003
4039
  * @generated from protobuf field: uint64 resource_id = 2
4004
4040
  */
4005
- resourceId: bigint;
4041
+ resourceId: bigint; // target resource of a grant (what grantee can access)
4006
4042
  /**
4007
4043
  * @generated from protobuf field: MiLaboratories.PL.API.AuthAPI.Grant.Permissions permissions = 3
4008
4044
  */
@@ -4188,6 +4224,41 @@ export interface AuthAPI_ListUserResources_SharedResource {
4188
4224
  */
4189
4225
  permissions?: AuthAPI_Grant_Permissions;
4190
4226
  }
4227
+ /**
4228
+ * @generated from protobuf message MiLaboratories.PL.API.AuthAPI.User
4229
+ */
4230
+ export interface AuthAPI_User {
4231
+ /**
4232
+ * login is the stable identifier of the user — the grant target and the
4233
+ * GetUserRoot key. Further fields (e.g. first name, last name, email) may
4234
+ * be added later without breaking compatibility.
4235
+ *
4236
+ * @generated from protobuf field: string login = 1
4237
+ */
4238
+ login: string;
4239
+ }
4240
+ /**
4241
+ * @generated from protobuf message MiLaboratories.PL.API.AuthAPI.ListUsers
4242
+ */
4243
+ export interface AuthAPI_ListUsers {
4244
+ }
4245
+ /**
4246
+ * @generated from protobuf message MiLaboratories.PL.API.AuthAPI.ListUsers.Request
4247
+ */
4248
+ export interface AuthAPI_ListUsers_Request {
4249
+ }
4250
+ /**
4251
+ * Lists users known to the server. A user becomes known on first login;
4252
+ * provisioned users who have never logged in do not appear.
4253
+ *
4254
+ * @generated from protobuf message MiLaboratories.PL.API.AuthAPI.ListUsers.Response
4255
+ */
4256
+ export interface AuthAPI_ListUsers_Response {
4257
+ /**
4258
+ * @generated from protobuf field: repeated MiLaboratories.PL.API.AuthAPI.User users = 1
4259
+ */
4260
+ users: AuthAPI_User[];
4261
+ }
4191
4262
  /**
4192
4263
  * @generated from protobuf enum MiLaboratories.PL.API.AuthAPI.Role
4193
4264
  */
@@ -4474,7 +4545,8 @@ class TxAPI_ClientMessage$Type extends MessageType<TxAPI_ClientMessage> {
4474
4545
  { no: 351, name: "controller_features_clear", kind: "message", oneof: "request", T: () => ControllerAPI_ClearFeatures_Request },
4475
4546
  { no: 400, name: "set_default_color", kind: "message", oneof: "request", T: () => TxAPI_SetDefaultColor_Request },
4476
4547
  { no: 410, name: "grant_access", kind: "message", oneof: "request", T: () => AuthAPI_GrantAccess_Request },
4477
- { no: 411, name: "revoke_access", kind: "message", oneof: "request", T: () => AuthAPI_RevokeAccess_Request }
4548
+ { no: 411, name: "revoke_access", kind: "message", oneof: "request", T: () => AuthAPI_RevokeAccess_Request },
4549
+ { no: 412, name: "list_grants", kind: "message", oneof: "request", T: () => AuthAPI_ListGrants_Request }
4478
4550
  ]);
4479
4551
  }
4480
4552
  create(value?: PartialMessage<TxAPI_ClientMessage>): TxAPI_ClientMessage {
@@ -4859,6 +4931,12 @@ class TxAPI_ClientMessage$Type extends MessageType<TxAPI_ClientMessage> {
4859
4931
  revokeAccess: AuthAPI_RevokeAccess_Request.internalBinaryRead(reader, reader.uint32(), options, (message.request as any).revokeAccess)
4860
4932
  };
4861
4933
  break;
4934
+ case /* MiLaboratories.PL.API.AuthAPI.ListGrants.Request list_grants */ 412:
4935
+ message.request = {
4936
+ oneofKind: "listGrants",
4937
+ listGrants: AuthAPI_ListGrants_Request.internalBinaryRead(reader, reader.uint32(), options, (message.request as any).listGrants)
4938
+ };
4939
+ break;
4862
4940
  default:
4863
4941
  let u = options.readUnknownField;
4864
4942
  if (u === "throw")
@@ -5057,6 +5135,9 @@ class TxAPI_ClientMessage$Type extends MessageType<TxAPI_ClientMessage> {
5057
5135
  /* MiLaboratories.PL.API.AuthAPI.RevokeAccess.Request revoke_access = 411; */
5058
5136
  if (message.request.oneofKind === "revokeAccess")
5059
5137
  AuthAPI_RevokeAccess_Request.internalBinaryWrite(message.request.revokeAccess, writer.tag(411, WireType.LengthDelimited).fork(), options).join();
5138
+ /* MiLaboratories.PL.API.AuthAPI.ListGrants.Request list_grants = 412; */
5139
+ if (message.request.oneofKind === "listGrants")
5140
+ AuthAPI_ListGrants_Request.internalBinaryWrite(message.request.listGrants, writer.tag(412, WireType.LengthDelimited).fork(), options).join();
5060
5141
  let u = options.writeUnknownFields;
5061
5142
  if (u !== false)
5062
5143
  (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
@@ -5134,6 +5215,7 @@ class TxAPI_ServerMessage$Type extends MessageType<TxAPI_ServerMessage> {
5134
5215
  { no: 400, name: "set_default_color", kind: "message", oneof: "response", T: () => TxAPI_SetDefaultColor_Response },
5135
5216
  { no: 410, name: "grant_access", kind: "message", oneof: "response", T: () => AuthAPI_GrantAccess_Response },
5136
5217
  { no: 411, name: "revoke_access", kind: "message", oneof: "response", T: () => AuthAPI_RevokeAccess_Response },
5218
+ { no: 412, name: "list_grants", kind: "message", oneof: "response", T: () => AuthAPI_ListGrants_TxResponse },
5137
5219
  { no: 3, name: "error", kind: "message", T: () => Status }
5138
5220
  ]);
5139
5221
  }
@@ -5522,6 +5604,12 @@ class TxAPI_ServerMessage$Type extends MessageType<TxAPI_ServerMessage> {
5522
5604
  revokeAccess: AuthAPI_RevokeAccess_Response.internalBinaryRead(reader, reader.uint32(), options, (message.response as any).revokeAccess)
5523
5605
  };
5524
5606
  break;
5607
+ case /* MiLaboratories.PL.API.AuthAPI.ListGrants.TxResponse list_grants */ 412:
5608
+ message.response = {
5609
+ oneofKind: "listGrants",
5610
+ listGrants: AuthAPI_ListGrants_TxResponse.internalBinaryRead(reader, reader.uint32(), options, (message.response as any).listGrants)
5611
+ };
5612
+ break;
5525
5613
  case /* google.rpc.Status error */ 3:
5526
5614
  message.error = Status.internalBinaryRead(reader, reader.uint32(), options, message.error);
5527
5615
  break;
@@ -5729,6 +5817,9 @@ class TxAPI_ServerMessage$Type extends MessageType<TxAPI_ServerMessage> {
5729
5817
  /* MiLaboratories.PL.API.AuthAPI.RevokeAccess.Response revoke_access = 411; */
5730
5818
  if (message.response.oneofKind === "revokeAccess")
5731
5819
  AuthAPI_RevokeAccess_Response.internalBinaryWrite(message.response.revokeAccess, writer.tag(411, WireType.LengthDelimited).fork(), options).join();
5820
+ /* MiLaboratories.PL.API.AuthAPI.ListGrants.TxResponse list_grants = 412; */
5821
+ if (message.response.oneofKind === "listGrants")
5822
+ AuthAPI_ListGrants_TxResponse.internalBinaryWrite(message.response.listGrants, writer.tag(412, WireType.LengthDelimited).fork(), options).join();
5732
5823
  let u = options.writeUnknownFields;
5733
5824
  if (u !== false)
5734
5825
  (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
@@ -17476,7 +17567,8 @@ class AuthAPI_ListMethods_SSOAuthMethod$Type extends MessageType<AuthAPI_ListMet
17476
17567
  { no: 7, name: "subject_token_source", kind: "scalar", T: 9 /*ScalarType.STRING*/ },
17477
17568
  { no: 8, name: "user_id_claim", kind: "scalar", T: 9 /*ScalarType.STRING*/ },
17478
17569
  { no: 9, name: "groups_claim", kind: "scalar", T: 9 /*ScalarType.STRING*/ },
17479
- { no: 10, name: "flow_type", kind: "enum", T: () => ["MiLaboratories.PL.API.AuthAPI.ListMethods.SSOAuthMethod.FlowType", AuthAPI_ListMethods_SSOAuthMethod_FlowType] }
17570
+ { no: 10, name: "flow_type", kind: "enum", T: () => ["MiLaboratories.PL.API.AuthAPI.ListMethods.SSOAuthMethod.FlowType", AuthAPI_ListMethods_SSOAuthMethod_FlowType] },
17571
+ { no: 11, name: "access_type", kind: "scalar", opt: true, T: 9 /*ScalarType.STRING*/ }
17480
17572
  ]);
17481
17573
  }
17482
17574
  create(value?: PartialMessage<AuthAPI_ListMethods_SSOAuthMethod>): AuthAPI_ListMethods_SSOAuthMethod {
@@ -17534,6 +17626,9 @@ class AuthAPI_ListMethods_SSOAuthMethod$Type extends MessageType<AuthAPI_ListMet
17534
17626
  case /* MiLaboratories.PL.API.AuthAPI.ListMethods.SSOAuthMethod.FlowType flow_type */ 10:
17535
17627
  message.flowType = reader.int32();
17536
17628
  break;
17629
+ case /* optional string access_type */ 11:
17630
+ message.accessType = reader.string();
17631
+ break;
17537
17632
  default:
17538
17633
  let u = options.readUnknownField;
17539
17634
  if (u === "throw")
@@ -17580,6 +17675,9 @@ class AuthAPI_ListMethods_SSOAuthMethod$Type extends MessageType<AuthAPI_ListMet
17580
17675
  /* MiLaboratories.PL.API.AuthAPI.ListMethods.SSOAuthMethod.FlowType flow_type = 10; */
17581
17676
  if (message.flowType !== 0)
17582
17677
  writer.tag(10, WireType.Varint).int32(message.flowType);
17678
+ /* optional string access_type = 11; */
17679
+ if (message.accessType !== undefined)
17680
+ writer.tag(11, WireType.LengthDelimited).string(message.accessType);
17583
17681
  let u = options.writeUnknownFields;
17584
17682
  if (u !== false)
17585
17683
  (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
@@ -17757,7 +17855,8 @@ class AuthAPI_BeginSSOLogin_PublicPKCE$Type extends MessageType<AuthAPI_BeginSSO
17757
17855
  constructor() {
17758
17856
  super("MiLaboratories.PL.API.AuthAPI.BeginSSOLogin.PublicPKCE", [
17759
17857
  { no: 1, name: "nonce", kind: "scalar", T: 9 /*ScalarType.STRING*/ },
17760
- { no: 2, name: "expires_at", kind: "message", T: () => Timestamp }
17858
+ { no: 2, name: "expires_at", kind: "message", T: () => Timestamp },
17859
+ { no: 3, name: "client_secret", kind: "scalar", opt: true, T: 9 /*ScalarType.STRING*/ }
17761
17860
  ]);
17762
17861
  }
17763
17862
  create(value?: PartialMessage<AuthAPI_BeginSSOLogin_PublicPKCE>): AuthAPI_BeginSSOLogin_PublicPKCE {
@@ -17778,6 +17877,9 @@ class AuthAPI_BeginSSOLogin_PublicPKCE$Type extends MessageType<AuthAPI_BeginSSO
17778
17877
  case /* google.protobuf.Timestamp expires_at */ 2:
17779
17878
  message.expiresAt = Timestamp.internalBinaryRead(reader, reader.uint32(), options, message.expiresAt);
17780
17879
  break;
17880
+ case /* optional string client_secret */ 3:
17881
+ message.clientSecret = reader.string();
17882
+ break;
17781
17883
  default:
17782
17884
  let u = options.readUnknownField;
17783
17885
  if (u === "throw")
@@ -17796,6 +17898,9 @@ class AuthAPI_BeginSSOLogin_PublicPKCE$Type extends MessageType<AuthAPI_BeginSSO
17796
17898
  /* google.protobuf.Timestamp expires_at = 2; */
17797
17899
  if (message.expiresAt)
17798
17900
  Timestamp.internalBinaryWrite(message.expiresAt, writer.tag(2, WireType.LengthDelimited).fork(), options).join();
17901
+ /* optional string client_secret = 3; */
17902
+ if (message.clientSecret !== undefined)
17903
+ writer.tag(3, WireType.LengthDelimited).string(message.clientSecret);
17799
17904
  let u = options.writeUnknownFields;
17800
17905
  if (u !== false)
17801
17906
  (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
@@ -19063,6 +19168,53 @@ class AuthAPI_ListGrants_Response$Type extends MessageType<AuthAPI_ListGrants_Re
19063
19168
  */
19064
19169
  export const AuthAPI_ListGrants_Response = new AuthAPI_ListGrants_Response$Type();
19065
19170
  // @generated message type with reflection information, may provide speed optimized methods
19171
+ class AuthAPI_ListGrants_TxResponse$Type extends MessageType<AuthAPI_ListGrants_TxResponse> {
19172
+ constructor() {
19173
+ super("MiLaboratories.PL.API.AuthAPI.ListGrants.TxResponse", [
19174
+ { no: 1, name: "grants", kind: "message", repeat: 2 /*RepeatType.UNPACKED*/, T: () => AuthAPI_Grant }
19175
+ ]);
19176
+ }
19177
+ create(value?: PartialMessage<AuthAPI_ListGrants_TxResponse>): AuthAPI_ListGrants_TxResponse {
19178
+ const message = globalThis.Object.create((this.messagePrototype!));
19179
+ message.grants = [];
19180
+ if (value !== undefined)
19181
+ reflectionMergePartial<AuthAPI_ListGrants_TxResponse>(this, message, value);
19182
+ return message;
19183
+ }
19184
+ internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: AuthAPI_ListGrants_TxResponse): AuthAPI_ListGrants_TxResponse {
19185
+ let message = target ?? this.create(), end = reader.pos + length;
19186
+ while (reader.pos < end) {
19187
+ let [fieldNo, wireType] = reader.tag();
19188
+ switch (fieldNo) {
19189
+ case /* repeated MiLaboratories.PL.API.AuthAPI.Grant grants */ 1:
19190
+ message.grants.push(AuthAPI_Grant.internalBinaryRead(reader, reader.uint32(), options));
19191
+ break;
19192
+ default:
19193
+ let u = options.readUnknownField;
19194
+ if (u === "throw")
19195
+ throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
19196
+ let d = reader.skip(wireType);
19197
+ if (u !== false)
19198
+ (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
19199
+ }
19200
+ }
19201
+ return message;
19202
+ }
19203
+ internalBinaryWrite(message: AuthAPI_ListGrants_TxResponse, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
19204
+ /* repeated MiLaboratories.PL.API.AuthAPI.Grant grants = 1; */
19205
+ for (let i = 0; i < message.grants.length; i++)
19206
+ AuthAPI_Grant.internalBinaryWrite(message.grants[i], writer.tag(1, WireType.LengthDelimited).fork(), options).join();
19207
+ let u = options.writeUnknownFields;
19208
+ if (u !== false)
19209
+ (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
19210
+ return writer;
19211
+ }
19212
+ }
19213
+ /**
19214
+ * @generated MessageType for protobuf message MiLaboratories.PL.API.AuthAPI.ListGrants.TxResponse
19215
+ */
19216
+ export const AuthAPI_ListGrants_TxResponse = new AuthAPI_ListGrants_TxResponse$Type();
19217
+ // @generated message type with reflection information, may provide speed optimized methods
19066
19218
  class AuthAPI_Grant$Type extends MessageType<AuthAPI_Grant> {
19067
19219
  constructor() {
19068
19220
  super("MiLaboratories.PL.API.AuthAPI.Grant", [
@@ -19775,6 +19927,176 @@ class AuthAPI_ListUserResources_SharedResource$Type extends MessageType<AuthAPI_
19775
19927
  */
19776
19928
  export const AuthAPI_ListUserResources_SharedResource = new AuthAPI_ListUserResources_SharedResource$Type();
19777
19929
  // @generated message type with reflection information, may provide speed optimized methods
19930
+ class AuthAPI_User$Type extends MessageType<AuthAPI_User> {
19931
+ constructor() {
19932
+ super("MiLaboratories.PL.API.AuthAPI.User", [
19933
+ { no: 1, name: "login", kind: "scalar", T: 9 /*ScalarType.STRING*/ }
19934
+ ]);
19935
+ }
19936
+ create(value?: PartialMessage<AuthAPI_User>): AuthAPI_User {
19937
+ const message = globalThis.Object.create((this.messagePrototype!));
19938
+ message.login = "";
19939
+ if (value !== undefined)
19940
+ reflectionMergePartial<AuthAPI_User>(this, message, value);
19941
+ return message;
19942
+ }
19943
+ internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: AuthAPI_User): AuthAPI_User {
19944
+ let message = target ?? this.create(), end = reader.pos + length;
19945
+ while (reader.pos < end) {
19946
+ let [fieldNo, wireType] = reader.tag();
19947
+ switch (fieldNo) {
19948
+ case /* string login */ 1:
19949
+ message.login = reader.string();
19950
+ break;
19951
+ default:
19952
+ let u = options.readUnknownField;
19953
+ if (u === "throw")
19954
+ throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
19955
+ let d = reader.skip(wireType);
19956
+ if (u !== false)
19957
+ (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
19958
+ }
19959
+ }
19960
+ return message;
19961
+ }
19962
+ internalBinaryWrite(message: AuthAPI_User, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
19963
+ /* string login = 1; */
19964
+ if (message.login !== "")
19965
+ writer.tag(1, WireType.LengthDelimited).string(message.login);
19966
+ let u = options.writeUnknownFields;
19967
+ if (u !== false)
19968
+ (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
19969
+ return writer;
19970
+ }
19971
+ }
19972
+ /**
19973
+ * @generated MessageType for protobuf message MiLaboratories.PL.API.AuthAPI.User
19974
+ */
19975
+ export const AuthAPI_User = new AuthAPI_User$Type();
19976
+ // @generated message type with reflection information, may provide speed optimized methods
19977
+ class AuthAPI_ListUsers$Type extends MessageType<AuthAPI_ListUsers> {
19978
+ constructor() {
19979
+ super("MiLaboratories.PL.API.AuthAPI.ListUsers", []);
19980
+ }
19981
+ create(value?: PartialMessage<AuthAPI_ListUsers>): AuthAPI_ListUsers {
19982
+ const message = globalThis.Object.create((this.messagePrototype!));
19983
+ if (value !== undefined)
19984
+ reflectionMergePartial<AuthAPI_ListUsers>(this, message, value);
19985
+ return message;
19986
+ }
19987
+ internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: AuthAPI_ListUsers): AuthAPI_ListUsers {
19988
+ let message = target ?? this.create(), end = reader.pos + length;
19989
+ while (reader.pos < end) {
19990
+ let [fieldNo, wireType] = reader.tag();
19991
+ switch (fieldNo) {
19992
+ default:
19993
+ let u = options.readUnknownField;
19994
+ if (u === "throw")
19995
+ throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
19996
+ let d = reader.skip(wireType);
19997
+ if (u !== false)
19998
+ (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
19999
+ }
20000
+ }
20001
+ return message;
20002
+ }
20003
+ internalBinaryWrite(message: AuthAPI_ListUsers, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
20004
+ let u = options.writeUnknownFields;
20005
+ if (u !== false)
20006
+ (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
20007
+ return writer;
20008
+ }
20009
+ }
20010
+ /**
20011
+ * @generated MessageType for protobuf message MiLaboratories.PL.API.AuthAPI.ListUsers
20012
+ */
20013
+ export const AuthAPI_ListUsers = new AuthAPI_ListUsers$Type();
20014
+ // @generated message type with reflection information, may provide speed optimized methods
20015
+ class AuthAPI_ListUsers_Request$Type extends MessageType<AuthAPI_ListUsers_Request> {
20016
+ constructor() {
20017
+ super("MiLaboratories.PL.API.AuthAPI.ListUsers.Request", []);
20018
+ }
20019
+ create(value?: PartialMessage<AuthAPI_ListUsers_Request>): AuthAPI_ListUsers_Request {
20020
+ const message = globalThis.Object.create((this.messagePrototype!));
20021
+ if (value !== undefined)
20022
+ reflectionMergePartial<AuthAPI_ListUsers_Request>(this, message, value);
20023
+ return message;
20024
+ }
20025
+ internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: AuthAPI_ListUsers_Request): AuthAPI_ListUsers_Request {
20026
+ let message = target ?? this.create(), end = reader.pos + length;
20027
+ while (reader.pos < end) {
20028
+ let [fieldNo, wireType] = reader.tag();
20029
+ switch (fieldNo) {
20030
+ default:
20031
+ let u = options.readUnknownField;
20032
+ if (u === "throw")
20033
+ throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
20034
+ let d = reader.skip(wireType);
20035
+ if (u !== false)
20036
+ (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
20037
+ }
20038
+ }
20039
+ return message;
20040
+ }
20041
+ internalBinaryWrite(message: AuthAPI_ListUsers_Request, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
20042
+ let u = options.writeUnknownFields;
20043
+ if (u !== false)
20044
+ (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
20045
+ return writer;
20046
+ }
20047
+ }
20048
+ /**
20049
+ * @generated MessageType for protobuf message MiLaboratories.PL.API.AuthAPI.ListUsers.Request
20050
+ */
20051
+ export const AuthAPI_ListUsers_Request = new AuthAPI_ListUsers_Request$Type();
20052
+ // @generated message type with reflection information, may provide speed optimized methods
20053
+ class AuthAPI_ListUsers_Response$Type extends MessageType<AuthAPI_ListUsers_Response> {
20054
+ constructor() {
20055
+ super("MiLaboratories.PL.API.AuthAPI.ListUsers.Response", [
20056
+ { no: 1, name: "users", kind: "message", repeat: 2 /*RepeatType.UNPACKED*/, T: () => AuthAPI_User }
20057
+ ]);
20058
+ }
20059
+ create(value?: PartialMessage<AuthAPI_ListUsers_Response>): AuthAPI_ListUsers_Response {
20060
+ const message = globalThis.Object.create((this.messagePrototype!));
20061
+ message.users = [];
20062
+ if (value !== undefined)
20063
+ reflectionMergePartial<AuthAPI_ListUsers_Response>(this, message, value);
20064
+ return message;
20065
+ }
20066
+ internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: AuthAPI_ListUsers_Response): AuthAPI_ListUsers_Response {
20067
+ let message = target ?? this.create(), end = reader.pos + length;
20068
+ while (reader.pos < end) {
20069
+ let [fieldNo, wireType] = reader.tag();
20070
+ switch (fieldNo) {
20071
+ case /* repeated MiLaboratories.PL.API.AuthAPI.User users */ 1:
20072
+ message.users.push(AuthAPI_User.internalBinaryRead(reader, reader.uint32(), options));
20073
+ break;
20074
+ default:
20075
+ let u = options.readUnknownField;
20076
+ if (u === "throw")
20077
+ throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
20078
+ let d = reader.skip(wireType);
20079
+ if (u !== false)
20080
+ (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
20081
+ }
20082
+ }
20083
+ return message;
20084
+ }
20085
+ internalBinaryWrite(message: AuthAPI_ListUsers_Response, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
20086
+ /* repeated MiLaboratories.PL.API.AuthAPI.User users = 1; */
20087
+ for (let i = 0; i < message.users.length; i++)
20088
+ AuthAPI_User.internalBinaryWrite(message.users[i], writer.tag(1, WireType.LengthDelimited).fork(), options).join();
20089
+ let u = options.writeUnknownFields;
20090
+ if (u !== false)
20091
+ (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
20092
+ return writer;
20093
+ }
20094
+ }
20095
+ /**
20096
+ * @generated MessageType for protobuf message MiLaboratories.PL.API.AuthAPI.ListUsers.Response
20097
+ */
20098
+ export const AuthAPI_ListUsers_Response = new AuthAPI_ListUsers_Response$Type();
20099
+ // @generated message type with reflection information, may provide speed optimized methods
19778
20100
  class MiscAPI$Type extends MessageType<MiscAPI> {
19779
20101
  constructor() {
19780
20102
  super("MiLaboratories.PL.API.MiscAPI", []);
@@ -20405,6 +20727,7 @@ export const Platform = new ServiceType("MiLaboratories.PL.API.Platform", [
20405
20727
  { name: "MintSignature", options: { "google.api.http": { post: "/v1/auth/mint-signature", body: "*" } }, I: AuthAPI_MintSignature_Request, O: AuthAPI_MintSignature_Response },
20406
20728
  { name: "GetUserRoot", options: { "google.api.http": { post: "/v1/auth/user-root", body: "*" } }, I: AuthAPI_GetUserRoot_Request, O: AuthAPI_GetUserRoot_Response },
20407
20729
  { name: "ListUserResources", serverStreaming: true, options: {}, I: AuthAPI_ListUserResources_Request, O: AuthAPI_ListUserResources_Response },
20730
+ { name: "ListUsers", options: {}, I: AuthAPI_ListUsers_Request, O: AuthAPI_ListUsers_Response },
20408
20731
  { name: "ListResourceTypes", options: { "google.api.http": { get: "/v1/resource-types" } }, I: MiscAPI_ListResourceTypes_Request, O: MiscAPI_ListResourceTypes_Response },
20409
20732
  { name: "Ping", options: { "google.api.http": { get: "/v1/ping" } }, I: MaintenanceAPI_Ping_Request, O: MaintenanceAPI_Ping_Response },
20410
20733
  { name: "License", options: { "google.api.http": { get: "/v1/license" } }, I: MaintenanceAPI_License_Request, O: MaintenanceAPI_License_Response }
@@ -417,8 +417,8 @@ export interface ResourceSchema {
417
417
  */
418
418
  export interface ResourceSchema_AccessFlags {
419
419
  /**
420
- * Deny-list approach: default = allowed (true)
421
- * Controllers set these to false to restrict non-controller roles (role='u', role='w')
420
+ * Allow-list approach: default = forbidden (false)
421
+ * Controllers set this to true allow non-controller roles (role='u', role='w')
422
422
  *
423
423
  * @generated from protobuf field: optional bool create_resource = 1
424
424
  */
@@ -428,21 +428,21 @@ export interface ResourceSchema_AccessFlags {
428
428
  *
429
429
  * @generated from protobuf field: optional bool read_fields = 2
430
430
  */
431
- readFields?: boolean; // default: true (reads allowed)
431
+ readFields?: boolean; // default: false (reads denied)
432
432
  /**
433
433
  * @generated from protobuf field: optional bool write_fields = 3
434
434
  */
435
- writeFields?: boolean; // default: true (writes allowed)
435
+ writeFields?: boolean; // default: false (writes denied)
436
436
  /**
437
437
  * IMPORTANT: read_kv=false with write_kv=true is a forbidden combination
438
438
  *
439
439
  * @generated from protobuf field: optional bool read_kv = 4
440
440
  */
441
- readKv?: boolean; // if unset, falls back to read_fields
441
+ readKv?: boolean; // default: false (KV reads denied)
442
442
  /**
443
443
  * @generated from protobuf field: optional bool write_kv = 5
444
444
  */
445
- writeKv?: boolean; // if unset, falls back to write_fields
445
+ writeKv?: boolean; // default: false (KV writes denied)
446
446
  /**
447
447
  * Per-field-type overrides (map: field_type → bool)
448
448
  * When defined for a field type, overrides resource-level flags
@@ -458,6 +458,13 @@ export interface ResourceSchema_AccessFlags {
458
458
  writeByFieldType: {
459
459
  [key: number]: boolean;
460
460
  };
461
+ /**
462
+ * Allows non-controller roles (role='u', role='w') to set error on the resource,
463
+ * marking it as failed and dropping it from recovery/deduplication indicies.
464
+ *
465
+ * @generated from protobuf field: optional bool set_error = 8
466
+ */
467
+ setError?: boolean; // default: true (allowed)
461
468
  }
462
469
  /**
463
470
  * @generated from protobuf message MiLaboratories.PL.API.FieldSchema
@@ -1506,7 +1513,8 @@ class ResourceSchema_AccessFlags$Type extends MessageType<ResourceSchema_AccessF
1506
1513
  { no: 4, name: "read_kv", kind: "scalar", opt: true, T: 8 /*ScalarType.BOOL*/ },
1507
1514
  { no: 5, name: "write_kv", kind: "scalar", opt: true, T: 8 /*ScalarType.BOOL*/ },
1508
1515
  { no: 6, name: "read_by_field_type", kind: "map", K: 13 /*ScalarType.UINT32*/, V: { kind: "scalar", T: 8 /*ScalarType.BOOL*/ } },
1509
- { no: 7, name: "write_by_field_type", kind: "map", K: 13 /*ScalarType.UINT32*/, V: { kind: "scalar", T: 8 /*ScalarType.BOOL*/ } }
1516
+ { no: 7, name: "write_by_field_type", kind: "map", K: 13 /*ScalarType.UINT32*/, V: { kind: "scalar", T: 8 /*ScalarType.BOOL*/ } },
1517
+ { no: 8, name: "set_error", kind: "scalar", opt: true, T: 8 /*ScalarType.BOOL*/ }
1510
1518
  ]);
1511
1519
  }
1512
1520
  create(value?: PartialMessage<ResourceSchema_AccessFlags>): ResourceSchema_AccessFlags {
@@ -1543,6 +1551,9 @@ class ResourceSchema_AccessFlags$Type extends MessageType<ResourceSchema_AccessF
1543
1551
  case /* map<uint32, bool> write_by_field_type */ 7:
1544
1552
  this.binaryReadMap7(message.writeByFieldType, reader, options);
1545
1553
  break;
1554
+ case /* optional bool set_error */ 8:
1555
+ message.setError = reader.bool();
1556
+ break;
1546
1557
  default:
1547
1558
  let u = options.readUnknownField;
1548
1559
  if (u === "throw")
@@ -1608,6 +1619,9 @@ class ResourceSchema_AccessFlags$Type extends MessageType<ResourceSchema_AccessF
1608
1619
  /* map<uint32, bool> write_by_field_type = 7; */
1609
1620
  for (let k of globalThis.Object.keys(message.writeByFieldType))
1610
1621
  writer.tag(7, WireType.LengthDelimited).fork().tag(1, WireType.Varint).uint32(parseInt(k)).tag(2, WireType.Varint).bool(message.writeByFieldType[k as any]).join();
1622
+ /* optional bool set_error = 8; */
1623
+ if (message.setError !== undefined)
1624
+ writer.tag(8, WireType.Varint).bool(message.setError);
1611
1625
  let u = options.writeUnknownFields;
1612
1626
  if (u !== false)
1613
1627
  (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);