@ancplua/qyl-api-schema 0.5.0 → 0.5.2

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,4016 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://qyl.dev/schema/qyl-api-schema.json",
4
+ "$defs": {
5
+ "Common.Attribute": {
6
+ "type": "object",
7
+ "required": [
8
+ "key",
9
+ "value"
10
+ ],
11
+ "properties": {
12
+ "key": {
13
+ "type": "string",
14
+ "minLength": 1,
15
+ "maxLength": 256,
16
+ "description": "Attribute key (dot-separated namespace)"
17
+ },
18
+ "value": {
19
+ "allOf": [
20
+ {
21
+ "$ref": "#/$defs/Common.AttributeValue"
22
+ }
23
+ ],
24
+ "description": "Attribute value"
25
+ }
26
+ },
27
+ "description": "Key-value attribute pair following OTel conventions"
28
+ },
29
+ "Common.AttributeValue": {
30
+ "anyOf": [
31
+ {
32
+ "type": "string"
33
+ },
34
+ {
35
+ "type": "boolean"
36
+ },
37
+ {
38
+ "type": "integer",
39
+ "format": "int64"
40
+ },
41
+ {
42
+ "type": "number",
43
+ "format": "double"
44
+ },
45
+ {
46
+ "type": "array",
47
+ "items": {
48
+ "type": "string"
49
+ }
50
+ },
51
+ {
52
+ "type": "array",
53
+ "items": {
54
+ "type": "boolean"
55
+ }
56
+ },
57
+ {
58
+ "type": "array",
59
+ "items": {
60
+ "type": "integer",
61
+ "format": "int64"
62
+ }
63
+ },
64
+ {
65
+ "type": "array",
66
+ "items": {
67
+ "type": "number",
68
+ "format": "double"
69
+ }
70
+ },
71
+ {
72
+ "type": "string",
73
+ "contentEncoding": "base64"
74
+ }
75
+ ],
76
+ "description": "Primitive attribute value types supported by OpenTelemetry"
77
+ },
78
+ "Common.Attributes": {
79
+ "type": "object",
80
+ "required": [
81
+ "items"
82
+ ],
83
+ "properties": {
84
+ "items": {
85
+ "type": "array",
86
+ "items": {
87
+ "$ref": "#/$defs/Common.Attribute"
88
+ },
89
+ "description": "List of key-value attributes"
90
+ }
91
+ },
92
+ "description": "Collection of attributes"
93
+ },
94
+ "Common.ByteSize": {
95
+ "type": "integer",
96
+ "format": "int64",
97
+ "minimum": 0,
98
+ "description": "Size in bytes",
99
+ "x-csharp-type": "long"
100
+ },
101
+ "Common.ContentType": {
102
+ "type": "string",
103
+ "description": "MIME content type",
104
+ "examples": [
105
+ "application/json"
106
+ ]
107
+ },
108
+ "Common.CostUsd": {
109
+ "type": "number",
110
+ "format": "double",
111
+ "minimum": 0,
112
+ "description": "Cost in USD (floating point)",
113
+ "x-csharp-type": "double"
114
+ },
115
+ "Common.Count": {
116
+ "type": "integer",
117
+ "format": "int64",
118
+ "minimum": 0,
119
+ "description": "Generic non-negative counter",
120
+ "x-csharp-type": "long"
121
+ },
122
+ "Common.DurationMs": {
123
+ "type": "number",
124
+ "format": "double",
125
+ "minimum": 0,
126
+ "description": "Duration in milliseconds",
127
+ "x-csharp-type": "double"
128
+ },
129
+ "Common.DurationNs": {
130
+ "type": "integer",
131
+ "format": "uint64",
132
+ "minimum": 0,
133
+ "description": "Duration in nanoseconds",
134
+ "x-csharp-type": "ulong"
135
+ },
136
+ "Common.DurationS": {
137
+ "type": "number",
138
+ "format": "double",
139
+ "minimum": 0,
140
+ "description": "Duration in seconds"
141
+ },
142
+ "Common.Errors.ApiError": {
143
+ "anyOf": [
144
+ {
145
+ "$ref": "#/$defs/Common.Errors.NotFoundError"
146
+ },
147
+ {
148
+ "$ref": "#/$defs/Common.Errors.ValidationError"
149
+ },
150
+ {
151
+ "$ref": "#/$defs/Common.Errors.UnauthorizedError"
152
+ },
153
+ {
154
+ "$ref": "#/$defs/Common.Errors.ForbiddenError"
155
+ },
156
+ {
157
+ "$ref": "#/$defs/Common.Errors.ConflictError"
158
+ },
159
+ {
160
+ "$ref": "#/$defs/Common.Errors.RateLimitError"
161
+ },
162
+ {
163
+ "$ref": "#/$defs/Common.Errors.InternalServerError"
164
+ },
165
+ {
166
+ "$ref": "#/$defs/Common.Errors.BadGatewayError"
167
+ },
168
+ {
169
+ "$ref": "#/$defs/Common.Errors.ServiceUnavailableError"
170
+ }
171
+ ],
172
+ "description": "Standard error response types"
173
+ },
174
+ "Common.Errors.BadGatewayError": {
175
+ "type": "object",
176
+ "required": [
177
+ "title"
178
+ ],
179
+ "properties": {
180
+ "title": {
181
+ "type": "string",
182
+ "enum": [
183
+ "Bad Gateway"
184
+ ]
185
+ },
186
+ "dependency": {
187
+ "type": "string",
188
+ "description": "Stable dependency category; never contains raw exception text"
189
+ }
190
+ },
191
+ "allOf": [
192
+ {
193
+ "$ref": "#/$defs/Common.Errors.ProblemDetails"
194
+ }
195
+ ],
196
+ "description": "Upstream dependency failed while fulfilling the request (502)"
197
+ },
198
+ "Common.Errors.ConflictError": {
199
+ "type": "object",
200
+ "required": [
201
+ "title"
202
+ ],
203
+ "properties": {
204
+ "title": {
205
+ "type": "string",
206
+ "enum": [
207
+ "Conflict"
208
+ ]
209
+ },
210
+ "conflicting_resource": {
211
+ "type": "string",
212
+ "description": "The conflicting resource ID"
213
+ }
214
+ },
215
+ "allOf": [
216
+ {
217
+ "$ref": "#/$defs/Common.Errors.ProblemDetails"
218
+ }
219
+ ],
220
+ "description": "Conflict - resource state conflict (409)"
221
+ },
222
+ "Common.Errors.ForbiddenError": {
223
+ "type": "object",
224
+ "required": [
225
+ "title"
226
+ ],
227
+ "properties": {
228
+ "title": {
229
+ "type": "string",
230
+ "enum": [
231
+ "Forbidden"
232
+ ]
233
+ },
234
+ "required_permission": {
235
+ "type": "string",
236
+ "description": "Required permission that is missing"
237
+ }
238
+ },
239
+ "allOf": [
240
+ {
241
+ "$ref": "#/$defs/Common.Errors.ProblemDetails"
242
+ }
243
+ ],
244
+ "description": "Forbidden - insufficient permissions (403)"
245
+ },
246
+ "Common.Errors.InternalServerError": {
247
+ "type": "object",
248
+ "required": [
249
+ "title"
250
+ ],
251
+ "properties": {
252
+ "title": {
253
+ "type": "string",
254
+ "enum": [
255
+ "Internal Server Error"
256
+ ]
257
+ },
258
+ "error_code": {
259
+ "type": "string",
260
+ "description": "Error code for support reference"
261
+ }
262
+ },
263
+ "allOf": [
264
+ {
265
+ "$ref": "#/$defs/Common.Errors.ProblemDetails"
266
+ }
267
+ ],
268
+ "description": "Internal server error (500)"
269
+ },
270
+ "Common.Errors.NotFoundError": {
271
+ "type": "object",
272
+ "required": [
273
+ "title"
274
+ ],
275
+ "properties": {
276
+ "title": {
277
+ "type": "string",
278
+ "enum": [
279
+ "Not Found"
280
+ ]
281
+ },
282
+ "resource_type": {
283
+ "type": "string",
284
+ "description": "The type of resource that was not found"
285
+ },
286
+ "resource_id": {
287
+ "type": "string",
288
+ "description": "The identifier that was not found"
289
+ }
290
+ },
291
+ "allOf": [
292
+ {
293
+ "$ref": "#/$defs/Common.Errors.ProblemDetails"
294
+ }
295
+ ],
296
+ "description": "Resource not found (404)"
297
+ },
298
+ "Common.Errors.ProblemDetails": {
299
+ "type": "object",
300
+ "required": [
301
+ "type",
302
+ "title",
303
+ "status"
304
+ ],
305
+ "properties": {
306
+ "type": {
307
+ "type": "string",
308
+ "format": "uri",
309
+ "description": "A URI reference identifying the problem type",
310
+ "default": "about:blank"
311
+ },
312
+ "title": {
313
+ "type": "string",
314
+ "description": "A short, human-readable summary of the problem type"
315
+ },
316
+ "status": {
317
+ "type": "integer",
318
+ "format": "int32",
319
+ "description": "The HTTP status code (informational only, actual code set by subtype)"
320
+ },
321
+ "detail": {
322
+ "type": "string",
323
+ "description": "A human-readable explanation specific to this occurrence"
324
+ },
325
+ "instance": {
326
+ "type": "string",
327
+ "format": "uri",
328
+ "description": "A URI reference identifying the specific occurrence"
329
+ },
330
+ "timestamp": {
331
+ "type": "string",
332
+ "format": "date-time",
333
+ "description": "Timestamp of the error"
334
+ }
335
+ },
336
+ "description": "RFC 7807 Problem Details for HTTP APIs"
337
+ },
338
+ "Common.Errors.RateLimitError": {
339
+ "type": "object",
340
+ "required": [
341
+ "title"
342
+ ],
343
+ "properties": {
344
+ "title": {
345
+ "type": "string",
346
+ "enum": [
347
+ "Too Many Requests"
348
+ ]
349
+ }
350
+ },
351
+ "allOf": [
352
+ {
353
+ "$ref": "#/$defs/Common.Errors.ProblemDetails"
354
+ }
355
+ ],
356
+ "description": "Rate limited - too many requests (429)"
357
+ },
358
+ "Common.Errors.ServiceUnavailableError": {
359
+ "type": "object",
360
+ "required": [
361
+ "title"
362
+ ],
363
+ "properties": {
364
+ "title": {
365
+ "type": "string",
366
+ "enum": [
367
+ "Service Unavailable"
368
+ ]
369
+ },
370
+ "reason": {
371
+ "type": "string",
372
+ "enum": [
373
+ "maintenance",
374
+ "overloaded",
375
+ "dependency_failure"
376
+ ],
377
+ "description": "Reason for unavailability"
378
+ }
379
+ },
380
+ "allOf": [
381
+ {
382
+ "$ref": "#/$defs/Common.Errors.ProblemDetails"
383
+ }
384
+ ],
385
+ "description": "Service unavailable (503)"
386
+ },
387
+ "Common.Errors.UnauthorizedError": {
388
+ "type": "object",
389
+ "required": [
390
+ "title"
391
+ ],
392
+ "properties": {
393
+ "title": {
394
+ "type": "string",
395
+ "enum": [
396
+ "Unauthorized"
397
+ ]
398
+ }
399
+ },
400
+ "allOf": [
401
+ {
402
+ "$ref": "#/$defs/Common.Errors.ProblemDetails"
403
+ }
404
+ ],
405
+ "description": "Unauthorized - authentication required (401)"
406
+ },
407
+ "Common.Errors.ValidationError": {
408
+ "type": "object",
409
+ "required": [
410
+ "title",
411
+ "errors"
412
+ ],
413
+ "properties": {
414
+ "title": {
415
+ "type": "string",
416
+ "enum": [
417
+ "Validation Failed"
418
+ ]
419
+ },
420
+ "errors": {
421
+ "type": "array",
422
+ "items": {
423
+ "$ref": "#/$defs/Common.Errors.ValidationErrorDetail"
424
+ },
425
+ "description": "List of validation errors"
426
+ }
427
+ },
428
+ "allOf": [
429
+ {
430
+ "$ref": "#/$defs/Common.Errors.ProblemDetails"
431
+ }
432
+ ],
433
+ "description": "Bad request - validation failed (400)"
434
+ },
435
+ "Common.Errors.ValidationErrorDetail": {
436
+ "type": "object",
437
+ "required": [
438
+ "field",
439
+ "message",
440
+ "code"
441
+ ],
442
+ "properties": {
443
+ "field": {
444
+ "type": "string",
445
+ "description": "The field/property that failed validation"
446
+ },
447
+ "message": {
448
+ "type": "string",
449
+ "description": "The error message"
450
+ },
451
+ "code": {
452
+ "type": "string",
453
+ "description": "The validation rule that failed"
454
+ },
455
+ "rejected_value": {
456
+ "type": "string",
457
+ "description": "The rejected value (if safe to include)"
458
+ }
459
+ },
460
+ "description": "Individual validation error detail"
461
+ },
462
+ "Common.HttpMethod": {
463
+ "type": "string",
464
+ "description": "HTTP method name (uppercase)",
465
+ "examples": [
466
+ "GET"
467
+ ]
468
+ },
469
+ "Common.IPv4Address": {
470
+ "type": "string",
471
+ "pattern": "^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$",
472
+ "description": "IPv4 address in dotted-decimal notation",
473
+ "examples": [
474
+ "192.168.1.1"
475
+ ]
476
+ },
477
+ "Common.IPv6Address": {
478
+ "type": "string",
479
+ "description": "IPv6 address in standard notation",
480
+ "examples": [
481
+ "2001:0db8:85a3:0000:0000:8a2e:0370:7334"
482
+ ]
483
+ },
484
+ "Common.InstrumentationScope": {
485
+ "type": "object",
486
+ "required": [
487
+ "name"
488
+ ],
489
+ "properties": {
490
+ "name": {
491
+ "type": "string",
492
+ "description": "Name of the instrumentation scope (library name)"
493
+ },
494
+ "version": {
495
+ "allOf": [
496
+ {
497
+ "$ref": "#/$defs/Common.SemVer"
498
+ }
499
+ ],
500
+ "description": "Version of the instrumentation scope"
501
+ },
502
+ "attributes": {
503
+ "type": "array",
504
+ "items": {
505
+ "$ref": "#/$defs/Common.Attribute"
506
+ },
507
+ "description": "Additional attributes for the scope"
508
+ },
509
+ "dropped_attributes_count": {
510
+ "allOf": [
511
+ {
512
+ "$ref": "#/$defs/Common.Count"
513
+ }
514
+ ],
515
+ "description": "Dropped attributes count"
516
+ }
517
+ },
518
+ "description": "Instrumentation scope identifying the library/component emitting telemetry"
519
+ },
520
+ "Common.IpAddress": {
521
+ "type": "string",
522
+ "description": "IP address (IPv4 or IPv6)"
523
+ },
524
+ "Common.IsoDuration": {
525
+ "type": "string",
526
+ "format": "duration",
527
+ "description": "ISO 8601 duration format (e.g., PT1H30M)"
528
+ },
529
+ "Common.LanguageCode": {
530
+ "type": "string",
531
+ "pattern": "^[a-z]{2,3}(-[A-Z]{2})?$",
532
+ "description": "Language/locale code (BCP 47)",
533
+ "examples": [
534
+ "en-US"
535
+ ]
536
+ },
537
+ "Common.MacAddress": {
538
+ "type": "string",
539
+ "pattern": "^([0-9A-Fa-f]{2}:){5}[0-9A-Fa-f]{2}$",
540
+ "description": "MAC address in colon-separated hex notation",
541
+ "examples": [
542
+ "00:1A:2B:3C:4D:5E"
543
+ ]
544
+ },
545
+ "Common.Pagination.AggregationParams": {
546
+ "type": "object",
547
+ "properties": {
548
+ "bucket": {
549
+ "allOf": [
550
+ {
551
+ "$ref": "#/$defs/Common.Pagination.TimeBucket"
552
+ }
553
+ ],
554
+ "description": "Time bucket size",
555
+ "default": "auto"
556
+ },
557
+ "group_by": {
558
+ "type": "array",
559
+ "items": {
560
+ "type": "string"
561
+ },
562
+ "description": "Group by these dimensions"
563
+ },
564
+ "filter": {
565
+ "type": "string",
566
+ "description": "Filter expression"
567
+ }
568
+ },
569
+ "description": "Aggregation query parameters"
570
+ },
571
+ "Common.Pagination.CursorPaginationParams": {
572
+ "type": "object",
573
+ "properties": {
574
+ "cursor": {
575
+ "type": "string",
576
+ "description": "Opaque cursor for fetching the next page"
577
+ },
578
+ "limit": {
579
+ "type": "integer",
580
+ "format": "int32",
581
+ "minimum": 1,
582
+ "maximum": 1000,
583
+ "description": "Maximum number of items to return (1-1000)",
584
+ "default": 100
585
+ },
586
+ "order": {
587
+ "allOf": [
588
+ {
589
+ "$ref": "#/$defs/Common.Pagination.SortOrder"
590
+ }
591
+ ],
592
+ "description": "Sort direction",
593
+ "default": "desc"
594
+ }
595
+ },
596
+ "description": "Cursor-based pagination parameters"
597
+ },
598
+ "Common.Pagination.OffsetPaginationParams": {
599
+ "type": "object",
600
+ "properties": {
601
+ "page": {
602
+ "type": "integer",
603
+ "format": "int32",
604
+ "minimum": 1,
605
+ "description": "Page number (1-indexed)",
606
+ "default": 1
607
+ },
608
+ "page_size": {
609
+ "type": "integer",
610
+ "format": "int32",
611
+ "minimum": 1,
612
+ "maximum": 1000,
613
+ "description": "Items per page (1-1000)",
614
+ "default": 100
615
+ }
616
+ },
617
+ "description": "Offset-based pagination parameters"
618
+ },
619
+ "Common.Pagination.SortOrder": {
620
+ "type": "string",
621
+ "enum": [
622
+ "asc",
623
+ "desc"
624
+ ],
625
+ "description": "Sort order"
626
+ },
627
+ "Common.Pagination.StreamParams": {
628
+ "type": "object",
629
+ "properties": {
630
+ "since": {
631
+ "type": "string",
632
+ "format": "date-time",
633
+ "description": "Include historical data from this timestamp"
634
+ },
635
+ "trace_id": {
636
+ "type": "string",
637
+ "description": "Filter by trace ID"
638
+ },
639
+ "service_name": {
640
+ "type": "string",
641
+ "description": "Filter by service name"
642
+ },
643
+ "max_events_per_second": {
644
+ "type": "integer",
645
+ "format": "int32",
646
+ "minimum": 1,
647
+ "maximum": 1000,
648
+ "description": "Maximum events per second (rate limiting)",
649
+ "default": 100
650
+ }
651
+ },
652
+ "description": "Streaming parameters for SSE endpoints"
653
+ },
654
+ "Common.Pagination.TimeBucket": {
655
+ "type": "string",
656
+ "enum": [
657
+ "1m",
658
+ "5m",
659
+ "15m",
660
+ "1h",
661
+ "1d",
662
+ "1w",
663
+ "auto"
664
+ ],
665
+ "description": "Time bucket size for aggregations"
666
+ },
667
+ "Common.Pagination.TimeRangeParams": {
668
+ "type": "object",
669
+ "properties": {
670
+ "start_time": {
671
+ "type": "string",
672
+ "format": "date-time",
673
+ "description": "Start of time range (inclusive)"
674
+ },
675
+ "end_time": {
676
+ "type": "string",
677
+ "format": "date-time",
678
+ "description": "End of time range (exclusive)"
679
+ },
680
+ "limit": {
681
+ "type": "integer",
682
+ "format": "int32",
683
+ "minimum": 1,
684
+ "maximum": 10000,
685
+ "description": "Maximum number of items to return",
686
+ "default": 1000
687
+ }
688
+ },
689
+ "description": "Time-range based query parameters"
690
+ },
691
+ "Common.Percentage": {
692
+ "type": "number",
693
+ "format": "double",
694
+ "minimum": 0,
695
+ "maximum": 100,
696
+ "description": "Percentage value (0.0 to 100.0)",
697
+ "x-csharp-type": "double"
698
+ },
699
+ "Common.Port": {
700
+ "type": "integer",
701
+ "format": "int32",
702
+ "minimum": 1,
703
+ "maximum": 65535,
704
+ "description": "Network port number (1-65535)",
705
+ "x-csharp-type": "int"
706
+ },
707
+ "Common.Ratio": {
708
+ "type": "number",
709
+ "format": "double",
710
+ "minimum": 0,
711
+ "maximum": 1,
712
+ "description": "Ratio value (0.0 to 1.0)",
713
+ "x-csharp-type": "double"
714
+ },
715
+ "Common.SemVer": {
716
+ "type": "string",
717
+ "pattern": "^(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)(?:-((?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\\+([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?$",
718
+ "description": "Semantic version string (e.g., 1.2.3)",
719
+ "examples": [
720
+ "2.1.0"
721
+ ]
722
+ },
723
+ "Common.SessionId": {
724
+ "type": "string",
725
+ "minLength": 1,
726
+ "maxLength": 128,
727
+ "description": "Unique session identifier",
728
+ "x-csharp-type": "SessionId",
729
+ "x-csharp-struct": true
730
+ },
731
+ "Common.Sha256Hash": {
732
+ "type": "string",
733
+ "minLength": 64,
734
+ "maxLength": 64,
735
+ "pattern": "^[a-f0-9]{64}$",
736
+ "description": "SHA-256 hash in lowercase hex"
737
+ },
738
+ "Common.SpanId": {
739
+ "type": "string",
740
+ "minLength": 16,
741
+ "maxLength": 16,
742
+ "pattern": "^[a-f0-9]{16}$",
743
+ "description": "Unique span identifier (16 lowercase hex characters)",
744
+ "examples": [
745
+ "b7ad6b7169203331"
746
+ ],
747
+ "x-csharp-type": "SpanId",
748
+ "x-csharp-struct": true
749
+ },
750
+ "Common.Temperature": {
751
+ "type": "number",
752
+ "format": "double",
753
+ "minimum": 0,
754
+ "maximum": 2,
755
+ "description": "Temperature setting for LLM requests (0.0-2.0)",
756
+ "x-csharp-type": "double"
757
+ },
758
+ "Common.Timestamp": {
759
+ "type": "string",
760
+ "format": "date-time",
761
+ "description": "ISO 8601 timestamp with nanosecond precision (RFC 3339)"
762
+ },
763
+ "Common.TokenCount": {
764
+ "type": "integer",
765
+ "format": "int64",
766
+ "minimum": 0,
767
+ "description": "Token count (for LLM operations)",
768
+ "x-csharp-type": "long"
769
+ },
770
+ "Common.TraceId": {
771
+ "type": "string",
772
+ "minLength": 32,
773
+ "maxLength": 32,
774
+ "pattern": "^[a-f0-9]{32}$",
775
+ "description": "Unique trace identifier (32 lowercase hex characters)",
776
+ "examples": [
777
+ "0af7651916cd43dd8448eb211c80319c"
778
+ ],
779
+ "x-csharp-type": "TraceId",
780
+ "x-csharp-struct": true
781
+ },
782
+ "Common.TraceParent": {
783
+ "type": "string",
784
+ "pattern": "^[0-9a-f]{2}-[0-9a-f]{32}-[0-9a-f]{16}-[0-9a-f]{2}$",
785
+ "description": "W3C Trace Context traceparent header format",
786
+ "examples": [
787
+ "00-0af7651916cd43dd8448eb211c80319c-b7ad6b7169203331-01"
788
+ ]
789
+ },
790
+ "Common.TraceState": {
791
+ "type": "string",
792
+ "description": "W3C Trace Context tracestate header (vendor-specific key-value pairs)",
793
+ "examples": [
794
+ "rojo=00f067aa0ba902b7,congo=t61rcWkgMzE"
795
+ ]
796
+ },
797
+ "Common.UnixNanos": {
798
+ "type": "integer",
799
+ "format": "uint64",
800
+ "minimum": 0,
801
+ "description": "Unsigned Unix timestamp in nanoseconds since epoch",
802
+ "x-csharp-type": "ulong"
803
+ },
804
+ "Common.UrlPath": {
805
+ "type": "string",
806
+ "description": "URL path component",
807
+ "examples": [
808
+ "/api/v1/users"
809
+ ]
810
+ },
811
+ "Common.UrlQuery": {
812
+ "type": "string",
813
+ "description": "URL query string (without leading ?)",
814
+ "examples": [
815
+ "page=1&limit=100"
816
+ ]
817
+ },
818
+ "Common.UrlString": {
819
+ "type": "string",
820
+ "format": "uri",
821
+ "description": "URL string (absolute)"
822
+ },
823
+ "Common.UserAgent": {
824
+ "type": "string",
825
+ "description": "User agent string",
826
+ "examples": [
827
+ "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36"
828
+ ]
829
+ },
830
+ "Common.UserId": {
831
+ "type": "string",
832
+ "minLength": 1,
833
+ "maxLength": 256,
834
+ "description": "User identifier (pseudonymized for privacy)"
835
+ },
836
+ "Domains.Observe.Session.DeviceType": {
837
+ "type": "string",
838
+ "enum": [
839
+ "desktop",
840
+ "mobile",
841
+ "tablet",
842
+ "tv",
843
+ "console",
844
+ "wearable",
845
+ "iot",
846
+ "bot",
847
+ "unknown"
848
+ ],
849
+ "description": "Device types"
850
+ },
851
+ "Domains.Observe.Session.SessionAttributes": {
852
+ "type": "object",
853
+ "required": [
854
+ "session.id"
855
+ ],
856
+ "properties": {
857
+ "session.id": {
858
+ "allOf": [
859
+ {
860
+ "$ref": "#/$defs/Common.SessionId"
861
+ }
862
+ ],
863
+ "description": "Session ID"
864
+ },
865
+ "session.previous_id": {
866
+ "allOf": [
867
+ {
868
+ "$ref": "#/$defs/Common.SessionId"
869
+ }
870
+ ],
871
+ "description": "Previous session ID (for session continuity)"
872
+ }
873
+ },
874
+ "description": "Session span/event attributes"
875
+ },
876
+ "Domains.Observe.Session.SessionClientInfo": {
877
+ "type": "object",
878
+ "properties": {
879
+ "ip": {
880
+ "allOf": [
881
+ {
882
+ "$ref": "#/$defs/Common.IpAddress"
883
+ }
884
+ ],
885
+ "description": "Client IP address"
886
+ },
887
+ "user_agent": {
888
+ "allOf": [
889
+ {
890
+ "$ref": "#/$defs/Common.UserAgent"
891
+ }
892
+ ],
893
+ "description": "User agent string"
894
+ },
895
+ "device_type": {
896
+ "allOf": [
897
+ {
898
+ "$ref": "#/$defs/Domains.Observe.Session.DeviceType"
899
+ }
900
+ ],
901
+ "description": "Device type"
902
+ },
903
+ "os": {
904
+ "type": "string",
905
+ "description": "Operating system"
906
+ },
907
+ "browser": {
908
+ "type": "string",
909
+ "description": "Browser name"
910
+ },
911
+ "browser_version": {
912
+ "type": "string",
913
+ "description": "Browser version"
914
+ }
915
+ },
916
+ "description": "Session client information"
917
+ },
918
+ "Domains.Observe.Session.SessionEntity": {
919
+ "type": "object",
920
+ "required": [
921
+ "session.id",
922
+ "start_time",
923
+ "trace_count",
924
+ "span_count",
925
+ "error_count",
926
+ "services",
927
+ "state"
928
+ ],
929
+ "properties": {
930
+ "session.id": {
931
+ "allOf": [
932
+ {
933
+ "$ref": "#/$defs/Common.SessionId"
934
+ }
935
+ ],
936
+ "description": "Session ID"
937
+ },
938
+ "user.id": {
939
+ "allOf": [
940
+ {
941
+ "$ref": "#/$defs/Common.UserId"
942
+ }
943
+ ],
944
+ "description": "User ID (if authenticated)"
945
+ },
946
+ "start_time": {
947
+ "type": "string",
948
+ "format": "date-time",
949
+ "description": "Session start time"
950
+ },
951
+ "end_time": {
952
+ "type": "string",
953
+ "format": "date-time",
954
+ "description": "Session end time"
955
+ },
956
+ "duration_ms": {
957
+ "allOf": [
958
+ {
959
+ "$ref": "#/$defs/Common.DurationMs"
960
+ }
961
+ ],
962
+ "description": "Session duration in milliseconds"
963
+ },
964
+ "trace_count": {
965
+ "type": "integer",
966
+ "format": "int32",
967
+ "minimum": 0,
968
+ "description": "Total trace count in session"
969
+ },
970
+ "span_count": {
971
+ "type": "integer",
972
+ "format": "int32",
973
+ "minimum": 0,
974
+ "description": "Total span count in session"
975
+ },
976
+ "error_count": {
977
+ "type": "integer",
978
+ "format": "int32",
979
+ "minimum": 0,
980
+ "description": "Total error count in session"
981
+ },
982
+ "services": {
983
+ "type": "array",
984
+ "items": {
985
+ "type": "string"
986
+ },
987
+ "description": "Service names observed in this session"
988
+ },
989
+ "state": {
990
+ "allOf": [
991
+ {
992
+ "$ref": "#/$defs/Domains.Observe.Session.SessionState"
993
+ }
994
+ ],
995
+ "description": "Session state"
996
+ },
997
+ "client": {
998
+ "allOf": [
999
+ {
1000
+ "$ref": "#/$defs/Domains.Observe.Session.SessionClientInfo"
1001
+ }
1002
+ ],
1003
+ "description": "Client information"
1004
+ },
1005
+ "geo": {
1006
+ "allOf": [
1007
+ {
1008
+ "$ref": "#/$defs/Domains.Observe.Session.SessionGeoInfo"
1009
+ }
1010
+ ],
1011
+ "description": "Location information"
1012
+ },
1013
+ "genai_usage": {
1014
+ "allOf": [
1015
+ {
1016
+ "$ref": "#/$defs/Domains.Observe.Session.SessionGenAiUsage"
1017
+ }
1018
+ ],
1019
+ "description": "GenAI usage summary"
1020
+ }
1021
+ },
1022
+ "description": "Complete session entity with aggregated data",
1023
+ "x-csharp-type": "SessionEntity"
1024
+ },
1025
+ "Domains.Observe.Session.SessionEvent": {
1026
+ "type": "object",
1027
+ "required": [
1028
+ "event.name",
1029
+ "session.id",
1030
+ "timestamp",
1031
+ "event.domain"
1032
+ ],
1033
+ "properties": {
1034
+ "event.name": {
1035
+ "allOf": [
1036
+ {
1037
+ "$ref": "#/$defs/Domains.Observe.Session.SessionEventName"
1038
+ }
1039
+ ],
1040
+ "description": "Event name"
1041
+ },
1042
+ "session.id": {
1043
+ "allOf": [
1044
+ {
1045
+ "$ref": "#/$defs/Common.SessionId"
1046
+ }
1047
+ ],
1048
+ "description": "Session ID"
1049
+ },
1050
+ "timestamp": {
1051
+ "type": "string",
1052
+ "format": "date-time",
1053
+ "description": "Event timestamp"
1054
+ },
1055
+ "event.domain": {
1056
+ "type": "string",
1057
+ "enum": [
1058
+ "session"
1059
+ ],
1060
+ "description": "Event domain"
1061
+ }
1062
+ },
1063
+ "description": "Session lifecycle event"
1064
+ },
1065
+ "Domains.Observe.Session.SessionEventName": {
1066
+ "type": "string",
1067
+ "enum": [
1068
+ "session.start",
1069
+ "session.end"
1070
+ ],
1071
+ "description": "Session event names"
1072
+ },
1073
+ "Domains.Observe.Session.SessionGenAiUsage": {
1074
+ "type": "object",
1075
+ "required": [
1076
+ "request_count",
1077
+ "total_input_tokens",
1078
+ "total_output_tokens",
1079
+ "models_used",
1080
+ "providers_used"
1081
+ ],
1082
+ "properties": {
1083
+ "request_count": {
1084
+ "type": "integer",
1085
+ "format": "int32",
1086
+ "minimum": 0,
1087
+ "description": "Total GenAI requests in session"
1088
+ },
1089
+ "total_input_tokens": {
1090
+ "allOf": [
1091
+ {
1092
+ "$ref": "#/$defs/Common.TokenCount"
1093
+ }
1094
+ ],
1095
+ "description": "Total input tokens consumed"
1096
+ },
1097
+ "total_output_tokens": {
1098
+ "allOf": [
1099
+ {
1100
+ "$ref": "#/$defs/Common.TokenCount"
1101
+ }
1102
+ ],
1103
+ "description": "Total output tokens generated"
1104
+ },
1105
+ "models_used": {
1106
+ "type": "array",
1107
+ "items": {
1108
+ "type": "string"
1109
+ },
1110
+ "description": "Models used in session"
1111
+ },
1112
+ "providers_used": {
1113
+ "type": "array",
1114
+ "items": {
1115
+ "type": "string"
1116
+ },
1117
+ "description": "Providers used in session"
1118
+ },
1119
+ "estimated_cost_usd": {
1120
+ "type": "number",
1121
+ "format": "double",
1122
+ "description": "Estimated cost in USD"
1123
+ }
1124
+ },
1125
+ "description": "Session GenAI usage summary"
1126
+ },
1127
+ "Domains.Observe.Session.SessionGeoInfo": {
1128
+ "type": "object",
1129
+ "properties": {
1130
+ "country_code": {
1131
+ "type": "string",
1132
+ "description": "Country code (ISO 3166-1 alpha-2)"
1133
+ },
1134
+ "country_name": {
1135
+ "type": "string",
1136
+ "description": "Country name"
1137
+ },
1138
+ "region": {
1139
+ "type": "string",
1140
+ "description": "Region/state"
1141
+ },
1142
+ "city": {
1143
+ "type": "string",
1144
+ "description": "City"
1145
+ },
1146
+ "postal_code": {
1147
+ "type": "string",
1148
+ "description": "Postal code"
1149
+ },
1150
+ "timezone": {
1151
+ "type": "string",
1152
+ "description": "Timezone"
1153
+ }
1154
+ },
1155
+ "description": "Session geographic information"
1156
+ },
1157
+ "Domains.Observe.Session.SessionState": {
1158
+ "type": "string",
1159
+ "enum": [
1160
+ "active",
1161
+ "idle",
1162
+ "ended",
1163
+ "timed_out",
1164
+ "invalidated"
1165
+ ],
1166
+ "description": "Session states"
1167
+ },
1168
+ "Domains.Observe.Session.SessionStats": {
1169
+ "type": "object",
1170
+ "required": [
1171
+ "active_sessions",
1172
+ "total_sessions",
1173
+ "avg_duration_ms",
1174
+ "sessions_with_errors",
1175
+ "sessions_with_genai",
1176
+ "bounce_rate"
1177
+ ],
1178
+ "properties": {
1179
+ "active_sessions": {
1180
+ "allOf": [
1181
+ {
1182
+ "$ref": "#/$defs/Common.Count"
1183
+ }
1184
+ ],
1185
+ "description": "Active sessions count"
1186
+ },
1187
+ "total_sessions": {
1188
+ "allOf": [
1189
+ {
1190
+ "$ref": "#/$defs/Common.Count"
1191
+ }
1192
+ ],
1193
+ "description": "Total sessions in time range"
1194
+ },
1195
+ "avg_duration_ms": {
1196
+ "type": "number",
1197
+ "format": "double",
1198
+ "description": "Average session duration in milliseconds"
1199
+ },
1200
+ "sessions_with_errors": {
1201
+ "allOf": [
1202
+ {
1203
+ "$ref": "#/$defs/Common.Count"
1204
+ }
1205
+ ],
1206
+ "description": "Sessions with errors"
1207
+ },
1208
+ "sessions_with_genai": {
1209
+ "allOf": [
1210
+ {
1211
+ "$ref": "#/$defs/Common.Count"
1212
+ }
1213
+ ],
1214
+ "description": "Sessions with GenAI usage"
1215
+ },
1216
+ "bounce_rate": {
1217
+ "allOf": [
1218
+ {
1219
+ "$ref": "#/$defs/Common.Ratio"
1220
+ }
1221
+ ],
1222
+ "description": "Bounce rate (single-page sessions)"
1223
+ }
1224
+ },
1225
+ "description": "Aggregated session statistics"
1226
+ },
1227
+ "Health.HealthCheckEntry": {
1228
+ "type": "object",
1229
+ "required": [
1230
+ "status",
1231
+ "durationMs"
1232
+ ],
1233
+ "properties": {
1234
+ "status": {
1235
+ "$ref": "#/$defs/Health.HealthStatus"
1236
+ },
1237
+ "description": {
1238
+ "type": "string"
1239
+ },
1240
+ "durationMs": {
1241
+ "type": "number",
1242
+ "format": "double"
1243
+ }
1244
+ },
1245
+ "description": "One named health-check result."
1246
+ },
1247
+ "Health.HealthReport": {
1248
+ "type": "object",
1249
+ "required": [
1250
+ "status",
1251
+ "totalDurationMs",
1252
+ "entries"
1253
+ ],
1254
+ "properties": {
1255
+ "status": {
1256
+ "$ref": "#/$defs/Health.HealthStatus"
1257
+ },
1258
+ "totalDurationMs": {
1259
+ "type": "number",
1260
+ "format": "double"
1261
+ },
1262
+ "entries": {
1263
+ "type": "object",
1264
+ "unevaluatedProperties": {
1265
+ "$ref": "#/$defs/Health.HealthCheckEntry"
1266
+ }
1267
+ }
1268
+ },
1269
+ "description": "Readiness or liveness report returned by /health and /alive."
1270
+ },
1271
+ "Health.HealthStatus": {
1272
+ "type": "string",
1273
+ "enum": [
1274
+ "healthy",
1275
+ "degraded",
1276
+ "unhealthy"
1277
+ ],
1278
+ "description": "Health state reported by a qyl-managed process."
1279
+ },
1280
+ "Mcp.Tools.DisplayMcpDashboardInput": {
1281
+ "type": "object",
1282
+ "properties": {
1283
+ "hours": {
1284
+ "type": "number",
1285
+ "format": "double",
1286
+ "minimum": 1,
1287
+ "maximum": 168,
1288
+ "default": 24
1289
+ }
1290
+ },
1291
+ "description": "Input for display_mcp_dashboard."
1292
+ },
1293
+ "Mcp.Tools.DisplayMcpDashboardOutput": {
1294
+ "type": "object",
1295
+ "required": [
1296
+ "stats"
1297
+ ],
1298
+ "properties": {
1299
+ "stats": {
1300
+ "$ref": "#/$defs/Mcp.Tools.McpDashboardStats"
1301
+ }
1302
+ },
1303
+ "description": "Structured output for display_mcp_dashboard."
1304
+ },
1305
+ "Mcp.Tools.DisplayTracesInput": {
1306
+ "type": "object",
1307
+ "properties": {
1308
+ "trace_id": {
1309
+ "$ref": "#/$defs/Common.TraceId"
1310
+ },
1311
+ "session_id": {
1312
+ "$ref": "#/$defs/Common.SessionId"
1313
+ },
1314
+ "limit": {
1315
+ "type": "integer",
1316
+ "format": "int32",
1317
+ "minimum": 1,
1318
+ "maximum": 100,
1319
+ "default": 20
1320
+ }
1321
+ },
1322
+ "description": "Input for display_traces."
1323
+ },
1324
+ "Mcp.Tools.DisplayTracesOutput": {
1325
+ "type": "object",
1326
+ "required": [
1327
+ "traces",
1328
+ "mode"
1329
+ ],
1330
+ "properties": {
1331
+ "traces": {
1332
+ "type": "array",
1333
+ "items": {
1334
+ "$ref": "#/$defs/OTel.Traces.Trace"
1335
+ }
1336
+ },
1337
+ "selected_trace_id": {
1338
+ "$ref": "#/$defs/Common.TraceId"
1339
+ },
1340
+ "mode": {
1341
+ "$ref": "#/$defs/Mcp.Tools.McpDataMode"
1342
+ }
1343
+ },
1344
+ "description": "Structured output for display_traces."
1345
+ },
1346
+ "Mcp.Tools.FetchTelemetryInput": {
1347
+ "type": "object",
1348
+ "required": [
1349
+ "view"
1350
+ ],
1351
+ "properties": {
1352
+ "view": {
1353
+ "$ref": "#/$defs/Mcp.Tools.FetchTelemetryView"
1354
+ },
1355
+ "trace_id": {
1356
+ "$ref": "#/$defs/Common.TraceId"
1357
+ },
1358
+ "service_name": {
1359
+ "type": "string"
1360
+ },
1361
+ "severity_min": {
1362
+ "type": "integer",
1363
+ "format": "int32",
1364
+ "minimum": 1,
1365
+ "maximum": 24
1366
+ },
1367
+ "query": {
1368
+ "type": "string"
1369
+ },
1370
+ "limit": {
1371
+ "type": "integer",
1372
+ "format": "int32",
1373
+ "minimum": 1,
1374
+ "maximum": 200
1375
+ },
1376
+ "hours": {
1377
+ "type": "number",
1378
+ "format": "double",
1379
+ "minimum": 1,
1380
+ "maximum": 168
1381
+ }
1382
+ },
1383
+ "description": "Input for the app-only fetch_telemetry tool."
1384
+ },
1385
+ "Mcp.Tools.FetchTelemetryOutput": {
1386
+ "type": "object",
1387
+ "required": [
1388
+ "mode"
1389
+ ],
1390
+ "properties": {
1391
+ "traces": {
1392
+ "type": "array",
1393
+ "items": {
1394
+ "$ref": "#/$defs/OTel.Traces.Trace"
1395
+ }
1396
+ },
1397
+ "trace": {
1398
+ "$ref": "#/$defs/OTel.Traces.Trace"
1399
+ },
1400
+ "logs": {
1401
+ "type": "array",
1402
+ "items": {
1403
+ "$ref": "#/$defs/OTel.Logs.LogRecord"
1404
+ }
1405
+ },
1406
+ "stats": {
1407
+ "$ref": "#/$defs/Mcp.Tools.McpDashboardStats"
1408
+ },
1409
+ "mode": {
1410
+ "$ref": "#/$defs/Mcp.Tools.McpDataMode"
1411
+ }
1412
+ },
1413
+ "description": "Structured output for the app-only fetch_telemetry tool."
1414
+ },
1415
+ "Mcp.Tools.FetchTelemetryView": {
1416
+ "type": "string",
1417
+ "enum": [
1418
+ "traces",
1419
+ "trace",
1420
+ "logs",
1421
+ "mcp_stats"
1422
+ ],
1423
+ "description": "Data projection requested by the app-only fetch_telemetry tool."
1424
+ },
1425
+ "Mcp.Tools.GetTraceInput": {
1426
+ "type": "object",
1427
+ "required": [
1428
+ "trace_id"
1429
+ ],
1430
+ "properties": {
1431
+ "trace_id": {
1432
+ "$ref": "#/$defs/Common.TraceId"
1433
+ }
1434
+ },
1435
+ "description": "Input for get_trace."
1436
+ },
1437
+ "Mcp.Tools.GetTraceOutput": {
1438
+ "type": "object",
1439
+ "required": [
1440
+ "trace",
1441
+ "mode"
1442
+ ],
1443
+ "properties": {
1444
+ "trace": {
1445
+ "$ref": "#/$defs/OTel.Traces.Trace"
1446
+ },
1447
+ "mode": {
1448
+ "$ref": "#/$defs/Mcp.Tools.McpDataMode"
1449
+ }
1450
+ },
1451
+ "description": "Structured output for get_trace."
1452
+ },
1453
+ "Mcp.Tools.ListSessionsInput": {
1454
+ "type": "object",
1455
+ "properties": {
1456
+ "limit": {
1457
+ "type": "integer",
1458
+ "format": "int32",
1459
+ "minimum": 1,
1460
+ "maximum": 100,
1461
+ "default": 20
1462
+ },
1463
+ "active_only": {
1464
+ "type": "boolean"
1465
+ }
1466
+ },
1467
+ "description": "Input for list_sessions."
1468
+ },
1469
+ "Mcp.Tools.ListSessionsOutput": {
1470
+ "type": "object",
1471
+ "required": [
1472
+ "sessions",
1473
+ "mode"
1474
+ ],
1475
+ "properties": {
1476
+ "sessions": {
1477
+ "type": "array",
1478
+ "items": {
1479
+ "$ref": "#/$defs/Domains.Observe.Session.SessionEntity"
1480
+ }
1481
+ },
1482
+ "mode": {
1483
+ "$ref": "#/$defs/Mcp.Tools.McpDataMode"
1484
+ }
1485
+ },
1486
+ "description": "Structured output for list_sessions."
1487
+ },
1488
+ "Mcp.Tools.ListTracesInput": {
1489
+ "type": "object",
1490
+ "properties": {
1491
+ "limit": {
1492
+ "type": "integer",
1493
+ "format": "int32",
1494
+ "minimum": 1,
1495
+ "maximum": 100,
1496
+ "default": 20
1497
+ }
1498
+ },
1499
+ "description": "Input for list_traces."
1500
+ },
1501
+ "Mcp.Tools.ListTracesOutput": {
1502
+ "type": "object",
1503
+ "required": [
1504
+ "traces",
1505
+ "mode"
1506
+ ],
1507
+ "properties": {
1508
+ "traces": {
1509
+ "type": "array",
1510
+ "items": {
1511
+ "$ref": "#/$defs/OTel.Traces.TraceSummary"
1512
+ }
1513
+ },
1514
+ "mode": {
1515
+ "$ref": "#/$defs/Mcp.Tools.McpDataMode"
1516
+ }
1517
+ },
1518
+ "description": "Structured output for list_traces."
1519
+ },
1520
+ "Mcp.Tools.McpDashboardBucket": {
1521
+ "type": "object",
1522
+ "required": [
1523
+ "start",
1524
+ "requests",
1525
+ "errors"
1526
+ ],
1527
+ "properties": {
1528
+ "start": {
1529
+ "type": "string",
1530
+ "format": "date-time"
1531
+ },
1532
+ "requests": {
1533
+ "type": "integer",
1534
+ "format": "int32",
1535
+ "minimum": 0
1536
+ },
1537
+ "errors": {
1538
+ "type": "integer",
1539
+ "format": "int32",
1540
+ "minimum": 0
1541
+ }
1542
+ }
1543
+ },
1544
+ "Mcp.Tools.McpDashboardStats": {
1545
+ "type": "object",
1546
+ "required": [
1547
+ "window",
1548
+ "buckets",
1549
+ "totals",
1550
+ "by_server",
1551
+ "by_transport",
1552
+ "by_method",
1553
+ "tools",
1554
+ "span_count_analyzed",
1555
+ "truncated",
1556
+ "mode"
1557
+ ],
1558
+ "properties": {
1559
+ "window": {
1560
+ "$ref": "#/$defs/Mcp.Tools.McpDashboardWindow"
1561
+ },
1562
+ "buckets": {
1563
+ "type": "array",
1564
+ "items": {
1565
+ "$ref": "#/$defs/Mcp.Tools.McpDashboardBucket"
1566
+ }
1567
+ },
1568
+ "totals": {
1569
+ "$ref": "#/$defs/Mcp.Tools.McpDashboardTotals"
1570
+ },
1571
+ "by_server": {
1572
+ "type": "array",
1573
+ "items": {
1574
+ "$ref": "#/$defs/Mcp.Tools.McpNameRequestCount"
1575
+ }
1576
+ },
1577
+ "by_transport": {
1578
+ "type": "array",
1579
+ "items": {
1580
+ "$ref": "#/$defs/Mcp.Tools.McpNameRequestCount"
1581
+ }
1582
+ },
1583
+ "by_method": {
1584
+ "type": "array",
1585
+ "items": {
1586
+ "$ref": "#/$defs/Mcp.Tools.McpNameRequestCount"
1587
+ }
1588
+ },
1589
+ "tools": {
1590
+ "type": "array",
1591
+ "items": {
1592
+ "$ref": "#/$defs/Mcp.Tools.McpToolStats"
1593
+ }
1594
+ },
1595
+ "span_count_analyzed": {
1596
+ "type": "integer",
1597
+ "format": "int32",
1598
+ "minimum": 0
1599
+ },
1600
+ "truncated": {
1601
+ "type": "boolean"
1602
+ },
1603
+ "mode": {
1604
+ "$ref": "#/$defs/Mcp.Tools.McpDataMode"
1605
+ }
1606
+ },
1607
+ "description": "Aggregate MCP traffic statistics shown by qyl.mcp."
1608
+ },
1609
+ "Mcp.Tools.McpDashboardTotals": {
1610
+ "type": "object",
1611
+ "required": [
1612
+ "requests",
1613
+ "errors",
1614
+ "error_rate"
1615
+ ],
1616
+ "properties": {
1617
+ "requests": {
1618
+ "type": "integer",
1619
+ "format": "int32",
1620
+ "minimum": 0
1621
+ },
1622
+ "errors": {
1623
+ "type": "integer",
1624
+ "format": "int32",
1625
+ "minimum": 0
1626
+ },
1627
+ "error_rate": {
1628
+ "type": "number",
1629
+ "format": "double",
1630
+ "minimum": 0,
1631
+ "maximum": 1
1632
+ }
1633
+ }
1634
+ },
1635
+ "Mcp.Tools.McpDashboardWindow": {
1636
+ "type": "object",
1637
+ "required": [
1638
+ "start",
1639
+ "end",
1640
+ "bucket_ms"
1641
+ ],
1642
+ "properties": {
1643
+ "start": {
1644
+ "type": "string",
1645
+ "format": "date-time"
1646
+ },
1647
+ "end": {
1648
+ "type": "string",
1649
+ "format": "date-time"
1650
+ },
1651
+ "bucket_ms": {
1652
+ "type": "number",
1653
+ "format": "double",
1654
+ "minimum": 0
1655
+ }
1656
+ }
1657
+ },
1658
+ "Mcp.Tools.McpDataMode": {
1659
+ "type": "string",
1660
+ "enum": [
1661
+ "live",
1662
+ "demo"
1663
+ ],
1664
+ "description": "Whether a qyl MCP tool read live collector data or the explicit demo dataset."
1665
+ },
1666
+ "Mcp.Tools.McpNameRequestCount": {
1667
+ "type": "object",
1668
+ "required": [
1669
+ "name",
1670
+ "requests"
1671
+ ],
1672
+ "properties": {
1673
+ "name": {
1674
+ "type": "string"
1675
+ },
1676
+ "requests": {
1677
+ "type": "integer",
1678
+ "format": "int32",
1679
+ "minimum": 0
1680
+ }
1681
+ }
1682
+ },
1683
+ "Mcp.Tools.McpToolStats": {
1684
+ "type": "object",
1685
+ "required": [
1686
+ "name",
1687
+ "requests",
1688
+ "errors",
1689
+ "error_rate",
1690
+ "avg_ms",
1691
+ "p95_ms"
1692
+ ],
1693
+ "properties": {
1694
+ "name": {
1695
+ "type": "string"
1696
+ },
1697
+ "requests": {
1698
+ "type": "integer",
1699
+ "format": "int32",
1700
+ "minimum": 0
1701
+ },
1702
+ "errors": {
1703
+ "type": "integer",
1704
+ "format": "int32",
1705
+ "minimum": 0
1706
+ },
1707
+ "error_rate": {
1708
+ "type": "number",
1709
+ "format": "double",
1710
+ "minimum": 0,
1711
+ "maximum": 1
1712
+ },
1713
+ "avg_ms": {
1714
+ "type": "number",
1715
+ "format": "double",
1716
+ "minimum": 0
1717
+ },
1718
+ "p95_ms": {
1719
+ "type": "number",
1720
+ "format": "double",
1721
+ "minimum": 0
1722
+ }
1723
+ }
1724
+ },
1725
+ "Mcp.Tools.SearchLogsInput": {
1726
+ "type": "object",
1727
+ "properties": {
1728
+ "trace_id": {
1729
+ "$ref": "#/$defs/Common.TraceId"
1730
+ },
1731
+ "service_name": {
1732
+ "type": "string"
1733
+ },
1734
+ "severity_min": {
1735
+ "type": "integer",
1736
+ "format": "int32",
1737
+ "minimum": 1,
1738
+ "maximum": 24
1739
+ },
1740
+ "query": {
1741
+ "type": "string"
1742
+ },
1743
+ "limit": {
1744
+ "type": "integer",
1745
+ "format": "int32",
1746
+ "minimum": 1,
1747
+ "maximum": 200,
1748
+ "default": 50
1749
+ }
1750
+ },
1751
+ "description": "Input for search_logs."
1752
+ },
1753
+ "Mcp.Tools.SearchLogsOutput": {
1754
+ "type": "object",
1755
+ "required": [
1756
+ "logs",
1757
+ "mode"
1758
+ ],
1759
+ "properties": {
1760
+ "logs": {
1761
+ "type": "array",
1762
+ "items": {
1763
+ "$ref": "#/$defs/OTel.Logs.LogRecord"
1764
+ }
1765
+ },
1766
+ "mode": {
1767
+ "$ref": "#/$defs/Mcp.Tools.McpDataMode"
1768
+ }
1769
+ },
1770
+ "description": "Structured output for search_logs."
1771
+ },
1772
+ "OTel.Enums.AggregationTemporality": {
1773
+ "type": "number",
1774
+ "enum": [
1775
+ 0,
1776
+ 1,
1777
+ 2
1778
+ ],
1779
+ "description": "Aggregation temporality for metrics"
1780
+ },
1781
+ "OTel.Enums.DataPointFlags": {
1782
+ "type": "number",
1783
+ "enum": [
1784
+ 0,
1785
+ 1
1786
+ ],
1787
+ "description": "Data point flags"
1788
+ },
1789
+ "OTel.Enums.ErrorType": {
1790
+ "type": "string",
1791
+ "enum": [
1792
+ "_OTHER",
1793
+ "TIMEOUT",
1794
+ "CONNECTION_REFUSED",
1795
+ "DNS_ERROR",
1796
+ "TLS_ERROR",
1797
+ "AUTH_ERROR",
1798
+ "PERMISSION_DENIED",
1799
+ "NOT_FOUND",
1800
+ "RESOURCE_EXHAUSTED",
1801
+ "INVALID_ARGUMENT",
1802
+ "CANCELLED"
1803
+ ],
1804
+ "description": "Standardized error types"
1805
+ },
1806
+ "OTel.Enums.EventDomain": {
1807
+ "type": "string",
1808
+ "enum": [
1809
+ "browser",
1810
+ "device",
1811
+ "k8s",
1812
+ "session",
1813
+ "gen_ai",
1814
+ "exception",
1815
+ "log"
1816
+ ],
1817
+ "description": "Event domain (namespace for event types)"
1818
+ },
1819
+ "OTel.Enums.InstrumentKind": {
1820
+ "type": "string",
1821
+ "enum": [
1822
+ "Counter",
1823
+ "UpDownCounter",
1824
+ "Histogram",
1825
+ "Gauge",
1826
+ "ObservableCounter",
1827
+ "ObservableGauge",
1828
+ "ObservableUpDownCounter"
1829
+ ],
1830
+ "description": "Metric instrument kinds per OTel specification"
1831
+ },
1832
+ "OTel.Enums.MetricType": {
1833
+ "type": "string",
1834
+ "enum": [
1835
+ "gauge",
1836
+ "sum",
1837
+ "histogram",
1838
+ "exponential_histogram",
1839
+ "summary"
1840
+ ],
1841
+ "description": "Metric data type"
1842
+ },
1843
+ "OTel.Enums.OriginalPayloadFormat": {
1844
+ "type": "string",
1845
+ "enum": [
1846
+ "pprof",
1847
+ "jfr",
1848
+ "linux_perf"
1849
+ ],
1850
+ "description": "Original payload format for profile data"
1851
+ },
1852
+ "OTel.Enums.ProfileFrameType": {
1853
+ "type": "string",
1854
+ "enum": [
1855
+ "beam",
1856
+ "cpython",
1857
+ "dotnet",
1858
+ "go",
1859
+ "jvm",
1860
+ "kernel",
1861
+ "native",
1862
+ "perl",
1863
+ "php",
1864
+ "ruby",
1865
+ "rust",
1866
+ "v8js"
1867
+ ],
1868
+ "description": "Profile frame type — interpreter or compiler of a single frame"
1869
+ },
1870
+ "OTel.Enums.SeverityNumber": {
1871
+ "type": "number",
1872
+ "enum": [
1873
+ 0,
1874
+ 1,
1875
+ 2,
1876
+ 3,
1877
+ 4,
1878
+ 5,
1879
+ 6,
1880
+ 7,
1881
+ 8,
1882
+ 9,
1883
+ 10,
1884
+ 11,
1885
+ 12,
1886
+ 13,
1887
+ 14,
1888
+ 15,
1889
+ 16,
1890
+ 17,
1891
+ 18,
1892
+ 19,
1893
+ 20,
1894
+ 21,
1895
+ 22,
1896
+ 23,
1897
+ 24
1898
+ ],
1899
+ "description": "Log severity number following OTel specification (1-24)"
1900
+ },
1901
+ "OTel.Enums.SeverityText": {
1902
+ "type": "string",
1903
+ "enum": [
1904
+ "TRACE",
1905
+ "DEBUG",
1906
+ "INFO",
1907
+ "WARN",
1908
+ "ERROR",
1909
+ "FATAL"
1910
+ ],
1911
+ "description": "Log severity text (human-readable)"
1912
+ },
1913
+ "OTel.Enums.SpanFlags": {
1914
+ "type": "number",
1915
+ "enum": [
1916
+ 0,
1917
+ 1,
1918
+ 2
1919
+ ],
1920
+ "description": "Span flags as defined in W3C Trace Context"
1921
+ },
1922
+ "OTel.Enums.SpanKind": {
1923
+ "type": "number",
1924
+ "enum": [
1925
+ 0,
1926
+ 1,
1927
+ 2,
1928
+ 3,
1929
+ 4,
1930
+ 5
1931
+ ],
1932
+ "description": "Span kind describing the relationship between spans"
1933
+ },
1934
+ "OTel.Enums.SpanStatusCode": {
1935
+ "type": "number",
1936
+ "enum": [
1937
+ 0,
1938
+ 1,
1939
+ 2
1940
+ ],
1941
+ "description": "Span status code"
1942
+ },
1943
+ "OTel.Enums.TelemetrySdkLanguage": {
1944
+ "type": "string",
1945
+ "enum": [
1946
+ "cpp",
1947
+ "dotnet",
1948
+ "erlang",
1949
+ "go",
1950
+ "java",
1951
+ "nodejs",
1952
+ "php",
1953
+ "python",
1954
+ "ruby",
1955
+ "rust",
1956
+ "swift",
1957
+ "webjs"
1958
+ ],
1959
+ "description": "Telemetry SDK language"
1960
+ },
1961
+ "OTel.Logs.LogBody": {
1962
+ "type": "object",
1963
+ "oneOf": [
1964
+ {
1965
+ "$ref": "#/$defs/OTel.Logs.LogBodyString"
1966
+ },
1967
+ {
1968
+ "$ref": "#/$defs/OTel.Logs.LogBodyKvList"
1969
+ },
1970
+ {
1971
+ "$ref": "#/$defs/OTel.Logs.LogBodyArray"
1972
+ },
1973
+ {
1974
+ "$ref": "#/$defs/OTel.Logs.LogBodyBytes"
1975
+ }
1976
+ ],
1977
+ "discriminator": {
1978
+ "propertyName": "kind",
1979
+ "mapping": {
1980
+ "stringBody": "#/components/schemas/OTel.Logs.LogBodyString",
1981
+ "kvListBody": "#/components/schemas/OTel.Logs.LogBodyKvList",
1982
+ "arrayBody": "#/components/schemas/OTel.Logs.LogBodyArray",
1983
+ "bytesBody": "#/components/schemas/OTel.Logs.LogBodyBytes"
1984
+ }
1985
+ },
1986
+ "description": "Log body content - can be string, structured, or bytes"
1987
+ },
1988
+ "OTel.Logs.LogBodyArray": {
1989
+ "type": "object",
1990
+ "required": [
1991
+ "array_value"
1992
+ ],
1993
+ "properties": {
1994
+ "array_value": {
1995
+ "type": "array",
1996
+ "items": {
1997
+ "$ref": "#/$defs/Common.AttributeValue"
1998
+ },
1999
+ "description": "Array of values"
2000
+ }
2001
+ },
2002
+ "description": "Array log body"
2003
+ },
2004
+ "OTel.Logs.LogBodyBytes": {
2005
+ "type": "object",
2006
+ "required": [
2007
+ "bytes_value"
2008
+ ],
2009
+ "properties": {
2010
+ "bytes_value": {
2011
+ "type": "string",
2012
+ "contentEncoding": "base64",
2013
+ "description": "Binary value (base64 encoded)"
2014
+ }
2015
+ },
2016
+ "description": "Binary log body"
2017
+ },
2018
+ "OTel.Logs.LogBodyKvList": {
2019
+ "type": "object",
2020
+ "required": [
2021
+ "kv_list_value"
2022
+ ],
2023
+ "properties": {
2024
+ "kv_list_value": {
2025
+ "type": "array",
2026
+ "items": {
2027
+ "$ref": "#/$defs/Common.Attribute"
2028
+ },
2029
+ "description": "Key-value pairs"
2030
+ }
2031
+ },
2032
+ "description": "Structured key-value log body"
2033
+ },
2034
+ "OTel.Logs.LogBodyString": {
2035
+ "type": "object",
2036
+ "required": [
2037
+ "string_value"
2038
+ ],
2039
+ "properties": {
2040
+ "string_value": {
2041
+ "type": "string",
2042
+ "description": "String value"
2043
+ }
2044
+ },
2045
+ "description": "String log body"
2046
+ },
2047
+ "OTel.Logs.LogRecord": {
2048
+ "type": "object",
2049
+ "required": [
2050
+ "time_unix_nano",
2051
+ "observed_time_unix_nano",
2052
+ "severity_number",
2053
+ "body",
2054
+ "resource"
2055
+ ],
2056
+ "properties": {
2057
+ "time_unix_nano": {
2058
+ "allOf": [
2059
+ {
2060
+ "$ref": "#/$defs/Common.UnixNanos"
2061
+ }
2062
+ ],
2063
+ "description": "Timestamp when the event occurred (nanoseconds since epoch)"
2064
+ },
2065
+ "observed_time_unix_nano": {
2066
+ "allOf": [
2067
+ {
2068
+ "$ref": "#/$defs/Common.UnixNanos"
2069
+ }
2070
+ ],
2071
+ "description": "Timestamp when the log was observed/collected (nanoseconds since epoch)"
2072
+ },
2073
+ "severity_number": {
2074
+ "allOf": [
2075
+ {
2076
+ "$ref": "#/$defs/OTel.Enums.SeverityNumber"
2077
+ }
2078
+ ],
2079
+ "description": "Severity number (1-24)"
2080
+ },
2081
+ "severity_text": {
2082
+ "allOf": [
2083
+ {
2084
+ "$ref": "#/$defs/OTel.Enums.SeverityText"
2085
+ }
2086
+ ],
2087
+ "description": "Severity text (DEBUG, INFO, WARN, ERROR, etc.)"
2088
+ },
2089
+ "body": {
2090
+ "allOf": [
2091
+ {
2092
+ "$ref": "#/$defs/OTel.Logs.LogBody"
2093
+ }
2094
+ ],
2095
+ "description": "Log body - the main content"
2096
+ },
2097
+ "attributes": {
2098
+ "type": "array",
2099
+ "items": {
2100
+ "$ref": "#/$defs/Common.Attribute"
2101
+ },
2102
+ "description": "Log attributes"
2103
+ },
2104
+ "dropped_attributes_count": {
2105
+ "allOf": [
2106
+ {
2107
+ "$ref": "#/$defs/Common.Count"
2108
+ }
2109
+ ],
2110
+ "description": "Dropped attributes count"
2111
+ },
2112
+ "flags": {
2113
+ "type": "integer",
2114
+ "format": "int32",
2115
+ "description": "Flags (trace flags)"
2116
+ },
2117
+ "trace_id": {
2118
+ "allOf": [
2119
+ {
2120
+ "$ref": "#/$defs/Common.TraceId"
2121
+ }
2122
+ ],
2123
+ "description": "Associated trace ID"
2124
+ },
2125
+ "span_id": {
2126
+ "allOf": [
2127
+ {
2128
+ "$ref": "#/$defs/Common.SpanId"
2129
+ }
2130
+ ],
2131
+ "description": "Associated span ID"
2132
+ },
2133
+ "resource": {
2134
+ "allOf": [
2135
+ {
2136
+ "$ref": "#/$defs/OTel.Resource.Resource"
2137
+ }
2138
+ ],
2139
+ "description": "Resource describing the entity that produced this log"
2140
+ },
2141
+ "instrumentation_scope": {
2142
+ "allOf": [
2143
+ {
2144
+ "$ref": "#/$defs/Common.InstrumentationScope"
2145
+ }
2146
+ ],
2147
+ "description": "Instrumentation scope"
2148
+ }
2149
+ },
2150
+ "description": "OpenTelemetry Log Record"
2151
+ },
2152
+ "OTel.Logs.LogTemplate": {
2153
+ "type": "object",
2154
+ "required": [
2155
+ "template",
2156
+ "parameters"
2157
+ ],
2158
+ "properties": {
2159
+ "template": {
2160
+ "type": "string",
2161
+ "description": "Template string with {placeholder} syntax"
2162
+ },
2163
+ "parameters": {
2164
+ "type": "array",
2165
+ "items": {
2166
+ "$ref": "#/$defs/Common.Attribute"
2167
+ },
2168
+ "description": "Template parameters"
2169
+ },
2170
+ "rendered_message": {
2171
+ "type": "string",
2172
+ "description": "Rendered message"
2173
+ }
2174
+ },
2175
+ "description": "Log message template with placeholders"
2176
+ },
2177
+ "OTel.Profiles.Profile": {
2178
+ "type": "object",
2179
+ "required": [
2180
+ "profile_id",
2181
+ "time_unix_nano",
2182
+ "duration_nano",
2183
+ "resource"
2184
+ ],
2185
+ "properties": {
2186
+ "profile_id": {
2187
+ "type": "string",
2188
+ "description": "Unique profile identifier (16 hex chars)"
2189
+ },
2190
+ "sample_type": {
2191
+ "allOf": [
2192
+ {
2193
+ "$ref": "#/$defs/OTel.Profiles.ProfileValueType"
2194
+ }
2195
+ ],
2196
+ "description": "Sample type describing what was measured"
2197
+ },
2198
+ "samples": {
2199
+ "type": "array",
2200
+ "items": {
2201
+ "$ref": "#/$defs/OTel.Profiles.ProfileSample"
2202
+ },
2203
+ "description": "Profiling samples"
2204
+ },
2205
+ "time_unix_nano": {
2206
+ "allOf": [
2207
+ {
2208
+ "$ref": "#/$defs/Common.UnixNanos"
2209
+ }
2210
+ ],
2211
+ "description": "Profile start timestamp in nanoseconds since epoch"
2212
+ },
2213
+ "duration_nano": {
2214
+ "allOf": [
2215
+ {
2216
+ "$ref": "#/$defs/Common.DurationNs"
2217
+ }
2218
+ ],
2219
+ "description": "Profile duration in nanoseconds"
2220
+ },
2221
+ "period_type": {
2222
+ "allOf": [
2223
+ {
2224
+ "$ref": "#/$defs/OTel.Profiles.ProfileValueType"
2225
+ }
2226
+ ],
2227
+ "description": "Sampling period type"
2228
+ },
2229
+ "period": {
2230
+ "type": "integer",
2231
+ "format": "int64",
2232
+ "description": "Sampling period value"
2233
+ },
2234
+ "original_payload_format": {
2235
+ "allOf": [
2236
+ {
2237
+ "$ref": "#/$defs/OTel.Enums.OriginalPayloadFormat"
2238
+ }
2239
+ ],
2240
+ "description": "Original payload format (pprof, jfr, linux_perf)"
2241
+ },
2242
+ "original_payload": {
2243
+ "type": "string",
2244
+ "contentEncoding": "base64",
2245
+ "description": "Original payload bytes (base64 encoded, opaque — not parsed)"
2246
+ },
2247
+ "attributes": {
2248
+ "type": "array",
2249
+ "items": {
2250
+ "$ref": "#/$defs/Common.Attribute"
2251
+ },
2252
+ "description": "Profile attributes"
2253
+ },
2254
+ "dropped_attributes_count": {
2255
+ "allOf": [
2256
+ {
2257
+ "$ref": "#/$defs/Common.Count"
2258
+ }
2259
+ ],
2260
+ "description": "Dropped attributes count"
2261
+ },
2262
+ "resource": {
2263
+ "allOf": [
2264
+ {
2265
+ "$ref": "#/$defs/OTel.Resource.Resource"
2266
+ }
2267
+ ],
2268
+ "description": "Resource describing the entity that produced this profile"
2269
+ },
2270
+ "instrumentation_scope": {
2271
+ "allOf": [
2272
+ {
2273
+ "$ref": "#/$defs/Common.InstrumentationScope"
2274
+ }
2275
+ ],
2276
+ "description": "Instrumentation scope"
2277
+ },
2278
+ "string_table": {
2279
+ "type": "array",
2280
+ "items": {
2281
+ "type": "string"
2282
+ },
2283
+ "description": "String table for index-based lookups"
2284
+ },
2285
+ "function_table": {
2286
+ "type": "array",
2287
+ "items": {
2288
+ "$ref": "#/$defs/OTel.Profiles.ProfileFunction"
2289
+ },
2290
+ "description": "Function table"
2291
+ },
2292
+ "location_table": {
2293
+ "type": "array",
2294
+ "items": {
2295
+ "$ref": "#/$defs/OTel.Profiles.ProfileLocation"
2296
+ },
2297
+ "description": "Location table"
2298
+ },
2299
+ "mapping_table": {
2300
+ "type": "array",
2301
+ "items": {
2302
+ "$ref": "#/$defs/OTel.Profiles.ProfileMapping"
2303
+ },
2304
+ "description": "Mapping table (memory-mapped binaries)"
2305
+ },
2306
+ "link_table": {
2307
+ "type": "array",
2308
+ "items": {
2309
+ "$ref": "#/$defs/OTel.Profiles.ProfileLink"
2310
+ },
2311
+ "description": "Link table for cross-signal correlation"
2312
+ },
2313
+ "stack_table": {
2314
+ "type": "array",
2315
+ "items": {
2316
+ "$ref": "#/$defs/OTel.Profiles.ProfileStack"
2317
+ },
2318
+ "description": "Stack table (ordered location sequences)"
2319
+ }
2320
+ },
2321
+ "description": "OpenTelemetry Profile representing a continuous profiling snapshot"
2322
+ },
2323
+ "OTel.Profiles.ProfileFunction": {
2324
+ "type": "object",
2325
+ "properties": {
2326
+ "name_strindex": {
2327
+ "type": "integer",
2328
+ "format": "int32",
2329
+ "description": "Function name string index"
2330
+ },
2331
+ "system_name_strindex": {
2332
+ "type": "integer",
2333
+ "format": "int32",
2334
+ "description": "System/mangled function name string index"
2335
+ },
2336
+ "filename_strindex": {
2337
+ "type": "integer",
2338
+ "format": "int32",
2339
+ "description": "Source filename string index"
2340
+ },
2341
+ "start_line": {
2342
+ "type": "integer",
2343
+ "format": "int64",
2344
+ "description": "First line number of the function in source"
2345
+ }
2346
+ },
2347
+ "description": "Function identity in a profiled binary"
2348
+ },
2349
+ "OTel.Profiles.ProfileLine": {
2350
+ "type": "object",
2351
+ "properties": {
2352
+ "function_index": {
2353
+ "type": "integer",
2354
+ "format": "int32",
2355
+ "description": "Function index into function table"
2356
+ },
2357
+ "line": {
2358
+ "type": "integer",
2359
+ "format": "int64",
2360
+ "description": "Source line number"
2361
+ },
2362
+ "column": {
2363
+ "type": "integer",
2364
+ "format": "int64",
2365
+ "description": "Source column number"
2366
+ }
2367
+ },
2368
+ "description": "Source line within a location"
2369
+ },
2370
+ "OTel.Profiles.ProfileLink": {
2371
+ "type": "object",
2372
+ "properties": {
2373
+ "trace_id": {
2374
+ "allOf": [
2375
+ {
2376
+ "$ref": "#/$defs/Common.TraceId"
2377
+ }
2378
+ ],
2379
+ "description": "Linked trace ID (16 bytes, W3C format)"
2380
+ },
2381
+ "span_id": {
2382
+ "allOf": [
2383
+ {
2384
+ "$ref": "#/$defs/Common.SpanId"
2385
+ }
2386
+ ],
2387
+ "description": "Linked span ID (8 bytes)"
2388
+ }
2389
+ },
2390
+ "description": "Cross-signal link from profile sample to trace/span"
2391
+ },
2392
+ "OTel.Profiles.ProfileLocation": {
2393
+ "type": "object",
2394
+ "properties": {
2395
+ "mapping_index": {
2396
+ "type": "integer",
2397
+ "format": "int32",
2398
+ "description": "Mapping index into mapping table"
2399
+ },
2400
+ "address": {
2401
+ "type": "integer",
2402
+ "format": "uint64",
2403
+ "description": "Instruction address (program counter)"
2404
+ },
2405
+ "lines": {
2406
+ "type": "array",
2407
+ "items": {
2408
+ "$ref": "#/$defs/OTel.Profiles.ProfileLine"
2409
+ },
2410
+ "description": "Source lines at this location"
2411
+ },
2412
+ "attribute_indices": {
2413
+ "type": "array",
2414
+ "items": {
2415
+ "type": "integer",
2416
+ "format": "int32"
2417
+ },
2418
+ "description": "Attribute indices"
2419
+ }
2420
+ },
2421
+ "description": "Code location within a profiled binary"
2422
+ },
2423
+ "OTel.Profiles.ProfileMapping": {
2424
+ "type": "object",
2425
+ "properties": {
2426
+ "memory_start": {
2427
+ "type": "integer",
2428
+ "format": "uint64",
2429
+ "description": "Start address of the mapping in virtual memory"
2430
+ },
2431
+ "memory_limit": {
2432
+ "type": "integer",
2433
+ "format": "uint64",
2434
+ "description": "Limit address (exclusive) of the mapping"
2435
+ },
2436
+ "file_offset": {
2437
+ "type": "integer",
2438
+ "format": "uint64",
2439
+ "description": "Offset within the mapped file"
2440
+ },
2441
+ "filename_strindex": {
2442
+ "type": "integer",
2443
+ "format": "int32",
2444
+ "description": "Filename string index of the mapped binary"
2445
+ },
2446
+ "attribute_indices": {
2447
+ "type": "array",
2448
+ "items": {
2449
+ "type": "integer",
2450
+ "format": "int32"
2451
+ },
2452
+ "description": "Attribute indices"
2453
+ }
2454
+ },
2455
+ "description": "Memory mapping for a loaded binary or shared library"
2456
+ },
2457
+ "OTel.Profiles.ProfileQueryFilters": {
2458
+ "type": "object",
2459
+ "properties": {
2460
+ "trace_id": {
2461
+ "allOf": [
2462
+ {
2463
+ "$ref": "#/$defs/Common.TraceId"
2464
+ }
2465
+ ],
2466
+ "description": "Filter by trace ID"
2467
+ },
2468
+ "span_id": {
2469
+ "allOf": [
2470
+ {
2471
+ "$ref": "#/$defs/Common.SpanId"
2472
+ }
2473
+ ],
2474
+ "description": "Filter by span ID"
2475
+ },
2476
+ "session_id": {
2477
+ "allOf": [
2478
+ {
2479
+ "$ref": "#/$defs/Common.SessionId"
2480
+ }
2481
+ ],
2482
+ "description": "Filter by session ID"
2483
+ },
2484
+ "service_name": {
2485
+ "type": "string",
2486
+ "description": "Filter by service name"
2487
+ },
2488
+ "sample_type": {
2489
+ "type": "string",
2490
+ "description": "Filter by sample type (e.g., cpu, alloc_objects, wall)"
2491
+ },
2492
+ "profile_frame_type": {
2493
+ "type": "string",
2494
+ "description": "Filter by profile frame type (e.g., dotnet, jvm, cpython)"
2495
+ },
2496
+ "original_payload_format": {
2497
+ "allOf": [
2498
+ {
2499
+ "$ref": "#/$defs/OTel.Enums.OriginalPayloadFormat"
2500
+ }
2501
+ ],
2502
+ "description": "Filter by original payload format"
2503
+ },
2504
+ "min_duration_nano": {
2505
+ "allOf": [
2506
+ {
2507
+ "$ref": "#/$defs/Common.DurationNs"
2508
+ }
2509
+ ],
2510
+ "description": "Minimum duration in nanoseconds"
2511
+ },
2512
+ "time_from": {
2513
+ "type": "string",
2514
+ "format": "date-time",
2515
+ "description": "Start of time range (inclusive, ISO 8601)"
2516
+ },
2517
+ "time_to": {
2518
+ "type": "string",
2519
+ "format": "date-time",
2520
+ "description": "End of time range (exclusive, ISO 8601)"
2521
+ }
2522
+ },
2523
+ "description": "Filter parameters for querying profiles"
2524
+ },
2525
+ "OTel.Profiles.ProfileSample": {
2526
+ "type": "object",
2527
+ "properties": {
2528
+ "stack_index": {
2529
+ "type": "integer",
2530
+ "format": "int32",
2531
+ "description": "Stack index into stack table"
2532
+ },
2533
+ "attribute_indices": {
2534
+ "type": "array",
2535
+ "items": {
2536
+ "type": "integer",
2537
+ "format": "int32"
2538
+ },
2539
+ "description": "Attribute indices into attribute table"
2540
+ },
2541
+ "link_index": {
2542
+ "type": "integer",
2543
+ "format": "int32",
2544
+ "description": "Link index into link table for cross-signal correlation"
2545
+ },
2546
+ "values": {
2547
+ "type": "array",
2548
+ "items": {
2549
+ "type": "integer",
2550
+ "format": "int64"
2551
+ },
2552
+ "description": "Sample values (one per sample type)"
2553
+ },
2554
+ "timestamps_unix_nano": {
2555
+ "type": "array",
2556
+ "items": {
2557
+ "$ref": "#/$defs/Common.UnixNanos"
2558
+ },
2559
+ "description": "Timestamps for each value in nanoseconds since epoch"
2560
+ }
2561
+ },
2562
+ "description": "Individual profiling sample"
2563
+ },
2564
+ "OTel.Profiles.ProfileStack": {
2565
+ "type": "object",
2566
+ "properties": {
2567
+ "location_indices": {
2568
+ "type": "array",
2569
+ "items": {
2570
+ "type": "integer",
2571
+ "format": "int32"
2572
+ },
2573
+ "description": "Location indices from leaf (index 0) to root"
2574
+ }
2575
+ },
2576
+ "description": "Ordered sequence of location indices forming a call stack"
2577
+ },
2578
+ "OTel.Profiles.ProfileStats": {
2579
+ "type": "object",
2580
+ "required": [
2581
+ "total_count",
2582
+ "total_sample_count",
2583
+ "avg_duration_nano"
2584
+ ],
2585
+ "properties": {
2586
+ "total_count": {
2587
+ "allOf": [
2588
+ {
2589
+ "$ref": "#/$defs/Common.Count"
2590
+ }
2591
+ ],
2592
+ "description": "Total profile count"
2593
+ },
2594
+ "total_sample_count": {
2595
+ "allOf": [
2596
+ {
2597
+ "$ref": "#/$defs/Common.Count"
2598
+ }
2599
+ ],
2600
+ "description": "Total sample count across all profiles"
2601
+ },
2602
+ "avg_duration_nano": {
2603
+ "type": "number",
2604
+ "format": "double",
2605
+ "description": "Average duration in nanoseconds"
2606
+ },
2607
+ "by_sample_type": {
2608
+ "type": "array",
2609
+ "items": {
2610
+ "$ref": "#/$defs/OTel.Profiles.ProfileStatsByDimension"
2611
+ },
2612
+ "description": "Stats grouped by sample type"
2613
+ },
2614
+ "by_service": {
2615
+ "type": "array",
2616
+ "items": {
2617
+ "$ref": "#/$defs/OTel.Profiles.ProfileStatsByDimension"
2618
+ },
2619
+ "description": "Stats grouped by service"
2620
+ },
2621
+ "by_frame_type": {
2622
+ "type": "array",
2623
+ "items": {
2624
+ "$ref": "#/$defs/OTel.Profiles.ProfileStatsByDimension"
2625
+ },
2626
+ "description": "Stats grouped by frame type"
2627
+ }
2628
+ },
2629
+ "description": "Aggregated profile statistics"
2630
+ },
2631
+ "OTel.Profiles.ProfileStatsByDimension": {
2632
+ "type": "object",
2633
+ "required": [
2634
+ "dimension",
2635
+ "count",
2636
+ "sample_count",
2637
+ "avg_duration_nano"
2638
+ ],
2639
+ "properties": {
2640
+ "dimension": {
2641
+ "type": "string",
2642
+ "description": "Dimension value"
2643
+ },
2644
+ "count": {
2645
+ "allOf": [
2646
+ {
2647
+ "$ref": "#/$defs/Common.Count"
2648
+ }
2649
+ ],
2650
+ "description": "Profile count for this dimension"
2651
+ },
2652
+ "sample_count": {
2653
+ "allOf": [
2654
+ {
2655
+ "$ref": "#/$defs/Common.Count"
2656
+ }
2657
+ ],
2658
+ "description": "Total sample count for this dimension"
2659
+ },
2660
+ "avg_duration_nano": {
2661
+ "type": "number",
2662
+ "format": "double",
2663
+ "description": "Average duration in nanoseconds"
2664
+ }
2665
+ },
2666
+ "description": "Profile statistics for a specific dimension value"
2667
+ },
2668
+ "OTel.Profiles.ProfileValueType": {
2669
+ "type": "object",
2670
+ "properties": {
2671
+ "type_strindex": {
2672
+ "type": "integer",
2673
+ "format": "int32",
2674
+ "description": "Type string index into string table"
2675
+ },
2676
+ "unit_strindex": {
2677
+ "type": "integer",
2678
+ "format": "int32",
2679
+ "description": "Unit string index into string table"
2680
+ }
2681
+ },
2682
+ "description": "Sample type descriptor (what was measured and in what unit)"
2683
+ },
2684
+ "OTel.Resource.CloudProvider": {
2685
+ "type": "string",
2686
+ "enum": [
2687
+ "alibaba_cloud",
2688
+ "aws",
2689
+ "azure",
2690
+ "gcp",
2691
+ "heroku",
2692
+ "ibm_cloud",
2693
+ "tencent_cloud"
2694
+ ],
2695
+ "description": "Cloud provider types"
2696
+ },
2697
+ "OTel.Resource.HostArch": {
2698
+ "type": "string",
2699
+ "enum": [
2700
+ "amd64",
2701
+ "arm32",
2702
+ "arm64",
2703
+ "ia64",
2704
+ "ppc32",
2705
+ "ppc64",
2706
+ "s390x",
2707
+ "x86"
2708
+ ],
2709
+ "description": "Host architecture types"
2710
+ },
2711
+ "OTel.Resource.OsType": {
2712
+ "type": "string",
2713
+ "enum": [
2714
+ "windows",
2715
+ "linux",
2716
+ "darwin",
2717
+ "freebsd",
2718
+ "netbsd",
2719
+ "openbsd",
2720
+ "dragonflybsd",
2721
+ "hpux",
2722
+ "aix",
2723
+ "solaris",
2724
+ "z_os"
2725
+ ],
2726
+ "description": "Operating system types"
2727
+ },
2728
+ "OTel.Resource.Resource": {
2729
+ "type": "object",
2730
+ "required": [
2731
+ "service.name"
2732
+ ],
2733
+ "properties": {
2734
+ "service.name": {
2735
+ "type": "string",
2736
+ "description": "Service name (required)"
2737
+ },
2738
+ "service.namespace": {
2739
+ "type": "string",
2740
+ "description": "Service namespace for grouping"
2741
+ },
2742
+ "service.instance.id": {
2743
+ "type": "string",
2744
+ "description": "Service instance ID (unique per instance)"
2745
+ },
2746
+ "service.version": {
2747
+ "allOf": [
2748
+ {
2749
+ "$ref": "#/$defs/Common.SemVer"
2750
+ }
2751
+ ],
2752
+ "description": "Service version"
2753
+ },
2754
+ "telemetry.sdk.name": {
2755
+ "type": "string",
2756
+ "description": "Telemetry SDK name"
2757
+ },
2758
+ "telemetry.sdk.language": {
2759
+ "allOf": [
2760
+ {
2761
+ "$ref": "#/$defs/OTel.Enums.TelemetrySdkLanguage"
2762
+ }
2763
+ ],
2764
+ "description": "Telemetry SDK language"
2765
+ },
2766
+ "telemetry.sdk.version": {
2767
+ "allOf": [
2768
+ {
2769
+ "$ref": "#/$defs/Common.SemVer"
2770
+ }
2771
+ ],
2772
+ "description": "Telemetry SDK version"
2773
+ },
2774
+ "telemetry.auto.version": {
2775
+ "allOf": [
2776
+ {
2777
+ "$ref": "#/$defs/Common.SemVer"
2778
+ }
2779
+ ],
2780
+ "description": "Auto-instrumentation agent name"
2781
+ },
2782
+ "deployment.environment.name": {
2783
+ "type": "string",
2784
+ "description": "Deployment environment (e.g., production, staging)"
2785
+ },
2786
+ "cloud.provider": {
2787
+ "allOf": [
2788
+ {
2789
+ "$ref": "#/$defs/OTel.Resource.CloudProvider"
2790
+ }
2791
+ ],
2792
+ "description": "Cloud provider"
2793
+ },
2794
+ "cloud.region": {
2795
+ "type": "string",
2796
+ "description": "Cloud region"
2797
+ },
2798
+ "cloud.availability_zone": {
2799
+ "type": "string",
2800
+ "description": "Cloud availability zone"
2801
+ },
2802
+ "cloud.account.id": {
2803
+ "type": "string",
2804
+ "description": "Cloud account ID"
2805
+ },
2806
+ "cloud.platform": {
2807
+ "type": "string",
2808
+ "description": "Cloud platform (e.g., aws_ecs, gcp_cloud_run)"
2809
+ },
2810
+ "host.name": {
2811
+ "type": "string",
2812
+ "description": "Host name"
2813
+ },
2814
+ "host.id": {
2815
+ "type": "string",
2816
+ "description": "Host ID"
2817
+ },
2818
+ "host.type": {
2819
+ "type": "string",
2820
+ "description": "Host type (e.g., n1-standard-1)"
2821
+ },
2822
+ "host.arch": {
2823
+ "allOf": [
2824
+ {
2825
+ "$ref": "#/$defs/OTel.Resource.HostArch"
2826
+ }
2827
+ ],
2828
+ "description": "Host architecture (e.g., amd64, arm64)"
2829
+ },
2830
+ "os.type": {
2831
+ "allOf": [
2832
+ {
2833
+ "$ref": "#/$defs/OTel.Resource.OsType"
2834
+ }
2835
+ ],
2836
+ "description": "Operating system type"
2837
+ },
2838
+ "os.description": {
2839
+ "type": "string",
2840
+ "description": "Operating system description"
2841
+ },
2842
+ "os.version": {
2843
+ "type": "string",
2844
+ "description": "Operating system version"
2845
+ },
2846
+ "process.pid": {
2847
+ "type": "integer",
2848
+ "format": "int64",
2849
+ "description": "Process ID"
2850
+ },
2851
+ "process.executable.name": {
2852
+ "type": "string",
2853
+ "description": "Process executable name"
2854
+ },
2855
+ "process.command_line": {
2856
+ "type": "string",
2857
+ "description": "Process command line"
2858
+ },
2859
+ "process.runtime.name": {
2860
+ "type": "string",
2861
+ "description": "Process runtime name"
2862
+ },
2863
+ "process.runtime.version": {
2864
+ "type": "string",
2865
+ "description": "Process runtime version"
2866
+ },
2867
+ "container.id": {
2868
+ "type": "string",
2869
+ "description": "Container ID"
2870
+ },
2871
+ "container.name": {
2872
+ "type": "string",
2873
+ "description": "Container name"
2874
+ },
2875
+ "container.image.name": {
2876
+ "type": "string",
2877
+ "description": "Container image name"
2878
+ },
2879
+ "container.image.tag": {
2880
+ "type": "string",
2881
+ "description": "Container image tag"
2882
+ },
2883
+ "k8s.cluster.name": {
2884
+ "type": "string",
2885
+ "description": "Kubernetes cluster name"
2886
+ },
2887
+ "k8s.namespace.name": {
2888
+ "type": "string",
2889
+ "description": "Kubernetes namespace"
2890
+ },
2891
+ "k8s.pod.name": {
2892
+ "type": "string",
2893
+ "description": "Kubernetes pod name"
2894
+ },
2895
+ "k8s.pod.uid": {
2896
+ "type": "string",
2897
+ "description": "Kubernetes pod UID"
2898
+ },
2899
+ "k8s.deployment.name": {
2900
+ "type": "string",
2901
+ "description": "Kubernetes deployment name"
2902
+ },
2903
+ "attributes": {
2904
+ "type": "array",
2905
+ "items": {
2906
+ "$ref": "#/$defs/Common.Attribute"
2907
+ },
2908
+ "description": "Additional resource attributes"
2909
+ },
2910
+ "dropped_attributes_count": {
2911
+ "allOf": [
2912
+ {
2913
+ "$ref": "#/$defs/Common.Count"
2914
+ }
2915
+ ],
2916
+ "description": "Dropped attributes count"
2917
+ }
2918
+ },
2919
+ "description": "Resource describes the entity producing telemetry"
2920
+ },
2921
+ "OTel.Traces.Span": {
2922
+ "type": "object",
2923
+ "required": [
2924
+ "span_id",
2925
+ "trace_id",
2926
+ "name",
2927
+ "kind",
2928
+ "start_time_unix_nano",
2929
+ "end_time_unix_nano",
2930
+ "status",
2931
+ "resource"
2932
+ ],
2933
+ "properties": {
2934
+ "span_id": {
2935
+ "allOf": [
2936
+ {
2937
+ "$ref": "#/$defs/Common.SpanId"
2938
+ }
2939
+ ],
2940
+ "description": "Unique span identifier (16 hex chars)"
2941
+ },
2942
+ "trace_id": {
2943
+ "allOf": [
2944
+ {
2945
+ "$ref": "#/$defs/Common.TraceId"
2946
+ }
2947
+ ],
2948
+ "description": "Trace identifier (32 hex chars)"
2949
+ },
2950
+ "parent_span_id": {
2951
+ "allOf": [
2952
+ {
2953
+ "$ref": "#/$defs/Common.SpanId"
2954
+ }
2955
+ ],
2956
+ "description": "Parent span identifier (null for root spans)"
2957
+ },
2958
+ "trace_state": {
2959
+ "allOf": [
2960
+ {
2961
+ "$ref": "#/$defs/Common.TraceState"
2962
+ }
2963
+ ],
2964
+ "description": "W3C trace state"
2965
+ },
2966
+ "name": {
2967
+ "type": "string",
2968
+ "minLength": 1,
2969
+ "description": "Human-readable span name"
2970
+ },
2971
+ "kind": {
2972
+ "allOf": [
2973
+ {
2974
+ "$ref": "#/$defs/OTel.Enums.SpanKind"
2975
+ }
2976
+ ],
2977
+ "description": "Span kind"
2978
+ },
2979
+ "start_time_unix_nano": {
2980
+ "allOf": [
2981
+ {
2982
+ "$ref": "#/$defs/Common.UnixNanos"
2983
+ }
2984
+ ],
2985
+ "description": "Start timestamp in nanoseconds since epoch"
2986
+ },
2987
+ "end_time_unix_nano": {
2988
+ "allOf": [
2989
+ {
2990
+ "$ref": "#/$defs/Common.UnixNanos"
2991
+ }
2992
+ ],
2993
+ "description": "End timestamp in nanoseconds since epoch"
2994
+ },
2995
+ "attributes": {
2996
+ "type": "array",
2997
+ "items": {
2998
+ "$ref": "#/$defs/Common.Attribute"
2999
+ },
3000
+ "description": "Span attributes"
3001
+ },
3002
+ "dropped_attributes_count": {
3003
+ "allOf": [
3004
+ {
3005
+ "$ref": "#/$defs/Common.Count"
3006
+ }
3007
+ ],
3008
+ "description": "Dropped attributes count"
3009
+ },
3010
+ "events": {
3011
+ "type": "array",
3012
+ "items": {
3013
+ "$ref": "#/$defs/OTel.Traces.SpanEvent"
3014
+ },
3015
+ "description": "Span events (logs attached to span)"
3016
+ },
3017
+ "dropped_events_count": {
3018
+ "allOf": [
3019
+ {
3020
+ "$ref": "#/$defs/Common.Count"
3021
+ }
3022
+ ],
3023
+ "description": "Dropped events count"
3024
+ },
3025
+ "links": {
3026
+ "type": "array",
3027
+ "items": {
3028
+ "$ref": "#/$defs/OTel.Traces.SpanLink"
3029
+ },
3030
+ "description": "Links to other spans"
3031
+ },
3032
+ "dropped_links_count": {
3033
+ "allOf": [
3034
+ {
3035
+ "$ref": "#/$defs/Common.Count"
3036
+ }
3037
+ ],
3038
+ "description": "Dropped links count"
3039
+ },
3040
+ "status": {
3041
+ "allOf": [
3042
+ {
3043
+ "$ref": "#/$defs/OTel.Traces.SpanStatus"
3044
+ }
3045
+ ],
3046
+ "description": "Span status"
3047
+ },
3048
+ "flags": {
3049
+ "type": "integer",
3050
+ "format": "int32",
3051
+ "description": "Span flags"
3052
+ },
3053
+ "resource": {
3054
+ "allOf": [
3055
+ {
3056
+ "$ref": "#/$defs/OTel.Resource.Resource"
3057
+ }
3058
+ ],
3059
+ "description": "Resource describing the entity that produced this span"
3060
+ },
3061
+ "instrumentation_scope": {
3062
+ "allOf": [
3063
+ {
3064
+ "$ref": "#/$defs/Common.InstrumentationScope"
3065
+ }
3066
+ ],
3067
+ "description": "Instrumentation scope"
3068
+ }
3069
+ },
3070
+ "description": "OpenTelemetry Span representing a single operation in a distributed trace"
3071
+ },
3072
+ "OTel.Traces.SpanEvent": {
3073
+ "type": "object",
3074
+ "required": [
3075
+ "name",
3076
+ "time_unix_nano"
3077
+ ],
3078
+ "properties": {
3079
+ "name": {
3080
+ "type": "string",
3081
+ "minLength": 1,
3082
+ "description": "Event name"
3083
+ },
3084
+ "time_unix_nano": {
3085
+ "allOf": [
3086
+ {
3087
+ "$ref": "#/$defs/Common.UnixNanos"
3088
+ }
3089
+ ],
3090
+ "description": "Event timestamp in nanoseconds since epoch"
3091
+ },
3092
+ "attributes": {
3093
+ "type": "array",
3094
+ "items": {
3095
+ "$ref": "#/$defs/Common.Attribute"
3096
+ },
3097
+ "description": "Event attributes"
3098
+ },
3099
+ "dropped_attributes_count": {
3100
+ "allOf": [
3101
+ {
3102
+ "$ref": "#/$defs/Common.Count"
3103
+ }
3104
+ ],
3105
+ "description": "Dropped attributes count"
3106
+ }
3107
+ },
3108
+ "description": "Event occurring during a span's lifetime"
3109
+ },
3110
+ "OTel.Traces.SpanLink": {
3111
+ "type": "object",
3112
+ "required": [
3113
+ "trace_id",
3114
+ "span_id"
3115
+ ],
3116
+ "properties": {
3117
+ "trace_id": {
3118
+ "allOf": [
3119
+ {
3120
+ "$ref": "#/$defs/Common.TraceId"
3121
+ }
3122
+ ],
3123
+ "description": "Linked trace ID"
3124
+ },
3125
+ "span_id": {
3126
+ "allOf": [
3127
+ {
3128
+ "$ref": "#/$defs/Common.SpanId"
3129
+ }
3130
+ ],
3131
+ "description": "Linked span ID"
3132
+ },
3133
+ "trace_state": {
3134
+ "allOf": [
3135
+ {
3136
+ "$ref": "#/$defs/Common.TraceState"
3137
+ }
3138
+ ],
3139
+ "description": "Trace state of the linked span"
3140
+ },
3141
+ "attributes": {
3142
+ "type": "array",
3143
+ "items": {
3144
+ "$ref": "#/$defs/Common.Attribute"
3145
+ },
3146
+ "description": "Link attributes"
3147
+ },
3148
+ "dropped_attributes_count": {
3149
+ "allOf": [
3150
+ {
3151
+ "$ref": "#/$defs/Common.Count"
3152
+ }
3153
+ ],
3154
+ "description": "Dropped attributes count"
3155
+ },
3156
+ "flags": {
3157
+ "type": "integer",
3158
+ "format": "int32",
3159
+ "description": "Link flags"
3160
+ }
3161
+ },
3162
+ "description": "Link to another span (e.g., batch processing)"
3163
+ },
3164
+ "OTel.Traces.SpanQueryFilters": {
3165
+ "type": "object",
3166
+ "properties": {
3167
+ "trace_id": {
3168
+ "allOf": [
3169
+ {
3170
+ "$ref": "#/$defs/Common.TraceId"
3171
+ }
3172
+ ],
3173
+ "description": "Filter by trace ID"
3174
+ },
3175
+ "parent_span_id": {
3176
+ "allOf": [
3177
+ {
3178
+ "$ref": "#/$defs/Common.SpanId"
3179
+ }
3180
+ ],
3181
+ "description": "Filter by parent span ID"
3182
+ },
3183
+ "name": {
3184
+ "type": "string",
3185
+ "description": "Filter by span name (supports wildcards)"
3186
+ },
3187
+ "kind": {
3188
+ "allOf": [
3189
+ {
3190
+ "$ref": "#/$defs/OTel.Enums.SpanKind"
3191
+ }
3192
+ ],
3193
+ "description": "Filter by span kind"
3194
+ },
3195
+ "service_name": {
3196
+ "type": "string",
3197
+ "description": "Filter by service name"
3198
+ },
3199
+ "status_code": {
3200
+ "allOf": [
3201
+ {
3202
+ "$ref": "#/$defs/OTel.Enums.SpanStatusCode"
3203
+ }
3204
+ ],
3205
+ "description": "Filter by status code"
3206
+ },
3207
+ "min_duration_ns": {
3208
+ "allOf": [
3209
+ {
3210
+ "$ref": "#/$defs/Common.DurationNs"
3211
+ }
3212
+ ],
3213
+ "description": "Minimum duration in nanoseconds"
3214
+ },
3215
+ "max_duration_ns": {
3216
+ "allOf": [
3217
+ {
3218
+ "$ref": "#/$defs/Common.DurationNs"
3219
+ }
3220
+ ],
3221
+ "description": "Maximum duration in nanoseconds"
3222
+ },
3223
+ "attribute": {
3224
+ "type": "string",
3225
+ "description": "Filter by attribute key-value pair"
3226
+ }
3227
+ },
3228
+ "description": "Filter parameters for querying spans"
3229
+ },
3230
+ "OTel.Traces.SpanStats": {
3231
+ "type": "object",
3232
+ "required": [
3233
+ "total_count",
3234
+ "error_count",
3235
+ "error_rate",
3236
+ "avg_duration_ns",
3237
+ "p50_duration_ns",
3238
+ "p90_duration_ns",
3239
+ "p99_duration_ns",
3240
+ "min_duration_ns",
3241
+ "max_duration_ns",
3242
+ "throughput_per_second"
3243
+ ],
3244
+ "properties": {
3245
+ "total_count": {
3246
+ "allOf": [
3247
+ {
3248
+ "$ref": "#/$defs/Common.Count"
3249
+ }
3250
+ ],
3251
+ "description": "Total span count"
3252
+ },
3253
+ "error_count": {
3254
+ "allOf": [
3255
+ {
3256
+ "$ref": "#/$defs/Common.Count"
3257
+ }
3258
+ ],
3259
+ "description": "Error count"
3260
+ },
3261
+ "error_rate": {
3262
+ "allOf": [
3263
+ {
3264
+ "$ref": "#/$defs/Common.Ratio"
3265
+ }
3266
+ ],
3267
+ "description": "Error rate (0.0 - 1.0)"
3268
+ },
3269
+ "avg_duration_ns": {
3270
+ "type": "number",
3271
+ "format": "double",
3272
+ "description": "Average duration in nanoseconds"
3273
+ },
3274
+ "p50_duration_ns": {
3275
+ "allOf": [
3276
+ {
3277
+ "$ref": "#/$defs/Common.DurationNs"
3278
+ }
3279
+ ],
3280
+ "description": "P50 duration in nanoseconds"
3281
+ },
3282
+ "p90_duration_ns": {
3283
+ "allOf": [
3284
+ {
3285
+ "$ref": "#/$defs/Common.DurationNs"
3286
+ }
3287
+ ],
3288
+ "description": "P90 duration in nanoseconds"
3289
+ },
3290
+ "p99_duration_ns": {
3291
+ "allOf": [
3292
+ {
3293
+ "$ref": "#/$defs/Common.DurationNs"
3294
+ }
3295
+ ],
3296
+ "description": "P99 duration in nanoseconds"
3297
+ },
3298
+ "min_duration_ns": {
3299
+ "allOf": [
3300
+ {
3301
+ "$ref": "#/$defs/Common.DurationNs"
3302
+ }
3303
+ ],
3304
+ "description": "Minimum duration in nanoseconds"
3305
+ },
3306
+ "max_duration_ns": {
3307
+ "allOf": [
3308
+ {
3309
+ "$ref": "#/$defs/Common.DurationNs"
3310
+ }
3311
+ ],
3312
+ "description": "Maximum duration in nanoseconds"
3313
+ },
3314
+ "throughput_per_second": {
3315
+ "type": "number",
3316
+ "format": "double",
3317
+ "description": "Throughput (spans per second)"
3318
+ },
3319
+ "by_service": {
3320
+ "type": "array",
3321
+ "items": {
3322
+ "$ref": "#/$defs/OTel.Traces.SpanStatsByDimension"
3323
+ },
3324
+ "description": "Stats grouped by service"
3325
+ },
3326
+ "by_operation": {
3327
+ "type": "array",
3328
+ "items": {
3329
+ "$ref": "#/$defs/OTel.Traces.SpanStatsByDimension"
3330
+ },
3331
+ "description": "Stats grouped by operation name"
3332
+ }
3333
+ },
3334
+ "description": "Aggregated span statistics"
3335
+ },
3336
+ "OTel.Traces.SpanStatsByDimension": {
3337
+ "type": "object",
3338
+ "required": [
3339
+ "dimension",
3340
+ "count",
3341
+ "avg_duration_ns",
3342
+ "error_rate"
3343
+ ],
3344
+ "properties": {
3345
+ "dimension": {
3346
+ "type": "string",
3347
+ "description": "Dimension value (e.g., service name)"
3348
+ },
3349
+ "count": {
3350
+ "allOf": [
3351
+ {
3352
+ "$ref": "#/$defs/Common.Count"
3353
+ }
3354
+ ],
3355
+ "description": "Span count for this dimension"
3356
+ },
3357
+ "avg_duration_ns": {
3358
+ "type": "number",
3359
+ "format": "double",
3360
+ "description": "Average duration in nanoseconds"
3361
+ },
3362
+ "error_rate": {
3363
+ "allOf": [
3364
+ {
3365
+ "$ref": "#/$defs/Common.Ratio"
3366
+ }
3367
+ ],
3368
+ "description": "Error rate for this dimension"
3369
+ }
3370
+ },
3371
+ "description": "Span statistics for a specific dimension value"
3372
+ },
3373
+ "OTel.Traces.SpanStatus": {
3374
+ "type": "object",
3375
+ "required": [
3376
+ "code"
3377
+ ],
3378
+ "properties": {
3379
+ "code": {
3380
+ "allOf": [
3381
+ {
3382
+ "$ref": "#/$defs/OTel.Enums.SpanStatusCode"
3383
+ }
3384
+ ],
3385
+ "description": "Status code"
3386
+ },
3387
+ "message": {
3388
+ "type": "string",
3389
+ "description": "Status message (only for ERROR status)"
3390
+ }
3391
+ },
3392
+ "description": "Span status"
3393
+ },
3394
+ "OTel.Traces.Trace": {
3395
+ "type": "object",
3396
+ "required": [
3397
+ "spans"
3398
+ ],
3399
+ "properties": {
3400
+ "spans": {
3401
+ "type": "array",
3402
+ "items": {
3403
+ "$ref": "#/$defs/OTel.Traces.Span"
3404
+ },
3405
+ "description": "All spans in this trace"
3406
+ }
3407
+ },
3408
+ "allOf": [
3409
+ {
3410
+ "$ref": "#/$defs/OTel.Traces.TraceSummary"
3411
+ }
3412
+ ],
3413
+ "description": "Complete trace containing all related spans"
3414
+ },
3415
+ "OTel.Traces.TraceSummary": {
3416
+ "type": "object",
3417
+ "required": [
3418
+ "trace_id",
3419
+ "span_count",
3420
+ "duration_ns",
3421
+ "start_time",
3422
+ "end_time",
3423
+ "services",
3424
+ "has_error"
3425
+ ],
3426
+ "properties": {
3427
+ "trace_id": {
3428
+ "allOf": [
3429
+ {
3430
+ "$ref": "#/$defs/Common.TraceId"
3431
+ }
3432
+ ],
3433
+ "description": "Trace identifier"
3434
+ },
3435
+ "root_span": {
3436
+ "allOf": [
3437
+ {
3438
+ "$ref": "#/$defs/OTel.Traces.Span"
3439
+ }
3440
+ ],
3441
+ "description": "Root span of the trace"
3442
+ },
3443
+ "span_count": {
3444
+ "type": "integer",
3445
+ "format": "int32",
3446
+ "description": "Total span count"
3447
+ },
3448
+ "duration_ns": {
3449
+ "allOf": [
3450
+ {
3451
+ "$ref": "#/$defs/Common.DurationNs"
3452
+ }
3453
+ ],
3454
+ "description": "Trace duration in nanoseconds"
3455
+ },
3456
+ "start_time": {
3457
+ "type": "string",
3458
+ "format": "date-time",
3459
+ "description": "Trace start time"
3460
+ },
3461
+ "end_time": {
3462
+ "type": "string",
3463
+ "format": "date-time",
3464
+ "description": "Trace end time"
3465
+ },
3466
+ "services": {
3467
+ "type": "array",
3468
+ "items": {
3469
+ "type": "string"
3470
+ },
3471
+ "description": "Services involved in this trace"
3472
+ },
3473
+ "has_error": {
3474
+ "type": "boolean",
3475
+ "description": "Whether trace contains errors"
3476
+ }
3477
+ },
3478
+ "description": "Trace summary without the full span collection"
3479
+ },
3480
+ "Runner.Mcp.RunnerMcpContent": {
3481
+ "type": "object",
3482
+ "required": [
3483
+ "type"
3484
+ ],
3485
+ "properties": {
3486
+ "type": {
3487
+ "type": "string"
3488
+ },
3489
+ "text": {
3490
+ "type": "string"
3491
+ },
3492
+ "data": {
3493
+ "type": "string"
3494
+ },
3495
+ "mimeType": {
3496
+ "type": "string"
3497
+ },
3498
+ "uri": {
3499
+ "type": "string",
3500
+ "format": "uri"
3501
+ },
3502
+ "name": {
3503
+ "type": "string"
3504
+ },
3505
+ "title": {
3506
+ "type": "string"
3507
+ },
3508
+ "description": {
3509
+ "type": "string"
3510
+ },
3511
+ "size": {
3512
+ "type": "integer",
3513
+ "format": "int64",
3514
+ "minimum": 0
3515
+ },
3516
+ "icons": {
3517
+ "type": "array",
3518
+ "items": {
3519
+ "$ref": "#/$defs/Runner.Mcp.RunnerMcpIcon"
3520
+ }
3521
+ },
3522
+ "resource": {
3523
+ "$ref": "#/$defs/Runner.Mcp.RunnerMcpResourceContent"
3524
+ },
3525
+ "id": {
3526
+ "type": "string"
3527
+ },
3528
+ "input": {},
3529
+ "toolUseId": {
3530
+ "type": "string"
3531
+ },
3532
+ "content": {
3533
+ "type": "array",
3534
+ "items": {
3535
+ "$ref": "#/$defs/Runner.Mcp.RunnerMcpContent"
3536
+ }
3537
+ },
3538
+ "structuredContent": {
3539
+ "type": "object",
3540
+ "unevaluatedProperties": {}
3541
+ },
3542
+ "isError": {
3543
+ "type": "boolean"
3544
+ },
3545
+ "annotations": {
3546
+ "type": "object",
3547
+ "unevaluatedProperties": {}
3548
+ },
3549
+ "_meta": {
3550
+ "type": "object",
3551
+ "unevaluatedProperties": {}
3552
+ }
3553
+ },
3554
+ "description": "One MCP content item projected onto a stable qyl JSON shape. Variant-specific required fields follow its type discriminator."
3555
+ },
3556
+ "Runner.Mcp.RunnerMcpIcon": {
3557
+ "type": "object",
3558
+ "required": [
3559
+ "src"
3560
+ ],
3561
+ "properties": {
3562
+ "src": {
3563
+ "type": "string"
3564
+ },
3565
+ "mimeType": {
3566
+ "type": "string"
3567
+ },
3568
+ "sizes": {
3569
+ "type": "array",
3570
+ "items": {
3571
+ "type": "string"
3572
+ }
3573
+ },
3574
+ "theme": {
3575
+ "type": "string"
3576
+ }
3577
+ },
3578
+ "description": "Icon metadata carried by MCP tools and resource links."
3579
+ },
3580
+ "Runner.Mcp.RunnerMcpResourceContent": {
3581
+ "type": "object",
3582
+ "required": [
3583
+ "uri"
3584
+ ],
3585
+ "properties": {
3586
+ "uri": {
3587
+ "type": "string",
3588
+ "format": "uri"
3589
+ },
3590
+ "mimeType": {
3591
+ "type": "string"
3592
+ },
3593
+ "text": {
3594
+ "type": "string"
3595
+ },
3596
+ "blob": {
3597
+ "type": "string"
3598
+ },
3599
+ "_meta": {
3600
+ "type": "object",
3601
+ "unevaluatedProperties": {}
3602
+ }
3603
+ },
3604
+ "description": "Text or base64 resource content returned by an MCP server. Exactly one of text or blob is present."
3605
+ },
3606
+ "Runner.Mcp.RunnerMcpResourceReadRequest": {
3607
+ "type": "object",
3608
+ "required": [
3609
+ "uri"
3610
+ ],
3611
+ "properties": {
3612
+ "uri": {
3613
+ "type": "string",
3614
+ "format": "uri"
3615
+ },
3616
+ "_meta": {
3617
+ "type": "object",
3618
+ "unevaluatedProperties": {}
3619
+ }
3620
+ },
3621
+ "description": "Resource URI accepted by the runner's MCP projection."
3622
+ },
3623
+ "Runner.Mcp.RunnerMcpResourceReadResponse": {
3624
+ "type": "object",
3625
+ "required": [
3626
+ "contents"
3627
+ ],
3628
+ "properties": {
3629
+ "contents": {
3630
+ "type": "array",
3631
+ "items": {
3632
+ "$ref": "#/$defs/Runner.Mcp.RunnerMcpResourceContent"
3633
+ }
3634
+ },
3635
+ "_meta": {
3636
+ "type": "object",
3637
+ "unevaluatedProperties": {}
3638
+ }
3639
+ },
3640
+ "description": "Stable qyl projection of an MCP resources/read result."
3641
+ },
3642
+ "Runner.Mcp.RunnerMcpTask": {
3643
+ "type": "object",
3644
+ "required": [
3645
+ "taskId",
3646
+ "status",
3647
+ "createdAt",
3648
+ "lastUpdatedAt"
3649
+ ],
3650
+ "properties": {
3651
+ "taskId": {
3652
+ "type": "string"
3653
+ },
3654
+ "status": {
3655
+ "$ref": "#/$defs/Runner.Mcp.RunnerMcpTaskStatus"
3656
+ },
3657
+ "statusMessage": {
3658
+ "type": "string"
3659
+ },
3660
+ "createdAt": {
3661
+ "type": "string",
3662
+ "format": "date-time"
3663
+ },
3664
+ "lastUpdatedAt": {
3665
+ "type": "string",
3666
+ "format": "date-time"
3667
+ },
3668
+ "ttl": {
3669
+ "type": "number",
3670
+ "format": "double"
3671
+ },
3672
+ "pollInterval": {
3673
+ "type": "number",
3674
+ "format": "double"
3675
+ }
3676
+ },
3677
+ "description": "Task returned by an MCP task-augmented tool call. ttl and pollInterval are encoded as milliseconds."
3678
+ },
3679
+ "Runner.Mcp.RunnerMcpTaskMetadata": {
3680
+ "type": "object",
3681
+ "properties": {
3682
+ "ttl": {
3683
+ "type": "number",
3684
+ "format": "double"
3685
+ }
3686
+ },
3687
+ "description": "Task-augmentation metadata accepted on an MCP tool call. ttl is encoded as milliseconds."
3688
+ },
3689
+ "Runner.Mcp.RunnerMcpTaskStatus": {
3690
+ "type": "string",
3691
+ "enum": [
3692
+ "working",
3693
+ "input_required",
3694
+ "completed",
3695
+ "failed",
3696
+ "cancelled"
3697
+ ],
3698
+ "description": "Lifecycle state of an MCP task returned by a task-augmented tool call."
3699
+ },
3700
+ "Runner.Mcp.RunnerMcpTool": {
3701
+ "type": "object",
3702
+ "required": [
3703
+ "name",
3704
+ "inputSchema"
3705
+ ],
3706
+ "properties": {
3707
+ "name": {
3708
+ "type": "string"
3709
+ },
3710
+ "title": {
3711
+ "type": "string"
3712
+ },
3713
+ "description": {
3714
+ "type": "string"
3715
+ },
3716
+ "inputSchema": {
3717
+ "type": "object",
3718
+ "unevaluatedProperties": {}
3719
+ },
3720
+ "outputSchema": {
3721
+ "type": "object",
3722
+ "unevaluatedProperties": {}
3723
+ },
3724
+ "annotations": {
3725
+ "type": "object",
3726
+ "unevaluatedProperties": {}
3727
+ },
3728
+ "execution": {
3729
+ "$ref": "#/$defs/Runner.Mcp.RunnerMcpToolExecution"
3730
+ },
3731
+ "icons": {
3732
+ "type": "array",
3733
+ "items": {
3734
+ "$ref": "#/$defs/Runner.Mcp.RunnerMcpIcon"
3735
+ }
3736
+ },
3737
+ "_meta": {
3738
+ "type": "object",
3739
+ "unevaluatedProperties": {}
3740
+ }
3741
+ },
3742
+ "description": "Stable qyl projection of an MCP tool advertised by a runner resource."
3743
+ },
3744
+ "Runner.Mcp.RunnerMcpToolCallRequest": {
3745
+ "type": "object",
3746
+ "required": [
3747
+ "name"
3748
+ ],
3749
+ "properties": {
3750
+ "name": {
3751
+ "type": "string"
3752
+ },
3753
+ "arguments": {
3754
+ "type": "object",
3755
+ "unevaluatedProperties": {}
3756
+ },
3757
+ "task": {
3758
+ "$ref": "#/$defs/Runner.Mcp.RunnerMcpTaskMetadata"
3759
+ },
3760
+ "_meta": {
3761
+ "type": "object",
3762
+ "unevaluatedProperties": {}
3763
+ }
3764
+ },
3765
+ "description": "Tool call accepted by the runner's MCP projection."
3766
+ },
3767
+ "Runner.Mcp.RunnerMcpToolCallResponse": {
3768
+ "type": "object",
3769
+ "required": [
3770
+ "content",
3771
+ "isError"
3772
+ ],
3773
+ "properties": {
3774
+ "content": {
3775
+ "type": "array",
3776
+ "items": {
3777
+ "$ref": "#/$defs/Runner.Mcp.RunnerMcpContent"
3778
+ }
3779
+ },
3780
+ "structuredContent": {
3781
+ "type": "object",
3782
+ "unevaluatedProperties": {}
3783
+ },
3784
+ "isError": {
3785
+ "type": "boolean"
3786
+ },
3787
+ "task": {
3788
+ "$ref": "#/$defs/Runner.Mcp.RunnerMcpTask"
3789
+ },
3790
+ "_meta": {
3791
+ "type": "object",
3792
+ "unevaluatedProperties": {}
3793
+ }
3794
+ },
3795
+ "description": "Stable qyl projection of an MCP tool-call result."
3796
+ },
3797
+ "Runner.Mcp.RunnerMcpToolExecution": {
3798
+ "type": "object",
3799
+ "properties": {
3800
+ "taskSupport": {
3801
+ "$ref": "#/$defs/Runner.Mcp.RunnerMcpToolTaskSupport"
3802
+ }
3803
+ },
3804
+ "description": "Execution metadata advertised for an MCP tool."
3805
+ },
3806
+ "Runner.Mcp.RunnerMcpToolTaskSupport": {
3807
+ "type": "string",
3808
+ "enum": [
3809
+ "forbidden",
3810
+ "optional",
3811
+ "required"
3812
+ ],
3813
+ "description": "Task-augmentation support advertised for an MCP tool."
3814
+ },
3815
+ "Runner.Mcp.RunnerMcpToolsResponse": {
3816
+ "type": "object",
3817
+ "required": [
3818
+ "tools"
3819
+ ],
3820
+ "properties": {
3821
+ "tools": {
3822
+ "type": "array",
3823
+ "items": {
3824
+ "$ref": "#/$defs/Runner.Mcp.RunnerMcpTool"
3825
+ }
3826
+ },
3827
+ "nextCursor": {
3828
+ "type": "string"
3829
+ },
3830
+ "_meta": {
3831
+ "type": "object",
3832
+ "unevaluatedProperties": {}
3833
+ }
3834
+ },
3835
+ "description": "MCP tools currently advertised by a runner resource."
3836
+ },
3837
+ "Runner.RunnerLogEvents": {
3838
+ "$ref": "#/$defs/Runner.RunnerLogLine"
3839
+ },
3840
+ "Runner.RunnerLogLine": {
3841
+ "type": "object",
3842
+ "required": [
3843
+ "resource",
3844
+ "stream",
3845
+ "line"
3846
+ ],
3847
+ "properties": {
3848
+ "resource": {
3849
+ "type": "string"
3850
+ },
3851
+ "stream": {
3852
+ "$ref": "#/$defs/Runner.RunnerLogStream"
3853
+ },
3854
+ "line": {
3855
+ "type": "string"
3856
+ }
3857
+ },
3858
+ "description": "One bounded child-process log line exposed by the runner."
3859
+ },
3860
+ "Runner.RunnerLogStream": {
3861
+ "type": "string",
3862
+ "enum": [
3863
+ "out",
3864
+ "err"
3865
+ ],
3866
+ "description": "Origin stream for one captured child-process log line."
3867
+ },
3868
+ "Runner.RunnerMcpServerInfo": {
3869
+ "type": "object",
3870
+ "required": [
3871
+ "name",
3872
+ "version"
3873
+ ],
3874
+ "properties": {
3875
+ "name": {
3876
+ "type": "string"
3877
+ },
3878
+ "version": {
3879
+ "type": "string"
3880
+ }
3881
+ },
3882
+ "description": "Identity reported by a connected MCP server during initialization."
3883
+ },
3884
+ "Runner.RunnerResourceEvents": {
3885
+ "$ref": "#/$defs/Runner.RunnerResourceState"
3886
+ },
3887
+ "Runner.RunnerResourceKind": {
3888
+ "type": "string",
3889
+ "enum": [
3890
+ "collector",
3891
+ "project",
3892
+ "command",
3893
+ "stdio",
3894
+ "http",
3895
+ "inproc"
3896
+ ],
3897
+ "description": "Kind of process or connection supervised by the local qyl runner."
3898
+ },
3899
+ "Runner.RunnerResourceLifecycle": {
3900
+ "type": "string",
3901
+ "enum": [
3902
+ "pending",
3903
+ "starting",
3904
+ "ready",
3905
+ "stopping",
3906
+ "stopped",
3907
+ "failed"
3908
+ ],
3909
+ "description": "Lifecycle state of a resource supervised by the local qyl runner."
3910
+ },
3911
+ "Runner.RunnerResourceState": {
3912
+ "type": "object",
3913
+ "required": [
3914
+ "name",
3915
+ "lifecycle",
3916
+ "timestamp"
3917
+ ],
3918
+ "properties": {
3919
+ "name": {
3920
+ "type": "string"
3921
+ },
3922
+ "lifecycle": {
3923
+ "$ref": "#/$defs/Runner.RunnerResourceLifecycle"
3924
+ },
3925
+ "timestamp": {
3926
+ "type": "string",
3927
+ "format": "date-time"
3928
+ },
3929
+ "kind": {
3930
+ "$ref": "#/$defs/Runner.RunnerResourceKind"
3931
+ },
3932
+ "allocatedPort": {
3933
+ "type": "integer",
3934
+ "format": "int32",
3935
+ "minimum": 1,
3936
+ "maximum": 65535
3937
+ },
3938
+ "endpoint": {
3939
+ "type": "string",
3940
+ "format": "uri"
3941
+ },
3942
+ "lastError": {
3943
+ "type": "string"
3944
+ },
3945
+ "serverInfo": {
3946
+ "$ref": "#/$defs/Runner.RunnerMcpServerInfo"
3947
+ },
3948
+ "toolCount": {
3949
+ "type": "integer",
3950
+ "format": "int32",
3951
+ "minimum": 0
3952
+ },
3953
+ "restarts": {
3954
+ "type": "integer",
3955
+ "format": "int32",
3956
+ "minimum": 0
3957
+ }
3958
+ },
3959
+ "description": "Current client-visible state of one runner resource."
3960
+ },
3961
+ "Streaming.HeartbeatEvent": {
3962
+ "type": "object",
3963
+ "required": [
3964
+ "type",
3965
+ "timestamp"
3966
+ ],
3967
+ "properties": {
3968
+ "type": {
3969
+ "type": "string",
3970
+ "enum": [
3971
+ "heartbeat"
3972
+ ]
3973
+ },
3974
+ "timestamp": {
3975
+ "type": "string",
3976
+ "format": "date-time"
3977
+ }
3978
+ },
3979
+ "description": "Keep-alive event emitted while no new log is available."
3980
+ },
3981
+ "Streaming.LogEvents": {
3982
+ "anyOf": [
3983
+ {
3984
+ "$ref": "#/$defs/Streaming.LogStreamEvent"
3985
+ },
3986
+ {
3987
+ "$ref": "#/$defs/Streaming.HeartbeatEvent"
3988
+ }
3989
+ ]
3990
+ },
3991
+ "Streaming.LogStreamEvent": {
3992
+ "type": "object",
3993
+ "required": [
3994
+ "type",
3995
+ "data",
3996
+ "timestamp"
3997
+ ],
3998
+ "properties": {
3999
+ "type": {
4000
+ "type": "string",
4001
+ "enum": [
4002
+ "log"
4003
+ ]
4004
+ },
4005
+ "data": {
4006
+ "$ref": "#/$defs/OTel.Logs.LogRecord"
4007
+ },
4008
+ "timestamp": {
4009
+ "type": "string",
4010
+ "format": "date-time"
4011
+ }
4012
+ },
4013
+ "description": "One log delivered by the collector's live stream."
4014
+ }
4015
+ }
4016
+ }