@milaboratories/pl-client 2.18.4 → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (52) hide show
  1. package/dist/core/ll_client.cjs +11 -5
  2. package/dist/core/ll_client.cjs.map +1 -1
  3. package/dist/core/ll_client.js +12 -6
  4. package/dist/core/ll_client.js.map +1 -1
  5. package/dist/core/transaction.cjs +2 -2
  6. package/dist/core/transaction.cjs.map +1 -1
  7. package/dist/core/transaction.js +2 -2
  8. package/dist/core/transaction.js.map +1 -1
  9. package/dist/core/type_conversion.cjs +1 -1
  10. package/dist/core/type_conversion.cjs.map +1 -1
  11. package/dist/core/type_conversion.js +1 -1
  12. package/dist/core/type_conversion.js.map +1 -1
  13. package/dist/proto-grpc/github.com/milaboratory/pl/plapi/plapiproto/api.cjs +1957 -256
  14. package/dist/proto-grpc/github.com/milaboratory/pl/plapi/plapiproto/api.cjs.map +1 -1
  15. package/dist/proto-grpc/github.com/milaboratory/pl/plapi/plapiproto/api.client.cjs +59 -9
  16. package/dist/proto-grpc/github.com/milaboratory/pl/plapi/plapiproto/api.client.cjs.map +1 -1
  17. package/dist/proto-grpc/github.com/milaboratory/pl/plapi/plapiproto/api.client.d.ts +74 -4
  18. package/dist/proto-grpc/github.com/milaboratory/pl/plapi/plapiproto/api.client.js +59 -9
  19. package/dist/proto-grpc/github.com/milaboratory/pl/plapi/plapiproto/api.client.js.map +1 -1
  20. package/dist/proto-grpc/github.com/milaboratory/pl/plapi/plapiproto/api.d.ts +658 -51
  21. package/dist/proto-grpc/github.com/milaboratory/pl/plapi/plapiproto/api.js +1957 -257
  22. package/dist/proto-grpc/github.com/milaboratory/pl/plapi/plapiproto/api.js.map +1 -1
  23. package/dist/proto-grpc/github.com/milaboratory/pl/plapi/plapiproto/api_types.cjs +247 -17
  24. package/dist/proto-grpc/github.com/milaboratory/pl/plapi/plapiproto/api_types.cjs.map +1 -1
  25. package/dist/proto-grpc/github.com/milaboratory/pl/plapi/plapiproto/api_types.d.ts +104 -10
  26. package/dist/proto-grpc/github.com/milaboratory/pl/plapi/plapiproto/api_types.js +247 -17
  27. package/dist/proto-grpc/github.com/milaboratory/pl/plapi/plapiproto/api_types.js.map +1 -1
  28. package/dist/proto-grpc/github.com/milaboratory/pl/plapi/plapiproto/base_types.cjs +26 -12
  29. package/dist/proto-grpc/github.com/milaboratory/pl/plapi/plapiproto/base_types.cjs.map +1 -1
  30. package/dist/proto-grpc/github.com/milaboratory/pl/plapi/plapiproto/base_types.d.ts +4 -0
  31. package/dist/proto-grpc/github.com/milaboratory/pl/plapi/plapiproto/base_types.js +26 -12
  32. package/dist/proto-grpc/github.com/milaboratory/pl/plapi/plapiproto/base_types.js.map +1 -1
  33. package/dist/proto-grpc/github.com/milaboratory/pl/plapi/plapiproto/resource_types.cjs +11 -0
  34. package/dist/proto-grpc/github.com/milaboratory/pl/plapi/plapiproto/resource_types.cjs.map +1 -1
  35. package/dist/proto-grpc/github.com/milaboratory/pl/plapi/plapiproto/resource_types.d.ts +4 -0
  36. package/dist/proto-grpc/github.com/milaboratory/pl/plapi/plapiproto/resource_types.js +11 -0
  37. package/dist/proto-grpc/github.com/milaboratory/pl/plapi/plapiproto/resource_types.js.map +1 -1
  38. package/dist/proto-rest/plapi.d.ts +281 -28
  39. package/package.json +4 -4
  40. package/src/core/ll_client.ts +9 -2
  41. package/src/core/transaction.ts +33 -8
  42. package/src/core/type_conversion.ts +1 -1
  43. package/src/proto-grpc/github.com/milaboratory/pl/plapi/plapiproto/api.client.ts +119 -15
  44. package/src/proto-grpc/github.com/milaboratory/pl/plapi/plapiproto/api.ts +2270 -322
  45. package/src/proto-grpc/github.com/milaboratory/pl/plapi/plapiproto/api_types.ts +276 -20
  46. package/src/proto-grpc/github.com/milaboratory/pl/plapi/plapiproto/base_types.ts +11 -0
  47. package/src/proto-grpc/github.com/milaboratory/pl/plapi/plapiproto/import.ts +2 -2
  48. package/src/proto-grpc/github.com/milaboratory/pl/plapi/plapiproto/resource_types.ts +11 -0
  49. package/src/proto-grpc/github.com/milaboratory/pl/plapi/plapiproto/ws-test.ts +3 -3
  50. package/src/proto-grpc/google/protobuf/descriptor.ts +2 -5
  51. package/src/proto-grpc/google/protobuf/struct.ts +1 -1
  52. package/src/proto-rest/plapi.ts +293 -22
@@ -152,28 +152,50 @@ var PlatformClient = class {
152
152
  return (0, _protobuf_ts_runtime_rpc.stackIntercept)("unary", this._transport, method, opt, input);
153
153
  }
154
154
  /**
155
+ * LockFieldValues gets the resource and obtains a lock on all resolved values of listed fields:
156
+ * - get the resource that will take the lock ('FOR' resource) (lock cannot be obtained 'FOR' or 'ON' deleted resource)
157
+ * - list resource's fields, take fields with names set in request
158
+ * - get resolved values of listed fields (IDs of 'ON' resources).
159
+ * - acquire lock on all 'ON' resources, marking 'FOR' resource as an owner.
155
160
  *
156
- * Locks
161
+ * Lock logic constraints:
162
+ * - Locking is optimistic: if two processes try to obtain a lock on the same resource, one of them
163
+ * succeeds, while the other fails with an error (no long waiting)
164
+ * - Only resolved reference can be locked: to obtain a lock for a particular field's value, the backend needs to know
165
+ * the resource ID this field points to. Unless all listed field references are resolved to a final ID, the lock will fail.
166
+ * - Only an original resource can be locked: if a resource is 'pure' (supports deduplication), it has to pass deduplication before
167
+ * being lockable. An attempt to lock a resource that has not become original will fail.
168
+ * - Locking is a one-way operation: it cannot be 'released' or 'revoked'.
157
169
  *
170
+ * @generated from protobuf rpc: LockFieldValues
171
+ */
172
+ lockFieldValues(input, options) {
173
+ const method = this.methods[18], opt = this._transport.mergeOptions(options);
174
+ return (0, _protobuf_ts_runtime_rpc.stackIntercept)("unary", this._transport, method, opt, input);
175
+ }
176
+ /**
177
+ * LeaseResource creates a lease for a resource. A lease is a temporary lock that needs periodic renewal to stay valid.
178
+ * Leases are a separate mechanism from locks: leases are focused on 'clients', while locks are focused on 'resources'.
179
+ * To keep the lease active, the client needs the lease ID that is generated when a lease is created and used for lease updates.
158
180
  *
159
181
  * @generated from protobuf rpc: LeaseResource
160
182
  */
161
183
  leaseResource(input, options) {
162
- const method = this.methods[18], opt = this._transport.mergeOptions(options);
184
+ const method = this.methods[19], opt = this._transport.mergeOptions(options);
163
185
  return (0, _protobuf_ts_runtime_rpc.stackIntercept)("unary", this._transport, method, opt, input);
164
186
  }
165
187
  /**
166
188
  * @generated from protobuf rpc: UpdateLease
167
189
  */
168
190
  updateLease(input, options) {
169
- const method = this.methods[19], opt = this._transport.mergeOptions(options);
191
+ const method = this.methods[20], opt = this._transport.mergeOptions(options);
170
192
  return (0, _protobuf_ts_runtime_rpc.stackIntercept)("unary", this._transport, method, opt, input);
171
193
  }
172
194
  /**
173
195
  * @generated from protobuf rpc: ReleaseLease
174
196
  */
175
197
  releaseLease(input, options) {
176
- const method = this.methods[20], opt = this._transport.mergeOptions(options);
198
+ const method = this.methods[21], opt = this._transport.mergeOptions(options);
177
199
  return (0, _protobuf_ts_runtime_rpc.stackIntercept)("unary", this._transport, method, opt, input);
178
200
  }
179
201
  /**
@@ -184,17 +206,45 @@ var PlatformClient = class {
184
206
  * @generated from protobuf rpc: AuthMethods
185
207
  */
186
208
  authMethods(input, options) {
187
- const method = this.methods[21], opt = this._transport.mergeOptions(options);
209
+ const method = this.methods[22], opt = this._transport.mergeOptions(options);
188
210
  return (0, _protobuf_ts_runtime_rpc.stackIntercept)("unary", this._transport, method, opt, input);
189
211
  }
190
212
  /**
191
213
  * @generated from protobuf rpc: GetJWTToken
192
214
  */
193
215
  getJWTToken(input, options) {
194
- const method = this.methods[22], opt = this._transport.mergeOptions(options);
216
+ const method = this.methods[23], opt = this._transport.mergeOptions(options);
217
+ return (0, _protobuf_ts_runtime_rpc.stackIntercept)("unary", this._transport, method, opt, input);
218
+ }
219
+ /**
220
+ * @generated from protobuf rpc: GrantAccess
221
+ */
222
+ grantAccess(input, options) {
223
+ const method = this.methods[24], opt = this._transport.mergeOptions(options);
195
224
  return (0, _protobuf_ts_runtime_rpc.stackIntercept)("unary", this._transport, method, opt, input);
196
225
  }
197
226
  /**
227
+ * @generated from protobuf rpc: RevokeGrant
228
+ */
229
+ revokeGrant(input, options) {
230
+ const method = this.methods[25], opt = this._transport.mergeOptions(options);
231
+ return (0, _protobuf_ts_runtime_rpc.stackIntercept)("unary", this._transport, method, opt, input);
232
+ }
233
+ /**
234
+ * @generated from protobuf rpc: ListGrants
235
+ */
236
+ listGrants(input, options) {
237
+ const method = this.methods[26], opt = this._transport.mergeOptions(options);
238
+ return (0, _protobuf_ts_runtime_rpc.stackIntercept)("serverStreaming", this._transport, method, opt, input);
239
+ }
240
+ /**
241
+ * @generated from protobuf rpc: ListUserResources
242
+ */
243
+ listUserResources(input, options) {
244
+ const method = this.methods[27], opt = this._transport.mergeOptions(options);
245
+ return (0, _protobuf_ts_runtime_rpc.stackIntercept)("serverStreaming", this._transport, method, opt, input);
246
+ }
247
+ /**
198
248
  *
199
249
  * Other stuff
200
250
  *
@@ -202,7 +252,7 @@ var PlatformClient = class {
202
252
  * @generated from protobuf rpc: ListResourceTypes
203
253
  */
204
254
  listResourceTypes(input, options) {
205
- const method = this.methods[23], opt = this._transport.mergeOptions(options);
255
+ const method = this.methods[28], opt = this._transport.mergeOptions(options);
206
256
  return (0, _protobuf_ts_runtime_rpc.stackIntercept)("unary", this._transport, method, opt, input);
207
257
  }
208
258
  /**
@@ -213,14 +263,14 @@ var PlatformClient = class {
213
263
  * @generated from protobuf rpc: Ping
214
264
  */
215
265
  ping(input, options) {
216
- const method = this.methods[24], opt = this._transport.mergeOptions(options);
266
+ const method = this.methods[29], opt = this._transport.mergeOptions(options);
217
267
  return (0, _protobuf_ts_runtime_rpc.stackIntercept)("unary", this._transport, method, opt, input);
218
268
  }
219
269
  /**
220
270
  * @generated from protobuf rpc: License
221
271
  */
222
272
  license(input, options) {
223
- const method = this.methods[25], opt = this._transport.mergeOptions(options);
273
+ const method = this.methods[30], opt = this._transport.mergeOptions(options);
224
274
  return (0, _protobuf_ts_runtime_rpc.stackIntercept)("unary", this._transport, method, opt, input);
225
275
  }
226
276
  };
@@ -1 +1 @@
1
- {"version":3,"file":"api.client.cjs","names":["Platform"],"sources":["../../../../../../../src/proto-grpc/github.com/milaboratory/pl/plapi/plapiproto/api.client.ts"],"sourcesContent":["// @generated by protobuf-ts 2.11.1 with parameter client_generic,optimize_speed,generate_dependencies,force_server_none\n// @generated from protobuf file \"github.com/milaboratory/pl/plapi/plapiproto/api.proto\" (package \"MiLaboratories.PL.API\", syntax proto3)\n// tslint:disable\nimport type { RpcTransport } from \"@protobuf-ts/runtime-rpc\";\nimport type { ServiceInfo } from \"@protobuf-ts/runtime-rpc\";\nimport { Platform } from \"./api\";\nimport type { MaintenanceAPI_License_Response } from \"./api\";\nimport type { MaintenanceAPI_License_Request } from \"./api\";\nimport type { MaintenanceAPI_Ping_Response } from \"./api\";\nimport type { MaintenanceAPI_Ping_Request } from \"./api\";\nimport type { MiscAPI_ListResourceTypes_Response } from \"./api\";\nimport type { MiscAPI_ListResourceTypes_Request } from \"./api\";\nimport type { AuthAPI_GetJWTToken_Response } from \"./api\";\nimport type { AuthAPI_GetJWTToken_Request } from \"./api\";\nimport type { AuthAPI_ListMethods_Response } from \"./api\";\nimport type { AuthAPI_ListMethods_Request } from \"./api\";\nimport type { LocksAPI_Lease_Release_Response } from \"./api\";\nimport type { LocksAPI_Lease_Release_Request } from \"./api\";\nimport type { LocksAPI_Lease_Update_Response } from \"./api\";\nimport type { LocksAPI_Lease_Update_Request } from \"./api\";\nimport type { LocksAPI_Lease_Create_Response } from \"./api\";\nimport type { LocksAPI_Lease_Create_Request } from \"./api\";\nimport type { ControllerAPI_ClearFeatures_Response } from \"./api\";\nimport type { ControllerAPI_ClearFeatures_Request } from \"./api\";\nimport type { ControllerAPI_SetFeatures_Response } from \"./api\";\nimport type { ControllerAPI_SetFeatures_Request } from \"./api\";\nimport type { ControllerAPI_GetUrl_Response } from \"./api\";\nimport type { ControllerAPI_GetUrl_Request } from \"./api\";\nimport type { ControllerAPI_RemoveAliasesAndUrls_Response } from \"./api\";\nimport type { ControllerAPI_RemoveAliasesAndUrls_Request } from \"./api\";\nimport type { ControllerAPI_WriteAliasesAndUrls_Response } from \"./api\";\nimport type { ControllerAPI_WriteAliasesAndUrls_Request } from \"./api\";\nimport type { ControllerAPI_GetNotifications_Response } from \"./api\";\nimport type { ControllerAPI_GetNotifications_Request } from \"./api\";\nimport type { ControllerAPI_AttachSubscription_Response } from \"./api\";\nimport type { ControllerAPI_AttachSubscription_Request } from \"./api\";\nimport type { ControllerAPI_Update_Response } from \"./api\";\nimport type { ControllerAPI_Update_Request } from \"./api\";\nimport type { ControllerAPI_Get_Response } from \"./api\";\nimport type { ControllerAPI_Get_Request } from \"./api\";\nimport type { ControllerAPI_Exists_Response } from \"./api\";\nimport type { ControllerAPI_Exists_Request } from \"./api\";\nimport type { ControllerAPI_Create_Response } from \"./api\";\nimport type { ControllerAPI_Create_Request } from \"./api\";\nimport type { ControllerAPI_Deregister_Response } from \"./api\";\nimport type { ControllerAPI_Deregister_Request } from \"./api\";\nimport type { ControllerAPI_Register_Response } from \"./api\";\nimport type { ControllerAPI_Register_Request } from \"./api\";\nimport type { NotificationAPI_Get_Response } from \"./api\";\nimport type { NotificationAPI_Get_Request } from \"./api\";\nimport type { SubscriptionAPI_DetachFilter_Response } from \"./api\";\nimport type { SubscriptionAPI_DetachFilter_Request } from \"./api\";\nimport type { SubscriptionAPI_AttachFilter_Response } from \"./api\";\nimport type { SubscriptionAPI_AttachFilter_Request } from \"./api\";\nimport type { TxAPI_Sync_Response } from \"./api\";\nimport type { TxAPI_Sync_Request } from \"./api\";\nimport type { UnaryCall } from \"@protobuf-ts/runtime-rpc\";\nimport { stackIntercept } from \"@protobuf-ts/runtime-rpc\";\nimport type { TxAPI_ServerMessage } from \"./api\";\nimport type { TxAPI_ClientMessage } from \"./api\";\nimport type { DuplexStreamingCall } from \"@protobuf-ts/runtime-rpc\";\nimport type { RpcOptions } from \"@protobuf-ts/runtime-rpc\";\n/**\n * @generated from protobuf service MiLaboratories.PL.API.Platform\n */\nexport interface IPlatformClient {\n /**\n *\n * Transactions\n *\n *\n * @generated from protobuf rpc: Tx\n */\n tx(options?: RpcOptions): DuplexStreamingCall<TxAPI_ClientMessage, TxAPI_ServerMessage>;\n /**\n * @generated from protobuf rpc: TxSync\n */\n txSync(input: TxAPI_Sync_Request, options?: RpcOptions): UnaryCall<TxAPI_Sync_Request, TxAPI_Sync_Response>;\n /**\n *\n * Subscriptions\n *\n *\n * @generated from protobuf rpc: SubscriptionAttachFilter\n */\n subscriptionAttachFilter(input: SubscriptionAPI_AttachFilter_Request, options?: RpcOptions): UnaryCall<SubscriptionAPI_AttachFilter_Request, SubscriptionAPI_AttachFilter_Response>;\n /**\n * @generated from protobuf rpc: SubscriptionDetachFilter\n */\n subscriptionDetachFilter(input: SubscriptionAPI_DetachFilter_Request, options?: RpcOptions): UnaryCall<SubscriptionAPI_DetachFilter_Request, SubscriptionAPI_DetachFilter_Response>;\n /**\n * @generated from protobuf rpc: NotificationsGet\n */\n notificationsGet(input: NotificationAPI_Get_Request, options?: RpcOptions): UnaryCall<NotificationAPI_Get_Request, NotificationAPI_Get_Response>;\n /**\n *\n * Controllers\n *\n *\n * @generated from protobuf rpc: ControllerRegister\n */\n controllerRegister(input: ControllerAPI_Register_Request, options?: RpcOptions): UnaryCall<ControllerAPI_Register_Request, ControllerAPI_Register_Response>;\n /**\n * @generated from protobuf rpc: ControllerDeregister\n */\n controllerDeregister(input: ControllerAPI_Deregister_Request, options?: RpcOptions): UnaryCall<ControllerAPI_Deregister_Request, ControllerAPI_Deregister_Response>;\n /**\n * @generated from protobuf rpc: ControllerCreate\n */\n controllerCreate(input: ControllerAPI_Create_Request, options?: RpcOptions): UnaryCall<ControllerAPI_Create_Request, ControllerAPI_Create_Response>;\n /**\n * @generated from protobuf rpc: ControllerExists\n */\n controllerExists(input: ControllerAPI_Exists_Request, options?: RpcOptions): UnaryCall<ControllerAPI_Exists_Request, ControllerAPI_Exists_Response>;\n /**\n * @generated from protobuf rpc: ControllerGet\n */\n controllerGet(input: ControllerAPI_Get_Request, options?: RpcOptions): UnaryCall<ControllerAPI_Get_Request, ControllerAPI_Get_Response>;\n /**\n * @generated from protobuf rpc: ControllerUpdate\n */\n controllerUpdate(input: ControllerAPI_Update_Request, options?: RpcOptions): UnaryCall<ControllerAPI_Update_Request, ControllerAPI_Update_Response>;\n /**\n * @generated from protobuf rpc: ControllerAttachSubscription\n */\n controllerAttachSubscription(input: ControllerAPI_AttachSubscription_Request, options?: RpcOptions): UnaryCall<ControllerAPI_AttachSubscription_Request, ControllerAPI_AttachSubscription_Response>;\n /**\n * @generated from protobuf rpc: GetControllerNotifications\n */\n getControllerNotifications(input: ControllerAPI_GetNotifications_Request, options?: RpcOptions): UnaryCall<ControllerAPI_GetNotifications_Request, ControllerAPI_GetNotifications_Response>;\n /**\n * @generated from protobuf rpc: WriteControllerAliasesAndUrls\n */\n writeControllerAliasesAndUrls(input: ControllerAPI_WriteAliasesAndUrls_Request, options?: RpcOptions): UnaryCall<ControllerAPI_WriteAliasesAndUrls_Request, ControllerAPI_WriteAliasesAndUrls_Response>;\n /**\n * @generated from protobuf rpc: RemoveControllerAliasesAndUrls\n */\n removeControllerAliasesAndUrls(input: ControllerAPI_RemoveAliasesAndUrls_Request, options?: RpcOptions): UnaryCall<ControllerAPI_RemoveAliasesAndUrls_Request, ControllerAPI_RemoveAliasesAndUrls_Response>;\n /**\n * @generated from protobuf rpc: GetControllerUrl\n */\n getControllerUrl(input: ControllerAPI_GetUrl_Request, options?: RpcOptions): UnaryCall<ControllerAPI_GetUrl_Request, ControllerAPI_GetUrl_Response>;\n /**\n * @generated from protobuf rpc: ControllerSetFeatures\n */\n controllerSetFeatures(input: ControllerAPI_SetFeatures_Request, options?: RpcOptions): UnaryCall<ControllerAPI_SetFeatures_Request, ControllerAPI_SetFeatures_Response>;\n /**\n * @generated from protobuf rpc: ControllerClearFeatures\n */\n controllerClearFeatures(input: ControllerAPI_ClearFeatures_Request, options?: RpcOptions): UnaryCall<ControllerAPI_ClearFeatures_Request, ControllerAPI_ClearFeatures_Response>;\n /**\n *\n * Locks\n *\n *\n * @generated from protobuf rpc: LeaseResource\n */\n leaseResource(input: LocksAPI_Lease_Create_Request, options?: RpcOptions): UnaryCall<LocksAPI_Lease_Create_Request, LocksAPI_Lease_Create_Response>;\n /**\n * @generated from protobuf rpc: UpdateLease\n */\n updateLease(input: LocksAPI_Lease_Update_Request, options?: RpcOptions): UnaryCall<LocksAPI_Lease_Update_Request, LocksAPI_Lease_Update_Response>;\n /**\n * @generated from protobuf rpc: ReleaseLease\n */\n releaseLease(input: LocksAPI_Lease_Release_Request, options?: RpcOptions): UnaryCall<LocksAPI_Lease_Release_Request, LocksAPI_Lease_Release_Response>;\n /**\n *\n * Authentication\n *\n *\n * @generated from protobuf rpc: AuthMethods\n */\n authMethods(input: AuthAPI_ListMethods_Request, options?: RpcOptions): UnaryCall<AuthAPI_ListMethods_Request, AuthAPI_ListMethods_Response>;\n /**\n * @generated from protobuf rpc: GetJWTToken\n */\n getJWTToken(input: AuthAPI_GetJWTToken_Request, options?: RpcOptions): UnaryCall<AuthAPI_GetJWTToken_Request, AuthAPI_GetJWTToken_Response>;\n /**\n *\n * Other stuff\n *\n *\n * @generated from protobuf rpc: ListResourceTypes\n */\n listResourceTypes(input: MiscAPI_ListResourceTypes_Request, options?: RpcOptions): UnaryCall<MiscAPI_ListResourceTypes_Request, MiscAPI_ListResourceTypes_Response>;\n /**\n *\n * Various service requests\n *\n *\n * @generated from protobuf rpc: Ping\n */\n ping(input: MaintenanceAPI_Ping_Request, options?: RpcOptions): UnaryCall<MaintenanceAPI_Ping_Request, MaintenanceAPI_Ping_Response>;\n /**\n * @generated from protobuf rpc: License\n */\n license(input: MaintenanceAPI_License_Request, options?: RpcOptions): UnaryCall<MaintenanceAPI_License_Request, MaintenanceAPI_License_Response>;\n}\n/**\n * @generated from protobuf service MiLaboratories.PL.API.Platform\n */\nexport class PlatformClient implements IPlatformClient, ServiceInfo {\n typeName = Platform.typeName;\n methods = Platform.methods;\n options = Platform.options;\n constructor(private readonly _transport: RpcTransport) {\n }\n /**\n *\n * Transactions\n *\n *\n * @generated from protobuf rpc: Tx\n */\n tx(options?: RpcOptions): DuplexStreamingCall<TxAPI_ClientMessage, TxAPI_ServerMessage> {\n const method = this.methods[0], opt = this._transport.mergeOptions(options);\n return stackIntercept<TxAPI_ClientMessage, TxAPI_ServerMessage>(\"duplex\", this._transport, method, opt);\n }\n /**\n * @generated from protobuf rpc: TxSync\n */\n txSync(input: TxAPI_Sync_Request, options?: RpcOptions): UnaryCall<TxAPI_Sync_Request, TxAPI_Sync_Response> {\n const method = this.methods[1], opt = this._transport.mergeOptions(options);\n return stackIntercept<TxAPI_Sync_Request, TxAPI_Sync_Response>(\"unary\", this._transport, method, opt, input);\n }\n /**\n *\n * Subscriptions\n *\n *\n * @generated from protobuf rpc: SubscriptionAttachFilter\n */\n subscriptionAttachFilter(input: SubscriptionAPI_AttachFilter_Request, options?: RpcOptions): UnaryCall<SubscriptionAPI_AttachFilter_Request, SubscriptionAPI_AttachFilter_Response> {\n const method = this.methods[2], opt = this._transport.mergeOptions(options);\n return stackIntercept<SubscriptionAPI_AttachFilter_Request, SubscriptionAPI_AttachFilter_Response>(\"unary\", this._transport, method, opt, input);\n }\n /**\n * @generated from protobuf rpc: SubscriptionDetachFilter\n */\n subscriptionDetachFilter(input: SubscriptionAPI_DetachFilter_Request, options?: RpcOptions): UnaryCall<SubscriptionAPI_DetachFilter_Request, SubscriptionAPI_DetachFilter_Response> {\n const method = this.methods[3], opt = this._transport.mergeOptions(options);\n return stackIntercept<SubscriptionAPI_DetachFilter_Request, SubscriptionAPI_DetachFilter_Response>(\"unary\", this._transport, method, opt, input);\n }\n /**\n * @generated from protobuf rpc: NotificationsGet\n */\n notificationsGet(input: NotificationAPI_Get_Request, options?: RpcOptions): UnaryCall<NotificationAPI_Get_Request, NotificationAPI_Get_Response> {\n const method = this.methods[4], opt = this._transport.mergeOptions(options);\n return stackIntercept<NotificationAPI_Get_Request, NotificationAPI_Get_Response>(\"unary\", this._transport, method, opt, input);\n }\n /**\n *\n * Controllers\n *\n *\n * @generated from protobuf rpc: ControllerRegister\n */\n controllerRegister(input: ControllerAPI_Register_Request, options?: RpcOptions): UnaryCall<ControllerAPI_Register_Request, ControllerAPI_Register_Response> {\n const method = this.methods[5], opt = this._transport.mergeOptions(options);\n return stackIntercept<ControllerAPI_Register_Request, ControllerAPI_Register_Response>(\"unary\", this._transport, method, opt, input);\n }\n /**\n * @generated from protobuf rpc: ControllerDeregister\n */\n controllerDeregister(input: ControllerAPI_Deregister_Request, options?: RpcOptions): UnaryCall<ControllerAPI_Deregister_Request, ControllerAPI_Deregister_Response> {\n const method = this.methods[6], opt = this._transport.mergeOptions(options);\n return stackIntercept<ControllerAPI_Deregister_Request, ControllerAPI_Deregister_Response>(\"unary\", this._transport, method, opt, input);\n }\n /**\n * @generated from protobuf rpc: ControllerCreate\n */\n controllerCreate(input: ControllerAPI_Create_Request, options?: RpcOptions): UnaryCall<ControllerAPI_Create_Request, ControllerAPI_Create_Response> {\n const method = this.methods[7], opt = this._transport.mergeOptions(options);\n return stackIntercept<ControllerAPI_Create_Request, ControllerAPI_Create_Response>(\"unary\", this._transport, method, opt, input);\n }\n /**\n * @generated from protobuf rpc: ControllerExists\n */\n controllerExists(input: ControllerAPI_Exists_Request, options?: RpcOptions): UnaryCall<ControllerAPI_Exists_Request, ControllerAPI_Exists_Response> {\n const method = this.methods[8], opt = this._transport.mergeOptions(options);\n return stackIntercept<ControllerAPI_Exists_Request, ControllerAPI_Exists_Response>(\"unary\", this._transport, method, opt, input);\n }\n /**\n * @generated from protobuf rpc: ControllerGet\n */\n controllerGet(input: ControllerAPI_Get_Request, options?: RpcOptions): UnaryCall<ControllerAPI_Get_Request, ControllerAPI_Get_Response> {\n const method = this.methods[9], opt = this._transport.mergeOptions(options);\n return stackIntercept<ControllerAPI_Get_Request, ControllerAPI_Get_Response>(\"unary\", this._transport, method, opt, input);\n }\n /**\n * @generated from protobuf rpc: ControllerUpdate\n */\n controllerUpdate(input: ControllerAPI_Update_Request, options?: RpcOptions): UnaryCall<ControllerAPI_Update_Request, ControllerAPI_Update_Response> {\n const method = this.methods[10], opt = this._transport.mergeOptions(options);\n return stackIntercept<ControllerAPI_Update_Request, ControllerAPI_Update_Response>(\"unary\", this._transport, method, opt, input);\n }\n /**\n * @generated from protobuf rpc: ControllerAttachSubscription\n */\n controllerAttachSubscription(input: ControllerAPI_AttachSubscription_Request, options?: RpcOptions): UnaryCall<ControllerAPI_AttachSubscription_Request, ControllerAPI_AttachSubscription_Response> {\n const method = this.methods[11], opt = this._transport.mergeOptions(options);\n return stackIntercept<ControllerAPI_AttachSubscription_Request, ControllerAPI_AttachSubscription_Response>(\"unary\", this._transport, method, opt, input);\n }\n /**\n * @generated from protobuf rpc: GetControllerNotifications\n */\n getControllerNotifications(input: ControllerAPI_GetNotifications_Request, options?: RpcOptions): UnaryCall<ControllerAPI_GetNotifications_Request, ControllerAPI_GetNotifications_Response> {\n const method = this.methods[12], opt = this._transport.mergeOptions(options);\n return stackIntercept<ControllerAPI_GetNotifications_Request, ControllerAPI_GetNotifications_Response>(\"unary\", this._transport, method, opt, input);\n }\n /**\n * @generated from protobuf rpc: WriteControllerAliasesAndUrls\n */\n writeControllerAliasesAndUrls(input: ControllerAPI_WriteAliasesAndUrls_Request, options?: RpcOptions): UnaryCall<ControllerAPI_WriteAliasesAndUrls_Request, ControllerAPI_WriteAliasesAndUrls_Response> {\n const method = this.methods[13], opt = this._transport.mergeOptions(options);\n return stackIntercept<ControllerAPI_WriteAliasesAndUrls_Request, ControllerAPI_WriteAliasesAndUrls_Response>(\"unary\", this._transport, method, opt, input);\n }\n /**\n * @generated from protobuf rpc: RemoveControllerAliasesAndUrls\n */\n removeControllerAliasesAndUrls(input: ControllerAPI_RemoveAliasesAndUrls_Request, options?: RpcOptions): UnaryCall<ControllerAPI_RemoveAliasesAndUrls_Request, ControllerAPI_RemoveAliasesAndUrls_Response> {\n const method = this.methods[14], opt = this._transport.mergeOptions(options);\n return stackIntercept<ControllerAPI_RemoveAliasesAndUrls_Request, ControllerAPI_RemoveAliasesAndUrls_Response>(\"unary\", this._transport, method, opt, input);\n }\n /**\n * @generated from protobuf rpc: GetControllerUrl\n */\n getControllerUrl(input: ControllerAPI_GetUrl_Request, options?: RpcOptions): UnaryCall<ControllerAPI_GetUrl_Request, ControllerAPI_GetUrl_Response> {\n const method = this.methods[15], opt = this._transport.mergeOptions(options);\n return stackIntercept<ControllerAPI_GetUrl_Request, ControllerAPI_GetUrl_Response>(\"unary\", this._transport, method, opt, input);\n }\n /**\n * @generated from protobuf rpc: ControllerSetFeatures\n */\n controllerSetFeatures(input: ControllerAPI_SetFeatures_Request, options?: RpcOptions): UnaryCall<ControllerAPI_SetFeatures_Request, ControllerAPI_SetFeatures_Response> {\n const method = this.methods[16], opt = this._transport.mergeOptions(options);\n return stackIntercept<ControllerAPI_SetFeatures_Request, ControllerAPI_SetFeatures_Response>(\"unary\", this._transport, method, opt, input);\n }\n /**\n * @generated from protobuf rpc: ControllerClearFeatures\n */\n controllerClearFeatures(input: ControllerAPI_ClearFeatures_Request, options?: RpcOptions): UnaryCall<ControllerAPI_ClearFeatures_Request, ControllerAPI_ClearFeatures_Response> {\n const method = this.methods[17], opt = this._transport.mergeOptions(options);\n return stackIntercept<ControllerAPI_ClearFeatures_Request, ControllerAPI_ClearFeatures_Response>(\"unary\", this._transport, method, opt, input);\n }\n /**\n *\n * Locks\n *\n *\n * @generated from protobuf rpc: LeaseResource\n */\n leaseResource(input: LocksAPI_Lease_Create_Request, options?: RpcOptions): UnaryCall<LocksAPI_Lease_Create_Request, LocksAPI_Lease_Create_Response> {\n const method = this.methods[18], opt = this._transport.mergeOptions(options);\n return stackIntercept<LocksAPI_Lease_Create_Request, LocksAPI_Lease_Create_Response>(\"unary\", this._transport, method, opt, input);\n }\n /**\n * @generated from protobuf rpc: UpdateLease\n */\n updateLease(input: LocksAPI_Lease_Update_Request, options?: RpcOptions): UnaryCall<LocksAPI_Lease_Update_Request, LocksAPI_Lease_Update_Response> {\n const method = this.methods[19], opt = this._transport.mergeOptions(options);\n return stackIntercept<LocksAPI_Lease_Update_Request, LocksAPI_Lease_Update_Response>(\"unary\", this._transport, method, opt, input);\n }\n /**\n * @generated from protobuf rpc: ReleaseLease\n */\n releaseLease(input: LocksAPI_Lease_Release_Request, options?: RpcOptions): UnaryCall<LocksAPI_Lease_Release_Request, LocksAPI_Lease_Release_Response> {\n const method = this.methods[20], opt = this._transport.mergeOptions(options);\n return stackIntercept<LocksAPI_Lease_Release_Request, LocksAPI_Lease_Release_Response>(\"unary\", this._transport, method, opt, input);\n }\n /**\n *\n * Authentication\n *\n *\n * @generated from protobuf rpc: AuthMethods\n */\n authMethods(input: AuthAPI_ListMethods_Request, options?: RpcOptions): UnaryCall<AuthAPI_ListMethods_Request, AuthAPI_ListMethods_Response> {\n const method = this.methods[21], opt = this._transport.mergeOptions(options);\n return stackIntercept<AuthAPI_ListMethods_Request, AuthAPI_ListMethods_Response>(\"unary\", this._transport, method, opt, input);\n }\n /**\n * @generated from protobuf rpc: GetJWTToken\n */\n getJWTToken(input: AuthAPI_GetJWTToken_Request, options?: RpcOptions): UnaryCall<AuthAPI_GetJWTToken_Request, AuthAPI_GetJWTToken_Response> {\n const method = this.methods[22], opt = this._transport.mergeOptions(options);\n return stackIntercept<AuthAPI_GetJWTToken_Request, AuthAPI_GetJWTToken_Response>(\"unary\", this._transport, method, opt, input);\n }\n /**\n *\n * Other stuff\n *\n *\n * @generated from protobuf rpc: ListResourceTypes\n */\n listResourceTypes(input: MiscAPI_ListResourceTypes_Request, options?: RpcOptions): UnaryCall<MiscAPI_ListResourceTypes_Request, MiscAPI_ListResourceTypes_Response> {\n const method = this.methods[23], opt = this._transport.mergeOptions(options);\n return stackIntercept<MiscAPI_ListResourceTypes_Request, MiscAPI_ListResourceTypes_Response>(\"unary\", this._transport, method, opt, input);\n }\n /**\n *\n * Various service requests\n *\n *\n * @generated from protobuf rpc: Ping\n */\n ping(input: MaintenanceAPI_Ping_Request, options?: RpcOptions): UnaryCall<MaintenanceAPI_Ping_Request, MaintenanceAPI_Ping_Response> {\n const method = this.methods[24], opt = this._transport.mergeOptions(options);\n return stackIntercept<MaintenanceAPI_Ping_Request, MaintenanceAPI_Ping_Response>(\"unary\", this._transport, method, opt, input);\n }\n /**\n * @generated from protobuf rpc: License\n */\n license(input: MaintenanceAPI_License_Request, options?: RpcOptions): UnaryCall<MaintenanceAPI_License_Request, MaintenanceAPI_License_Response> {\n const method = this.methods[25], opt = this._transport.mergeOptions(options);\n return stackIntercept<MaintenanceAPI_License_Request, MaintenanceAPI_License_Response>(\"unary\", this._transport, method, opt, input);\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"api.client.cjs","names":["Platform"],"sources":["../../../../../../../src/proto-grpc/github.com/milaboratory/pl/plapi/plapiproto/api.client.ts"],"sourcesContent":["// @generated by protobuf-ts 2.11.1 with parameter client_generic,optimize_speed,generate_dependencies,force_server_none\n// @generated from protobuf file \"github.com/milaboratory/pl/plapi/plapiproto/api.proto\" (package \"MiLaboratories.PL.API\", syntax proto3)\n// tslint:disable\nimport type { RpcTransport } from \"@protobuf-ts/runtime-rpc\";\nimport type { ServiceInfo } from \"@protobuf-ts/runtime-rpc\";\nimport { Platform } from \"./api\";\nimport type { MaintenanceAPI_License_Response } from \"./api\";\nimport type { MaintenanceAPI_License_Request } from \"./api\";\nimport type { MaintenanceAPI_Ping_Response } from \"./api\";\nimport type { MaintenanceAPI_Ping_Request } from \"./api\";\nimport type { MiscAPI_ListResourceTypes_Response } from \"./api\";\nimport type { MiscAPI_ListResourceTypes_Request } from \"./api\";\nimport type { AuthAPI_ListUserResources_Response } from \"./api\";\nimport type { AuthAPI_ListUserResources_Request } from \"./api\";\nimport type { AuthAPI_ListGrants_Response } from \"./api\";\nimport type { AuthAPI_ListGrants_Request } from \"./api\";\nimport type { ServerStreamingCall } from \"@protobuf-ts/runtime-rpc\";\nimport type { AuthAPI_RevokeGrant_Response } from \"./api\";\nimport type { AuthAPI_RevokeGrant_Request } from \"./api\";\nimport type { AuthAPI_GrantAccess_Response } from \"./api\";\nimport type { AuthAPI_GrantAccess_Request } from \"./api\";\nimport type { AuthAPI_GetJWTToken_Response } from \"./api\";\nimport type { AuthAPI_GetJWTToken_Request } from \"./api\";\nimport type { AuthAPI_ListMethods_Response } from \"./api\";\nimport type { AuthAPI_ListMethods_Request } from \"./api\";\nimport type { LocksAPI_Lease_Release_Response } from \"./api\";\nimport type { LocksAPI_Lease_Release_Request } from \"./api\";\nimport type { LocksAPI_Lease_Update_Response } from \"./api\";\nimport type { LocksAPI_Lease_Update_Request } from \"./api\";\nimport type { LocksAPI_Lease_Create_Response } from \"./api\";\nimport type { LocksAPI_Lease_Create_Request } from \"./api\";\nimport type { LocksAPI_LockFieldValues_Create_Response } from \"./api\";\nimport type { LocksAPI_LockFieldValues_Create_Request } from \"./api\";\nimport type { ControllerAPI_ClearFeatures_Response } from \"./api\";\nimport type { ControllerAPI_ClearFeatures_Request } from \"./api\";\nimport type { ControllerAPI_SetFeatures_Response } from \"./api\";\nimport type { ControllerAPI_SetFeatures_Request } from \"./api\";\nimport type { ControllerAPI_GetUrl_Response } from \"./api\";\nimport type { ControllerAPI_GetUrl_Request } from \"./api\";\nimport type { ControllerAPI_RemoveAliasesAndUrls_Response } from \"./api\";\nimport type { ControllerAPI_RemoveAliasesAndUrls_Request } from \"./api\";\nimport type { ControllerAPI_WriteAliasesAndUrls_Response } from \"./api\";\nimport type { ControllerAPI_WriteAliasesAndUrls_Request } from \"./api\";\nimport type { ControllerAPI_GetNotifications_Response } from \"./api\";\nimport type { ControllerAPI_GetNotifications_Request } from \"./api\";\nimport type { ControllerAPI_AttachSubscription_Response } from \"./api\";\nimport type { ControllerAPI_AttachSubscription_Request } from \"./api\";\nimport type { ControllerAPI_Update_Response } from \"./api\";\nimport type { ControllerAPI_Update_Request } from \"./api\";\nimport type { ControllerAPI_Get_Response } from \"./api\";\nimport type { ControllerAPI_Get_Request } from \"./api\";\nimport type { ControllerAPI_Exists_Response } from \"./api\";\nimport type { ControllerAPI_Exists_Request } from \"./api\";\nimport type { ControllerAPI_Create_Response } from \"./api\";\nimport type { ControllerAPI_Create_Request } from \"./api\";\nimport type { ControllerAPI_Deregister_Response } from \"./api\";\nimport type { ControllerAPI_Deregister_Request } from \"./api\";\nimport type { ControllerAPI_Register_Response } from \"./api\";\nimport type { ControllerAPI_Register_Request } from \"./api\";\nimport type { NotificationAPI_Get_Response } from \"./api\";\nimport type { NotificationAPI_Get_Request } from \"./api\";\nimport type { SubscriptionAPI_DetachFilter_Response } from \"./api\";\nimport type { SubscriptionAPI_DetachFilter_Request } from \"./api\";\nimport type { SubscriptionAPI_AttachFilter_Response } from \"./api\";\nimport type { SubscriptionAPI_AttachFilter_Request } from \"./api\";\nimport type { TxAPI_Sync_Response } from \"./api\";\nimport type { TxAPI_Sync_Request } from \"./api\";\nimport type { UnaryCall } from \"@protobuf-ts/runtime-rpc\";\nimport { stackIntercept } from \"@protobuf-ts/runtime-rpc\";\nimport type { TxAPI_ServerMessage } from \"./api\";\nimport type { TxAPI_ClientMessage } from \"./api\";\nimport type { DuplexStreamingCall } from \"@protobuf-ts/runtime-rpc\";\nimport type { RpcOptions } from \"@protobuf-ts/runtime-rpc\";\n/**\n * @generated from protobuf service MiLaboratories.PL.API.Platform\n */\nexport interface IPlatformClient {\n /**\n *\n * Transactions\n *\n *\n * @generated from protobuf rpc: Tx\n */\n tx(options?: RpcOptions): DuplexStreamingCall<TxAPI_ClientMessage, TxAPI_ServerMessage>;\n /**\n * @generated from protobuf rpc: TxSync\n */\n txSync(input: TxAPI_Sync_Request, options?: RpcOptions): UnaryCall<TxAPI_Sync_Request, TxAPI_Sync_Response>;\n /**\n *\n * Subscriptions\n *\n *\n * @generated from protobuf rpc: SubscriptionAttachFilter\n */\n subscriptionAttachFilter(input: SubscriptionAPI_AttachFilter_Request, options?: RpcOptions): UnaryCall<SubscriptionAPI_AttachFilter_Request, SubscriptionAPI_AttachFilter_Response>;\n /**\n * @generated from protobuf rpc: SubscriptionDetachFilter\n */\n subscriptionDetachFilter(input: SubscriptionAPI_DetachFilter_Request, options?: RpcOptions): UnaryCall<SubscriptionAPI_DetachFilter_Request, SubscriptionAPI_DetachFilter_Response>;\n /**\n * @generated from protobuf rpc: NotificationsGet\n */\n notificationsGet(input: NotificationAPI_Get_Request, options?: RpcOptions): UnaryCall<NotificationAPI_Get_Request, NotificationAPI_Get_Response>;\n /**\n *\n * Controllers\n *\n *\n * @generated from protobuf rpc: ControllerRegister\n */\n controllerRegister(input: ControllerAPI_Register_Request, options?: RpcOptions): UnaryCall<ControllerAPI_Register_Request, ControllerAPI_Register_Response>;\n /**\n * @generated from protobuf rpc: ControllerDeregister\n */\n controllerDeregister(input: ControllerAPI_Deregister_Request, options?: RpcOptions): UnaryCall<ControllerAPI_Deregister_Request, ControllerAPI_Deregister_Response>;\n /**\n * @generated from protobuf rpc: ControllerCreate\n */\n controllerCreate(input: ControllerAPI_Create_Request, options?: RpcOptions): UnaryCall<ControllerAPI_Create_Request, ControllerAPI_Create_Response>;\n /**\n * @generated from protobuf rpc: ControllerExists\n */\n controllerExists(input: ControllerAPI_Exists_Request, options?: RpcOptions): UnaryCall<ControllerAPI_Exists_Request, ControllerAPI_Exists_Response>;\n /**\n * @generated from protobuf rpc: ControllerGet\n */\n controllerGet(input: ControllerAPI_Get_Request, options?: RpcOptions): UnaryCall<ControllerAPI_Get_Request, ControllerAPI_Get_Response>;\n /**\n * @generated from protobuf rpc: ControllerUpdate\n */\n controllerUpdate(input: ControllerAPI_Update_Request, options?: RpcOptions): UnaryCall<ControllerAPI_Update_Request, ControllerAPI_Update_Response>;\n /**\n * @generated from protobuf rpc: ControllerAttachSubscription\n */\n controllerAttachSubscription(input: ControllerAPI_AttachSubscription_Request, options?: RpcOptions): UnaryCall<ControllerAPI_AttachSubscription_Request, ControllerAPI_AttachSubscription_Response>;\n /**\n * @generated from protobuf rpc: GetControllerNotifications\n */\n getControllerNotifications(input: ControllerAPI_GetNotifications_Request, options?: RpcOptions): UnaryCall<ControllerAPI_GetNotifications_Request, ControllerAPI_GetNotifications_Response>;\n /**\n * @generated from protobuf rpc: WriteControllerAliasesAndUrls\n */\n writeControllerAliasesAndUrls(input: ControllerAPI_WriteAliasesAndUrls_Request, options?: RpcOptions): UnaryCall<ControllerAPI_WriteAliasesAndUrls_Request, ControllerAPI_WriteAliasesAndUrls_Response>;\n /**\n * @generated from protobuf rpc: RemoveControllerAliasesAndUrls\n */\n removeControllerAliasesAndUrls(input: ControllerAPI_RemoveAliasesAndUrls_Request, options?: RpcOptions): UnaryCall<ControllerAPI_RemoveAliasesAndUrls_Request, ControllerAPI_RemoveAliasesAndUrls_Response>;\n /**\n * @generated from protobuf rpc: GetControllerUrl\n */\n getControllerUrl(input: ControllerAPI_GetUrl_Request, options?: RpcOptions): UnaryCall<ControllerAPI_GetUrl_Request, ControllerAPI_GetUrl_Response>;\n /**\n * @generated from protobuf rpc: ControllerSetFeatures\n */\n controllerSetFeatures(input: ControllerAPI_SetFeatures_Request, options?: RpcOptions): UnaryCall<ControllerAPI_SetFeatures_Request, ControllerAPI_SetFeatures_Response>;\n /**\n * @generated from protobuf rpc: ControllerClearFeatures\n */\n controllerClearFeatures(input: ControllerAPI_ClearFeatures_Request, options?: RpcOptions): UnaryCall<ControllerAPI_ClearFeatures_Request, ControllerAPI_ClearFeatures_Response>;\n // \n // Locks\n // \n\n /**\n * LockFieldValues gets the resource and obtains a lock on all resolved values of listed fields:\n * - get the resource that will take the lock ('FOR' resource) (lock cannot be obtained 'FOR' or 'ON' deleted resource)\n * - list resource's fields, take fields with names set in request\n * - get resolved values of listed fields (IDs of 'ON' resources).\n * - acquire lock on all 'ON' resources, marking 'FOR' resource as an owner.\n *\n * Lock logic constraints:\n * - Locking is optimistic: if two processes try to obtain a lock on the same resource, one of them\n * succeeds, while the other fails with an error (no long waiting)\n * - Only resolved reference can be locked: to obtain a lock for a particular field's value, the backend needs to know\n * the resource ID this field points to. Unless all listed field references are resolved to a final ID, the lock will fail.\n * - Only an original resource can be locked: if a resource is 'pure' (supports deduplication), it has to pass deduplication before\n * being lockable. An attempt to lock a resource that has not become original will fail.\n * - Locking is a one-way operation: it cannot be 'released' or 'revoked'.\n *\n * @generated from protobuf rpc: LockFieldValues\n */\n lockFieldValues(input: LocksAPI_LockFieldValues_Create_Request, options?: RpcOptions): UnaryCall<LocksAPI_LockFieldValues_Create_Request, LocksAPI_LockFieldValues_Create_Response>;\n /**\n * LeaseResource creates a lease for a resource. A lease is a temporary lock that needs periodic renewal to stay valid.\n * Leases are a separate mechanism from locks: leases are focused on 'clients', while locks are focused on 'resources'.\n * To keep the lease active, the client needs the lease ID that is generated when a lease is created and used for lease updates.\n *\n * @generated from protobuf rpc: LeaseResource\n */\n leaseResource(input: LocksAPI_Lease_Create_Request, options?: RpcOptions): UnaryCall<LocksAPI_Lease_Create_Request, LocksAPI_Lease_Create_Response>;\n /**\n * @generated from protobuf rpc: UpdateLease\n */\n updateLease(input: LocksAPI_Lease_Update_Request, options?: RpcOptions): UnaryCall<LocksAPI_Lease_Update_Request, LocksAPI_Lease_Update_Response>;\n /**\n * @generated from protobuf rpc: ReleaseLease\n */\n releaseLease(input: LocksAPI_Lease_Release_Request, options?: RpcOptions): UnaryCall<LocksAPI_Lease_Release_Request, LocksAPI_Lease_Release_Response>;\n /**\n *\n * Authentication\n *\n *\n * @generated from protobuf rpc: AuthMethods\n */\n authMethods(input: AuthAPI_ListMethods_Request, options?: RpcOptions): UnaryCall<AuthAPI_ListMethods_Request, AuthAPI_ListMethods_Response>;\n /**\n * @generated from protobuf rpc: GetJWTToken\n */\n getJWTToken(input: AuthAPI_GetJWTToken_Request, options?: RpcOptions): UnaryCall<AuthAPI_GetJWTToken_Request, AuthAPI_GetJWTToken_Response>;\n /**\n * @generated from protobuf rpc: GrantAccess\n */\n grantAccess(input: AuthAPI_GrantAccess_Request, options?: RpcOptions): UnaryCall<AuthAPI_GrantAccess_Request, AuthAPI_GrantAccess_Response>;\n /**\n * @generated from protobuf rpc: RevokeGrant\n */\n revokeGrant(input: AuthAPI_RevokeGrant_Request, options?: RpcOptions): UnaryCall<AuthAPI_RevokeGrant_Request, AuthAPI_RevokeGrant_Response>;\n /**\n * @generated from protobuf rpc: ListGrants\n */\n listGrants(input: AuthAPI_ListGrants_Request, options?: RpcOptions): ServerStreamingCall<AuthAPI_ListGrants_Request, AuthAPI_ListGrants_Response>;\n /**\n * @generated from protobuf rpc: ListUserResources\n */\n listUserResources(input: AuthAPI_ListUserResources_Request, options?: RpcOptions): ServerStreamingCall<AuthAPI_ListUserResources_Request, AuthAPI_ListUserResources_Response>;\n /**\n *\n * Other stuff\n *\n *\n * @generated from protobuf rpc: ListResourceTypes\n */\n listResourceTypes(input: MiscAPI_ListResourceTypes_Request, options?: RpcOptions): UnaryCall<MiscAPI_ListResourceTypes_Request, MiscAPI_ListResourceTypes_Response>;\n /**\n *\n * Various service requests\n *\n *\n * @generated from protobuf rpc: Ping\n */\n ping(input: MaintenanceAPI_Ping_Request, options?: RpcOptions): UnaryCall<MaintenanceAPI_Ping_Request, MaintenanceAPI_Ping_Response>;\n /**\n * @generated from protobuf rpc: License\n */\n license(input: MaintenanceAPI_License_Request, options?: RpcOptions): UnaryCall<MaintenanceAPI_License_Request, MaintenanceAPI_License_Response>;\n}\n/**\n * @generated from protobuf service MiLaboratories.PL.API.Platform\n */\nexport class PlatformClient implements IPlatformClient, ServiceInfo {\n typeName = Platform.typeName;\n methods = Platform.methods;\n options = Platform.options;\n constructor(private readonly _transport: RpcTransport) {\n }\n /**\n *\n * Transactions\n *\n *\n * @generated from protobuf rpc: Tx\n */\n tx(options?: RpcOptions): DuplexStreamingCall<TxAPI_ClientMessage, TxAPI_ServerMessage> {\n const method = this.methods[0], opt = this._transport.mergeOptions(options);\n return stackIntercept<TxAPI_ClientMessage, TxAPI_ServerMessage>(\"duplex\", this._transport, method, opt);\n }\n /**\n * @generated from protobuf rpc: TxSync\n */\n txSync(input: TxAPI_Sync_Request, options?: RpcOptions): UnaryCall<TxAPI_Sync_Request, TxAPI_Sync_Response> {\n const method = this.methods[1], opt = this._transport.mergeOptions(options);\n return stackIntercept<TxAPI_Sync_Request, TxAPI_Sync_Response>(\"unary\", this._transport, method, opt, input);\n }\n /**\n *\n * Subscriptions\n *\n *\n * @generated from protobuf rpc: SubscriptionAttachFilter\n */\n subscriptionAttachFilter(input: SubscriptionAPI_AttachFilter_Request, options?: RpcOptions): UnaryCall<SubscriptionAPI_AttachFilter_Request, SubscriptionAPI_AttachFilter_Response> {\n const method = this.methods[2], opt = this._transport.mergeOptions(options);\n return stackIntercept<SubscriptionAPI_AttachFilter_Request, SubscriptionAPI_AttachFilter_Response>(\"unary\", this._transport, method, opt, input);\n }\n /**\n * @generated from protobuf rpc: SubscriptionDetachFilter\n */\n subscriptionDetachFilter(input: SubscriptionAPI_DetachFilter_Request, options?: RpcOptions): UnaryCall<SubscriptionAPI_DetachFilter_Request, SubscriptionAPI_DetachFilter_Response> {\n const method = this.methods[3], opt = this._transport.mergeOptions(options);\n return stackIntercept<SubscriptionAPI_DetachFilter_Request, SubscriptionAPI_DetachFilter_Response>(\"unary\", this._transport, method, opt, input);\n }\n /**\n * @generated from protobuf rpc: NotificationsGet\n */\n notificationsGet(input: NotificationAPI_Get_Request, options?: RpcOptions): UnaryCall<NotificationAPI_Get_Request, NotificationAPI_Get_Response> {\n const method = this.methods[4], opt = this._transport.mergeOptions(options);\n return stackIntercept<NotificationAPI_Get_Request, NotificationAPI_Get_Response>(\"unary\", this._transport, method, opt, input);\n }\n /**\n *\n * Controllers\n *\n *\n * @generated from protobuf rpc: ControllerRegister\n */\n controllerRegister(input: ControllerAPI_Register_Request, options?: RpcOptions): UnaryCall<ControllerAPI_Register_Request, ControllerAPI_Register_Response> {\n const method = this.methods[5], opt = this._transport.mergeOptions(options);\n return stackIntercept<ControllerAPI_Register_Request, ControllerAPI_Register_Response>(\"unary\", this._transport, method, opt, input);\n }\n /**\n * @generated from protobuf rpc: ControllerDeregister\n */\n controllerDeregister(input: ControllerAPI_Deregister_Request, options?: RpcOptions): UnaryCall<ControllerAPI_Deregister_Request, ControllerAPI_Deregister_Response> {\n const method = this.methods[6], opt = this._transport.mergeOptions(options);\n return stackIntercept<ControllerAPI_Deregister_Request, ControllerAPI_Deregister_Response>(\"unary\", this._transport, method, opt, input);\n }\n /**\n * @generated from protobuf rpc: ControllerCreate\n */\n controllerCreate(input: ControllerAPI_Create_Request, options?: RpcOptions): UnaryCall<ControllerAPI_Create_Request, ControllerAPI_Create_Response> {\n const method = this.methods[7], opt = this._transport.mergeOptions(options);\n return stackIntercept<ControllerAPI_Create_Request, ControllerAPI_Create_Response>(\"unary\", this._transport, method, opt, input);\n }\n /**\n * @generated from protobuf rpc: ControllerExists\n */\n controllerExists(input: ControllerAPI_Exists_Request, options?: RpcOptions): UnaryCall<ControllerAPI_Exists_Request, ControllerAPI_Exists_Response> {\n const method = this.methods[8], opt = this._transport.mergeOptions(options);\n return stackIntercept<ControllerAPI_Exists_Request, ControllerAPI_Exists_Response>(\"unary\", this._transport, method, opt, input);\n }\n /**\n * @generated from protobuf rpc: ControllerGet\n */\n controllerGet(input: ControllerAPI_Get_Request, options?: RpcOptions): UnaryCall<ControllerAPI_Get_Request, ControllerAPI_Get_Response> {\n const method = this.methods[9], opt = this._transport.mergeOptions(options);\n return stackIntercept<ControllerAPI_Get_Request, ControllerAPI_Get_Response>(\"unary\", this._transport, method, opt, input);\n }\n /**\n * @generated from protobuf rpc: ControllerUpdate\n */\n controllerUpdate(input: ControllerAPI_Update_Request, options?: RpcOptions): UnaryCall<ControllerAPI_Update_Request, ControllerAPI_Update_Response> {\n const method = this.methods[10], opt = this._transport.mergeOptions(options);\n return stackIntercept<ControllerAPI_Update_Request, ControllerAPI_Update_Response>(\"unary\", this._transport, method, opt, input);\n }\n /**\n * @generated from protobuf rpc: ControllerAttachSubscription\n */\n controllerAttachSubscription(input: ControllerAPI_AttachSubscription_Request, options?: RpcOptions): UnaryCall<ControllerAPI_AttachSubscription_Request, ControllerAPI_AttachSubscription_Response> {\n const method = this.methods[11], opt = this._transport.mergeOptions(options);\n return stackIntercept<ControllerAPI_AttachSubscription_Request, ControllerAPI_AttachSubscription_Response>(\"unary\", this._transport, method, opt, input);\n }\n /**\n * @generated from protobuf rpc: GetControllerNotifications\n */\n getControllerNotifications(input: ControllerAPI_GetNotifications_Request, options?: RpcOptions): UnaryCall<ControllerAPI_GetNotifications_Request, ControllerAPI_GetNotifications_Response> {\n const method = this.methods[12], opt = this._transport.mergeOptions(options);\n return stackIntercept<ControllerAPI_GetNotifications_Request, ControllerAPI_GetNotifications_Response>(\"unary\", this._transport, method, opt, input);\n }\n /**\n * @generated from protobuf rpc: WriteControllerAliasesAndUrls\n */\n writeControllerAliasesAndUrls(input: ControllerAPI_WriteAliasesAndUrls_Request, options?: RpcOptions): UnaryCall<ControllerAPI_WriteAliasesAndUrls_Request, ControllerAPI_WriteAliasesAndUrls_Response> {\n const method = this.methods[13], opt = this._transport.mergeOptions(options);\n return stackIntercept<ControllerAPI_WriteAliasesAndUrls_Request, ControllerAPI_WriteAliasesAndUrls_Response>(\"unary\", this._transport, method, opt, input);\n }\n /**\n * @generated from protobuf rpc: RemoveControllerAliasesAndUrls\n */\n removeControllerAliasesAndUrls(input: ControllerAPI_RemoveAliasesAndUrls_Request, options?: RpcOptions): UnaryCall<ControllerAPI_RemoveAliasesAndUrls_Request, ControllerAPI_RemoveAliasesAndUrls_Response> {\n const method = this.methods[14], opt = this._transport.mergeOptions(options);\n return stackIntercept<ControllerAPI_RemoveAliasesAndUrls_Request, ControllerAPI_RemoveAliasesAndUrls_Response>(\"unary\", this._transport, method, opt, input);\n }\n /**\n * @generated from protobuf rpc: GetControllerUrl\n */\n getControllerUrl(input: ControllerAPI_GetUrl_Request, options?: RpcOptions): UnaryCall<ControllerAPI_GetUrl_Request, ControllerAPI_GetUrl_Response> {\n const method = this.methods[15], opt = this._transport.mergeOptions(options);\n return stackIntercept<ControllerAPI_GetUrl_Request, ControllerAPI_GetUrl_Response>(\"unary\", this._transport, method, opt, input);\n }\n /**\n * @generated from protobuf rpc: ControllerSetFeatures\n */\n controllerSetFeatures(input: ControllerAPI_SetFeatures_Request, options?: RpcOptions): UnaryCall<ControllerAPI_SetFeatures_Request, ControllerAPI_SetFeatures_Response> {\n const method = this.methods[16], opt = this._transport.mergeOptions(options);\n return stackIntercept<ControllerAPI_SetFeatures_Request, ControllerAPI_SetFeatures_Response>(\"unary\", this._transport, method, opt, input);\n }\n /**\n * @generated from protobuf rpc: ControllerClearFeatures\n */\n controllerClearFeatures(input: ControllerAPI_ClearFeatures_Request, options?: RpcOptions): UnaryCall<ControllerAPI_ClearFeatures_Request, ControllerAPI_ClearFeatures_Response> {\n const method = this.methods[17], opt = this._transport.mergeOptions(options);\n return stackIntercept<ControllerAPI_ClearFeatures_Request, ControllerAPI_ClearFeatures_Response>(\"unary\", this._transport, method, opt, input);\n }\n // \n // Locks\n // \n\n /**\n * LockFieldValues gets the resource and obtains a lock on all resolved values of listed fields:\n * - get the resource that will take the lock ('FOR' resource) (lock cannot be obtained 'FOR' or 'ON' deleted resource)\n * - list resource's fields, take fields with names set in request\n * - get resolved values of listed fields (IDs of 'ON' resources).\n * - acquire lock on all 'ON' resources, marking 'FOR' resource as an owner.\n *\n * Lock logic constraints:\n * - Locking is optimistic: if two processes try to obtain a lock on the same resource, one of them\n * succeeds, while the other fails with an error (no long waiting)\n * - Only resolved reference can be locked: to obtain a lock for a particular field's value, the backend needs to know\n * the resource ID this field points to. Unless all listed field references are resolved to a final ID, the lock will fail.\n * - Only an original resource can be locked: if a resource is 'pure' (supports deduplication), it has to pass deduplication before\n * being lockable. An attempt to lock a resource that has not become original will fail.\n * - Locking is a one-way operation: it cannot be 'released' or 'revoked'.\n *\n * @generated from protobuf rpc: LockFieldValues\n */\n lockFieldValues(input: LocksAPI_LockFieldValues_Create_Request, options?: RpcOptions): UnaryCall<LocksAPI_LockFieldValues_Create_Request, LocksAPI_LockFieldValues_Create_Response> {\n const method = this.methods[18], opt = this._transport.mergeOptions(options);\n return stackIntercept<LocksAPI_LockFieldValues_Create_Request, LocksAPI_LockFieldValues_Create_Response>(\"unary\", this._transport, method, opt, input);\n }\n /**\n * LeaseResource creates a lease for a resource. A lease is a temporary lock that needs periodic renewal to stay valid.\n * Leases are a separate mechanism from locks: leases are focused on 'clients', while locks are focused on 'resources'.\n * To keep the lease active, the client needs the lease ID that is generated when a lease is created and used for lease updates.\n *\n * @generated from protobuf rpc: LeaseResource\n */\n leaseResource(input: LocksAPI_Lease_Create_Request, options?: RpcOptions): UnaryCall<LocksAPI_Lease_Create_Request, LocksAPI_Lease_Create_Response> {\n const method = this.methods[19], opt = this._transport.mergeOptions(options);\n return stackIntercept<LocksAPI_Lease_Create_Request, LocksAPI_Lease_Create_Response>(\"unary\", this._transport, method, opt, input);\n }\n /**\n * @generated from protobuf rpc: UpdateLease\n */\n updateLease(input: LocksAPI_Lease_Update_Request, options?: RpcOptions): UnaryCall<LocksAPI_Lease_Update_Request, LocksAPI_Lease_Update_Response> {\n const method = this.methods[20], opt = this._transport.mergeOptions(options);\n return stackIntercept<LocksAPI_Lease_Update_Request, LocksAPI_Lease_Update_Response>(\"unary\", this._transport, method, opt, input);\n }\n /**\n * @generated from protobuf rpc: ReleaseLease\n */\n releaseLease(input: LocksAPI_Lease_Release_Request, options?: RpcOptions): UnaryCall<LocksAPI_Lease_Release_Request, LocksAPI_Lease_Release_Response> {\n const method = this.methods[21], opt = this._transport.mergeOptions(options);\n return stackIntercept<LocksAPI_Lease_Release_Request, LocksAPI_Lease_Release_Response>(\"unary\", this._transport, method, opt, input);\n }\n /**\n *\n * Authentication\n *\n *\n * @generated from protobuf rpc: AuthMethods\n */\n authMethods(input: AuthAPI_ListMethods_Request, options?: RpcOptions): UnaryCall<AuthAPI_ListMethods_Request, AuthAPI_ListMethods_Response> {\n const method = this.methods[22], opt = this._transport.mergeOptions(options);\n return stackIntercept<AuthAPI_ListMethods_Request, AuthAPI_ListMethods_Response>(\"unary\", this._transport, method, opt, input);\n }\n /**\n * @generated from protobuf rpc: GetJWTToken\n */\n getJWTToken(input: AuthAPI_GetJWTToken_Request, options?: RpcOptions): UnaryCall<AuthAPI_GetJWTToken_Request, AuthAPI_GetJWTToken_Response> {\n const method = this.methods[23], opt = this._transport.mergeOptions(options);\n return stackIntercept<AuthAPI_GetJWTToken_Request, AuthAPI_GetJWTToken_Response>(\"unary\", this._transport, method, opt, input);\n }\n /**\n * @generated from protobuf rpc: GrantAccess\n */\n grantAccess(input: AuthAPI_GrantAccess_Request, options?: RpcOptions): UnaryCall<AuthAPI_GrantAccess_Request, AuthAPI_GrantAccess_Response> {\n const method = this.methods[24], opt = this._transport.mergeOptions(options);\n return stackIntercept<AuthAPI_GrantAccess_Request, AuthAPI_GrantAccess_Response>(\"unary\", this._transport, method, opt, input);\n }\n /**\n * @generated from protobuf rpc: RevokeGrant\n */\n revokeGrant(input: AuthAPI_RevokeGrant_Request, options?: RpcOptions): UnaryCall<AuthAPI_RevokeGrant_Request, AuthAPI_RevokeGrant_Response> {\n const method = this.methods[25], opt = this._transport.mergeOptions(options);\n return stackIntercept<AuthAPI_RevokeGrant_Request, AuthAPI_RevokeGrant_Response>(\"unary\", this._transport, method, opt, input);\n }\n /**\n * @generated from protobuf rpc: ListGrants\n */\n listGrants(input: AuthAPI_ListGrants_Request, options?: RpcOptions): ServerStreamingCall<AuthAPI_ListGrants_Request, AuthAPI_ListGrants_Response> {\n const method = this.methods[26], opt = this._transport.mergeOptions(options);\n return stackIntercept<AuthAPI_ListGrants_Request, AuthAPI_ListGrants_Response>(\"serverStreaming\", this._transport, method, opt, input);\n }\n /**\n * @generated from protobuf rpc: ListUserResources\n */\n listUserResources(input: AuthAPI_ListUserResources_Request, options?: RpcOptions): ServerStreamingCall<AuthAPI_ListUserResources_Request, AuthAPI_ListUserResources_Response> {\n const method = this.methods[27], opt = this._transport.mergeOptions(options);\n return stackIntercept<AuthAPI_ListUserResources_Request, AuthAPI_ListUserResources_Response>(\"serverStreaming\", this._transport, method, opt, input);\n }\n /**\n *\n * Other stuff\n *\n *\n * @generated from protobuf rpc: ListResourceTypes\n */\n listResourceTypes(input: MiscAPI_ListResourceTypes_Request, options?: RpcOptions): UnaryCall<MiscAPI_ListResourceTypes_Request, MiscAPI_ListResourceTypes_Response> {\n const method = this.methods[28], opt = this._transport.mergeOptions(options);\n return stackIntercept<MiscAPI_ListResourceTypes_Request, MiscAPI_ListResourceTypes_Response>(\"unary\", this._transport, method, opt, input);\n }\n /**\n *\n * Various service requests\n *\n *\n * @generated from protobuf rpc: Ping\n */\n ping(input: MaintenanceAPI_Ping_Request, options?: RpcOptions): UnaryCall<MaintenanceAPI_Ping_Request, MaintenanceAPI_Ping_Response> {\n const method = this.methods[29], opt = this._transport.mergeOptions(options);\n return stackIntercept<MaintenanceAPI_Ping_Request, MaintenanceAPI_Ping_Response>(\"unary\", this._transport, method, opt, input);\n }\n /**\n * @generated from protobuf rpc: License\n */\n license(input: MaintenanceAPI_License_Request, options?: RpcOptions): UnaryCall<MaintenanceAPI_License_Request, MaintenanceAPI_License_Response> {\n const method = this.methods[30], opt = this._transport.mergeOptions(options);\n return stackIntercept<MaintenanceAPI_License_Request, MaintenanceAPI_License_Response>(\"unary\", this._transport, method, opt, input);\n }\n}\n"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
- import { AuthAPI_GetJWTToken_Request, AuthAPI_GetJWTToken_Response, AuthAPI_ListMethods_Request, AuthAPI_ListMethods_Response, ControllerAPI_AttachSubscription_Request, ControllerAPI_AttachSubscription_Response, ControllerAPI_ClearFeatures_Request, ControllerAPI_ClearFeatures_Response, ControllerAPI_Create_Request, ControllerAPI_Create_Response, ControllerAPI_Deregister_Request, ControllerAPI_Deregister_Response, ControllerAPI_Exists_Request, ControllerAPI_Exists_Response, ControllerAPI_GetNotifications_Request, ControllerAPI_GetNotifications_Response, ControllerAPI_GetUrl_Request, ControllerAPI_GetUrl_Response, ControllerAPI_Get_Request, ControllerAPI_Get_Response, ControllerAPI_Register_Request, ControllerAPI_Register_Response, ControllerAPI_RemoveAliasesAndUrls_Request, ControllerAPI_RemoveAliasesAndUrls_Response, ControllerAPI_SetFeatures_Request, ControllerAPI_SetFeatures_Response, ControllerAPI_Update_Request, ControllerAPI_Update_Response, ControllerAPI_WriteAliasesAndUrls_Request, ControllerAPI_WriteAliasesAndUrls_Response, LocksAPI_Lease_Create_Request, LocksAPI_Lease_Create_Response, LocksAPI_Lease_Release_Request, LocksAPI_Lease_Release_Response, LocksAPI_Lease_Update_Request, LocksAPI_Lease_Update_Response, MaintenanceAPI_License_Request, MaintenanceAPI_License_Response, MaintenanceAPI_Ping_Request, MaintenanceAPI_Ping_Response, MiscAPI_ListResourceTypes_Request, MiscAPI_ListResourceTypes_Response, NotificationAPI_Get_Request, NotificationAPI_Get_Response, SubscriptionAPI_AttachFilter_Request, SubscriptionAPI_AttachFilter_Response, SubscriptionAPI_DetachFilter_Request, SubscriptionAPI_DetachFilter_Response, TxAPI_ClientMessage, TxAPI_ServerMessage, TxAPI_Sync_Request, TxAPI_Sync_Response } from "./api.js";
1
+ import { AuthAPI_GetJWTToken_Request, AuthAPI_GetJWTToken_Response, AuthAPI_GrantAccess_Request, AuthAPI_GrantAccess_Response, AuthAPI_ListGrants_Request, AuthAPI_ListGrants_Response, AuthAPI_ListMethods_Request, AuthAPI_ListMethods_Response, AuthAPI_ListUserResources_Request, AuthAPI_ListUserResources_Response, AuthAPI_RevokeGrant_Request, AuthAPI_RevokeGrant_Response, ControllerAPI_AttachSubscription_Request, ControllerAPI_AttachSubscription_Response, ControllerAPI_ClearFeatures_Request, ControllerAPI_ClearFeatures_Response, ControllerAPI_Create_Request, ControllerAPI_Create_Response, ControllerAPI_Deregister_Request, ControllerAPI_Deregister_Response, ControllerAPI_Exists_Request, ControllerAPI_Exists_Response, ControllerAPI_GetNotifications_Request, ControllerAPI_GetNotifications_Response, ControllerAPI_GetUrl_Request, ControllerAPI_GetUrl_Response, ControllerAPI_Get_Request, ControllerAPI_Get_Response, ControllerAPI_Register_Request, ControllerAPI_Register_Response, ControllerAPI_RemoveAliasesAndUrls_Request, ControllerAPI_RemoveAliasesAndUrls_Response, ControllerAPI_SetFeatures_Request, ControllerAPI_SetFeatures_Response, ControllerAPI_Update_Request, ControllerAPI_Update_Response, ControllerAPI_WriteAliasesAndUrls_Request, ControllerAPI_WriteAliasesAndUrls_Response, LocksAPI_Lease_Create_Request, LocksAPI_Lease_Create_Response, LocksAPI_Lease_Release_Request, LocksAPI_Lease_Release_Response, LocksAPI_Lease_Update_Request, LocksAPI_Lease_Update_Response, LocksAPI_LockFieldValues_Create_Request, LocksAPI_LockFieldValues_Create_Response, MaintenanceAPI_License_Request, MaintenanceAPI_License_Response, MaintenanceAPI_Ping_Request, MaintenanceAPI_Ping_Response, MiscAPI_ListResourceTypes_Request, MiscAPI_ListResourceTypes_Response, NotificationAPI_Get_Request, NotificationAPI_Get_Response, SubscriptionAPI_AttachFilter_Request, SubscriptionAPI_AttachFilter_Response, SubscriptionAPI_DetachFilter_Request, SubscriptionAPI_DetachFilter_Response, TxAPI_ClientMessage, TxAPI_ServerMessage, TxAPI_Sync_Request, TxAPI_Sync_Response } from "./api.js";
2
2
  import * as _protobuf_ts_runtime_rpc0 from "@protobuf-ts/runtime-rpc";
3
- import { DuplexStreamingCall, RpcOptions, RpcTransport, ServiceInfo, UnaryCall } from "@protobuf-ts/runtime-rpc";
3
+ import { DuplexStreamingCall, RpcOptions, RpcTransport, ServerStreamingCall, ServiceInfo, UnaryCall } from "@protobuf-ts/runtime-rpc";
4
4
  import * as _protobuf_ts_runtime0 from "@protobuf-ts/runtime";
5
5
 
6
6
  //#region src/proto-grpc/github.com/milaboratory/pl/plapi/plapiproto/api.client.d.ts
@@ -93,9 +93,28 @@ interface IPlatformClient {
93
93
  */
94
94
  controllerClearFeatures(input: ControllerAPI_ClearFeatures_Request, options?: RpcOptions): UnaryCall<ControllerAPI_ClearFeatures_Request, ControllerAPI_ClearFeatures_Response>;
95
95
  /**
96
+ * LockFieldValues gets the resource and obtains a lock on all resolved values of listed fields:
97
+ * - get the resource that will take the lock ('FOR' resource) (lock cannot be obtained 'FOR' or 'ON' deleted resource)
98
+ * - list resource's fields, take fields with names set in request
99
+ * - get resolved values of listed fields (IDs of 'ON' resources).
100
+ * - acquire lock on all 'ON' resources, marking 'FOR' resource as an owner.
96
101
  *
97
- * Locks
102
+ * Lock logic constraints:
103
+ * - Locking is optimistic: if two processes try to obtain a lock on the same resource, one of them
104
+ * succeeds, while the other fails with an error (no long waiting)
105
+ * - Only resolved reference can be locked: to obtain a lock for a particular field's value, the backend needs to know
106
+ * the resource ID this field points to. Unless all listed field references are resolved to a final ID, the lock will fail.
107
+ * - Only an original resource can be locked: if a resource is 'pure' (supports deduplication), it has to pass deduplication before
108
+ * being lockable. An attempt to lock a resource that has not become original will fail.
109
+ * - Locking is a one-way operation: it cannot be 'released' or 'revoked'.
98
110
  *
111
+ * @generated from protobuf rpc: LockFieldValues
112
+ */
113
+ lockFieldValues(input: LocksAPI_LockFieldValues_Create_Request, options?: RpcOptions): UnaryCall<LocksAPI_LockFieldValues_Create_Request, LocksAPI_LockFieldValues_Create_Response>;
114
+ /**
115
+ * LeaseResource creates a lease for a resource. A lease is a temporary lock that needs periodic renewal to stay valid.
116
+ * Leases are a separate mechanism from locks: leases are focused on 'clients', while locks are focused on 'resources'.
117
+ * To keep the lease active, the client needs the lease ID that is generated when a lease is created and used for lease updates.
99
118
  *
100
119
  * @generated from protobuf rpc: LeaseResource
101
120
  */
@@ -120,6 +139,22 @@ interface IPlatformClient {
120
139
  * @generated from protobuf rpc: GetJWTToken
121
140
  */
122
141
  getJWTToken(input: AuthAPI_GetJWTToken_Request, options?: RpcOptions): UnaryCall<AuthAPI_GetJWTToken_Request, AuthAPI_GetJWTToken_Response>;
142
+ /**
143
+ * @generated from protobuf rpc: GrantAccess
144
+ */
145
+ grantAccess(input: AuthAPI_GrantAccess_Request, options?: RpcOptions): UnaryCall<AuthAPI_GrantAccess_Request, AuthAPI_GrantAccess_Response>;
146
+ /**
147
+ * @generated from protobuf rpc: RevokeGrant
148
+ */
149
+ revokeGrant(input: AuthAPI_RevokeGrant_Request, options?: RpcOptions): UnaryCall<AuthAPI_RevokeGrant_Request, AuthAPI_RevokeGrant_Response>;
150
+ /**
151
+ * @generated from protobuf rpc: ListGrants
152
+ */
153
+ listGrants(input: AuthAPI_ListGrants_Request, options?: RpcOptions): ServerStreamingCall<AuthAPI_ListGrants_Request, AuthAPI_ListGrants_Response>;
154
+ /**
155
+ * @generated from protobuf rpc: ListUserResources
156
+ */
157
+ listUserResources(input: AuthAPI_ListUserResources_Request, options?: RpcOptions): ServerStreamingCall<AuthAPI_ListUserResources_Request, AuthAPI_ListUserResources_Response>;
123
158
  /**
124
159
  *
125
160
  * Other stuff
@@ -237,9 +272,28 @@ declare class PlatformClient implements IPlatformClient, ServiceInfo {
237
272
  */
238
273
  controllerClearFeatures(input: ControllerAPI_ClearFeatures_Request, options?: RpcOptions): UnaryCall<ControllerAPI_ClearFeatures_Request, ControllerAPI_ClearFeatures_Response>;
239
274
  /**
275
+ * LockFieldValues gets the resource and obtains a lock on all resolved values of listed fields:
276
+ * - get the resource that will take the lock ('FOR' resource) (lock cannot be obtained 'FOR' or 'ON' deleted resource)
277
+ * - list resource's fields, take fields with names set in request
278
+ * - get resolved values of listed fields (IDs of 'ON' resources).
279
+ * - acquire lock on all 'ON' resources, marking 'FOR' resource as an owner.
240
280
  *
241
- * Locks
281
+ * Lock logic constraints:
282
+ * - Locking is optimistic: if two processes try to obtain a lock on the same resource, one of them
283
+ * succeeds, while the other fails with an error (no long waiting)
284
+ * - Only resolved reference can be locked: to obtain a lock for a particular field's value, the backend needs to know
285
+ * the resource ID this field points to. Unless all listed field references are resolved to a final ID, the lock will fail.
286
+ * - Only an original resource can be locked: if a resource is 'pure' (supports deduplication), it has to pass deduplication before
287
+ * being lockable. An attempt to lock a resource that has not become original will fail.
288
+ * - Locking is a one-way operation: it cannot be 'released' or 'revoked'.
242
289
  *
290
+ * @generated from protobuf rpc: LockFieldValues
291
+ */
292
+ lockFieldValues(input: LocksAPI_LockFieldValues_Create_Request, options?: RpcOptions): UnaryCall<LocksAPI_LockFieldValues_Create_Request, LocksAPI_LockFieldValues_Create_Response>;
293
+ /**
294
+ * LeaseResource creates a lease for a resource. A lease is a temporary lock that needs periodic renewal to stay valid.
295
+ * Leases are a separate mechanism from locks: leases are focused on 'clients', while locks are focused on 'resources'.
296
+ * To keep the lease active, the client needs the lease ID that is generated when a lease is created and used for lease updates.
243
297
  *
244
298
  * @generated from protobuf rpc: LeaseResource
245
299
  */
@@ -264,6 +318,22 @@ declare class PlatformClient implements IPlatformClient, ServiceInfo {
264
318
  * @generated from protobuf rpc: GetJWTToken
265
319
  */
266
320
  getJWTToken(input: AuthAPI_GetJWTToken_Request, options?: RpcOptions): UnaryCall<AuthAPI_GetJWTToken_Request, AuthAPI_GetJWTToken_Response>;
321
+ /**
322
+ * @generated from protobuf rpc: GrantAccess
323
+ */
324
+ grantAccess(input: AuthAPI_GrantAccess_Request, options?: RpcOptions): UnaryCall<AuthAPI_GrantAccess_Request, AuthAPI_GrantAccess_Response>;
325
+ /**
326
+ * @generated from protobuf rpc: RevokeGrant
327
+ */
328
+ revokeGrant(input: AuthAPI_RevokeGrant_Request, options?: RpcOptions): UnaryCall<AuthAPI_RevokeGrant_Request, AuthAPI_RevokeGrant_Response>;
329
+ /**
330
+ * @generated from protobuf rpc: ListGrants
331
+ */
332
+ listGrants(input: AuthAPI_ListGrants_Request, options?: RpcOptions): ServerStreamingCall<AuthAPI_ListGrants_Request, AuthAPI_ListGrants_Response>;
333
+ /**
334
+ * @generated from protobuf rpc: ListUserResources
335
+ */
336
+ listUserResources(input: AuthAPI_ListUserResources_Request, options?: RpcOptions): ServerStreamingCall<AuthAPI_ListUserResources_Request, AuthAPI_ListUserResources_Response>;
267
337
  /**
268
338
  *
269
339
  * Other stuff
@@ -151,28 +151,50 @@ var PlatformClient = class {
151
151
  return stackIntercept("unary", this._transport, method, opt, input);
152
152
  }
153
153
  /**
154
+ * LockFieldValues gets the resource and obtains a lock on all resolved values of listed fields:
155
+ * - get the resource that will take the lock ('FOR' resource) (lock cannot be obtained 'FOR' or 'ON' deleted resource)
156
+ * - list resource's fields, take fields with names set in request
157
+ * - get resolved values of listed fields (IDs of 'ON' resources).
158
+ * - acquire lock on all 'ON' resources, marking 'FOR' resource as an owner.
154
159
  *
155
- * Locks
160
+ * Lock logic constraints:
161
+ * - Locking is optimistic: if two processes try to obtain a lock on the same resource, one of them
162
+ * succeeds, while the other fails with an error (no long waiting)
163
+ * - Only resolved reference can be locked: to obtain a lock for a particular field's value, the backend needs to know
164
+ * the resource ID this field points to. Unless all listed field references are resolved to a final ID, the lock will fail.
165
+ * - Only an original resource can be locked: if a resource is 'pure' (supports deduplication), it has to pass deduplication before
166
+ * being lockable. An attempt to lock a resource that has not become original will fail.
167
+ * - Locking is a one-way operation: it cannot be 'released' or 'revoked'.
156
168
  *
169
+ * @generated from protobuf rpc: LockFieldValues
170
+ */
171
+ lockFieldValues(input, options) {
172
+ const method = this.methods[18], opt = this._transport.mergeOptions(options);
173
+ return stackIntercept("unary", this._transport, method, opt, input);
174
+ }
175
+ /**
176
+ * LeaseResource creates a lease for a resource. A lease is a temporary lock that needs periodic renewal to stay valid.
177
+ * Leases are a separate mechanism from locks: leases are focused on 'clients', while locks are focused on 'resources'.
178
+ * To keep the lease active, the client needs the lease ID that is generated when a lease is created and used for lease updates.
157
179
  *
158
180
  * @generated from protobuf rpc: LeaseResource
159
181
  */
160
182
  leaseResource(input, options) {
161
- const method = this.methods[18], opt = this._transport.mergeOptions(options);
183
+ const method = this.methods[19], opt = this._transport.mergeOptions(options);
162
184
  return stackIntercept("unary", this._transport, method, opt, input);
163
185
  }
164
186
  /**
165
187
  * @generated from protobuf rpc: UpdateLease
166
188
  */
167
189
  updateLease(input, options) {
168
- const method = this.methods[19], opt = this._transport.mergeOptions(options);
190
+ const method = this.methods[20], opt = this._transport.mergeOptions(options);
169
191
  return stackIntercept("unary", this._transport, method, opt, input);
170
192
  }
171
193
  /**
172
194
  * @generated from protobuf rpc: ReleaseLease
173
195
  */
174
196
  releaseLease(input, options) {
175
- const method = this.methods[20], opt = this._transport.mergeOptions(options);
197
+ const method = this.methods[21], opt = this._transport.mergeOptions(options);
176
198
  return stackIntercept("unary", this._transport, method, opt, input);
177
199
  }
178
200
  /**
@@ -183,17 +205,45 @@ var PlatformClient = class {
183
205
  * @generated from protobuf rpc: AuthMethods
184
206
  */
185
207
  authMethods(input, options) {
186
- const method = this.methods[21], opt = this._transport.mergeOptions(options);
208
+ const method = this.methods[22], opt = this._transport.mergeOptions(options);
187
209
  return stackIntercept("unary", this._transport, method, opt, input);
188
210
  }
189
211
  /**
190
212
  * @generated from protobuf rpc: GetJWTToken
191
213
  */
192
214
  getJWTToken(input, options) {
193
- const method = this.methods[22], opt = this._transport.mergeOptions(options);
215
+ const method = this.methods[23], opt = this._transport.mergeOptions(options);
216
+ return stackIntercept("unary", this._transport, method, opt, input);
217
+ }
218
+ /**
219
+ * @generated from protobuf rpc: GrantAccess
220
+ */
221
+ grantAccess(input, options) {
222
+ const method = this.methods[24], opt = this._transport.mergeOptions(options);
194
223
  return stackIntercept("unary", this._transport, method, opt, input);
195
224
  }
196
225
  /**
226
+ * @generated from protobuf rpc: RevokeGrant
227
+ */
228
+ revokeGrant(input, options) {
229
+ const method = this.methods[25], opt = this._transport.mergeOptions(options);
230
+ return stackIntercept("unary", this._transport, method, opt, input);
231
+ }
232
+ /**
233
+ * @generated from protobuf rpc: ListGrants
234
+ */
235
+ listGrants(input, options) {
236
+ const method = this.methods[26], opt = this._transport.mergeOptions(options);
237
+ return stackIntercept("serverStreaming", this._transport, method, opt, input);
238
+ }
239
+ /**
240
+ * @generated from protobuf rpc: ListUserResources
241
+ */
242
+ listUserResources(input, options) {
243
+ const method = this.methods[27], opt = this._transport.mergeOptions(options);
244
+ return stackIntercept("serverStreaming", this._transport, method, opt, input);
245
+ }
246
+ /**
197
247
  *
198
248
  * Other stuff
199
249
  *
@@ -201,7 +251,7 @@ var PlatformClient = class {
201
251
  * @generated from protobuf rpc: ListResourceTypes
202
252
  */
203
253
  listResourceTypes(input, options) {
204
- const method = this.methods[23], opt = this._transport.mergeOptions(options);
254
+ const method = this.methods[28], opt = this._transport.mergeOptions(options);
205
255
  return stackIntercept("unary", this._transport, method, opt, input);
206
256
  }
207
257
  /**
@@ -212,14 +262,14 @@ var PlatformClient = class {
212
262
  * @generated from protobuf rpc: Ping
213
263
  */
214
264
  ping(input, options) {
215
- const method = this.methods[24], opt = this._transport.mergeOptions(options);
265
+ const method = this.methods[29], opt = this._transport.mergeOptions(options);
216
266
  return stackIntercept("unary", this._transport, method, opt, input);
217
267
  }
218
268
  /**
219
269
  * @generated from protobuf rpc: License
220
270
  */
221
271
  license(input, options) {
222
- const method = this.methods[25], opt = this._transport.mergeOptions(options);
272
+ const method = this.methods[30], opt = this._transport.mergeOptions(options);
223
273
  return stackIntercept("unary", this._transport, method, opt, input);
224
274
  }
225
275
  };