@miradorlabs/web-grpc 3.34.0 → 3.36.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.
@@ -262,6 +262,56 @@ export interface AdminRelayHeartbeat_CountersEntry {
262
262
  value: number;
263
263
  }
264
264
 
265
+ export interface ResolveOrgDetailsRequest {
266
+ /** UUIDs, at most 1000; a malformed id is a validation error. */
267
+ organizationIds: string[];
268
+ }
269
+
270
+ export interface ResolveOrgDetailsResponse {
271
+ status: ResponseStatus | undefined;
272
+ organizations: OrgDetails[];
273
+ }
274
+
275
+ export interface OrgDetails {
276
+ organizationId: string;
277
+ name: string;
278
+ }
279
+
280
+ export interface ResolveProjectDetailsRequest {
281
+ /** UUIDs, at most 1000; a malformed id is a validation error. */
282
+ projectIds: string[];
283
+ }
284
+
285
+ export interface ResolveProjectDetailsResponse {
286
+ status: ResponseStatus | undefined;
287
+ projects: ProjectDetails[];
288
+ }
289
+
290
+ /** A deleted project still resolves: its name is the one it had. */
291
+ export interface ProjectDetails {
292
+ projectId: string;
293
+ organizationId: string;
294
+ name: string;
295
+ }
296
+
297
+ export interface ResolveUserDetailsRequest {
298
+ /** The Mirador account user UUID (terma.user.id). */
299
+ userId: string;
300
+ }
301
+
302
+ export interface ResolveUserDetailsResponse {
303
+ status: ResponseStatus | undefined;
304
+ user: UserDetails | undefined;
305
+ }
306
+
307
+ export interface UserDetails {
308
+ userId: string;
309
+ /** The primary email, or the first address when the user has no primary one. */
310
+ email: string;
311
+ /** The first and last name joined; empty when neither is set. */
312
+ name: string;
313
+ }
314
+
265
315
  function createBaseGetAdminStatusRequest(): GetAdminStatusRequest {
266
316
  return {};
267
317
  }
@@ -3272,151 +3322,988 @@ export const AdminRelayHeartbeat_CountersEntry: MessageFns<AdminRelayHeartbeat_C
3272
3322
  },
3273
3323
  };
3274
3324
 
3275
- /**
3276
- * AdminGatewayService is the browser-facing surface of the admin tools, across every domain, which only
3277
- * Mirador staff (a verified mirador.org primary email) may use. The gateway's admin gate admits every RPC
3278
- * here except GetAdminStatus, which tells the frontend whether to show the admin tools at all.
3279
- */
3280
- export interface AdminGatewayService {
3281
- /** GetAdminStatus reports whether the authenticated caller may use the admin tools. */
3282
- GetAdminStatus(request: GetAdminStatusRequest, metadata?: Metadata): Promise<GetAdminStatusResponse>;
3283
- /** Beta invite codes for this gateway's product. */
3284
- GenerateInviteCodes(request: GenerateInviteCodesRequest, metadata?: Metadata): Promise<GenerateInviteCodesResponse>;
3285
- ListInviteCodes(request: ListInviteCodesRequest, metadata?: Metadata): Promise<ListInviteCodesResponse>;
3286
- /** SendInviteCodeEmail emails one available code to an address and records when and to whom it was sent. */
3287
- SendInviteCodeEmail(request: SendInviteCodeEmailRequest, metadata?: Metadata): Promise<SendInviteCodeEmailResponse>;
3288
- /**
3289
- * Staff set a global AI name's display name for every organization. An update makes the name MANUAL; the
3290
- * model processor never overwrites it. The tables are read through ReferenceGatewayService.
3291
- */
3292
- UpdateAIProvider(request: UpdateAIProviderRequest, metadata?: Metadata): Promise<UpdateAIProviderResponse>;
3293
- UpdateAIModel(request: UpdateAIModelRequest, metadata?: Metadata): Promise<UpdateAIModelResponse>;
3294
- UpdateAIEffort(request: UpdateAIEffortRequest, metadata?: Metadata): Promise<UpdateAIEffortResponse>;
3295
- UpdateAIBiller(request: UpdateAIBillerRequest, metadata?: Metadata): Promise<UpdateAIBillerResponse>;
3296
- /**
3297
- * Each Confirm<X> confirms every unreviewed name in the groups a List<X>Groups filter keeps (on every page),
3298
- * as one Update<X> per name would; it proxies telemetry.api.v1.TelemetryAdminService's Confirm<X>. It
3299
- * confirms what matches when it runs: compare confirmed_name_count with the count shown. Names are global: an
3300
- * unset observation also confirms groups none of the organizations reported. Observation OBSERVED keeps only
3301
- * the groups they reported, and still confirms every unreviewed name in them, including a spelling in the same
3302
- * group none of them reported.
3303
- */
3304
- ConfirmAIProviders(request: ConfirmAIProvidersRequest, metadata?: Metadata): Promise<ConfirmAIProvidersResponse>;
3305
- ConfirmAIModels(request: ConfirmAIModelsRequest, metadata?: Metadata): Promise<ConfirmAIModelsResponse>;
3306
- ConfirmAIEfforts(request: ConfirmAIEffortsRequest, metadata?: Metadata): Promise<ConfirmAIEffortsResponse>;
3307
- ConfirmAIBillers(request: ConfirmAIBillersRequest, metadata?: Metadata): Promise<ConfirmAIBillersResponse>;
3308
- /**
3309
- * Every Terma relay across the fleet with its latest heartbeat in full, one row per (organization, project, user,
3310
- * host), most recently seen first (keyset-paginated); it proxies
3311
- * telemetry.api.v1.TelemetryAdminService.ListRelayHeartbeats. Rows carry ids, not names.
3312
- */
3313
- ListRelayHeartbeats(
3314
- request: ListAdminRelayHeartbeatsRequest,
3315
- metadata?: Metadata,
3316
- ): Promise<ListAdminRelayHeartbeatsResponse>;
3325
+ function createBaseResolveOrgDetailsRequest(): ResolveOrgDetailsRequest {
3326
+ return { organizationIds: [] };
3317
3327
  }
3318
3328
 
3319
- export const AdminGatewayServiceServiceName = "gateway.web.v1.AdminGatewayService";
3320
- export class AdminGatewayServiceClientImpl implements AdminGatewayService {
3321
- private readonly rpc: Rpc;
3322
- private readonly service: string;
3323
- constructor(rpc: Rpc, opts?: { service?: string }) {
3324
- this.service = opts?.service || AdminGatewayServiceServiceName;
3325
- this.rpc = rpc;
3326
- this.GetAdminStatus = this.GetAdminStatus.bind(this);
3327
- this.GenerateInviteCodes = this.GenerateInviteCodes.bind(this);
3328
- this.ListInviteCodes = this.ListInviteCodes.bind(this);
3329
- this.SendInviteCodeEmail = this.SendInviteCodeEmail.bind(this);
3330
- this.UpdateAIProvider = this.UpdateAIProvider.bind(this);
3331
- this.UpdateAIModel = this.UpdateAIModel.bind(this);
3332
- this.UpdateAIEffort = this.UpdateAIEffort.bind(this);
3333
- this.UpdateAIBiller = this.UpdateAIBiller.bind(this);
3334
- this.ConfirmAIProviders = this.ConfirmAIProviders.bind(this);
3335
- this.ConfirmAIModels = this.ConfirmAIModels.bind(this);
3336
- this.ConfirmAIEfforts = this.ConfirmAIEfforts.bind(this);
3337
- this.ConfirmAIBillers = this.ConfirmAIBillers.bind(this);
3338
- this.ListRelayHeartbeats = this.ListRelayHeartbeats.bind(this);
3339
- }
3340
- GetAdminStatus(request: GetAdminStatusRequest, metadata?: Metadata): Promise<GetAdminStatusResponse> {
3341
- const data = GetAdminStatusRequest.encode(request).finish();
3342
- const promise = this.rpc.request(this.service, "GetAdminStatus", data, metadata);
3343
- return promise.then((data) => GetAdminStatusResponse.decode(new BinaryReader(data)));
3344
- }
3329
+ export const ResolveOrgDetailsRequest: MessageFns<ResolveOrgDetailsRequest> = {
3330
+ encode(message: ResolveOrgDetailsRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {
3331
+ for (const v of message.organizationIds) {
3332
+ writer.uint32(10).string(v!);
3333
+ }
3334
+ return writer;
3335
+ },
3345
3336
 
3346
- GenerateInviteCodes(request: GenerateInviteCodesRequest, metadata?: Metadata): Promise<GenerateInviteCodesResponse> {
3347
- const data = GenerateInviteCodesRequest.encode(request).finish();
3348
- const promise = this.rpc.request(this.service, "GenerateInviteCodes", data, metadata);
3349
- return promise.then((data) => GenerateInviteCodesResponse.decode(new BinaryReader(data)));
3350
- }
3337
+ decode(input: BinaryReader | Uint8Array, length?: number): ResolveOrgDetailsRequest {
3338
+ const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
3339
+ const previousRecursionDepth = (reader as any).__tsProtoDecodeDepth ?? 0;
3340
+ if (previousRecursionDepth >= 100) {
3341
+ throw new globalThis.Error("protobuf decode recursion limit exceeded");
3342
+ }
3343
+ (reader as any).__tsProtoDecodeDepth = previousRecursionDepth + 1;
3344
+ try {
3345
+ const end = length === undefined ? reader.len : reader.pos + length;
3346
+ const message = createBaseResolveOrgDetailsRequest();
3347
+ while (reader.pos < end) {
3348
+ const tag = reader.uint32();
3349
+ switch (tag >>> 3) {
3350
+ case 1: {
3351
+ if (tag !== 10) {
3352
+ break;
3353
+ }
3351
3354
 
3352
- ListInviteCodes(request: ListInviteCodesRequest, metadata?: Metadata): Promise<ListInviteCodesResponse> {
3353
- const data = ListInviteCodesRequest.encode(request).finish();
3354
- const promise = this.rpc.request(this.service, "ListInviteCodes", data, metadata);
3355
- return promise.then((data) => ListInviteCodesResponse.decode(new BinaryReader(data)));
3356
- }
3355
+ message.organizationIds.push(reader.string());
3356
+ continue;
3357
+ }
3358
+ }
3359
+ if ((tag & 7) === 4 || tag === 0) {
3360
+ break;
3361
+ }
3362
+ reader.skip(tag & 7);
3363
+ }
3364
+ return message;
3365
+ } finally {
3366
+ (reader as any).__tsProtoDecodeDepth = previousRecursionDepth;
3367
+ }
3368
+ },
3357
3369
 
3358
- SendInviteCodeEmail(request: SendInviteCodeEmailRequest, metadata?: Metadata): Promise<SendInviteCodeEmailResponse> {
3359
- const data = SendInviteCodeEmailRequest.encode(request).finish();
3360
- const promise = this.rpc.request(this.service, "SendInviteCodeEmail", data, metadata);
3361
- return promise.then((data) => SendInviteCodeEmailResponse.decode(new BinaryReader(data)));
3362
- }
3370
+ fromJSON(object: any): ResolveOrgDetailsRequest {
3371
+ return {
3372
+ organizationIds: globalThis.Array.isArray(object?.organizationIds)
3373
+ ? object.organizationIds.map((e: any) => globalThis.String(e))
3374
+ : globalThis.Array.isArray(object?.organization_ids)
3375
+ ? object.organization_ids.map((e: any) => globalThis.String(e))
3376
+ : [],
3377
+ };
3378
+ },
3363
3379
 
3364
- UpdateAIProvider(request: UpdateAIProviderRequest, metadata?: Metadata): Promise<UpdateAIProviderResponse> {
3365
- const data = UpdateAIProviderRequest.encode(request).finish();
3366
- const promise = this.rpc.request(this.service, "UpdateAIProvider", data, metadata);
3367
- return promise.then((data) => UpdateAIProviderResponse.decode(new BinaryReader(data)));
3368
- }
3380
+ toJSON(message: ResolveOrgDetailsRequest): unknown {
3381
+ const obj: any = {};
3382
+ if (message.organizationIds?.length) {
3383
+ obj.organizationIds = message.organizationIds;
3384
+ }
3385
+ return obj;
3386
+ },
3369
3387
 
3370
- UpdateAIModel(request: UpdateAIModelRequest, metadata?: Metadata): Promise<UpdateAIModelResponse> {
3371
- const data = UpdateAIModelRequest.encode(request).finish();
3372
- const promise = this.rpc.request(this.service, "UpdateAIModel", data, metadata);
3373
- return promise.then((data) => UpdateAIModelResponse.decode(new BinaryReader(data)));
3374
- }
3388
+ create<I extends Exact<DeepPartial<ResolveOrgDetailsRequest>, I>>(base?: I): ResolveOrgDetailsRequest {
3389
+ return ResolveOrgDetailsRequest.fromPartial(base ?? ({} as any));
3390
+ },
3391
+ fromPartial<I extends Exact<DeepPartial<ResolveOrgDetailsRequest>, I>>(object: I): ResolveOrgDetailsRequest {
3392
+ const message = createBaseResolveOrgDetailsRequest();
3393
+ message.organizationIds = object.organizationIds?.map((e) => e) || [];
3394
+ return message;
3395
+ },
3396
+ };
3375
3397
 
3376
- UpdateAIEffort(request: UpdateAIEffortRequest, metadata?: Metadata): Promise<UpdateAIEffortResponse> {
3377
- const data = UpdateAIEffortRequest.encode(request).finish();
3378
- const promise = this.rpc.request(this.service, "UpdateAIEffort", data, metadata);
3379
- return promise.then((data) => UpdateAIEffortResponse.decode(new BinaryReader(data)));
3380
- }
3398
+ function createBaseResolveOrgDetailsResponse(): ResolveOrgDetailsResponse {
3399
+ return { status: undefined, organizations: [] };
3400
+ }
3381
3401
 
3382
- UpdateAIBiller(request: UpdateAIBillerRequest, metadata?: Metadata): Promise<UpdateAIBillerResponse> {
3383
- const data = UpdateAIBillerRequest.encode(request).finish();
3384
- const promise = this.rpc.request(this.service, "UpdateAIBiller", data, metadata);
3385
- return promise.then((data) => UpdateAIBillerResponse.decode(new BinaryReader(data)));
3386
- }
3402
+ export const ResolveOrgDetailsResponse: MessageFns<ResolveOrgDetailsResponse> = {
3403
+ encode(message: ResolveOrgDetailsResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {
3404
+ if (message.status !== undefined) {
3405
+ ResponseStatus.encode(message.status, writer.uint32(10).fork()).join();
3406
+ }
3407
+ for (const v of message.organizations) {
3408
+ OrgDetails.encode(v!, writer.uint32(18).fork()).join();
3409
+ }
3410
+ return writer;
3411
+ },
3387
3412
 
3388
- ConfirmAIProviders(request: ConfirmAIProvidersRequest, metadata?: Metadata): Promise<ConfirmAIProvidersResponse> {
3389
- const data = ConfirmAIProvidersRequest.encode(request).finish();
3390
- const promise = this.rpc.request(this.service, "ConfirmAIProviders", data, metadata);
3391
- return promise.then((data) => ConfirmAIProvidersResponse.decode(new BinaryReader(data)));
3392
- }
3413
+ decode(input: BinaryReader | Uint8Array, length?: number): ResolveOrgDetailsResponse {
3414
+ const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
3415
+ const previousRecursionDepth = (reader as any).__tsProtoDecodeDepth ?? 0;
3416
+ if (previousRecursionDepth >= 100) {
3417
+ throw new globalThis.Error("protobuf decode recursion limit exceeded");
3418
+ }
3419
+ (reader as any).__tsProtoDecodeDepth = previousRecursionDepth + 1;
3420
+ try {
3421
+ const end = length === undefined ? reader.len : reader.pos + length;
3422
+ const message = createBaseResolveOrgDetailsResponse();
3423
+ while (reader.pos < end) {
3424
+ const tag = reader.uint32();
3425
+ switch (tag >>> 3) {
3426
+ case 1: {
3427
+ if (tag !== 10) {
3428
+ break;
3429
+ }
3393
3430
 
3394
- ConfirmAIModels(request: ConfirmAIModelsRequest, metadata?: Metadata): Promise<ConfirmAIModelsResponse> {
3395
- const data = ConfirmAIModelsRequest.encode(request).finish();
3396
- const promise = this.rpc.request(this.service, "ConfirmAIModels", data, metadata);
3397
- return promise.then((data) => ConfirmAIModelsResponse.decode(new BinaryReader(data)));
3398
- }
3431
+ message.status = ResponseStatus.decode(reader, reader.uint32());
3432
+ continue;
3433
+ }
3434
+ case 2: {
3435
+ if (tag !== 18) {
3436
+ break;
3437
+ }
3399
3438
 
3400
- ConfirmAIEfforts(request: ConfirmAIEffortsRequest, metadata?: Metadata): Promise<ConfirmAIEffortsResponse> {
3401
- const data = ConfirmAIEffortsRequest.encode(request).finish();
3402
- const promise = this.rpc.request(this.service, "ConfirmAIEfforts", data, metadata);
3403
- return promise.then((data) => ConfirmAIEffortsResponse.decode(new BinaryReader(data)));
3404
- }
3439
+ message.organizations.push(OrgDetails.decode(reader, reader.uint32()));
3440
+ continue;
3441
+ }
3442
+ }
3443
+ if ((tag & 7) === 4 || tag === 0) {
3444
+ break;
3445
+ }
3446
+ reader.skip(tag & 7);
3447
+ }
3448
+ return message;
3449
+ } finally {
3450
+ (reader as any).__tsProtoDecodeDepth = previousRecursionDepth;
3451
+ }
3452
+ },
3405
3453
 
3406
- ConfirmAIBillers(request: ConfirmAIBillersRequest, metadata?: Metadata): Promise<ConfirmAIBillersResponse> {
3407
- const data = ConfirmAIBillersRequest.encode(request).finish();
3408
- const promise = this.rpc.request(this.service, "ConfirmAIBillers", data, metadata);
3409
- return promise.then((data) => ConfirmAIBillersResponse.decode(new BinaryReader(data)));
3410
- }
3454
+ fromJSON(object: any): ResolveOrgDetailsResponse {
3455
+ return {
3456
+ status: isSet(object.status) ? ResponseStatus.fromJSON(object.status) : undefined,
3457
+ organizations: globalThis.Array.isArray(object?.organizations)
3458
+ ? object.organizations.map((e: any) => OrgDetails.fromJSON(e))
3459
+ : [],
3460
+ };
3461
+ },
3411
3462
 
3412
- ListRelayHeartbeats(
3413
- request: ListAdminRelayHeartbeatsRequest,
3414
- metadata?: Metadata,
3415
- ): Promise<ListAdminRelayHeartbeatsResponse> {
3463
+ toJSON(message: ResolveOrgDetailsResponse): unknown {
3464
+ const obj: any = {};
3465
+ if (message.status !== undefined) {
3466
+ obj.status = ResponseStatus.toJSON(message.status);
3467
+ }
3468
+ if (message.organizations?.length) {
3469
+ obj.organizations = message.organizations.map((e) => OrgDetails.toJSON(e));
3470
+ }
3471
+ return obj;
3472
+ },
3473
+
3474
+ create<I extends Exact<DeepPartial<ResolveOrgDetailsResponse>, I>>(base?: I): ResolveOrgDetailsResponse {
3475
+ return ResolveOrgDetailsResponse.fromPartial(base ?? ({} as any));
3476
+ },
3477
+ fromPartial<I extends Exact<DeepPartial<ResolveOrgDetailsResponse>, I>>(object: I): ResolveOrgDetailsResponse {
3478
+ const message = createBaseResolveOrgDetailsResponse();
3479
+ message.status = (object.status !== undefined && object.status !== null)
3480
+ ? ResponseStatus.fromPartial(object.status)
3481
+ : undefined;
3482
+ message.organizations = object.organizations?.map((e) => OrgDetails.fromPartial(e)) || [];
3483
+ return message;
3484
+ },
3485
+ };
3486
+
3487
+ function createBaseOrgDetails(): OrgDetails {
3488
+ return { organizationId: "", name: "" };
3489
+ }
3490
+
3491
+ export const OrgDetails: MessageFns<OrgDetails> = {
3492
+ encode(message: OrgDetails, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {
3493
+ if (message.organizationId !== "") {
3494
+ writer.uint32(10).string(message.organizationId);
3495
+ }
3496
+ if (message.name !== "") {
3497
+ writer.uint32(18).string(message.name);
3498
+ }
3499
+ return writer;
3500
+ },
3501
+
3502
+ decode(input: BinaryReader | Uint8Array, length?: number): OrgDetails {
3503
+ const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
3504
+ const previousRecursionDepth = (reader as any).__tsProtoDecodeDepth ?? 0;
3505
+ if (previousRecursionDepth >= 100) {
3506
+ throw new globalThis.Error("protobuf decode recursion limit exceeded");
3507
+ }
3508
+ (reader as any).__tsProtoDecodeDepth = previousRecursionDepth + 1;
3509
+ try {
3510
+ const end = length === undefined ? reader.len : reader.pos + length;
3511
+ const message = createBaseOrgDetails();
3512
+ while (reader.pos < end) {
3513
+ const tag = reader.uint32();
3514
+ switch (tag >>> 3) {
3515
+ case 1: {
3516
+ if (tag !== 10) {
3517
+ break;
3518
+ }
3519
+
3520
+ message.organizationId = reader.string();
3521
+ continue;
3522
+ }
3523
+ case 2: {
3524
+ if (tag !== 18) {
3525
+ break;
3526
+ }
3527
+
3528
+ message.name = reader.string();
3529
+ continue;
3530
+ }
3531
+ }
3532
+ if ((tag & 7) === 4 || tag === 0) {
3533
+ break;
3534
+ }
3535
+ reader.skip(tag & 7);
3536
+ }
3537
+ return message;
3538
+ } finally {
3539
+ (reader as any).__tsProtoDecodeDepth = previousRecursionDepth;
3540
+ }
3541
+ },
3542
+
3543
+ fromJSON(object: any): OrgDetails {
3544
+ return {
3545
+ organizationId: isSet(object.organizationId)
3546
+ ? globalThis.String(object.organizationId)
3547
+ : isSet(object.organization_id)
3548
+ ? globalThis.String(object.organization_id)
3549
+ : "",
3550
+ name: isSet(object.name) ? globalThis.String(object.name) : "",
3551
+ };
3552
+ },
3553
+
3554
+ toJSON(message: OrgDetails): unknown {
3555
+ const obj: any = {};
3556
+ if (message.organizationId !== "") {
3557
+ obj.organizationId = message.organizationId;
3558
+ }
3559
+ if (message.name !== "") {
3560
+ obj.name = message.name;
3561
+ }
3562
+ return obj;
3563
+ },
3564
+
3565
+ create<I extends Exact<DeepPartial<OrgDetails>, I>>(base?: I): OrgDetails {
3566
+ return OrgDetails.fromPartial(base ?? ({} as any));
3567
+ },
3568
+ fromPartial<I extends Exact<DeepPartial<OrgDetails>, I>>(object: I): OrgDetails {
3569
+ const message = createBaseOrgDetails();
3570
+ message.organizationId = object.organizationId ?? "";
3571
+ message.name = object.name ?? "";
3572
+ return message;
3573
+ },
3574
+ };
3575
+
3576
+ function createBaseResolveProjectDetailsRequest(): ResolveProjectDetailsRequest {
3577
+ return { projectIds: [] };
3578
+ }
3579
+
3580
+ export const ResolveProjectDetailsRequest: MessageFns<ResolveProjectDetailsRequest> = {
3581
+ encode(message: ResolveProjectDetailsRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {
3582
+ for (const v of message.projectIds) {
3583
+ writer.uint32(10).string(v!);
3584
+ }
3585
+ return writer;
3586
+ },
3587
+
3588
+ decode(input: BinaryReader | Uint8Array, length?: number): ResolveProjectDetailsRequest {
3589
+ const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
3590
+ const previousRecursionDepth = (reader as any).__tsProtoDecodeDepth ?? 0;
3591
+ if (previousRecursionDepth >= 100) {
3592
+ throw new globalThis.Error("protobuf decode recursion limit exceeded");
3593
+ }
3594
+ (reader as any).__tsProtoDecodeDepth = previousRecursionDepth + 1;
3595
+ try {
3596
+ const end = length === undefined ? reader.len : reader.pos + length;
3597
+ const message = createBaseResolveProjectDetailsRequest();
3598
+ while (reader.pos < end) {
3599
+ const tag = reader.uint32();
3600
+ switch (tag >>> 3) {
3601
+ case 1: {
3602
+ if (tag !== 10) {
3603
+ break;
3604
+ }
3605
+
3606
+ message.projectIds.push(reader.string());
3607
+ continue;
3608
+ }
3609
+ }
3610
+ if ((tag & 7) === 4 || tag === 0) {
3611
+ break;
3612
+ }
3613
+ reader.skip(tag & 7);
3614
+ }
3615
+ return message;
3616
+ } finally {
3617
+ (reader as any).__tsProtoDecodeDepth = previousRecursionDepth;
3618
+ }
3619
+ },
3620
+
3621
+ fromJSON(object: any): ResolveProjectDetailsRequest {
3622
+ return {
3623
+ projectIds: globalThis.Array.isArray(object?.projectIds)
3624
+ ? object.projectIds.map((e: any) => globalThis.String(e))
3625
+ : globalThis.Array.isArray(object?.project_ids)
3626
+ ? object.project_ids.map((e: any) => globalThis.String(e))
3627
+ : [],
3628
+ };
3629
+ },
3630
+
3631
+ toJSON(message: ResolveProjectDetailsRequest): unknown {
3632
+ const obj: any = {};
3633
+ if (message.projectIds?.length) {
3634
+ obj.projectIds = message.projectIds;
3635
+ }
3636
+ return obj;
3637
+ },
3638
+
3639
+ create<I extends Exact<DeepPartial<ResolveProjectDetailsRequest>, I>>(base?: I): ResolveProjectDetailsRequest {
3640
+ return ResolveProjectDetailsRequest.fromPartial(base ?? ({} as any));
3641
+ },
3642
+ fromPartial<I extends Exact<DeepPartial<ResolveProjectDetailsRequest>, I>>(object: I): ResolveProjectDetailsRequest {
3643
+ const message = createBaseResolveProjectDetailsRequest();
3644
+ message.projectIds = object.projectIds?.map((e) => e) || [];
3645
+ return message;
3646
+ },
3647
+ };
3648
+
3649
+ function createBaseResolveProjectDetailsResponse(): ResolveProjectDetailsResponse {
3650
+ return { status: undefined, projects: [] };
3651
+ }
3652
+
3653
+ export const ResolveProjectDetailsResponse: MessageFns<ResolveProjectDetailsResponse> = {
3654
+ encode(message: ResolveProjectDetailsResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {
3655
+ if (message.status !== undefined) {
3656
+ ResponseStatus.encode(message.status, writer.uint32(10).fork()).join();
3657
+ }
3658
+ for (const v of message.projects) {
3659
+ ProjectDetails.encode(v!, writer.uint32(18).fork()).join();
3660
+ }
3661
+ return writer;
3662
+ },
3663
+
3664
+ decode(input: BinaryReader | Uint8Array, length?: number): ResolveProjectDetailsResponse {
3665
+ const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
3666
+ const previousRecursionDepth = (reader as any).__tsProtoDecodeDepth ?? 0;
3667
+ if (previousRecursionDepth >= 100) {
3668
+ throw new globalThis.Error("protobuf decode recursion limit exceeded");
3669
+ }
3670
+ (reader as any).__tsProtoDecodeDepth = previousRecursionDepth + 1;
3671
+ try {
3672
+ const end = length === undefined ? reader.len : reader.pos + length;
3673
+ const message = createBaseResolveProjectDetailsResponse();
3674
+ while (reader.pos < end) {
3675
+ const tag = reader.uint32();
3676
+ switch (tag >>> 3) {
3677
+ case 1: {
3678
+ if (tag !== 10) {
3679
+ break;
3680
+ }
3681
+
3682
+ message.status = ResponseStatus.decode(reader, reader.uint32());
3683
+ continue;
3684
+ }
3685
+ case 2: {
3686
+ if (tag !== 18) {
3687
+ break;
3688
+ }
3689
+
3690
+ message.projects.push(ProjectDetails.decode(reader, reader.uint32()));
3691
+ continue;
3692
+ }
3693
+ }
3694
+ if ((tag & 7) === 4 || tag === 0) {
3695
+ break;
3696
+ }
3697
+ reader.skip(tag & 7);
3698
+ }
3699
+ return message;
3700
+ } finally {
3701
+ (reader as any).__tsProtoDecodeDepth = previousRecursionDepth;
3702
+ }
3703
+ },
3704
+
3705
+ fromJSON(object: any): ResolveProjectDetailsResponse {
3706
+ return {
3707
+ status: isSet(object.status) ? ResponseStatus.fromJSON(object.status) : undefined,
3708
+ projects: globalThis.Array.isArray(object?.projects)
3709
+ ? object.projects.map((e: any) => ProjectDetails.fromJSON(e))
3710
+ : [],
3711
+ };
3712
+ },
3713
+
3714
+ toJSON(message: ResolveProjectDetailsResponse): unknown {
3715
+ const obj: any = {};
3716
+ if (message.status !== undefined) {
3717
+ obj.status = ResponseStatus.toJSON(message.status);
3718
+ }
3719
+ if (message.projects?.length) {
3720
+ obj.projects = message.projects.map((e) => ProjectDetails.toJSON(e));
3721
+ }
3722
+ return obj;
3723
+ },
3724
+
3725
+ create<I extends Exact<DeepPartial<ResolveProjectDetailsResponse>, I>>(base?: I): ResolveProjectDetailsResponse {
3726
+ return ResolveProjectDetailsResponse.fromPartial(base ?? ({} as any));
3727
+ },
3728
+ fromPartial<I extends Exact<DeepPartial<ResolveProjectDetailsResponse>, I>>(
3729
+ object: I,
3730
+ ): ResolveProjectDetailsResponse {
3731
+ const message = createBaseResolveProjectDetailsResponse();
3732
+ message.status = (object.status !== undefined && object.status !== null)
3733
+ ? ResponseStatus.fromPartial(object.status)
3734
+ : undefined;
3735
+ message.projects = object.projects?.map((e) => ProjectDetails.fromPartial(e)) || [];
3736
+ return message;
3737
+ },
3738
+ };
3739
+
3740
+ function createBaseProjectDetails(): ProjectDetails {
3741
+ return { projectId: "", organizationId: "", name: "" };
3742
+ }
3743
+
3744
+ export const ProjectDetails: MessageFns<ProjectDetails> = {
3745
+ encode(message: ProjectDetails, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {
3746
+ if (message.projectId !== "") {
3747
+ writer.uint32(10).string(message.projectId);
3748
+ }
3749
+ if (message.organizationId !== "") {
3750
+ writer.uint32(18).string(message.organizationId);
3751
+ }
3752
+ if (message.name !== "") {
3753
+ writer.uint32(26).string(message.name);
3754
+ }
3755
+ return writer;
3756
+ },
3757
+
3758
+ decode(input: BinaryReader | Uint8Array, length?: number): ProjectDetails {
3759
+ const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
3760
+ const previousRecursionDepth = (reader as any).__tsProtoDecodeDepth ?? 0;
3761
+ if (previousRecursionDepth >= 100) {
3762
+ throw new globalThis.Error("protobuf decode recursion limit exceeded");
3763
+ }
3764
+ (reader as any).__tsProtoDecodeDepth = previousRecursionDepth + 1;
3765
+ try {
3766
+ const end = length === undefined ? reader.len : reader.pos + length;
3767
+ const message = createBaseProjectDetails();
3768
+ while (reader.pos < end) {
3769
+ const tag = reader.uint32();
3770
+ switch (tag >>> 3) {
3771
+ case 1: {
3772
+ if (tag !== 10) {
3773
+ break;
3774
+ }
3775
+
3776
+ message.projectId = reader.string();
3777
+ continue;
3778
+ }
3779
+ case 2: {
3780
+ if (tag !== 18) {
3781
+ break;
3782
+ }
3783
+
3784
+ message.organizationId = reader.string();
3785
+ continue;
3786
+ }
3787
+ case 3: {
3788
+ if (tag !== 26) {
3789
+ break;
3790
+ }
3791
+
3792
+ message.name = reader.string();
3793
+ continue;
3794
+ }
3795
+ }
3796
+ if ((tag & 7) === 4 || tag === 0) {
3797
+ break;
3798
+ }
3799
+ reader.skip(tag & 7);
3800
+ }
3801
+ return message;
3802
+ } finally {
3803
+ (reader as any).__tsProtoDecodeDepth = previousRecursionDepth;
3804
+ }
3805
+ },
3806
+
3807
+ fromJSON(object: any): ProjectDetails {
3808
+ return {
3809
+ projectId: isSet(object.projectId)
3810
+ ? globalThis.String(object.projectId)
3811
+ : isSet(object.project_id)
3812
+ ? globalThis.String(object.project_id)
3813
+ : "",
3814
+ organizationId: isSet(object.organizationId)
3815
+ ? globalThis.String(object.organizationId)
3816
+ : isSet(object.organization_id)
3817
+ ? globalThis.String(object.organization_id)
3818
+ : "",
3819
+ name: isSet(object.name) ? globalThis.String(object.name) : "",
3820
+ };
3821
+ },
3822
+
3823
+ toJSON(message: ProjectDetails): unknown {
3824
+ const obj: any = {};
3825
+ if (message.projectId !== "") {
3826
+ obj.projectId = message.projectId;
3827
+ }
3828
+ if (message.organizationId !== "") {
3829
+ obj.organizationId = message.organizationId;
3830
+ }
3831
+ if (message.name !== "") {
3832
+ obj.name = message.name;
3833
+ }
3834
+ return obj;
3835
+ },
3836
+
3837
+ create<I extends Exact<DeepPartial<ProjectDetails>, I>>(base?: I): ProjectDetails {
3838
+ return ProjectDetails.fromPartial(base ?? ({} as any));
3839
+ },
3840
+ fromPartial<I extends Exact<DeepPartial<ProjectDetails>, I>>(object: I): ProjectDetails {
3841
+ const message = createBaseProjectDetails();
3842
+ message.projectId = object.projectId ?? "";
3843
+ message.organizationId = object.organizationId ?? "";
3844
+ message.name = object.name ?? "";
3845
+ return message;
3846
+ },
3847
+ };
3848
+
3849
+ function createBaseResolveUserDetailsRequest(): ResolveUserDetailsRequest {
3850
+ return { userId: "" };
3851
+ }
3852
+
3853
+ export const ResolveUserDetailsRequest: MessageFns<ResolveUserDetailsRequest> = {
3854
+ encode(message: ResolveUserDetailsRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {
3855
+ if (message.userId !== "") {
3856
+ writer.uint32(10).string(message.userId);
3857
+ }
3858
+ return writer;
3859
+ },
3860
+
3861
+ decode(input: BinaryReader | Uint8Array, length?: number): ResolveUserDetailsRequest {
3862
+ const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
3863
+ const previousRecursionDepth = (reader as any).__tsProtoDecodeDepth ?? 0;
3864
+ if (previousRecursionDepth >= 100) {
3865
+ throw new globalThis.Error("protobuf decode recursion limit exceeded");
3866
+ }
3867
+ (reader as any).__tsProtoDecodeDepth = previousRecursionDepth + 1;
3868
+ try {
3869
+ const end = length === undefined ? reader.len : reader.pos + length;
3870
+ const message = createBaseResolveUserDetailsRequest();
3871
+ while (reader.pos < end) {
3872
+ const tag = reader.uint32();
3873
+ switch (tag >>> 3) {
3874
+ case 1: {
3875
+ if (tag !== 10) {
3876
+ break;
3877
+ }
3878
+
3879
+ message.userId = reader.string();
3880
+ continue;
3881
+ }
3882
+ }
3883
+ if ((tag & 7) === 4 || tag === 0) {
3884
+ break;
3885
+ }
3886
+ reader.skip(tag & 7);
3887
+ }
3888
+ return message;
3889
+ } finally {
3890
+ (reader as any).__tsProtoDecodeDepth = previousRecursionDepth;
3891
+ }
3892
+ },
3893
+
3894
+ fromJSON(object: any): ResolveUserDetailsRequest {
3895
+ return {
3896
+ userId: isSet(object.userId)
3897
+ ? globalThis.String(object.userId)
3898
+ : isSet(object.user_id)
3899
+ ? globalThis.String(object.user_id)
3900
+ : "",
3901
+ };
3902
+ },
3903
+
3904
+ toJSON(message: ResolveUserDetailsRequest): unknown {
3905
+ const obj: any = {};
3906
+ if (message.userId !== "") {
3907
+ obj.userId = message.userId;
3908
+ }
3909
+ return obj;
3910
+ },
3911
+
3912
+ create<I extends Exact<DeepPartial<ResolveUserDetailsRequest>, I>>(base?: I): ResolveUserDetailsRequest {
3913
+ return ResolveUserDetailsRequest.fromPartial(base ?? ({} as any));
3914
+ },
3915
+ fromPartial<I extends Exact<DeepPartial<ResolveUserDetailsRequest>, I>>(object: I): ResolveUserDetailsRequest {
3916
+ const message = createBaseResolveUserDetailsRequest();
3917
+ message.userId = object.userId ?? "";
3918
+ return message;
3919
+ },
3920
+ };
3921
+
3922
+ function createBaseResolveUserDetailsResponse(): ResolveUserDetailsResponse {
3923
+ return { status: undefined, user: undefined };
3924
+ }
3925
+
3926
+ export const ResolveUserDetailsResponse: MessageFns<ResolveUserDetailsResponse> = {
3927
+ encode(message: ResolveUserDetailsResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {
3928
+ if (message.status !== undefined) {
3929
+ ResponseStatus.encode(message.status, writer.uint32(10).fork()).join();
3930
+ }
3931
+ if (message.user !== undefined) {
3932
+ UserDetails.encode(message.user, writer.uint32(18).fork()).join();
3933
+ }
3934
+ return writer;
3935
+ },
3936
+
3937
+ decode(input: BinaryReader | Uint8Array, length?: number): ResolveUserDetailsResponse {
3938
+ const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
3939
+ const previousRecursionDepth = (reader as any).__tsProtoDecodeDepth ?? 0;
3940
+ if (previousRecursionDepth >= 100) {
3941
+ throw new globalThis.Error("protobuf decode recursion limit exceeded");
3942
+ }
3943
+ (reader as any).__tsProtoDecodeDepth = previousRecursionDepth + 1;
3944
+ try {
3945
+ const end = length === undefined ? reader.len : reader.pos + length;
3946
+ const message = createBaseResolveUserDetailsResponse();
3947
+ while (reader.pos < end) {
3948
+ const tag = reader.uint32();
3949
+ switch (tag >>> 3) {
3950
+ case 1: {
3951
+ if (tag !== 10) {
3952
+ break;
3953
+ }
3954
+
3955
+ message.status = ResponseStatus.decode(reader, reader.uint32());
3956
+ continue;
3957
+ }
3958
+ case 2: {
3959
+ if (tag !== 18) {
3960
+ break;
3961
+ }
3962
+
3963
+ message.user = UserDetails.decode(reader, reader.uint32());
3964
+ continue;
3965
+ }
3966
+ }
3967
+ if ((tag & 7) === 4 || tag === 0) {
3968
+ break;
3969
+ }
3970
+ reader.skip(tag & 7);
3971
+ }
3972
+ return message;
3973
+ } finally {
3974
+ (reader as any).__tsProtoDecodeDepth = previousRecursionDepth;
3975
+ }
3976
+ },
3977
+
3978
+ fromJSON(object: any): ResolveUserDetailsResponse {
3979
+ return {
3980
+ status: isSet(object.status) ? ResponseStatus.fromJSON(object.status) : undefined,
3981
+ user: isSet(object.user) ? UserDetails.fromJSON(object.user) : undefined,
3982
+ };
3983
+ },
3984
+
3985
+ toJSON(message: ResolveUserDetailsResponse): unknown {
3986
+ const obj: any = {};
3987
+ if (message.status !== undefined) {
3988
+ obj.status = ResponseStatus.toJSON(message.status);
3989
+ }
3990
+ if (message.user !== undefined) {
3991
+ obj.user = UserDetails.toJSON(message.user);
3992
+ }
3993
+ return obj;
3994
+ },
3995
+
3996
+ create<I extends Exact<DeepPartial<ResolveUserDetailsResponse>, I>>(base?: I): ResolveUserDetailsResponse {
3997
+ return ResolveUserDetailsResponse.fromPartial(base ?? ({} as any));
3998
+ },
3999
+ fromPartial<I extends Exact<DeepPartial<ResolveUserDetailsResponse>, I>>(object: I): ResolveUserDetailsResponse {
4000
+ const message = createBaseResolveUserDetailsResponse();
4001
+ message.status = (object.status !== undefined && object.status !== null)
4002
+ ? ResponseStatus.fromPartial(object.status)
4003
+ : undefined;
4004
+ message.user = (object.user !== undefined && object.user !== null)
4005
+ ? UserDetails.fromPartial(object.user)
4006
+ : undefined;
4007
+ return message;
4008
+ },
4009
+ };
4010
+
4011
+ function createBaseUserDetails(): UserDetails {
4012
+ return { userId: "", email: "", name: "" };
4013
+ }
4014
+
4015
+ export const UserDetails: MessageFns<UserDetails> = {
4016
+ encode(message: UserDetails, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {
4017
+ if (message.userId !== "") {
4018
+ writer.uint32(10).string(message.userId);
4019
+ }
4020
+ if (message.email !== "") {
4021
+ writer.uint32(18).string(message.email);
4022
+ }
4023
+ if (message.name !== "") {
4024
+ writer.uint32(26).string(message.name);
4025
+ }
4026
+ return writer;
4027
+ },
4028
+
4029
+ decode(input: BinaryReader | Uint8Array, length?: number): UserDetails {
4030
+ const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
4031
+ const previousRecursionDepth = (reader as any).__tsProtoDecodeDepth ?? 0;
4032
+ if (previousRecursionDepth >= 100) {
4033
+ throw new globalThis.Error("protobuf decode recursion limit exceeded");
4034
+ }
4035
+ (reader as any).__tsProtoDecodeDepth = previousRecursionDepth + 1;
4036
+ try {
4037
+ const end = length === undefined ? reader.len : reader.pos + length;
4038
+ const message = createBaseUserDetails();
4039
+ while (reader.pos < end) {
4040
+ const tag = reader.uint32();
4041
+ switch (tag >>> 3) {
4042
+ case 1: {
4043
+ if (tag !== 10) {
4044
+ break;
4045
+ }
4046
+
4047
+ message.userId = reader.string();
4048
+ continue;
4049
+ }
4050
+ case 2: {
4051
+ if (tag !== 18) {
4052
+ break;
4053
+ }
4054
+
4055
+ message.email = reader.string();
4056
+ continue;
4057
+ }
4058
+ case 3: {
4059
+ if (tag !== 26) {
4060
+ break;
4061
+ }
4062
+
4063
+ message.name = reader.string();
4064
+ continue;
4065
+ }
4066
+ }
4067
+ if ((tag & 7) === 4 || tag === 0) {
4068
+ break;
4069
+ }
4070
+ reader.skip(tag & 7);
4071
+ }
4072
+ return message;
4073
+ } finally {
4074
+ (reader as any).__tsProtoDecodeDepth = previousRecursionDepth;
4075
+ }
4076
+ },
4077
+
4078
+ fromJSON(object: any): UserDetails {
4079
+ return {
4080
+ userId: isSet(object.userId)
4081
+ ? globalThis.String(object.userId)
4082
+ : isSet(object.user_id)
4083
+ ? globalThis.String(object.user_id)
4084
+ : "",
4085
+ email: isSet(object.email) ? globalThis.String(object.email) : "",
4086
+ name: isSet(object.name) ? globalThis.String(object.name) : "",
4087
+ };
4088
+ },
4089
+
4090
+ toJSON(message: UserDetails): unknown {
4091
+ const obj: any = {};
4092
+ if (message.userId !== "") {
4093
+ obj.userId = message.userId;
4094
+ }
4095
+ if (message.email !== "") {
4096
+ obj.email = message.email;
4097
+ }
4098
+ if (message.name !== "") {
4099
+ obj.name = message.name;
4100
+ }
4101
+ return obj;
4102
+ },
4103
+
4104
+ create<I extends Exact<DeepPartial<UserDetails>, I>>(base?: I): UserDetails {
4105
+ return UserDetails.fromPartial(base ?? ({} as any));
4106
+ },
4107
+ fromPartial<I extends Exact<DeepPartial<UserDetails>, I>>(object: I): UserDetails {
4108
+ const message = createBaseUserDetails();
4109
+ message.userId = object.userId ?? "";
4110
+ message.email = object.email ?? "";
4111
+ message.name = object.name ?? "";
4112
+ return message;
4113
+ },
4114
+ };
4115
+
4116
+ /**
4117
+ * AdminGatewayService is the browser-facing surface of the admin tools, across every domain, which only
4118
+ * Mirador staff (a verified mirador.org primary email) may use. The gateway's admin gate admits every RPC
4119
+ * here except GetAdminStatus, which tells the frontend whether to show the admin tools at all.
4120
+ */
4121
+ export interface AdminGatewayService {
4122
+ /** GetAdminStatus reports whether the authenticated caller may use the admin tools. */
4123
+ GetAdminStatus(request: GetAdminStatusRequest, metadata?: Metadata): Promise<GetAdminStatusResponse>;
4124
+ /** Beta invite codes for this gateway's product. */
4125
+ GenerateInviteCodes(request: GenerateInviteCodesRequest, metadata?: Metadata): Promise<GenerateInviteCodesResponse>;
4126
+ ListInviteCodes(request: ListInviteCodesRequest, metadata?: Metadata): Promise<ListInviteCodesResponse>;
4127
+ /** SendInviteCodeEmail emails one available code to an address and records when and to whom it was sent. */
4128
+ SendInviteCodeEmail(request: SendInviteCodeEmailRequest, metadata?: Metadata): Promise<SendInviteCodeEmailResponse>;
4129
+ /**
4130
+ * Staff set a global AI name's display name for every organization. An update makes the name MANUAL; the
4131
+ * model processor never overwrites it. The tables are read through ReferenceGatewayService.
4132
+ */
4133
+ UpdateAIProvider(request: UpdateAIProviderRequest, metadata?: Metadata): Promise<UpdateAIProviderResponse>;
4134
+ UpdateAIModel(request: UpdateAIModelRequest, metadata?: Metadata): Promise<UpdateAIModelResponse>;
4135
+ UpdateAIEffort(request: UpdateAIEffortRequest, metadata?: Metadata): Promise<UpdateAIEffortResponse>;
4136
+ UpdateAIBiller(request: UpdateAIBillerRequest, metadata?: Metadata): Promise<UpdateAIBillerResponse>;
4137
+ /**
4138
+ * Each Confirm<X> confirms every unreviewed name in the groups a List<X>Groups filter keeps (on every page),
4139
+ * as one Update<X> per name would; it proxies telemetry.api.v1.TelemetryAdminService's Confirm<X>. It
4140
+ * confirms what matches when it runs: compare confirmed_name_count with the count shown. Names are global: an
4141
+ * unset observation also confirms groups none of the organizations reported. Observation OBSERVED keeps only
4142
+ * the groups they reported, and still confirms every unreviewed name in them, including a spelling in the same
4143
+ * group none of them reported.
4144
+ */
4145
+ ConfirmAIProviders(request: ConfirmAIProvidersRequest, metadata?: Metadata): Promise<ConfirmAIProvidersResponse>;
4146
+ ConfirmAIModels(request: ConfirmAIModelsRequest, metadata?: Metadata): Promise<ConfirmAIModelsResponse>;
4147
+ ConfirmAIEfforts(request: ConfirmAIEffortsRequest, metadata?: Metadata): Promise<ConfirmAIEffortsResponse>;
4148
+ ConfirmAIBillers(request: ConfirmAIBillersRequest, metadata?: Metadata): Promise<ConfirmAIBillersResponse>;
4149
+ /**
4150
+ * Every Terma relay across the fleet with its latest heartbeat in full, one row per (organization, project, user,
4151
+ * host), most recently seen first (keyset-paginated); it proxies
4152
+ * telemetry.api.v1.TelemetryAdminService.ListRelayHeartbeats. Rows carry ids, not names.
4153
+ */
4154
+ ListRelayHeartbeats(
4155
+ request: ListAdminRelayHeartbeatsRequest,
4156
+ metadata?: Metadata,
4157
+ ): Promise<ListAdminRelayHeartbeatsResponse>;
4158
+ /**
4159
+ * ResolveOrgDetails resolves organization ids to their names, in batch, across every organization of this gateway's
4160
+ * product. Unknown ids, and ids of another product, are left out; it never errors on them. A malformed id, or more
4161
+ * than 1000 ids, is a validation error. It proxies account.api.v1.AccountAdminService.ResolveOrgDetails.
4162
+ */
4163
+ ResolveOrgDetails(request: ResolveOrgDetailsRequest, metadata?: Metadata): Promise<ResolveOrgDetailsResponse>;
4164
+ /**
4165
+ * ResolveProjectDetails resolves project (team) ids to their names, in batch, across every organization of this
4166
+ * gateway's product, deleted projects included. Unknown ids, and ids of another product, are left out; it never
4167
+ * errors on them. A malformed id, or more than 1000 ids, is a validation error. It proxies
4168
+ * account.api.v1.AccountAdminService.ResolveProjectDetails.
4169
+ */
4170
+ ResolveProjectDetails(
4171
+ request: ResolveProjectDetailsRequest,
4172
+ metadata?: Metadata,
4173
+ ): Promise<ResolveProjectDetailsResponse>;
4174
+ /**
4175
+ * ResolveUserDetails resolves one user's email address and name, on demand. An unknown user, or one of another
4176
+ * product, is NOT_FOUND; a malformed or empty id is a validation error; a user directory outage is UNAVAILABLE. It
4177
+ * proxies account.api.v1.AccountAdminService.ResolveUserDetails.
4178
+ */
4179
+ ResolveUserDetails(request: ResolveUserDetailsRequest, metadata?: Metadata): Promise<ResolveUserDetailsResponse>;
4180
+ }
4181
+
4182
+ export const AdminGatewayServiceServiceName = "gateway.web.v1.AdminGatewayService";
4183
+ export class AdminGatewayServiceClientImpl implements AdminGatewayService {
4184
+ private readonly rpc: Rpc;
4185
+ private readonly service: string;
4186
+ constructor(rpc: Rpc, opts?: { service?: string }) {
4187
+ this.service = opts?.service || AdminGatewayServiceServiceName;
4188
+ this.rpc = rpc;
4189
+ this.GetAdminStatus = this.GetAdminStatus.bind(this);
4190
+ this.GenerateInviteCodes = this.GenerateInviteCodes.bind(this);
4191
+ this.ListInviteCodes = this.ListInviteCodes.bind(this);
4192
+ this.SendInviteCodeEmail = this.SendInviteCodeEmail.bind(this);
4193
+ this.UpdateAIProvider = this.UpdateAIProvider.bind(this);
4194
+ this.UpdateAIModel = this.UpdateAIModel.bind(this);
4195
+ this.UpdateAIEffort = this.UpdateAIEffort.bind(this);
4196
+ this.UpdateAIBiller = this.UpdateAIBiller.bind(this);
4197
+ this.ConfirmAIProviders = this.ConfirmAIProviders.bind(this);
4198
+ this.ConfirmAIModels = this.ConfirmAIModels.bind(this);
4199
+ this.ConfirmAIEfforts = this.ConfirmAIEfforts.bind(this);
4200
+ this.ConfirmAIBillers = this.ConfirmAIBillers.bind(this);
4201
+ this.ListRelayHeartbeats = this.ListRelayHeartbeats.bind(this);
4202
+ this.ResolveOrgDetails = this.ResolveOrgDetails.bind(this);
4203
+ this.ResolveProjectDetails = this.ResolveProjectDetails.bind(this);
4204
+ this.ResolveUserDetails = this.ResolveUserDetails.bind(this);
4205
+ }
4206
+ GetAdminStatus(request: GetAdminStatusRequest, metadata?: Metadata): Promise<GetAdminStatusResponse> {
4207
+ const data = GetAdminStatusRequest.encode(request).finish();
4208
+ const promise = this.rpc.request(this.service, "GetAdminStatus", data, metadata);
4209
+ return promise.then((data) => GetAdminStatusResponse.decode(new BinaryReader(data)));
4210
+ }
4211
+
4212
+ GenerateInviteCodes(request: GenerateInviteCodesRequest, metadata?: Metadata): Promise<GenerateInviteCodesResponse> {
4213
+ const data = GenerateInviteCodesRequest.encode(request).finish();
4214
+ const promise = this.rpc.request(this.service, "GenerateInviteCodes", data, metadata);
4215
+ return promise.then((data) => GenerateInviteCodesResponse.decode(new BinaryReader(data)));
4216
+ }
4217
+
4218
+ ListInviteCodes(request: ListInviteCodesRequest, metadata?: Metadata): Promise<ListInviteCodesResponse> {
4219
+ const data = ListInviteCodesRequest.encode(request).finish();
4220
+ const promise = this.rpc.request(this.service, "ListInviteCodes", data, metadata);
4221
+ return promise.then((data) => ListInviteCodesResponse.decode(new BinaryReader(data)));
4222
+ }
4223
+
4224
+ SendInviteCodeEmail(request: SendInviteCodeEmailRequest, metadata?: Metadata): Promise<SendInviteCodeEmailResponse> {
4225
+ const data = SendInviteCodeEmailRequest.encode(request).finish();
4226
+ const promise = this.rpc.request(this.service, "SendInviteCodeEmail", data, metadata);
4227
+ return promise.then((data) => SendInviteCodeEmailResponse.decode(new BinaryReader(data)));
4228
+ }
4229
+
4230
+ UpdateAIProvider(request: UpdateAIProviderRequest, metadata?: Metadata): Promise<UpdateAIProviderResponse> {
4231
+ const data = UpdateAIProviderRequest.encode(request).finish();
4232
+ const promise = this.rpc.request(this.service, "UpdateAIProvider", data, metadata);
4233
+ return promise.then((data) => UpdateAIProviderResponse.decode(new BinaryReader(data)));
4234
+ }
4235
+
4236
+ UpdateAIModel(request: UpdateAIModelRequest, metadata?: Metadata): Promise<UpdateAIModelResponse> {
4237
+ const data = UpdateAIModelRequest.encode(request).finish();
4238
+ const promise = this.rpc.request(this.service, "UpdateAIModel", data, metadata);
4239
+ return promise.then((data) => UpdateAIModelResponse.decode(new BinaryReader(data)));
4240
+ }
4241
+
4242
+ UpdateAIEffort(request: UpdateAIEffortRequest, metadata?: Metadata): Promise<UpdateAIEffortResponse> {
4243
+ const data = UpdateAIEffortRequest.encode(request).finish();
4244
+ const promise = this.rpc.request(this.service, "UpdateAIEffort", data, metadata);
4245
+ return promise.then((data) => UpdateAIEffortResponse.decode(new BinaryReader(data)));
4246
+ }
4247
+
4248
+ UpdateAIBiller(request: UpdateAIBillerRequest, metadata?: Metadata): Promise<UpdateAIBillerResponse> {
4249
+ const data = UpdateAIBillerRequest.encode(request).finish();
4250
+ const promise = this.rpc.request(this.service, "UpdateAIBiller", data, metadata);
4251
+ return promise.then((data) => UpdateAIBillerResponse.decode(new BinaryReader(data)));
4252
+ }
4253
+
4254
+ ConfirmAIProviders(request: ConfirmAIProvidersRequest, metadata?: Metadata): Promise<ConfirmAIProvidersResponse> {
4255
+ const data = ConfirmAIProvidersRequest.encode(request).finish();
4256
+ const promise = this.rpc.request(this.service, "ConfirmAIProviders", data, metadata);
4257
+ return promise.then((data) => ConfirmAIProvidersResponse.decode(new BinaryReader(data)));
4258
+ }
4259
+
4260
+ ConfirmAIModels(request: ConfirmAIModelsRequest, metadata?: Metadata): Promise<ConfirmAIModelsResponse> {
4261
+ const data = ConfirmAIModelsRequest.encode(request).finish();
4262
+ const promise = this.rpc.request(this.service, "ConfirmAIModels", data, metadata);
4263
+ return promise.then((data) => ConfirmAIModelsResponse.decode(new BinaryReader(data)));
4264
+ }
4265
+
4266
+ ConfirmAIEfforts(request: ConfirmAIEffortsRequest, metadata?: Metadata): Promise<ConfirmAIEffortsResponse> {
4267
+ const data = ConfirmAIEffortsRequest.encode(request).finish();
4268
+ const promise = this.rpc.request(this.service, "ConfirmAIEfforts", data, metadata);
4269
+ return promise.then((data) => ConfirmAIEffortsResponse.decode(new BinaryReader(data)));
4270
+ }
4271
+
4272
+ ConfirmAIBillers(request: ConfirmAIBillersRequest, metadata?: Metadata): Promise<ConfirmAIBillersResponse> {
4273
+ const data = ConfirmAIBillersRequest.encode(request).finish();
4274
+ const promise = this.rpc.request(this.service, "ConfirmAIBillers", data, metadata);
4275
+ return promise.then((data) => ConfirmAIBillersResponse.decode(new BinaryReader(data)));
4276
+ }
4277
+
4278
+ ListRelayHeartbeats(
4279
+ request: ListAdminRelayHeartbeatsRequest,
4280
+ metadata?: Metadata,
4281
+ ): Promise<ListAdminRelayHeartbeatsResponse> {
3416
4282
  const data = ListAdminRelayHeartbeatsRequest.encode(request).finish();
3417
4283
  const promise = this.rpc.request(this.service, "ListRelayHeartbeats", data, metadata);
3418
4284
  return promise.then((data) => ListAdminRelayHeartbeatsResponse.decode(new BinaryReader(data)));
3419
4285
  }
4286
+
4287
+ ResolveOrgDetails(request: ResolveOrgDetailsRequest, metadata?: Metadata): Promise<ResolveOrgDetailsResponse> {
4288
+ const data = ResolveOrgDetailsRequest.encode(request).finish();
4289
+ const promise = this.rpc.request(this.service, "ResolveOrgDetails", data, metadata);
4290
+ return promise.then((data) => ResolveOrgDetailsResponse.decode(new BinaryReader(data)));
4291
+ }
4292
+
4293
+ ResolveProjectDetails(
4294
+ request: ResolveProjectDetailsRequest,
4295
+ metadata?: Metadata,
4296
+ ): Promise<ResolveProjectDetailsResponse> {
4297
+ const data = ResolveProjectDetailsRequest.encode(request).finish();
4298
+ const promise = this.rpc.request(this.service, "ResolveProjectDetails", data, metadata);
4299
+ return promise.then((data) => ResolveProjectDetailsResponse.decode(new BinaryReader(data)));
4300
+ }
4301
+
4302
+ ResolveUserDetails(request: ResolveUserDetailsRequest, metadata?: Metadata): Promise<ResolveUserDetailsResponse> {
4303
+ const data = ResolveUserDetailsRequest.encode(request).finish();
4304
+ const promise = this.rpc.request(this.service, "ResolveUserDetails", data, metadata);
4305
+ return promise.then((data) => ResolveUserDetailsResponse.decode(new BinaryReader(data)));
4306
+ }
3420
4307
  }
3421
4308
 
3422
4309
  interface Rpc {