@miradorlabs/web-grpc 2.26.0 → 2.27.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.
@@ -0,0 +1,903 @@
1
+ // Code generated by protoc-gen-ts_proto. DO NOT EDIT.
2
+ // versions:
3
+ // protoc-gen-ts_proto v2.12.0
4
+ // protoc v3.21.12
5
+ // source: proto/gateway/web/v1/trace_measure_gateway.proto
6
+
7
+ /* eslint-disable */
8
+ import { BinaryReader, BinaryWriter } from "@bufbuild/protobuf/wire";
9
+ import type { Metadata } from "@grpc/grpc-js";
10
+ import { Timestamp } from "../../../../google/protobuf/timestamp";
11
+ import { ResponseStatus } from "../../common/v1/status";
12
+ import { TimeRange } from "./metric_gateway";
13
+ import { TraceStatus, traceStatusFromJSON, traceStatusToJSON } from "./trace_gateway";
14
+
15
+ export const protobufPackage = "gateway.web.v1";
16
+
17
+ export interface EvaluateTraceMeasureRequest {
18
+ /** Verified against the caller's identity before proxying. */
19
+ organizationId: string;
20
+ projectId: string;
21
+ program: TraceMeasureProgram | undefined;
22
+ timeRange:
23
+ | TimeRange
24
+ | undefined;
25
+ /** Lifecycle filter: empty = running + completed; deleted never returned. OR semantics. */
26
+ statuses: TraceStatus[];
27
+ /** Trace-attribute keys resolved onto each row (<=4); grouping/aggregation is client-side. */
28
+ groupBy: string[];
29
+ }
30
+
31
+ export interface TraceMeasureProgram {
32
+ populationExpression: string;
33
+ valueExpression: string;
34
+ }
35
+
36
+ export interface EvaluateTraceMeasureResponse {
37
+ status: ResponseStatus | undefined;
38
+ rows: TraceMeasureRow[];
39
+ coverage:
40
+ | TraceMeasureCoverage
41
+ | undefined;
42
+ /** When the snapshot was evaluated -- the sample time for a chart point built from these rows. */
43
+ evaluatedAt: Date | undefined;
44
+ }
45
+
46
+ export interface TraceMeasureRow {
47
+ traceId: string;
48
+ /** The trace's creation time, NOT the sample time -- that is the response's evaluated_at. */
49
+ createdAt: Date | undefined;
50
+ value: number;
51
+ groupValues: { [key: string]: string };
52
+ }
53
+
54
+ export interface TraceMeasureRow_GroupValuesEntry {
55
+ key: string;
56
+ value: string;
57
+ }
58
+
59
+ export interface TraceMeasureCoverage {
60
+ candidates: number;
61
+ contributing: number;
62
+ outOfPopulation: number;
63
+ valueMissing: number;
64
+ errored: number;
65
+ unreadable: number;
66
+ }
67
+
68
+ function createBaseEvaluateTraceMeasureRequest(): EvaluateTraceMeasureRequest {
69
+ return { organizationId: "", projectId: "", program: undefined, timeRange: undefined, statuses: [], groupBy: [] };
70
+ }
71
+
72
+ export const EvaluateTraceMeasureRequest: MessageFns<EvaluateTraceMeasureRequest> = {
73
+ encode(message: EvaluateTraceMeasureRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {
74
+ if (message.organizationId !== "") {
75
+ writer.uint32(10).string(message.organizationId);
76
+ }
77
+ if (message.projectId !== "") {
78
+ writer.uint32(18).string(message.projectId);
79
+ }
80
+ if (message.program !== undefined) {
81
+ TraceMeasureProgram.encode(message.program, writer.uint32(26).fork()).join();
82
+ }
83
+ if (message.timeRange !== undefined) {
84
+ TimeRange.encode(message.timeRange, writer.uint32(34).fork()).join();
85
+ }
86
+ writer.uint32(42).fork();
87
+ for (const v of message.statuses) {
88
+ writer.int32(v);
89
+ }
90
+ writer.join();
91
+ for (const v of message.groupBy) {
92
+ writer.uint32(50).string(v!);
93
+ }
94
+ return writer;
95
+ },
96
+
97
+ decode(input: BinaryReader | Uint8Array, length?: number): EvaluateTraceMeasureRequest {
98
+ const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
99
+ const end = length === undefined ? reader.len : reader.pos + length;
100
+ const message = createBaseEvaluateTraceMeasureRequest();
101
+ while (reader.pos < end) {
102
+ const tag = reader.uint32();
103
+ switch (tag >>> 3) {
104
+ case 1: {
105
+ if (tag !== 10) {
106
+ break;
107
+ }
108
+
109
+ message.organizationId = reader.string();
110
+ continue;
111
+ }
112
+ case 2: {
113
+ if (tag !== 18) {
114
+ break;
115
+ }
116
+
117
+ message.projectId = reader.string();
118
+ continue;
119
+ }
120
+ case 3: {
121
+ if (tag !== 26) {
122
+ break;
123
+ }
124
+
125
+ message.program = TraceMeasureProgram.decode(reader, reader.uint32());
126
+ continue;
127
+ }
128
+ case 4: {
129
+ if (tag !== 34) {
130
+ break;
131
+ }
132
+
133
+ message.timeRange = TimeRange.decode(reader, reader.uint32());
134
+ continue;
135
+ }
136
+ case 5: {
137
+ if (tag === 40) {
138
+ message.statuses.push(reader.int32() as any);
139
+
140
+ continue;
141
+ }
142
+
143
+ if (tag === 42) {
144
+ const end2 = reader.uint32() + reader.pos;
145
+ while (reader.pos < end2) {
146
+ message.statuses.push(reader.int32() as any);
147
+ }
148
+
149
+ continue;
150
+ }
151
+
152
+ break;
153
+ }
154
+ case 6: {
155
+ if (tag !== 50) {
156
+ break;
157
+ }
158
+
159
+ message.groupBy.push(reader.string());
160
+ continue;
161
+ }
162
+ }
163
+ if ((tag & 7) === 4 || tag === 0) {
164
+ break;
165
+ }
166
+ reader.skip(tag & 7);
167
+ }
168
+ return message;
169
+ },
170
+
171
+ fromJSON(object: any): EvaluateTraceMeasureRequest {
172
+ return {
173
+ organizationId: isSet(object.organizationId)
174
+ ? globalThis.String(object.organizationId)
175
+ : isSet(object.organization_id)
176
+ ? globalThis.String(object.organization_id)
177
+ : "",
178
+ projectId: isSet(object.projectId)
179
+ ? globalThis.String(object.projectId)
180
+ : isSet(object.project_id)
181
+ ? globalThis.String(object.project_id)
182
+ : "",
183
+ program: isSet(object.program) ? TraceMeasureProgram.fromJSON(object.program) : undefined,
184
+ timeRange: isSet(object.timeRange)
185
+ ? TimeRange.fromJSON(object.timeRange)
186
+ : isSet(object.time_range)
187
+ ? TimeRange.fromJSON(object.time_range)
188
+ : undefined,
189
+ statuses: globalThis.Array.isArray(object?.statuses)
190
+ ? object.statuses.map((e: any) => traceStatusFromJSON(e))
191
+ : [],
192
+ groupBy: globalThis.Array.isArray(object?.groupBy)
193
+ ? object.groupBy.map((e: any) => globalThis.String(e))
194
+ : globalThis.Array.isArray(object?.group_by)
195
+ ? object.group_by.map((e: any) => globalThis.String(e))
196
+ : [],
197
+ };
198
+ },
199
+
200
+ toJSON(message: EvaluateTraceMeasureRequest): unknown {
201
+ const obj: any = {};
202
+ if (message.organizationId !== "") {
203
+ obj.organizationId = message.organizationId;
204
+ }
205
+ if (message.projectId !== "") {
206
+ obj.projectId = message.projectId;
207
+ }
208
+ if (message.program !== undefined) {
209
+ obj.program = TraceMeasureProgram.toJSON(message.program);
210
+ }
211
+ if (message.timeRange !== undefined) {
212
+ obj.timeRange = TimeRange.toJSON(message.timeRange);
213
+ }
214
+ if (message.statuses?.length) {
215
+ obj.statuses = message.statuses.map((e) => traceStatusToJSON(e));
216
+ }
217
+ if (message.groupBy?.length) {
218
+ obj.groupBy = message.groupBy;
219
+ }
220
+ return obj;
221
+ },
222
+
223
+ create<I extends Exact<DeepPartial<EvaluateTraceMeasureRequest>, I>>(base?: I): EvaluateTraceMeasureRequest {
224
+ return EvaluateTraceMeasureRequest.fromPartial(base ?? ({} as any));
225
+ },
226
+ fromPartial<I extends Exact<DeepPartial<EvaluateTraceMeasureRequest>, I>>(object: I): EvaluateTraceMeasureRequest {
227
+ const message = createBaseEvaluateTraceMeasureRequest();
228
+ message.organizationId = object.organizationId ?? "";
229
+ message.projectId = object.projectId ?? "";
230
+ message.program = (object.program !== undefined && object.program !== null)
231
+ ? TraceMeasureProgram.fromPartial(object.program)
232
+ : undefined;
233
+ message.timeRange = (object.timeRange !== undefined && object.timeRange !== null)
234
+ ? TimeRange.fromPartial(object.timeRange)
235
+ : undefined;
236
+ message.statuses = object.statuses?.map((e) => e) || [];
237
+ message.groupBy = object.groupBy?.map((e) => e) || [];
238
+ return message;
239
+ },
240
+ };
241
+
242
+ function createBaseTraceMeasureProgram(): TraceMeasureProgram {
243
+ return { populationExpression: "", valueExpression: "" };
244
+ }
245
+
246
+ export const TraceMeasureProgram: MessageFns<TraceMeasureProgram> = {
247
+ encode(message: TraceMeasureProgram, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {
248
+ if (message.populationExpression !== "") {
249
+ writer.uint32(10).string(message.populationExpression);
250
+ }
251
+ if (message.valueExpression !== "") {
252
+ writer.uint32(18).string(message.valueExpression);
253
+ }
254
+ return writer;
255
+ },
256
+
257
+ decode(input: BinaryReader | Uint8Array, length?: number): TraceMeasureProgram {
258
+ const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
259
+ const end = length === undefined ? reader.len : reader.pos + length;
260
+ const message = createBaseTraceMeasureProgram();
261
+ while (reader.pos < end) {
262
+ const tag = reader.uint32();
263
+ switch (tag >>> 3) {
264
+ case 1: {
265
+ if (tag !== 10) {
266
+ break;
267
+ }
268
+
269
+ message.populationExpression = reader.string();
270
+ continue;
271
+ }
272
+ case 2: {
273
+ if (tag !== 18) {
274
+ break;
275
+ }
276
+
277
+ message.valueExpression = reader.string();
278
+ continue;
279
+ }
280
+ }
281
+ if ((tag & 7) === 4 || tag === 0) {
282
+ break;
283
+ }
284
+ reader.skip(tag & 7);
285
+ }
286
+ return message;
287
+ },
288
+
289
+ fromJSON(object: any): TraceMeasureProgram {
290
+ return {
291
+ populationExpression: isSet(object.populationExpression)
292
+ ? globalThis.String(object.populationExpression)
293
+ : isSet(object.population_expression)
294
+ ? globalThis.String(object.population_expression)
295
+ : "",
296
+ valueExpression: isSet(object.valueExpression)
297
+ ? globalThis.String(object.valueExpression)
298
+ : isSet(object.value_expression)
299
+ ? globalThis.String(object.value_expression)
300
+ : "",
301
+ };
302
+ },
303
+
304
+ toJSON(message: TraceMeasureProgram): unknown {
305
+ const obj: any = {};
306
+ if (message.populationExpression !== "") {
307
+ obj.populationExpression = message.populationExpression;
308
+ }
309
+ if (message.valueExpression !== "") {
310
+ obj.valueExpression = message.valueExpression;
311
+ }
312
+ return obj;
313
+ },
314
+
315
+ create<I extends Exact<DeepPartial<TraceMeasureProgram>, I>>(base?: I): TraceMeasureProgram {
316
+ return TraceMeasureProgram.fromPartial(base ?? ({} as any));
317
+ },
318
+ fromPartial<I extends Exact<DeepPartial<TraceMeasureProgram>, I>>(object: I): TraceMeasureProgram {
319
+ const message = createBaseTraceMeasureProgram();
320
+ message.populationExpression = object.populationExpression ?? "";
321
+ message.valueExpression = object.valueExpression ?? "";
322
+ return message;
323
+ },
324
+ };
325
+
326
+ function createBaseEvaluateTraceMeasureResponse(): EvaluateTraceMeasureResponse {
327
+ return { status: undefined, rows: [], coverage: undefined, evaluatedAt: undefined };
328
+ }
329
+
330
+ export const EvaluateTraceMeasureResponse: MessageFns<EvaluateTraceMeasureResponse> = {
331
+ encode(message: EvaluateTraceMeasureResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {
332
+ if (message.status !== undefined) {
333
+ ResponseStatus.encode(message.status, writer.uint32(10).fork()).join();
334
+ }
335
+ for (const v of message.rows) {
336
+ TraceMeasureRow.encode(v!, writer.uint32(18).fork()).join();
337
+ }
338
+ if (message.coverage !== undefined) {
339
+ TraceMeasureCoverage.encode(message.coverage, writer.uint32(26).fork()).join();
340
+ }
341
+ if (message.evaluatedAt !== undefined) {
342
+ Timestamp.encode(toTimestamp(message.evaluatedAt), writer.uint32(34).fork()).join();
343
+ }
344
+ return writer;
345
+ },
346
+
347
+ decode(input: BinaryReader | Uint8Array, length?: number): EvaluateTraceMeasureResponse {
348
+ const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
349
+ const end = length === undefined ? reader.len : reader.pos + length;
350
+ const message = createBaseEvaluateTraceMeasureResponse();
351
+ while (reader.pos < end) {
352
+ const tag = reader.uint32();
353
+ switch (tag >>> 3) {
354
+ case 1: {
355
+ if (tag !== 10) {
356
+ break;
357
+ }
358
+
359
+ message.status = ResponseStatus.decode(reader, reader.uint32());
360
+ continue;
361
+ }
362
+ case 2: {
363
+ if (tag !== 18) {
364
+ break;
365
+ }
366
+
367
+ message.rows.push(TraceMeasureRow.decode(reader, reader.uint32()));
368
+ continue;
369
+ }
370
+ case 3: {
371
+ if (tag !== 26) {
372
+ break;
373
+ }
374
+
375
+ message.coverage = TraceMeasureCoverage.decode(reader, reader.uint32());
376
+ continue;
377
+ }
378
+ case 4: {
379
+ if (tag !== 34) {
380
+ break;
381
+ }
382
+
383
+ message.evaluatedAt = fromTimestamp(Timestamp.decode(reader, reader.uint32()));
384
+ continue;
385
+ }
386
+ }
387
+ if ((tag & 7) === 4 || tag === 0) {
388
+ break;
389
+ }
390
+ reader.skip(tag & 7);
391
+ }
392
+ return message;
393
+ },
394
+
395
+ fromJSON(object: any): EvaluateTraceMeasureResponse {
396
+ return {
397
+ status: isSet(object.status) ? ResponseStatus.fromJSON(object.status) : undefined,
398
+ rows: globalThis.Array.isArray(object?.rows) ? object.rows.map((e: any) => TraceMeasureRow.fromJSON(e)) : [],
399
+ coverage: isSet(object.coverage) ? TraceMeasureCoverage.fromJSON(object.coverage) : undefined,
400
+ evaluatedAt: isSet(object.evaluatedAt)
401
+ ? fromJsonTimestamp(object.evaluatedAt)
402
+ : isSet(object.evaluated_at)
403
+ ? fromJsonTimestamp(object.evaluated_at)
404
+ : undefined,
405
+ };
406
+ },
407
+
408
+ toJSON(message: EvaluateTraceMeasureResponse): unknown {
409
+ const obj: any = {};
410
+ if (message.status !== undefined) {
411
+ obj.status = ResponseStatus.toJSON(message.status);
412
+ }
413
+ if (message.rows?.length) {
414
+ obj.rows = message.rows.map((e) => TraceMeasureRow.toJSON(e));
415
+ }
416
+ if (message.coverage !== undefined) {
417
+ obj.coverage = TraceMeasureCoverage.toJSON(message.coverage);
418
+ }
419
+ if (message.evaluatedAt !== undefined) {
420
+ obj.evaluatedAt = message.evaluatedAt.toISOString();
421
+ }
422
+ return obj;
423
+ },
424
+
425
+ create<I extends Exact<DeepPartial<EvaluateTraceMeasureResponse>, I>>(base?: I): EvaluateTraceMeasureResponse {
426
+ return EvaluateTraceMeasureResponse.fromPartial(base ?? ({} as any));
427
+ },
428
+ fromPartial<I extends Exact<DeepPartial<EvaluateTraceMeasureResponse>, I>>(object: I): EvaluateTraceMeasureResponse {
429
+ const message = createBaseEvaluateTraceMeasureResponse();
430
+ message.status = (object.status !== undefined && object.status !== null)
431
+ ? ResponseStatus.fromPartial(object.status)
432
+ : undefined;
433
+ message.rows = object.rows?.map((e) => TraceMeasureRow.fromPartial(e)) || [];
434
+ message.coverage = (object.coverage !== undefined && object.coverage !== null)
435
+ ? TraceMeasureCoverage.fromPartial(object.coverage)
436
+ : undefined;
437
+ message.evaluatedAt = object.evaluatedAt ?? undefined;
438
+ return message;
439
+ },
440
+ };
441
+
442
+ function createBaseTraceMeasureRow(): TraceMeasureRow {
443
+ return { traceId: "", createdAt: undefined, value: 0, groupValues: {} };
444
+ }
445
+
446
+ export const TraceMeasureRow: MessageFns<TraceMeasureRow> = {
447
+ encode(message: TraceMeasureRow, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {
448
+ if (message.traceId !== "") {
449
+ writer.uint32(10).string(message.traceId);
450
+ }
451
+ if (message.createdAt !== undefined) {
452
+ Timestamp.encode(toTimestamp(message.createdAt), writer.uint32(18).fork()).join();
453
+ }
454
+ if (message.value !== 0) {
455
+ writer.uint32(25).double(message.value);
456
+ }
457
+ globalThis.Object.entries(message.groupValues).forEach(([key, value]: [string, string]) => {
458
+ TraceMeasureRow_GroupValuesEntry.encode({ key: key as any, value }, writer.uint32(34).fork()).join();
459
+ });
460
+ return writer;
461
+ },
462
+
463
+ decode(input: BinaryReader | Uint8Array, length?: number): TraceMeasureRow {
464
+ const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
465
+ const end = length === undefined ? reader.len : reader.pos + length;
466
+ const message = createBaseTraceMeasureRow();
467
+ while (reader.pos < end) {
468
+ const tag = reader.uint32();
469
+ switch (tag >>> 3) {
470
+ case 1: {
471
+ if (tag !== 10) {
472
+ break;
473
+ }
474
+
475
+ message.traceId = reader.string();
476
+ continue;
477
+ }
478
+ case 2: {
479
+ if (tag !== 18) {
480
+ break;
481
+ }
482
+
483
+ message.createdAt = fromTimestamp(Timestamp.decode(reader, reader.uint32()));
484
+ continue;
485
+ }
486
+ case 3: {
487
+ if (tag !== 25) {
488
+ break;
489
+ }
490
+
491
+ message.value = reader.double();
492
+ continue;
493
+ }
494
+ case 4: {
495
+ if (tag !== 34) {
496
+ break;
497
+ }
498
+
499
+ const entry4 = TraceMeasureRow_GroupValuesEntry.decode(reader, reader.uint32());
500
+ if (entry4.value !== undefined) {
501
+ message.groupValues[entry4.key] = entry4.value;
502
+ }
503
+ continue;
504
+ }
505
+ }
506
+ if ((tag & 7) === 4 || tag === 0) {
507
+ break;
508
+ }
509
+ reader.skip(tag & 7);
510
+ }
511
+ return message;
512
+ },
513
+
514
+ fromJSON(object: any): TraceMeasureRow {
515
+ return {
516
+ traceId: isSet(object.traceId)
517
+ ? globalThis.String(object.traceId)
518
+ : isSet(object.trace_id)
519
+ ? globalThis.String(object.trace_id)
520
+ : "",
521
+ createdAt: isSet(object.createdAt)
522
+ ? fromJsonTimestamp(object.createdAt)
523
+ : isSet(object.created_at)
524
+ ? fromJsonTimestamp(object.created_at)
525
+ : undefined,
526
+ value: isSet(object.value) ? globalThis.Number(object.value) : 0,
527
+ groupValues: isObject(object.groupValues)
528
+ ? (globalThis.Object.entries(object.groupValues) as [string, any][]).reduce(
529
+ (acc: { [key: string]: string }, [key, value]: [string, any]) => {
530
+ acc[key] = globalThis.String(value);
531
+ return acc;
532
+ },
533
+ {},
534
+ )
535
+ : isObject(object.group_values)
536
+ ? (globalThis.Object.entries(object.group_values) as [string, any][]).reduce(
537
+ (acc: { [key: string]: string }, [key, value]: [string, any]) => {
538
+ acc[key] = globalThis.String(value);
539
+ return acc;
540
+ },
541
+ {},
542
+ )
543
+ : {},
544
+ };
545
+ },
546
+
547
+ toJSON(message: TraceMeasureRow): unknown {
548
+ const obj: any = {};
549
+ if (message.traceId !== "") {
550
+ obj.traceId = message.traceId;
551
+ }
552
+ if (message.createdAt !== undefined) {
553
+ obj.createdAt = message.createdAt.toISOString();
554
+ }
555
+ if (message.value !== 0) {
556
+ obj.value = message.value;
557
+ }
558
+ if (message.groupValues) {
559
+ const entries = globalThis.Object.entries(message.groupValues) as [string, string][];
560
+ if (entries.length > 0) {
561
+ obj.groupValues = {};
562
+ entries.forEach(([k, v]) => {
563
+ obj.groupValues[k] = v;
564
+ });
565
+ }
566
+ }
567
+ return obj;
568
+ },
569
+
570
+ create<I extends Exact<DeepPartial<TraceMeasureRow>, I>>(base?: I): TraceMeasureRow {
571
+ return TraceMeasureRow.fromPartial(base ?? ({} as any));
572
+ },
573
+ fromPartial<I extends Exact<DeepPartial<TraceMeasureRow>, I>>(object: I): TraceMeasureRow {
574
+ const message = createBaseTraceMeasureRow();
575
+ message.traceId = object.traceId ?? "";
576
+ message.createdAt = object.createdAt ?? undefined;
577
+ message.value = object.value ?? 0;
578
+ message.groupValues = (globalThis.Object.entries(object.groupValues ?? {}) as [string, string][]).reduce(
579
+ (acc: { [key: string]: string }, [key, value]: [string, string]) => {
580
+ if (value !== undefined) {
581
+ acc[key] = globalThis.String(value);
582
+ }
583
+ return acc;
584
+ },
585
+ {},
586
+ );
587
+ return message;
588
+ },
589
+ };
590
+
591
+ function createBaseTraceMeasureRow_GroupValuesEntry(): TraceMeasureRow_GroupValuesEntry {
592
+ return { key: "", value: "" };
593
+ }
594
+
595
+ export const TraceMeasureRow_GroupValuesEntry: MessageFns<TraceMeasureRow_GroupValuesEntry> = {
596
+ encode(message: TraceMeasureRow_GroupValuesEntry, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {
597
+ if (message.key !== "") {
598
+ writer.uint32(10).string(message.key);
599
+ }
600
+ if (message.value !== "") {
601
+ writer.uint32(18).string(message.value);
602
+ }
603
+ return writer;
604
+ },
605
+
606
+ decode(input: BinaryReader | Uint8Array, length?: number): TraceMeasureRow_GroupValuesEntry {
607
+ const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
608
+ const end = length === undefined ? reader.len : reader.pos + length;
609
+ const message = createBaseTraceMeasureRow_GroupValuesEntry();
610
+ while (reader.pos < end) {
611
+ const tag = reader.uint32();
612
+ switch (tag >>> 3) {
613
+ case 1: {
614
+ if (tag !== 10) {
615
+ break;
616
+ }
617
+
618
+ message.key = reader.string();
619
+ continue;
620
+ }
621
+ case 2: {
622
+ if (tag !== 18) {
623
+ break;
624
+ }
625
+
626
+ message.value = reader.string();
627
+ continue;
628
+ }
629
+ }
630
+ if ((tag & 7) === 4 || tag === 0) {
631
+ break;
632
+ }
633
+ reader.skip(tag & 7);
634
+ }
635
+ return message;
636
+ },
637
+
638
+ fromJSON(object: any): TraceMeasureRow_GroupValuesEntry {
639
+ return {
640
+ key: isSet(object.key) ? globalThis.String(object.key) : "",
641
+ value: isSet(object.value) ? globalThis.String(object.value) : "",
642
+ };
643
+ },
644
+
645
+ toJSON(message: TraceMeasureRow_GroupValuesEntry): unknown {
646
+ const obj: any = {};
647
+ if (message.key !== "") {
648
+ obj.key = message.key;
649
+ }
650
+ if (message.value !== "") {
651
+ obj.value = message.value;
652
+ }
653
+ return obj;
654
+ },
655
+
656
+ create<I extends Exact<DeepPartial<TraceMeasureRow_GroupValuesEntry>, I>>(
657
+ base?: I,
658
+ ): TraceMeasureRow_GroupValuesEntry {
659
+ return TraceMeasureRow_GroupValuesEntry.fromPartial(base ?? ({} as any));
660
+ },
661
+ fromPartial<I extends Exact<DeepPartial<TraceMeasureRow_GroupValuesEntry>, I>>(
662
+ object: I,
663
+ ): TraceMeasureRow_GroupValuesEntry {
664
+ const message = createBaseTraceMeasureRow_GroupValuesEntry();
665
+ message.key = object.key ?? "";
666
+ message.value = object.value ?? "";
667
+ return message;
668
+ },
669
+ };
670
+
671
+ function createBaseTraceMeasureCoverage(): TraceMeasureCoverage {
672
+ return { candidates: 0, contributing: 0, outOfPopulation: 0, valueMissing: 0, errored: 0, unreadable: 0 };
673
+ }
674
+
675
+ export const TraceMeasureCoverage: MessageFns<TraceMeasureCoverage> = {
676
+ encode(message: TraceMeasureCoverage, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {
677
+ if (message.candidates !== 0) {
678
+ writer.uint32(8).uint32(message.candidates);
679
+ }
680
+ if (message.contributing !== 0) {
681
+ writer.uint32(16).uint32(message.contributing);
682
+ }
683
+ if (message.outOfPopulation !== 0) {
684
+ writer.uint32(24).uint32(message.outOfPopulation);
685
+ }
686
+ if (message.valueMissing !== 0) {
687
+ writer.uint32(32).uint32(message.valueMissing);
688
+ }
689
+ if (message.errored !== 0) {
690
+ writer.uint32(40).uint32(message.errored);
691
+ }
692
+ if (message.unreadable !== 0) {
693
+ writer.uint32(48).uint32(message.unreadable);
694
+ }
695
+ return writer;
696
+ },
697
+
698
+ decode(input: BinaryReader | Uint8Array, length?: number): TraceMeasureCoverage {
699
+ const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
700
+ const end = length === undefined ? reader.len : reader.pos + length;
701
+ const message = createBaseTraceMeasureCoverage();
702
+ while (reader.pos < end) {
703
+ const tag = reader.uint32();
704
+ switch (tag >>> 3) {
705
+ case 1: {
706
+ if (tag !== 8) {
707
+ break;
708
+ }
709
+
710
+ message.candidates = reader.uint32();
711
+ continue;
712
+ }
713
+ case 2: {
714
+ if (tag !== 16) {
715
+ break;
716
+ }
717
+
718
+ message.contributing = reader.uint32();
719
+ continue;
720
+ }
721
+ case 3: {
722
+ if (tag !== 24) {
723
+ break;
724
+ }
725
+
726
+ message.outOfPopulation = reader.uint32();
727
+ continue;
728
+ }
729
+ case 4: {
730
+ if (tag !== 32) {
731
+ break;
732
+ }
733
+
734
+ message.valueMissing = reader.uint32();
735
+ continue;
736
+ }
737
+ case 5: {
738
+ if (tag !== 40) {
739
+ break;
740
+ }
741
+
742
+ message.errored = reader.uint32();
743
+ continue;
744
+ }
745
+ case 6: {
746
+ if (tag !== 48) {
747
+ break;
748
+ }
749
+
750
+ message.unreadable = reader.uint32();
751
+ continue;
752
+ }
753
+ }
754
+ if ((tag & 7) === 4 || tag === 0) {
755
+ break;
756
+ }
757
+ reader.skip(tag & 7);
758
+ }
759
+ return message;
760
+ },
761
+
762
+ fromJSON(object: any): TraceMeasureCoverage {
763
+ return {
764
+ candidates: isSet(object.candidates) ? globalThis.Number(object.candidates) : 0,
765
+ contributing: isSet(object.contributing) ? globalThis.Number(object.contributing) : 0,
766
+ outOfPopulation: isSet(object.outOfPopulation)
767
+ ? globalThis.Number(object.outOfPopulation)
768
+ : isSet(object.out_of_population)
769
+ ? globalThis.Number(object.out_of_population)
770
+ : 0,
771
+ valueMissing: isSet(object.valueMissing)
772
+ ? globalThis.Number(object.valueMissing)
773
+ : isSet(object.value_missing)
774
+ ? globalThis.Number(object.value_missing)
775
+ : 0,
776
+ errored: isSet(object.errored) ? globalThis.Number(object.errored) : 0,
777
+ unreadable: isSet(object.unreadable) ? globalThis.Number(object.unreadable) : 0,
778
+ };
779
+ },
780
+
781
+ toJSON(message: TraceMeasureCoverage): unknown {
782
+ const obj: any = {};
783
+ if (message.candidates !== 0) {
784
+ obj.candidates = Math.round(message.candidates);
785
+ }
786
+ if (message.contributing !== 0) {
787
+ obj.contributing = Math.round(message.contributing);
788
+ }
789
+ if (message.outOfPopulation !== 0) {
790
+ obj.outOfPopulation = Math.round(message.outOfPopulation);
791
+ }
792
+ if (message.valueMissing !== 0) {
793
+ obj.valueMissing = Math.round(message.valueMissing);
794
+ }
795
+ if (message.errored !== 0) {
796
+ obj.errored = Math.round(message.errored);
797
+ }
798
+ if (message.unreadable !== 0) {
799
+ obj.unreadable = Math.round(message.unreadable);
800
+ }
801
+ return obj;
802
+ },
803
+
804
+ create<I extends Exact<DeepPartial<TraceMeasureCoverage>, I>>(base?: I): TraceMeasureCoverage {
805
+ return TraceMeasureCoverage.fromPartial(base ?? ({} as any));
806
+ },
807
+ fromPartial<I extends Exact<DeepPartial<TraceMeasureCoverage>, I>>(object: I): TraceMeasureCoverage {
808
+ const message = createBaseTraceMeasureCoverage();
809
+ message.candidates = object.candidates ?? 0;
810
+ message.contributing = object.contributing ?? 0;
811
+ message.outOfPopulation = object.outOfPopulation ?? 0;
812
+ message.valueMissing = object.valueMissing ?? 0;
813
+ message.errored = object.errored ?? 0;
814
+ message.unreadable = object.unreadable ?? 0;
815
+ return message;
816
+ },
817
+ };
818
+
819
+ /**
820
+ * TraceMeasureGatewayService is the web surface of telemetry.api.v1 TraceMeasureService -- a
821
+ * query-time CEL aggregate over traces returning a flat result set (domain-isolated copies
822
+ * converted in gateways/web/internal/convert).
823
+ */
824
+ export interface TraceMeasureGatewayService {
825
+ EvaluateTraceMeasure(
826
+ request: EvaluateTraceMeasureRequest,
827
+ metadata?: Metadata,
828
+ ): Promise<EvaluateTraceMeasureResponse>;
829
+ }
830
+
831
+ export const TraceMeasureGatewayServiceServiceName = "gateway.web.v1.TraceMeasureGatewayService";
832
+ export class TraceMeasureGatewayServiceClientImpl implements TraceMeasureGatewayService {
833
+ private readonly rpc: Rpc;
834
+ private readonly service: string;
835
+ constructor(rpc: Rpc, opts?: { service?: string }) {
836
+ this.service = opts?.service || TraceMeasureGatewayServiceServiceName;
837
+ this.rpc = rpc;
838
+ this.EvaluateTraceMeasure = this.EvaluateTraceMeasure.bind(this);
839
+ }
840
+ EvaluateTraceMeasure(
841
+ request: EvaluateTraceMeasureRequest,
842
+ metadata?: Metadata,
843
+ ): Promise<EvaluateTraceMeasureResponse> {
844
+ const data = EvaluateTraceMeasureRequest.encode(request).finish();
845
+ const promise = this.rpc.request(this.service, "EvaluateTraceMeasure", data, metadata);
846
+ return promise.then((data) => EvaluateTraceMeasureResponse.decode(new BinaryReader(data)));
847
+ }
848
+ }
849
+
850
+ interface Rpc {
851
+ request(service: string, method: string, data: Uint8Array, metadata?: Metadata): Promise<Uint8Array>;
852
+ }
853
+
854
+ type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;
855
+
856
+ export type DeepPartial<T> = T extends Builtin ? T
857
+ : T extends globalThis.Array<infer U> ? globalThis.Array<DeepPartial<U>>
858
+ : T extends ReadonlyArray<infer U> ? ReadonlyArray<DeepPartial<U>>
859
+ : T extends {} ? { [K in keyof T]?: DeepPartial<T[K]> }
860
+ : Partial<T>;
861
+
862
+ type KeysOfUnion<T> = T extends T ? keyof T : never;
863
+ export type Exact<P, I extends P> = P extends Builtin ? P
864
+ : P & { [K in keyof P]: Exact<P[K], I[K]> } & { [K in Exclude<keyof I, KeysOfUnion<P>>]: never };
865
+
866
+ function toTimestamp(date: Date): Timestamp {
867
+ const seconds = Math.trunc(date.getTime() / 1_000);
868
+ const nanos = (date.getTime() % 1_000) * 1_000_000;
869
+ return { seconds, nanos };
870
+ }
871
+
872
+ function fromTimestamp(t: Timestamp): Date {
873
+ let millis = (t.seconds || 0) * 1_000;
874
+ millis += (t.nanos || 0) / 1_000_000;
875
+ return new globalThis.Date(millis);
876
+ }
877
+
878
+ function fromJsonTimestamp(o: any): Date {
879
+ if (o instanceof globalThis.Date) {
880
+ return o;
881
+ } else if (typeof o === "string") {
882
+ return new globalThis.Date(o);
883
+ } else {
884
+ return fromTimestamp(Timestamp.fromJSON(o));
885
+ }
886
+ }
887
+
888
+ function isObject(value: any): boolean {
889
+ return typeof value === "object" && value !== null;
890
+ }
891
+
892
+ function isSet(value: any): boolean {
893
+ return value !== null && value !== undefined;
894
+ }
895
+
896
+ export interface MessageFns<T> {
897
+ encode(message: T, writer?: BinaryWriter): BinaryWriter;
898
+ decode(input: BinaryReader | Uint8Array, length?: number): T;
899
+ fromJSON(object: any): T;
900
+ toJSON(message: T): unknown;
901
+ create<I extends Exact<DeepPartial<T>, I>>(base?: I): T;
902
+ fromPartial<I extends Exact<DeepPartial<T>, I>>(object: I): T;
903
+ }