@ancplua/qyl-api-schema 0.5.13 → 0.5.15

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.
@@ -20,6 +20,9 @@
20
20
  {
21
21
  "name": "Logs"
22
22
  },
23
+ {
24
+ "name": "Metrics"
25
+ },
23
26
  {
24
27
  "name": "Profiles"
25
28
  },
@@ -76,6 +79,7 @@
76
79
  "name": "startTime",
77
80
  "in": "query",
78
81
  "required": false,
82
+ "description": "Optional audit-period start. Omitted dates select the previous 30 completed UTC days; an explicit range may not exceed 180 days.",
79
83
  "schema": {
80
84
  "type": "string",
81
85
  "format": "date-time"
@@ -86,6 +90,7 @@
86
90
  "name": "endTime",
87
91
  "in": "query",
88
92
  "required": false,
93
+ "description": "Optional audit-period end. Omitted dates select the previous 30 completed UTC days; an explicit range may not exceed 180 days.",
89
94
  "schema": {
90
95
  "type": "string",
91
96
  "format": "date-time"
@@ -224,6 +229,7 @@
224
229
  "name": "startTime",
225
230
  "in": "query",
226
231
  "required": false,
232
+ "description": "Optional audit-period start. Omitted dates select the previous 30 completed UTC days; an explicit range may not exceed 180 days.",
227
233
  "schema": {
228
234
  "type": "string",
229
235
  "format": "date-time"
@@ -234,6 +240,7 @@
234
240
  "name": "endTime",
235
241
  "in": "query",
236
242
  "required": false,
243
+ "description": "Optional audit-period end. Omitted dates select the previous 30 completed UTC days; an explicit range may not exceed 180 days.",
237
244
  "schema": {
238
245
  "type": "string",
239
246
  "format": "date-time"
@@ -485,6 +492,9 @@
485
492
  "description": "Whether there are more items available"
486
493
  }
487
494
  },
495
+ "unevaluatedProperties": {
496
+ "not": {}
497
+ },
488
498
  "description": "Cursor-based paginated response wrapper"
489
499
  }
490
500
  }
@@ -586,6 +596,220 @@
586
596
  ]
587
597
  }
588
598
  },
599
+ "/api/v1/metrics": {
600
+ "get": {
601
+ "operationId": "MetricsApi_list",
602
+ "description": "List persisted OTLP metric data points without re-aggregating producer values.",
603
+ "parameters": [
604
+ {
605
+ "$ref": "#/components/parameters/ProjectScopeHeader"
606
+ },
607
+ {
608
+ "name": "name",
609
+ "in": "query",
610
+ "required": false,
611
+ "schema": {
612
+ "type": "string"
613
+ },
614
+ "explode": false
615
+ },
616
+ {
617
+ "name": "type",
618
+ "in": "query",
619
+ "required": false,
620
+ "schema": {
621
+ "$ref": "#/components/schemas/OTel.Enums.MetricType"
622
+ },
623
+ "explode": false
624
+ },
625
+ {
626
+ "name": "serviceName",
627
+ "in": "query",
628
+ "required": false,
629
+ "schema": {
630
+ "type": "string"
631
+ },
632
+ "explode": false
633
+ },
634
+ {
635
+ "name": "startTime",
636
+ "in": "query",
637
+ "required": false,
638
+ "schema": {
639
+ "type": "string",
640
+ "format": "date-time"
641
+ },
642
+ "explode": false
643
+ },
644
+ {
645
+ "name": "endTime",
646
+ "in": "query",
647
+ "required": false,
648
+ "schema": {
649
+ "type": "string",
650
+ "format": "date-time"
651
+ },
652
+ "explode": false
653
+ },
654
+ {
655
+ "name": "limit",
656
+ "in": "query",
657
+ "required": false,
658
+ "schema": {
659
+ "type": "integer",
660
+ "format": "int32",
661
+ "minimum": 1,
662
+ "maximum": 1000,
663
+ "default": 100
664
+ },
665
+ "explode": false
666
+ },
667
+ {
668
+ "name": "cursor",
669
+ "in": "query",
670
+ "required": false,
671
+ "schema": {
672
+ "type": "string"
673
+ },
674
+ "explode": false
675
+ }
676
+ ],
677
+ "responses": {
678
+ "200": {
679
+ "description": "The request has succeeded.",
680
+ "content": {
681
+ "application/json": {
682
+ "schema": {
683
+ "type": "object",
684
+ "required": [
685
+ "items",
686
+ "has_more"
687
+ ],
688
+ "properties": {
689
+ "items": {
690
+ "type": "array",
691
+ "items": {
692
+ "$ref": "#/components/schemas/OTel.Metrics.MetricPoint"
693
+ },
694
+ "description": "List of items in this page"
695
+ },
696
+ "next_cursor": {
697
+ "type": "string",
698
+ "description": "Cursor for the next page (null if no more pages)"
699
+ },
700
+ "prev_cursor": {
701
+ "type": "string",
702
+ "description": "Cursor for the previous page (null if first page)"
703
+ },
704
+ "has_more": {
705
+ "type": "boolean",
706
+ "description": "Whether there are more items available"
707
+ }
708
+ },
709
+ "unevaluatedProperties": {
710
+ "not": {}
711
+ },
712
+ "description": "Cursor-based paginated response wrapper"
713
+ }
714
+ }
715
+ }
716
+ },
717
+ "400": {
718
+ "description": "Bad request - validation failed (400)",
719
+ "headers": {
720
+ "X-Trace-Id": {
721
+ "required": false,
722
+ "description": "Trace ID for correlation",
723
+ "schema": {
724
+ "type": "string"
725
+ }
726
+ },
727
+ "X-Request-Id": {
728
+ "required": false,
729
+ "description": "Request ID for support",
730
+ "schema": {
731
+ "type": "string"
732
+ }
733
+ }
734
+ },
735
+ "content": {
736
+ "application/problem+json": {
737
+ "schema": {
738
+ "$ref": "#/components/schemas/Common.Errors.ValidationError"
739
+ }
740
+ }
741
+ }
742
+ },
743
+ "401": {
744
+ "description": "Unauthorized - authentication required (401)",
745
+ "headers": {
746
+ "WWW-Authenticate": {
747
+ "required": false,
748
+ "description": "Authentication scheme expected",
749
+ "schema": {
750
+ "type": "string"
751
+ }
752
+ },
753
+ "X-Trace-Id": {
754
+ "required": false,
755
+ "description": "Trace ID for correlation",
756
+ "schema": {
757
+ "type": "string"
758
+ }
759
+ },
760
+ "X-Request-Id": {
761
+ "required": false,
762
+ "description": "Request ID for support",
763
+ "schema": {
764
+ "type": "string"
765
+ }
766
+ }
767
+ },
768
+ "content": {
769
+ "application/problem+json": {
770
+ "schema": {
771
+ "$ref": "#/components/schemas/Common.Errors.UnauthorizedError"
772
+ }
773
+ }
774
+ }
775
+ },
776
+ "500": {
777
+ "description": "Internal server error (500)",
778
+ "headers": {
779
+ "X-Trace-Id": {
780
+ "required": false,
781
+ "description": "Trace ID for correlation",
782
+ "schema": {
783
+ "type": "string"
784
+ }
785
+ },
786
+ "X-Request-Id": {
787
+ "required": false,
788
+ "description": "Request ID for support",
789
+ "schema": {
790
+ "type": "string"
791
+ }
792
+ }
793
+ },
794
+ "content": {
795
+ "application/problem+json": {
796
+ "schema": {
797
+ "$ref": "#/components/schemas/Common.Errors.InternalServerError"
798
+ }
799
+ }
800
+ }
801
+ }
802
+ },
803
+ "tags": [
804
+ "Metrics"
805
+ ],
806
+ "security": [
807
+ {
808
+ "ApiKeyAuth": []
809
+ }
810
+ ]
811
+ }
812
+ },
589
813
  "/api/v1/profiles": {
590
814
  "get": {
591
815
  "operationId": "ProfilesApi_list",
@@ -1245,6 +1469,9 @@
1245
1469
  "description": "Whether there are more items available"
1246
1470
  }
1247
1471
  },
1472
+ "unevaluatedProperties": {
1473
+ "not": {}
1474
+ },
1248
1475
  "description": "Cursor-based paginated response wrapper"
1249
1476
  }
1250
1477
  }
@@ -1652,6 +1879,9 @@
1652
1879
  "description": "Whether there are more items available"
1653
1880
  }
1654
1881
  },
1882
+ "unevaluatedProperties": {
1883
+ "not": {}
1884
+ },
1655
1885
  "description": "Cursor-based paginated response wrapper"
1656
1886
  }
1657
1887
  }
@@ -2041,6 +2271,9 @@
2041
2271
  "description": "Whether there are more items available"
2042
2272
  }
2043
2273
  },
2274
+ "unevaluatedProperties": {
2275
+ "not": {}
2276
+ },
2044
2277
  "description": "Cursor-based paginated response wrapper"
2045
2278
  }
2046
2279
  }
@@ -2313,6 +2546,9 @@
2313
2546
  "description": "Whether there are more items available"
2314
2547
  }
2315
2548
  },
2549
+ "unevaluatedProperties": {
2550
+ "not": {}
2551
+ },
2316
2552
  "description": "Cursor-based paginated response wrapper"
2317
2553
  }
2318
2554
  }
@@ -4020,6 +4256,9 @@
4020
4256
  "description": "Attribute value"
4021
4257
  }
4022
4258
  },
4259
+ "unevaluatedProperties": {
4260
+ "not": {}
4261
+ },
4023
4262
  "description": "Key-value attribute pair following OTel conventions"
4024
4263
  },
4025
4264
  "Common.AttributeBytesValue": {
@@ -4040,6 +4279,9 @@
4040
4279
  "contentEncoding": "base64"
4041
4280
  }
4042
4281
  },
4282
+ "unevaluatedProperties": {
4283
+ "not": {}
4284
+ },
4043
4285
  "description": "Base64 bytes projected by qyl without colliding with an ordinary string attribute."
4044
4286
  },
4045
4287
  "Common.AttributeKeyValueListValue": {
@@ -4094,6 +4336,9 @@
4094
4336
  "description": "List of key-value attributes"
4095
4337
  }
4096
4338
  },
4339
+ "unevaluatedProperties": {
4340
+ "not": {}
4341
+ },
4097
4342
  "description": "Collection of attributes"
4098
4343
  },
4099
4344
  "Common.ByteSize": {
@@ -4193,6 +4438,9 @@
4193
4438
  "description": "Stable dependency category; never contains raw exception text"
4194
4439
  }
4195
4440
  },
4441
+ "unevaluatedProperties": {
4442
+ "not": {}
4443
+ },
4196
4444
  "allOf": [
4197
4445
  {
4198
4446
  "$ref": "#/components/schemas/Common.Errors.ProblemDetails"
@@ -4217,6 +4465,9 @@
4217
4465
  "description": "The conflicting resource ID"
4218
4466
  }
4219
4467
  },
4468
+ "unevaluatedProperties": {
4469
+ "not": {}
4470
+ },
4220
4471
  "allOf": [
4221
4472
  {
4222
4473
  "$ref": "#/components/schemas/Common.Errors.ProblemDetails"
@@ -4241,6 +4492,9 @@
4241
4492
  "description": "Required permission that is missing"
4242
4493
  }
4243
4494
  },
4495
+ "unevaluatedProperties": {
4496
+ "not": {}
4497
+ },
4244
4498
  "allOf": [
4245
4499
  {
4246
4500
  "$ref": "#/components/schemas/Common.Errors.ProblemDetails"
@@ -4265,6 +4519,9 @@
4265
4519
  "description": "Error code for support reference"
4266
4520
  }
4267
4521
  },
4522
+ "unevaluatedProperties": {
4523
+ "not": {}
4524
+ },
4268
4525
  "allOf": [
4269
4526
  {
4270
4527
  "$ref": "#/components/schemas/Common.Errors.ProblemDetails"
@@ -4293,6 +4550,9 @@
4293
4550
  "description": "The identifier that was not found"
4294
4551
  }
4295
4552
  },
4553
+ "unevaluatedProperties": {
4554
+ "not": {}
4555
+ },
4296
4556
  "allOf": [
4297
4557
  {
4298
4558
  "$ref": "#/components/schemas/Common.Errors.ProblemDetails"
@@ -4353,6 +4613,9 @@
4353
4613
  ]
4354
4614
  }
4355
4615
  },
4616
+ "unevaluatedProperties": {
4617
+ "not": {}
4618
+ },
4356
4619
  "allOf": [
4357
4620
  {
4358
4621
  "$ref": "#/components/schemas/Common.Errors.ProblemDetails"
@@ -4382,6 +4645,9 @@
4382
4645
  "description": "Reason for unavailability"
4383
4646
  }
4384
4647
  },
4648
+ "unevaluatedProperties": {
4649
+ "not": {}
4650
+ },
4385
4651
  "allOf": [
4386
4652
  {
4387
4653
  "$ref": "#/components/schemas/Common.Errors.ProblemDetails"
@@ -4402,6 +4668,9 @@
4402
4668
  ]
4403
4669
  }
4404
4670
  },
4671
+ "unevaluatedProperties": {
4672
+ "not": {}
4673
+ },
4405
4674
  "allOf": [
4406
4675
  {
4407
4676
  "$ref": "#/components/schemas/Common.Errors.ProblemDetails"
@@ -4430,6 +4699,9 @@
4430
4699
  "description": "List of validation errors"
4431
4700
  }
4432
4701
  },
4702
+ "unevaluatedProperties": {
4703
+ "not": {}
4704
+ },
4433
4705
  "allOf": [
4434
4706
  {
4435
4707
  "$ref": "#/components/schemas/Common.Errors.ProblemDetails"
@@ -4462,6 +4734,9 @@
4462
4734
  "description": "The rejected value (if safe to include)"
4463
4735
  }
4464
4736
  },
4737
+ "unevaluatedProperties": {
4738
+ "not": {}
4739
+ },
4465
4740
  "description": "Individual validation error detail"
4466
4741
  },
4467
4742
  "Common.HttpMethod": {
@@ -4520,6 +4795,9 @@
4520
4795
  "description": "Dropped attributes count"
4521
4796
  }
4522
4797
  },
4798
+ "unevaluatedProperties": {
4799
+ "not": {}
4800
+ },
4523
4801
  "description": "Instrumentation scope identifying the library/component emitting telemetry"
4524
4802
  },
4525
4803
  "Common.IpAddress": {
@@ -4571,6 +4849,9 @@
4571
4849
  "description": "Filter expression"
4572
4850
  }
4573
4851
  },
4852
+ "unevaluatedProperties": {
4853
+ "not": {}
4854
+ },
4574
4855
  "description": "Aggregation query parameters"
4575
4856
  },
4576
4857
  "Common.Pagination.CursorPaginationParams": {
@@ -4598,6 +4879,9 @@
4598
4879
  "default": "desc"
4599
4880
  }
4600
4881
  },
4882
+ "unevaluatedProperties": {
4883
+ "not": {}
4884
+ },
4601
4885
  "description": "Cursor-based pagination parameters"
4602
4886
  },
4603
4887
  "Common.Pagination.OffsetPaginationParams": {
@@ -4619,6 +4903,9 @@
4619
4903
  "default": 100
4620
4904
  }
4621
4905
  },
4906
+ "unevaluatedProperties": {
4907
+ "not": {}
4908
+ },
4622
4909
  "description": "Offset-based pagination parameters"
4623
4910
  },
4624
4911
  "Common.Pagination.SortOrder": {
@@ -4654,6 +4941,9 @@
4654
4941
  "default": 100
4655
4942
  }
4656
4943
  },
4944
+ "unevaluatedProperties": {
4945
+ "not": {}
4946
+ },
4657
4947
  "description": "Streaming parameters for SSE endpoints"
4658
4948
  },
4659
4949
  "Common.Pagination.TimeBucket": {
@@ -4691,6 +4981,9 @@
4691
4981
  "default": 1000
4692
4982
  }
4693
4983
  },
4984
+ "unevaluatedProperties": {
4985
+ "not": {}
4986
+ },
4694
4987
  "description": "Time-range based query parameters"
4695
4988
  },
4696
4989
  "Common.Percentage": {
@@ -4856,9 +5149,10 @@
4856
5149
  "error_rate",
4857
5150
  "average_latency_ms",
4858
5151
  "p95_latency_ms",
4859
- "cost_attribution",
5152
+ "catalog_token_estimate",
5153
+ "candidate_status",
4860
5154
  "candidate_path",
4861
- "validation_metric",
5155
+ "validation_metrics",
4862
5156
  "residual_path",
4863
5157
  "evidence_signals",
4864
5158
  "missing_evidence",
@@ -4925,49 +5219,48 @@
4925
5219
  "p95_latency_ms": {
4926
5220
  "$ref": "#/components/schemas/Common.DurationMs"
4927
5221
  },
4928
- "observed_cost_usd": {
5222
+ "catalog_token_estimate": {
4929
5223
  "allOf": [
4930
5224
  {
4931
- "$ref": "#/components/schemas/Common.CostUsd"
5225
+ "$ref": "#/components/schemas/Cost.GenAiEtlCatalogTokenCostEstimate"
4932
5226
  }
4933
5227
  ],
4934
- "description": "Provider-sourced cost attributable to this cluster, absent when attribution is not defensible."
4935
- },
4936
- "cost_per_call_usd": {
4937
- "$ref": "#/components/schemas/Common.CostUsd"
5228
+ "description": "Outcome and, when calculated, detailed current-catalog token-and-request estimate for this cluster. Aggregate provider billing is never attributed to a cluster."
4938
5229
  },
4939
- "cost_attribution": {
4940
- "$ref": "#/components/schemas/Cost.ProviderCostAttribution"
4941
- },
4942
- "spend_share": {
5230
+ "measurable_coverage": {
4943
5231
  "allOf": [
4944
5232
  {
4945
5233
  "$ref": "#/components/schemas/Common.Ratio"
4946
5234
  }
4947
5235
  ],
4948
- "description": "Fraction of attributable spend represented by this cluster."
5236
+ "description": "Fraction of calls with a task-specific correctness signal."
4949
5237
  },
4950
- "measurable_coverage": {
5238
+ "safe_deferral_coverage": {
4951
5239
  "allOf": [
4952
5240
  {
4953
5241
  "$ref": "#/components/schemas/Common.Ratio"
4954
5242
  }
4955
5243
  ],
4956
- "description": "Fraction of calls with a task-specific correctness signal."
5244
+ "description": "Fraction of calls proven safe to route to a residual path."
4957
5245
  },
4958
- "safe_deferral_coverage": {
5246
+ "candidate_status": {
4959
5247
  "allOf": [
4960
5248
  {
4961
- "$ref": "#/components/schemas/Common.Ratio"
5249
+ "$ref": "#/components/schemas/Cost.GenAiEtlCandidateStatus"
4962
5250
  }
4963
5251
  ],
4964
- "description": "Fraction of calls proven safe to route to a residual path."
5252
+ "description": "Evidence status qualifying the proposed candidate path."
4965
5253
  },
4966
5254
  "candidate_path": {
4967
5255
  "$ref": "#/components/schemas/Cost.GenAiEtlCandidatePath"
4968
5256
  },
4969
- "validation_metric": {
4970
- "$ref": "#/components/schemas/Cost.GenAiEtlValidationMetric"
5257
+ "validation_metrics": {
5258
+ "type": "array",
5259
+ "items": {
5260
+ "$ref": "#/components/schemas/Cost.GenAiEtlValidationMetric"
5261
+ },
5262
+ "minItems": 1,
5263
+ "description": "Task-specific metrics required to falsify the proposed replacement."
4971
5264
  },
4972
5265
  "residual_path": {
4973
5266
  "$ref": "#/components/schemas/Cost.GenAiEtlResidualPath"
@@ -4991,6 +5284,9 @@
4991
5284
  }
4992
5285
  }
4993
5286
  },
5287
+ "unevaluatedProperties": {
5288
+ "not": {}
5289
+ },
4994
5290
  "description": "Observed economics and evidence for one repeated GenAI workflow cluster."
4995
5291
  },
4996
5292
  "Cost.GenAiEtlAuditEvaluationRequest": {
@@ -5008,6 +5304,9 @@
5008
5304
  "maxItems": 100
5009
5305
  }
5010
5306
  },
5307
+ "unevaluatedProperties": {
5308
+ "not": {}
5309
+ },
5011
5310
  "description": "Batch of cluster scenarios evaluated against one audit period."
5012
5311
  },
5013
5312
  "Cost.GenAiEtlAuditEvaluationResponse": {
@@ -5038,6 +5337,9 @@
5038
5337
  }
5039
5338
  }
5040
5339
  },
5340
+ "unevaluatedProperties": {
5341
+ "not": {}
5342
+ },
5041
5343
  "description": "Batch result for ETL replacement scenarios."
5042
5344
  },
5043
5345
  "Cost.GenAiEtlAuditReport": {
@@ -5047,7 +5349,8 @@
5047
5349
  "period_start",
5048
5350
  "period_end",
5049
5351
  "summary",
5050
- "cost_sources",
5352
+ "billing_sources",
5353
+ "catalog_sources",
5051
5354
  "clusters"
5052
5355
  ],
5053
5356
  "properties": {
@@ -5066,11 +5369,19 @@
5066
5369
  "summary": {
5067
5370
  "$ref": "#/components/schemas/Cost.GenAiEtlAuditSummary"
5068
5371
  },
5069
- "cost_sources": {
5372
+ "billing_sources": {
5070
5373
  "type": "array",
5071
5374
  "items": {
5072
- "$ref": "#/components/schemas/Cost.ProviderCostSource"
5073
- }
5375
+ "$ref": "#/components/schemas/Cost.ProviderBillingSource"
5376
+ },
5377
+ "description": "Provider-owned aggregate billing sources. These totals are not attributed to clusters or used as evaluation baselines."
5378
+ },
5379
+ "catalog_sources": {
5380
+ "type": "array",
5381
+ "items": {
5382
+ "$ref": "#/components/schemas/Cost.ModelCatalogSource"
5383
+ },
5384
+ "description": "Configured live model catalog sources and their current synchronization state."
5074
5385
  },
5075
5386
  "clusters": {
5076
5387
  "type": "array",
@@ -5079,6 +5390,9 @@
5079
5390
  }
5080
5391
  }
5081
5392
  },
5393
+ "unevaluatedProperties": {
5394
+ "not": {}
5395
+ },
5082
5396
  "description": "Trace-level ETL audit for a bounded period."
5083
5397
  },
5084
5398
  "Cost.GenAiEtlAuditSummary": {
@@ -5087,7 +5401,7 @@
5087
5401
  "total_calls",
5088
5402
  "total_input_tokens",
5089
5403
  "total_output_tokens",
5090
- "priced_call_coverage"
5404
+ "catalog_token_priced_call_coverage"
5091
5405
  ],
5092
5406
  "properties": {
5093
5407
  "total_calls": {
@@ -5099,29 +5413,29 @@
5099
5413
  "total_output_tokens": {
5100
5414
  "$ref": "#/components/schemas/Common.TokenCount"
5101
5415
  },
5102
- "attributed_cost_usd": {
5416
+ "estimated_catalog_token_cost_usd": {
5103
5417
  "allOf": [
5104
5418
  {
5105
5419
  "$ref": "#/components/schemas/Common.CostUsd"
5106
5420
  }
5107
5421
  ],
5108
- "description": "Provider-sourced cost attributable to the returned trace population."
5422
+ "description": "Counterfactual token and request cost of the full observed audit population before the cluster response limit is applied, using the current live catalog snapshot; this is not an official billed total or a historical price claim."
5109
5423
  },
5110
- "priced_call_coverage": {
5424
+ "catalog_token_priced_call_coverage": {
5111
5425
  "allOf": [
5112
5426
  {
5113
5427
  "$ref": "#/components/schemas/Common.Ratio"
5114
5428
  }
5115
5429
  ],
5116
- "description": "Fraction of calls covered by provider cost attribution."
5430
+ "description": "Fraction of observed calls covered by all-or-nothing calculated token-and-request estimates; missing pricing is not treated as zero."
5117
5431
  },
5118
- "economic_concentration": {
5432
+ "estimated_token_economic_concentration": {
5119
5433
  "allOf": [
5120
5434
  {
5121
5435
  "$ref": "#/components/schemas/Common.Ratio"
5122
5436
  }
5123
5437
  ],
5124
- "description": "Fraction of attributable spend represented by the returned top clusters."
5438
+ "description": "Returned top-cluster token-and-request estimate divided by estimated_catalog_token_cost_usd for the full observed audit population."
5125
5439
  },
5126
5440
  "measurable_coverage": {
5127
5441
  "allOf": [
@@ -5139,82 +5453,39 @@
5139
5453
  ],
5140
5454
  "description": "Fraction of calls proven safe to defer to a residual path."
5141
5455
  },
5142
- "candidate_etl_spend_share": {
5456
+ "candidate_etl_estimated_token_spend_share": {
5143
5457
  "allOf": [
5144
5458
  {
5145
5459
  "$ref": "#/components/schemas/Common.Ratio"
5146
5460
  }
5147
5461
  ],
5148
- "description": "Fraction of attributable spend attached to ETL-shaped candidates."
5462
+ "description": "Fraction of estimated current-catalog token-and-request spend attached to ETL-shaped candidates."
5149
5463
  }
5150
5464
  },
5465
+ "unevaluatedProperties": {
5466
+ "not": {}
5467
+ },
5151
5468
  "description": "Aggregate trace-level economics for the requested audit period."
5152
5469
  },
5153
- "Cost.GenAiEtlCalculationStatus": {
5154
- "type": "string",
5155
- "enum": [
5156
- "calculated",
5157
- "missing_frontier_cost"
5158
- ],
5159
- "description": "Whether the replaceable-value formula had a defensible baseline cost."
5160
- },
5161
- "Cost.GenAiEtlCandidatePath": {
5162
- "type": "string",
5163
- "enum": [
5164
- "exact_cache",
5165
- "deterministic_code",
5166
- "bounded_retrieval",
5167
- "small_classifier_extractor",
5168
- "smaller_generative_model",
5169
- "frontier_model",
5170
- "insufficient_evidence"
5171
- ],
5172
- "description": "Lowest-risk implementation class suggested by currently available evidence."
5173
- },
5174
- "Cost.GenAiEtlClusterEvaluation": {
5470
+ "Cost.GenAiEtlCalculatedClusterEvaluationBase": {
5175
5471
  "type": "object",
5176
5472
  "required": [
5177
- "cluster_id",
5178
5473
  "status",
5179
- "call_count",
5180
- "coverage",
5181
- "served_call_count",
5182
- "residual_call_count",
5183
- "frontier_cost_basis",
5184
- "alternative_cost_per_call_usd",
5185
- "period_maintenance_cost_usd",
5186
- "period_error_cost_usd"
5474
+ "frontier_cost_per_call_usd",
5475
+ "current_period_cost_usd",
5476
+ "gross_replaceable_value_usd",
5477
+ "net_replaceable_value_usd"
5187
5478
  ],
5188
5479
  "properties": {
5189
- "cluster_id": {
5190
- "type": "string"
5191
- },
5192
5480
  "status": {
5193
- "$ref": "#/components/schemas/Cost.GenAiEtlCalculationStatus"
5194
- },
5195
- "call_count": {
5196
- "$ref": "#/components/schemas/Common.Count"
5197
- },
5198
- "coverage": {
5199
- "$ref": "#/components/schemas/Common.Ratio"
5200
- },
5201
- "served_call_count": {
5202
- "type": "number",
5203
- "format": "double"
5204
- },
5205
- "residual_call_count": {
5206
- "type": "number",
5207
- "format": "double"
5481
+ "type": "string",
5482
+ "enum": [
5483
+ "calculated"
5484
+ ]
5208
5485
  },
5209
5486
  "frontier_cost_per_call_usd": {
5210
5487
  "$ref": "#/components/schemas/Common.CostUsd"
5211
5488
  },
5212
- "frontier_cost_basis": {
5213
- "$ref": "#/components/schemas/Cost.ProviderCostAttribution"
5214
- },
5215
- "alternative_cost_per_call_usd": {
5216
- "$ref": "#/components/schemas/Common.CostUsd"
5217
- },
5218
5489
  "current_period_cost_usd": {
5219
5490
  "$ref": "#/components/schemas/Common.CostUsd"
5220
5491
  },
@@ -5222,198 +5493,1477 @@
5222
5493
  "type": "number",
5223
5494
  "format": "double"
5224
5495
  },
5225
- "period_maintenance_cost_usd": {
5226
- "$ref": "#/components/schemas/Common.CostUsd"
5227
- },
5228
- "period_error_cost_usd": {
5229
- "$ref": "#/components/schemas/Common.CostUsd"
5230
- },
5231
5496
  "net_replaceable_value_usd": {
5232
5497
  "type": "number",
5233
5498
  "format": "double",
5234
5499
  "description": "Net period value; this may be negative when maintenance or error cost exceeds gross savings."
5235
5500
  }
5236
5501
  },
5237
- "description": "Result of replaceable_value = calls * coverage * (frontier - alternative) - maintenance - error."
5502
+ "allOf": [
5503
+ {
5504
+ "$ref": "#/components/schemas/Cost.GenAiEtlClusterEvaluationBase"
5505
+ }
5506
+ ]
5238
5507
  },
5239
- "Cost.GenAiEtlClusterScenario": {
5508
+ "Cost.GenAiEtlCandidatePath": {
5509
+ "type": "string",
5510
+ "enum": [
5511
+ "exact_cache",
5512
+ "deterministic_code",
5513
+ "bounded_retrieval",
5514
+ "small_classifier_extractor",
5515
+ "smaller_generative_model",
5516
+ "frontier_model",
5517
+ "insufficient_evidence"
5518
+ ],
5519
+ "description": "Lowest-risk implementation class suggested by currently available evidence."
5520
+ },
5521
+ "Cost.GenAiEtlCandidateStatus": {
5522
+ "type": "string",
5523
+ "enum": [
5524
+ "hypothesis_only",
5525
+ "insufficient_evidence"
5526
+ ],
5527
+ "description": "Evidence status of the proposed replacement path."
5528
+ },
5529
+ "Cost.GenAiEtlCatalogTokenAmbiguousModelEstimate": {
5240
5530
  "type": "object",
5241
5531
  "required": [
5242
- "cluster_id",
5243
- "coverage",
5244
- "alternative_cost_per_call_usd",
5245
- "period_maintenance_cost_usd",
5246
- "period_error_cost_usd"
5532
+ "status"
5247
5533
  ],
5248
5534
  "properties": {
5249
- "cluster_id": {
5250
- "type": "string"
5535
+ "status": {
5536
+ "type": "string",
5537
+ "enum": [
5538
+ "ambiguous_model"
5539
+ ]
5540
+ }
5541
+ },
5542
+ "unevaluatedProperties": {
5543
+ "not": {}
5544
+ },
5545
+ "allOf": [
5546
+ {
5547
+ "$ref": "#/components/schemas/Cost.GenAiEtlCatalogTokenEstimateFailureBase"
5548
+ }
5549
+ ]
5550
+ },
5551
+ "Cost.GenAiEtlCatalogTokenCalculatedEstimate": {
5552
+ "type": "object",
5553
+ "required": [
5554
+ "status",
5555
+ "estimated_catalog_token_cost_usd",
5556
+ "estimated_catalog_token_cost_per_call_usd",
5557
+ "provenance",
5558
+ "components"
5559
+ ],
5560
+ "properties": {
5561
+ "status": {
5562
+ "type": "string",
5563
+ "enum": [
5564
+ "calculated"
5565
+ ]
5251
5566
  },
5252
- "coverage": {
5567
+ "estimated_catalog_token_cost_usd": {
5253
5568
  "allOf": [
5254
5569
  {
5255
- "$ref": "#/components/schemas/Common.Ratio"
5570
+ "$ref": "#/components/schemas/Common.CostUsd"
5256
5571
  }
5257
5572
  ],
5258
- "description": "Fraction of cluster calls the replacement is expected to serve safely."
5573
+ "description": "Estimated token and request cost for the reported cluster period using the current catalog snapshot; this is counterfactual for historical periods and is not an official billed total."
5259
5574
  },
5260
- "frontier_cost_per_call_usd": {
5575
+ "estimated_catalog_token_cost_per_call_usd": {
5261
5576
  "allOf": [
5262
5577
  {
5263
5578
  "$ref": "#/components/schemas/Common.CostUsd"
5264
5579
  }
5265
5580
  ],
5266
- "description": "Explicit baseline cost per call. When absent, qyl uses provider-attributed cluster cost and otherwise fails closed."
5581
+ "description": "Estimated token and request cost per observed cluster call; this is not an official billed total."
5267
5582
  },
5268
- "alternative_cost_per_call_usd": {
5269
- "$ref": "#/components/schemas/Common.CostUsd"
5583
+ "provenance": {
5584
+ "allOf": [
5585
+ {
5586
+ "$ref": "#/components/schemas/Cost.ModelCatalogPriceProvenance"
5587
+ }
5588
+ ],
5589
+ "description": "Exact catalog snapshot and model-match evidence."
5270
5590
  },
5271
- "period_maintenance_cost_usd": {
5272
- "$ref": "#/components/schemas/Common.CostUsd"
5591
+ "components": {
5592
+ "type": "array",
5593
+ "items": {
5594
+ "$ref": "#/components/schemas/Cost.ModelCatalogTokenEstimateComponent"
5595
+ },
5596
+ "minItems": 1,
5597
+ "description": "Included token or request usage and rate contributions. Ordered source overrides carry conditional evidence; ordinary inclusive subtype replacements do not require it."
5273
5598
  },
5274
- "period_error_cost_usd": {
5275
- "$ref": "#/components/schemas/Common.CostUsd"
5599
+ "exclusions": {
5600
+ "type": "array",
5601
+ "items": {
5602
+ "$ref": "#/components/schemas/Cost.ModelCatalogTokenEstimateExclusion"
5603
+ },
5604
+ "minItems": 1,
5605
+ "description": "Meters or conditional adjustments explicitly omitted from this calculated estimate."
5276
5606
  }
5277
5607
  },
5278
- "description": "What-if assumptions for one workflow cluster over the requested period."
5279
- },
5280
- "Cost.GenAiEtlEvidenceSignal": {
5281
- "type": "string",
5282
- "enum": [
5283
- "workflow_identity",
5284
- "output_contract",
5285
- "provider_model",
5286
- "token_usage",
5287
- "provider_cost",
5288
- "recurring_schema",
5289
- "bounded_reference",
5290
- "task_metric",
5291
- "accepted_output_replay",
5292
- "downstream_fate",
5293
- "calibrated_confidence",
5294
- "shadow_comparison",
5295
- "fallback_policy"
5296
- ],
5297
- "description": "Observable evidence needed to promote an inferred replacement safely."
5298
- },
5299
- "Cost.GenAiEtlOutputContract": {
5300
- "type": "string",
5301
- "enum": [
5302
- "prose",
5303
- "label",
5304
- "span_list",
5305
- "record",
5306
- "vector",
5307
- "catalog_reference",
5308
- "number",
5309
- "boolean",
5310
- "unknown"
5311
- ],
5312
- "description": "Machine-readable output contract inferred for a workflow cluster."
5608
+ "unevaluatedProperties": {
5609
+ "not": {}
5610
+ },
5611
+ "description": "Calculated all-or-nothing current-catalog token and request estimate for a complete workflow cluster."
5313
5612
  },
5314
- "Cost.GenAiEtlPromotionGate": {
5613
+ "Cost.GenAiEtlCatalogTokenClusterEvaluation": {
5315
5614
  "type": "object",
5316
5615
  "required": [
5317
- "gate",
5318
- "state"
5616
+ "frontier_cost_basis",
5617
+ "catalog_provenance"
5319
5618
  ],
5320
5619
  "properties": {
5321
- "gate": {
5322
- "$ref": "#/components/schemas/Cost.GenAiEtlPromotionGateKind"
5323
- },
5324
- "state": {
5325
- "$ref": "#/components/schemas/Cost.GenAiEtlPromotionGateState"
5326
- },
5327
- "reason": {
5620
+ "frontier_cost_basis": {
5328
5621
  "type": "string",
5329
- "description": "Stable evidence code explaining the current gate state."
5622
+ "enum": [
5623
+ "catalog_token_estimate"
5624
+ ]
5625
+ },
5626
+ "catalog_provenance": {
5627
+ "allOf": [
5628
+ {
5629
+ "$ref": "#/components/schemas/Cost.ModelCatalogPriceProvenance"
5630
+ }
5631
+ ],
5632
+ "description": "Exact live-catalog snapshot and model-match evidence used for the calculated frontier cost."
5330
5633
  }
5331
5634
  },
5332
- "description": "Promotion readiness for one gate."
5635
+ "unevaluatedProperties": {
5636
+ "not": {}
5637
+ },
5638
+ "allOf": [
5639
+ {
5640
+ "$ref": "#/components/schemas/Cost.GenAiEtlCalculatedClusterEvaluationBase"
5641
+ }
5642
+ ]
5333
5643
  },
5334
- "Cost.GenAiEtlPromotionGateKind": {
5335
- "type": "string",
5336
- "enum": [
5337
- "contract_stability",
5338
- "offline_replay",
5339
- "calibrated_confidence",
5340
- "shadow_traffic",
5341
- "limited_serving",
5342
- "rollback_residual_policy"
5644
+ "Cost.GenAiEtlCatalogTokenConditionalPricingUnresolvableEstimate": {
5645
+ "type": "object",
5646
+ "required": [
5647
+ "status"
5343
5648
  ],
5344
- "description": "Promotion gate from replay through limited serving and rollback."
5649
+ "properties": {
5650
+ "status": {
5651
+ "type": "string",
5652
+ "enum": [
5653
+ "conditional_pricing_unresolvable"
5654
+ ]
5655
+ }
5656
+ },
5657
+ "unevaluatedProperties": {
5658
+ "not": {}
5659
+ },
5660
+ "allOf": [
5661
+ {
5662
+ "$ref": "#/components/schemas/Cost.GenAiEtlCatalogTokenEstimateFailureBase"
5663
+ }
5664
+ ]
5345
5665
  },
5346
- "Cost.GenAiEtlPromotionGateState": {
5347
- "type": "string",
5348
- "enum": [
5349
- "passed",
5350
- "failed",
5351
- "not_evaluated",
5352
- "blocked_missing_evidence"
5666
+ "Cost.GenAiEtlCatalogTokenCostEstimate": {
5667
+ "oneOf": [
5668
+ {
5669
+ "$ref": "#/components/schemas/Cost.GenAiEtlCatalogTokenCalculatedEstimate"
5670
+ },
5671
+ {
5672
+ "$ref": "#/components/schemas/Cost.GenAiEtlCatalogTokenSourceUnavailableEstimate"
5673
+ },
5674
+ {
5675
+ "$ref": "#/components/schemas/Cost.GenAiEtlCatalogTokenStaleSourceEstimate"
5676
+ },
5677
+ {
5678
+ "$ref": "#/components/schemas/Cost.GenAiEtlCatalogTokenMissingModelIdentityEstimate"
5679
+ },
5680
+ {
5681
+ "$ref": "#/components/schemas/Cost.GenAiEtlCatalogTokenModelNotFoundEstimate"
5682
+ },
5683
+ {
5684
+ "$ref": "#/components/schemas/Cost.GenAiEtlCatalogTokenAmbiguousModelEstimate"
5685
+ },
5686
+ {
5687
+ "$ref": "#/components/schemas/Cost.GenAiEtlCatalogTokenIncompleteUsageEstimate"
5688
+ },
5689
+ {
5690
+ "$ref": "#/components/schemas/Cost.GenAiEtlCatalogTokenConditionalPricingUnresolvableEstimate"
5691
+ },
5692
+ {
5693
+ "$ref": "#/components/schemas/Cost.GenAiEtlCatalogTokenUnsupportedPricingEstimate"
5694
+ }
5695
+ ],
5696
+ "description": "All-or-nothing current-catalog token and request estimate. The status literal selects the complete calculated or fail-closed response shape."
5697
+ },
5698
+ "Cost.GenAiEtlCatalogTokenEstimateFailureBase": {
5699
+ "type": "object",
5700
+ "properties": {
5701
+ "exclusions": {
5702
+ "type": "array",
5703
+ "items": {
5704
+ "$ref": "#/components/schemas/Cost.ModelCatalogTokenEstimateExclusion"
5705
+ },
5706
+ "minItems": 1,
5707
+ "description": "Available meter or conditional evidence explaining why the cluster estimate failed closed."
5708
+ }
5709
+ }
5710
+ },
5711
+ "Cost.GenAiEtlCatalogTokenIncompleteUsageEstimate": {
5712
+ "type": "object",
5713
+ "required": [
5714
+ "status"
5715
+ ],
5716
+ "properties": {
5717
+ "status": {
5718
+ "type": "string",
5719
+ "enum": [
5720
+ "incomplete_usage"
5721
+ ]
5722
+ }
5723
+ },
5724
+ "unevaluatedProperties": {
5725
+ "not": {}
5726
+ },
5727
+ "allOf": [
5728
+ {
5729
+ "$ref": "#/components/schemas/Cost.GenAiEtlCatalogTokenEstimateFailureBase"
5730
+ }
5731
+ ]
5732
+ },
5733
+ "Cost.GenAiEtlCatalogTokenMissingModelIdentityEstimate": {
5734
+ "type": "object",
5735
+ "required": [
5736
+ "status"
5737
+ ],
5738
+ "properties": {
5739
+ "status": {
5740
+ "type": "string",
5741
+ "enum": [
5742
+ "missing_model_identity"
5743
+ ]
5744
+ }
5745
+ },
5746
+ "unevaluatedProperties": {
5747
+ "not": {}
5748
+ },
5749
+ "allOf": [
5750
+ {
5751
+ "$ref": "#/components/schemas/Cost.GenAiEtlCatalogTokenEstimateFailureBase"
5752
+ }
5753
+ ]
5754
+ },
5755
+ "Cost.GenAiEtlCatalogTokenModelNotFoundEstimate": {
5756
+ "type": "object",
5757
+ "required": [
5758
+ "status"
5759
+ ],
5760
+ "properties": {
5761
+ "status": {
5762
+ "type": "string",
5763
+ "enum": [
5764
+ "model_not_found"
5765
+ ]
5766
+ }
5767
+ },
5768
+ "unevaluatedProperties": {
5769
+ "not": {}
5770
+ },
5771
+ "allOf": [
5772
+ {
5773
+ "$ref": "#/components/schemas/Cost.GenAiEtlCatalogTokenEstimateFailureBase"
5774
+ }
5775
+ ]
5776
+ },
5777
+ "Cost.GenAiEtlCatalogTokenSourceUnavailableEstimate": {
5778
+ "type": "object",
5779
+ "required": [
5780
+ "status"
5781
+ ],
5782
+ "properties": {
5783
+ "status": {
5784
+ "type": "string",
5785
+ "enum": [
5786
+ "source_unavailable"
5787
+ ]
5788
+ }
5789
+ },
5790
+ "unevaluatedProperties": {
5791
+ "not": {}
5792
+ },
5793
+ "allOf": [
5794
+ {
5795
+ "$ref": "#/components/schemas/Cost.GenAiEtlCatalogTokenEstimateFailureBase"
5796
+ }
5797
+ ]
5798
+ },
5799
+ "Cost.GenAiEtlCatalogTokenStaleSourceEstimate": {
5800
+ "type": "object",
5801
+ "required": [
5802
+ "status"
5803
+ ],
5804
+ "properties": {
5805
+ "status": {
5806
+ "type": "string",
5807
+ "enum": [
5808
+ "stale_source"
5809
+ ]
5810
+ }
5811
+ },
5812
+ "unevaluatedProperties": {
5813
+ "not": {}
5814
+ },
5815
+ "allOf": [
5816
+ {
5817
+ "$ref": "#/components/schemas/Cost.GenAiEtlCatalogTokenEstimateFailureBase"
5818
+ }
5819
+ ]
5820
+ },
5821
+ "Cost.GenAiEtlCatalogTokenUnsupportedPricingEstimate": {
5822
+ "type": "object",
5823
+ "required": [
5824
+ "status"
5825
+ ],
5826
+ "properties": {
5827
+ "status": {
5828
+ "type": "string",
5829
+ "enum": [
5830
+ "unsupported_pricing"
5831
+ ]
5832
+ }
5833
+ },
5834
+ "unevaluatedProperties": {
5835
+ "not": {}
5836
+ },
5837
+ "allOf": [
5838
+ {
5839
+ "$ref": "#/components/schemas/Cost.GenAiEtlCatalogTokenEstimateFailureBase"
5840
+ }
5841
+ ]
5842
+ },
5843
+ "Cost.GenAiEtlClusterEvaluation": {
5844
+ "oneOf": [
5845
+ {
5846
+ "$ref": "#/components/schemas/Cost.GenAiEtlScenarioClusterEvaluation"
5847
+ },
5848
+ {
5849
+ "$ref": "#/components/schemas/Cost.GenAiEtlCatalogTokenClusterEvaluation"
5850
+ },
5851
+ {
5852
+ "$ref": "#/components/schemas/Cost.GenAiEtlUnavailableClusterEvaluation"
5853
+ }
5854
+ ],
5855
+ "description": "Result of replaceable_value = calls * coverage * (frontier - alternative) - maintenance - error. The frontier_cost_basis literal selects a complete calculated result or a fail-closed unavailable result."
5856
+ },
5857
+ "Cost.GenAiEtlClusterEvaluationBase": {
5858
+ "type": "object",
5859
+ "required": [
5860
+ "cluster_id",
5861
+ "call_count",
5862
+ "coverage",
5863
+ "served_call_count",
5864
+ "residual_call_count",
5865
+ "alternative_cost_per_call_usd",
5866
+ "period_maintenance_cost_usd",
5867
+ "period_error_cost_usd"
5868
+ ],
5869
+ "properties": {
5870
+ "cluster_id": {
5871
+ "type": "string"
5872
+ },
5873
+ "call_count": {
5874
+ "$ref": "#/components/schemas/Common.Count"
5875
+ },
5876
+ "coverage": {
5877
+ "$ref": "#/components/schemas/Common.Ratio"
5878
+ },
5879
+ "served_call_count": {
5880
+ "type": "number",
5881
+ "format": "double"
5882
+ },
5883
+ "residual_call_count": {
5884
+ "type": "number",
5885
+ "format": "double"
5886
+ },
5887
+ "alternative_cost_per_call_usd": {
5888
+ "$ref": "#/components/schemas/Common.CostUsd"
5889
+ },
5890
+ "period_maintenance_cost_usd": {
5891
+ "$ref": "#/components/schemas/Common.CostUsd"
5892
+ },
5893
+ "period_error_cost_usd": {
5894
+ "$ref": "#/components/schemas/Common.CostUsd"
5895
+ }
5896
+ }
5897
+ },
5898
+ "Cost.GenAiEtlClusterScenario": {
5899
+ "type": "object",
5900
+ "required": [
5901
+ "cluster_id",
5902
+ "coverage",
5903
+ "alternative_cost_per_call_usd",
5904
+ "period_maintenance_cost_usd",
5905
+ "period_error_cost_usd"
5906
+ ],
5907
+ "properties": {
5908
+ "cluster_id": {
5909
+ "type": "string"
5910
+ },
5911
+ "coverage": {
5912
+ "allOf": [
5913
+ {
5914
+ "$ref": "#/components/schemas/Common.Ratio"
5915
+ }
5916
+ ],
5917
+ "description": "Fraction of cluster calls the replacement is expected to serve safely."
5918
+ },
5919
+ "frontier_cost_per_call_usd": {
5920
+ "allOf": [
5921
+ {
5922
+ "$ref": "#/components/schemas/Common.CostUsd"
5923
+ }
5924
+ ],
5925
+ "description": "Explicit scenario baseline cost per call. It wins over a calculated catalog estimate; when both are absent, evaluation fails closed."
5926
+ },
5927
+ "alternative_cost_per_call_usd": {
5928
+ "$ref": "#/components/schemas/Common.CostUsd"
5929
+ },
5930
+ "period_maintenance_cost_usd": {
5931
+ "$ref": "#/components/schemas/Common.CostUsd"
5932
+ },
5933
+ "period_error_cost_usd": {
5934
+ "$ref": "#/components/schemas/Common.CostUsd"
5935
+ }
5936
+ },
5937
+ "unevaluatedProperties": {
5938
+ "not": {}
5939
+ },
5940
+ "description": "What-if assumptions for one workflow cluster over the requested period."
5941
+ },
5942
+ "Cost.GenAiEtlEvidenceSignal": {
5943
+ "type": "string",
5944
+ "enum": [
5945
+ "workflow_identity",
5946
+ "output_contract",
5947
+ "provider_model",
5948
+ "token_usage",
5949
+ "catalog_token_estimate",
5950
+ "recurring_schema",
5951
+ "bounded_reference",
5952
+ "task_metric",
5953
+ "accepted_output_replay",
5954
+ "downstream_fate",
5955
+ "calibrated_confidence",
5956
+ "shadow_comparison",
5957
+ "fallback_policy"
5958
+ ],
5959
+ "description": "Observable evidence needed to promote an inferred replacement safely."
5960
+ },
5961
+ "Cost.GenAiEtlFrontierCostBasis": {
5962
+ "type": "string",
5963
+ "enum": [
5964
+ "scenario",
5965
+ "catalog_token_estimate",
5966
+ "unavailable"
5967
+ ],
5968
+ "description": "Evidence basis for the frontier cost used in a replacement-value calculation."
5969
+ },
5970
+ "Cost.GenAiEtlOutputContract": {
5971
+ "type": "string",
5972
+ "enum": [
5973
+ "prose",
5974
+ "label",
5975
+ "span_list",
5976
+ "record",
5977
+ "vector",
5978
+ "catalog_reference",
5979
+ "number",
5980
+ "boolean",
5981
+ "unknown"
5982
+ ],
5983
+ "description": "Machine-readable output contract inferred for a workflow cluster."
5984
+ },
5985
+ "Cost.GenAiEtlPromotionGate": {
5986
+ "type": "object",
5987
+ "required": [
5988
+ "gate",
5989
+ "state"
5990
+ ],
5991
+ "properties": {
5992
+ "gate": {
5993
+ "$ref": "#/components/schemas/Cost.GenAiEtlPromotionGateKind"
5994
+ },
5995
+ "state": {
5996
+ "$ref": "#/components/schemas/Cost.GenAiEtlPromotionGateState"
5997
+ },
5998
+ "reason": {
5999
+ "type": "string",
6000
+ "description": "Stable evidence code explaining the current gate state."
6001
+ }
6002
+ },
6003
+ "unevaluatedProperties": {
6004
+ "not": {}
6005
+ },
6006
+ "description": "Promotion readiness for one gate."
6007
+ },
6008
+ "Cost.GenAiEtlPromotionGateKind": {
6009
+ "type": "string",
6010
+ "enum": [
6011
+ "contract_stability",
6012
+ "offline_replay",
6013
+ "calibrated_confidence",
6014
+ "shadow_traffic",
6015
+ "limited_serving",
6016
+ "rollback_residual_policy"
6017
+ ],
6018
+ "description": "Promotion gate from replay through limited serving and rollback."
6019
+ },
6020
+ "Cost.GenAiEtlPromotionGateState": {
6021
+ "type": "string",
6022
+ "enum": [
6023
+ "passed",
6024
+ "failed",
6025
+ "not_evaluated",
6026
+ "blocked_missing_evidence"
6027
+ ],
6028
+ "description": "Evaluation state of a promotion gate."
6029
+ },
6030
+ "Cost.GenAiEtlResidualPath": {
6031
+ "type": "string",
6032
+ "enum": [
6033
+ "frontier_model",
6034
+ "human_review",
6035
+ "retry",
6036
+ "degraded_response",
6037
+ "none",
6038
+ "undetermined"
6039
+ ],
6040
+ "description": "Fallback used for requests outside a promoted replacement's safe coverage."
6041
+ },
6042
+ "Cost.GenAiEtlScenarioClusterEvaluation": {
6043
+ "type": "object",
6044
+ "required": [
6045
+ "frontier_cost_basis"
6046
+ ],
6047
+ "properties": {
6048
+ "frontier_cost_basis": {
6049
+ "type": "string",
6050
+ "enum": [
6051
+ "scenario"
6052
+ ]
6053
+ }
6054
+ },
6055
+ "unevaluatedProperties": {
6056
+ "not": {}
6057
+ },
6058
+ "allOf": [
6059
+ {
6060
+ "$ref": "#/components/schemas/Cost.GenAiEtlCalculatedClusterEvaluationBase"
6061
+ }
6062
+ ]
6063
+ },
6064
+ "Cost.GenAiEtlTaskFamily": {
6065
+ "type": "string",
6066
+ "enum": [
6067
+ "open_reasoning_generation",
6068
+ "classification",
6069
+ "sequence_labeling",
6070
+ "structured_extraction",
6071
+ "retrieval_entity_resolution",
6072
+ "similarity_clustering",
6073
+ "normalization_transformation",
6074
+ "numeric_analytical",
6075
+ "unknown"
6076
+ ],
6077
+ "description": "Task family inferred for a repeated GenAI workflow cluster."
6078
+ },
6079
+ "Cost.GenAiEtlUnavailableClusterEvaluation": {
6080
+ "type": "object",
6081
+ "required": [
6082
+ "status",
6083
+ "frontier_cost_basis"
6084
+ ],
6085
+ "properties": {
6086
+ "status": {
6087
+ "type": "string",
6088
+ "enum": [
6089
+ "missing_frontier_cost"
6090
+ ]
6091
+ },
6092
+ "frontier_cost_basis": {
6093
+ "type": "string",
6094
+ "enum": [
6095
+ "unavailable"
6096
+ ]
6097
+ }
6098
+ },
6099
+ "unevaluatedProperties": {
6100
+ "not": {}
6101
+ },
6102
+ "allOf": [
6103
+ {
6104
+ "$ref": "#/components/schemas/Cost.GenAiEtlClusterEvaluationBase"
6105
+ }
6106
+ ]
6107
+ },
6108
+ "Cost.GenAiEtlValidationMetric": {
6109
+ "type": "string",
6110
+ "enum": [
6111
+ "accuracy",
6112
+ "macro_f1",
6113
+ "calibration_error",
6114
+ "span_precision",
6115
+ "span_recall",
6116
+ "span_f1",
6117
+ "field_exact_match",
6118
+ "schema_validity",
6119
+ "match_accuracy",
6120
+ "recall_at_k",
6121
+ "mean_reciprocal_rank",
6122
+ "exact_match",
6123
+ "numeric_tolerance",
6124
+ "human_preference",
6125
+ "task_success",
6126
+ "unavailable"
6127
+ ],
6128
+ "description": "Task-specific metrics that can falsify a proposed replacement."
6129
+ },
6130
+ "Cost.ModelCatalogAdditiveSurchargeEvidence": {
6131
+ "type": "object",
6132
+ "required": [
6133
+ "rate_relation"
6134
+ ],
6135
+ "properties": {
6136
+ "rate_relation": {
6137
+ "type": "string",
6138
+ "enum": [
6139
+ "additive_surcharge"
6140
+ ]
6141
+ }
6142
+ },
6143
+ "unevaluatedProperties": {
6144
+ "not": {}
6145
+ }
6146
+ },
6147
+ "Cost.ModelCatalogBaseRateEvidence": {
6148
+ "type": "object",
6149
+ "required": [
6150
+ "rate_relation"
6151
+ ],
6152
+ "properties": {
6153
+ "rate_relation": {
6154
+ "type": "string",
6155
+ "enum": [
6156
+ "base_rate"
6157
+ ]
6158
+ }
6159
+ },
6160
+ "unevaluatedProperties": {
6161
+ "not": {}
6162
+ }
6163
+ },
6164
+ "Cost.ModelCatalogBillingMode": {
6165
+ "type": "string",
6166
+ "enum": [
6167
+ "per_unit",
6168
+ "per_request"
6169
+ ],
6170
+ "description": "How a catalog rate charges its measured quantity."
6171
+ },
6172
+ "Cost.ModelCatalogConditionalAdjustmentNotAppliedExclusion": {
6173
+ "type": "object",
6174
+ "required": [
6175
+ "reason"
6176
+ ],
6177
+ "properties": {
6178
+ "reason": {
6179
+ "type": "string",
6180
+ "enum": [
6181
+ "conditional_adjustment_not_applied"
6182
+ ]
6183
+ }
6184
+ },
6185
+ "unevaluatedProperties": {
6186
+ "not": {}
6187
+ },
6188
+ "allOf": [
6189
+ {
6190
+ "$ref": "#/components/schemas/Cost.ModelCatalogConditionalExclusionBase"
6191
+ }
6192
+ ]
6193
+ },
6194
+ "Cost.ModelCatalogConditionalExclusionBase": {
6195
+ "type": "object",
6196
+ "required": [
6197
+ "component",
6198
+ "usage_dimension",
6199
+ "unit",
6200
+ "source_billing_mode",
6201
+ "rate_evidence"
6202
+ ],
6203
+ "properties": {
6204
+ "component": {
6205
+ "type": "string"
6206
+ },
6207
+ "usage_dimension": {
6208
+ "type": "string"
6209
+ },
6210
+ "unit": {
6211
+ "type": "string"
6212
+ },
6213
+ "source_billing_mode": {
6214
+ "type": "string",
6215
+ "description": "Source-specific billing mode retained from the catalog or deterministically derived from the provider-defined meter."
6216
+ },
6217
+ "billing_mode": {
6218
+ "allOf": [
6219
+ {
6220
+ "$ref": "#/components/schemas/Cost.ModelCatalogBillingMode"
6221
+ }
6222
+ ],
6223
+ "description": "Normalized billing mode when qyl recognizes the conditional source meter; absent when the source meter has no supported normalization."
6224
+ },
6225
+ "rate_evidence": {
6226
+ "allOf": [
6227
+ {
6228
+ "$ref": "#/components/schemas/Cost.ModelCatalogPublishedReplacementEvidence"
6229
+ }
6230
+ ],
6231
+ "description": "The ordered source override that was not applied or was superseded."
6232
+ },
6233
+ "unit_price_usd": {
6234
+ "allOf": [
6235
+ {
6236
+ "$ref": "#/components/schemas/Common.CostUsd"
6237
+ }
6238
+ ],
6239
+ "description": "Catalog rate omitted from the estimate, when the source supplied one."
6240
+ }
6241
+ }
6242
+ },
6243
+ "Cost.ModelCatalogConditionalRateEvidence": {
6244
+ "type": "object",
6245
+ "required": [
6246
+ "source_order",
6247
+ "condition_usage_dimension",
6248
+ "exclusive_minimum_quantity",
6249
+ "observed_per_call_quantity"
6250
+ ],
6251
+ "properties": {
6252
+ "source_order": {
6253
+ "allOf": [
6254
+ {
6255
+ "$ref": "#/components/schemas/Cost.ModelCatalogSourceOrder"
6256
+ }
6257
+ ],
6258
+ "description": "One-based position of this override in the source response; later matching overrides win. Tier zero is reserved for the published base rate and is not a source override."
6259
+ },
6260
+ "condition_usage_dimension": {
6261
+ "type": "string",
6262
+ "description": "Observed per-call usage dimension evaluated by the source condition."
6263
+ },
6264
+ "exclusive_minimum_quantity": {
6265
+ "type": "number",
6266
+ "format": "double",
6267
+ "minimum": 0,
6268
+ "description": "Exclusive minimum quantity declared by the source condition."
6269
+ },
6270
+ "observed_per_call_quantity": {
6271
+ "type": "number",
6272
+ "format": "double",
6273
+ "minimum": 0,
6274
+ "description": "Observed per-call quantity compared with the exclusive minimum."
6275
+ }
6276
+ },
6277
+ "unevaluatedProperties": {
6278
+ "not": {}
6279
+ },
6280
+ "description": "Ordered evidence proving whether a conditional catalog override applied to an observed request quantity."
6281
+ },
6282
+ "Cost.ModelCatalogExclusionRateEvidence": {
6283
+ "oneOf": [
6284
+ {
6285
+ "$ref": "#/components/schemas/Cost.ModelCatalogBaseRateEvidence"
6286
+ },
6287
+ {
6288
+ "$ref": "#/components/schemas/Cost.ModelCatalogAdditiveSurchargeEvidence"
6289
+ },
6290
+ {
6291
+ "$ref": "#/components/schemas/Cost.ModelCatalogInclusiveReplacementEvidence"
6292
+ },
6293
+ {
6294
+ "$ref": "#/components/schemas/Cost.ModelCatalogPublishedReplacementEvidence"
6295
+ }
6296
+ ],
6297
+ "description": "Relation-specific evidence for a catalog rate omitted from a token-and-request estimate. The rate_relation literal selects the required target and ordered evidence shape."
6298
+ },
6299
+ "Cost.ModelCatalogInclusiveReplacementEvidence": {
6300
+ "type": "object",
6301
+ "required": [
6302
+ "rate_relation",
6303
+ "replaces_usage_dimension"
6304
+ ],
6305
+ "properties": {
6306
+ "rate_relation": {
6307
+ "type": "string",
6308
+ "enum": [
6309
+ "replaces_inclusive_base_rate"
6310
+ ]
6311
+ },
6312
+ "replaces_usage_dimension": {
6313
+ "type": "string",
6314
+ "description": "Inclusive base usage dimension replaced by this subtype rate."
6315
+ },
6316
+ "conditional_evidence": {
6317
+ "allOf": [
6318
+ {
6319
+ "$ref": "#/components/schemas/Cost.ModelCatalogConditionalRateEvidence"
6320
+ }
6321
+ ],
6322
+ "description": "Ordered evidence when a source override altered the selected subtype rate."
6323
+ }
6324
+ },
6325
+ "unevaluatedProperties": {
6326
+ "not": {}
6327
+ }
6328
+ },
6329
+ "Cost.ModelCatalogMatchKind": {
6330
+ "type": "string",
6331
+ "enum": [
6332
+ "exact_model_id",
6333
+ "exact_canonical_slug"
6334
+ ],
6335
+ "description": "Deterministic exact match used to resolve an observed model identity to a catalog record. Fuzzy, prefix, suffix, date, and alias matching are not permitted."
6336
+ },
6337
+ "Cost.ModelCatalogObservedIdentityBasis": {
6338
+ "type": "string",
6339
+ "enum": [
6340
+ "response_model",
6341
+ "request_model_fallback"
6342
+ ],
6343
+ "description": "Telemetry attribute used as the observed model identity for an exact catalog match."
6344
+ },
6345
+ "Cost.ModelCatalogOptionallyNormalizedBillingExclusionBase": {
6346
+ "type": "object",
6347
+ "properties": {
6348
+ "billing_mode": {
6349
+ "allOf": [
6350
+ {
6351
+ "$ref": "#/components/schemas/Cost.ModelCatalogBillingMode"
6352
+ }
6353
+ ],
6354
+ "description": "Normalized billing mode when qyl recognizes the source meter; absent when the source meter has no supported normalization."
6355
+ }
6356
+ },
6357
+ "allOf": [
6358
+ {
6359
+ "$ref": "#/components/schemas/Cost.ModelCatalogTokenEstimateExclusionBase"
6360
+ }
6361
+ ]
6362
+ },
6363
+ "Cost.ModelCatalogOutsideTokenScopeExclusion": {
6364
+ "type": "object",
6365
+ "required": [
6366
+ "reason"
6367
+ ],
6368
+ "properties": {
6369
+ "reason": {
6370
+ "type": "string",
6371
+ "enum": [
6372
+ "outside_token_estimate_scope"
6373
+ ]
6374
+ }
6375
+ },
6376
+ "unevaluatedProperties": {
6377
+ "not": {}
6378
+ },
6379
+ "allOf": [
6380
+ {
6381
+ "$ref": "#/components/schemas/Cost.ModelCatalogOptionallyNormalizedBillingExclusionBase"
6382
+ }
6383
+ ]
6384
+ },
6385
+ "Cost.ModelCatalogPriceProvenance": {
6386
+ "type": "object",
6387
+ "required": [
6388
+ "source_id",
6389
+ "source_endpoint",
6390
+ "snapshot_id",
6391
+ "price_model_id",
6392
+ "observed_model_id",
6393
+ "observed_model_identity_basis",
6394
+ "model_match_kind",
6395
+ "retrieved_at",
6396
+ "price_semantics"
6397
+ ],
6398
+ "properties": {
6399
+ "source_id": {
6400
+ "type": "string",
6401
+ "description": "Unique stable identifier of the configured catalog source."
6402
+ },
6403
+ "source_endpoint": {
6404
+ "allOf": [
6405
+ {
6406
+ "$ref": "#/components/schemas/Common.UrlString"
6407
+ }
6408
+ ],
6409
+ "description": "Configured API endpoint from which the catalog was retrieved."
6410
+ },
6411
+ "snapshot_id": {
6412
+ "type": "string",
6413
+ "description": "Content-addressed identifier of the exact catalog snapshot used for this estimate."
6414
+ },
6415
+ "price_model_id": {
6416
+ "type": "string",
6417
+ "description": "Exact model identifier selected from the source catalog."
6418
+ },
6419
+ "observed_model_id": {
6420
+ "type": "string",
6421
+ "description": "Exact observed telemetry value compared with the selected catalog record."
6422
+ },
6423
+ "observed_model_identity_basis": {
6424
+ "$ref": "#/components/schemas/Cost.ModelCatalogObservedIdentityBasis"
6425
+ },
6426
+ "model_match_kind": {
6427
+ "$ref": "#/components/schemas/Cost.ModelCatalogMatchKind"
6428
+ },
6429
+ "retrieved_at": {
6430
+ "type": "string",
6431
+ "format": "date-time",
6432
+ "description": "UTC time when the current catalog snapshot used for this counterfactual estimate was retrieved. For historical audit periods, this is not evidence of the price that applied historically."
6433
+ },
6434
+ "price_semantics": {
6435
+ "$ref": "#/components/schemas/Cost.ModelCatalogPriceSemantics"
6436
+ }
6437
+ },
6438
+ "unevaluatedProperties": {
6439
+ "not": {}
6440
+ },
6441
+ "description": "Provenance for the live catalog rates used to estimate one cluster."
6442
+ },
6443
+ "Cost.ModelCatalogPriceSemantics": {
6444
+ "type": "string",
6445
+ "enum": [
6446
+ "minimum_available_rate",
6447
+ "published_rate"
6448
+ ],
6449
+ "description": "How a live catalog rate was selected when estimating cluster cost."
6450
+ },
6451
+ "Cost.ModelCatalogPublishedReplacementEvidence": {
6452
+ "type": "object",
6453
+ "required": [
6454
+ "rate_relation",
6455
+ "replaces_usage_dimension",
6456
+ "conditional_evidence"
6457
+ ],
6458
+ "properties": {
6459
+ "rate_relation": {
6460
+ "type": "string",
6461
+ "enum": [
6462
+ "replaces_published_rate"
6463
+ ]
6464
+ },
6465
+ "replaces_usage_dimension": {
6466
+ "type": "string",
6467
+ "description": "Published usage dimension whose prior base, surcharge, or subtype rate was replaced."
6468
+ },
6469
+ "conditional_evidence": {
6470
+ "$ref": "#/components/schemas/Cost.ModelCatalogConditionalRateEvidence"
6471
+ }
6472
+ },
6473
+ "unevaluatedProperties": {
6474
+ "not": {}
6475
+ }
6476
+ },
6477
+ "Cost.ModelCatalogRateRelation": {
6478
+ "type": "string",
6479
+ "enum": [
6480
+ "base_rate",
6481
+ "additive_surcharge",
6482
+ "replaces_inclusive_base_rate",
6483
+ "replaces_published_rate"
6484
+ ],
6485
+ "description": "How a selected catalog rate relates to the source's published base rate for the same component."
6486
+ },
6487
+ "Cost.ModelCatalogSource": {
6488
+ "type": "object",
6489
+ "required": [
6490
+ "source_id",
6491
+ "priority",
6492
+ "status",
6493
+ "source_endpoint"
6494
+ ],
6495
+ "properties": {
6496
+ "source_id": {
6497
+ "type": "string",
6498
+ "description": "Unique stable identifier of the configured catalog source."
6499
+ },
6500
+ "priority": {
6501
+ "allOf": [
6502
+ {
6503
+ "$ref": "#/components/schemas/Common.Count"
6504
+ }
6505
+ ],
6506
+ "description": "Configured source priority used for deterministic selection when multiple current catalogs match. Zero is highest priority; lower values win."
6507
+ },
6508
+ "status": {
6509
+ "$ref": "#/components/schemas/Cost.ModelCatalogSourceStatus"
6510
+ },
6511
+ "price_semantics": {
6512
+ "allOf": [
6513
+ {
6514
+ "$ref": "#/components/schemas/Cost.ModelCatalogPriceSemantics"
6515
+ }
6516
+ ],
6517
+ "description": "Rate-selection semantics published by this source's active snapshot."
6518
+ },
6519
+ "source_endpoint": {
6520
+ "allOf": [
6521
+ {
6522
+ "$ref": "#/components/schemas/Common.UrlString"
6523
+ }
6524
+ ],
6525
+ "description": "Configured API endpoint used to fetch the live model catalog."
6526
+ },
6527
+ "last_attempt_at": {
6528
+ "type": "string",
6529
+ "format": "date-time",
6530
+ "description": "UTC time of the latest fetch attempt."
6531
+ },
6532
+ "last_verified_at": {
6533
+ "type": "string",
6534
+ "format": "date-time",
6535
+ "description": "UTC time when the source was last verified successfully, including a verification that retained unchanged content."
6536
+ },
6537
+ "retrieved_at": {
6538
+ "type": "string",
6539
+ "format": "date-time",
6540
+ "description": "UTC time when the content of the currently retained catalog snapshot was retrieved."
6541
+ },
6542
+ "active_snapshot_id": {
6543
+ "type": "string",
6544
+ "description": "Content-addressed identifier of the catalog snapshot currently used for estimates."
6545
+ },
6546
+ "model_count": {
6547
+ "allOf": [
6548
+ {
6549
+ "$ref": "#/components/schemas/Common.Count"
6550
+ }
6551
+ ],
6552
+ "description": "Number of model records in the active catalog snapshot."
6553
+ },
6554
+ "failure_category": {
6555
+ "type": "string",
6556
+ "description": "Stable, non-sensitive failure category for the last attempt."
6557
+ }
6558
+ },
6559
+ "unevaluatedProperties": {
6560
+ "not": {}
6561
+ },
6562
+ "description": "Synchronization metadata for one configurable live model catalog source."
6563
+ },
6564
+ "Cost.ModelCatalogSourceOrder": {
6565
+ "type": "integer",
6566
+ "format": "int64",
6567
+ "minimum": 1,
6568
+ "description": "One-based position of a conditional override in its source response."
6569
+ },
6570
+ "Cost.ModelCatalogSourceStatus": {
6571
+ "type": "string",
6572
+ "enum": [
6573
+ "unconfigured",
6574
+ "pending",
6575
+ "current",
6576
+ "stale",
6577
+ "sync_failed"
6578
+ ],
6579
+ "description": "Current synchronization state for a configured live model catalog."
6580
+ },
6581
+ "Cost.ModelCatalogSupersededOverrideExclusion": {
6582
+ "type": "object",
6583
+ "required": [
6584
+ "reason"
6585
+ ],
6586
+ "properties": {
6587
+ "reason": {
6588
+ "type": "string",
6589
+ "enum": [
6590
+ "superseded_by_later_override"
6591
+ ]
6592
+ }
6593
+ },
6594
+ "unevaluatedProperties": {
6595
+ "not": {}
6596
+ },
6597
+ "allOf": [
6598
+ {
6599
+ "$ref": "#/components/schemas/Cost.ModelCatalogConditionalExclusionBase"
6600
+ }
6601
+ ]
6602
+ },
6603
+ "Cost.ModelCatalogSupportedBillingExclusionBase": {
6604
+ "type": "object",
6605
+ "required": [
6606
+ "billing_mode"
5353
6607
  ],
5354
- "description": "Evaluation state of a promotion gate."
6608
+ "properties": {
6609
+ "billing_mode": {
6610
+ "$ref": "#/components/schemas/Cost.ModelCatalogBillingMode"
6611
+ }
6612
+ },
6613
+ "allOf": [
6614
+ {
6615
+ "$ref": "#/components/schemas/Cost.ModelCatalogTokenEstimateExclusionBase"
6616
+ }
6617
+ ]
5355
6618
  },
5356
- "Cost.GenAiEtlResidualPath": {
5357
- "type": "string",
5358
- "enum": [
5359
- "frontier_model",
5360
- "human_review",
5361
- "retry",
5362
- "degraded_response",
5363
- "none",
5364
- "undetermined"
6619
+ "Cost.ModelCatalogTokenAdditiveSurchargeComponent": {
6620
+ "type": "object",
6621
+ "required": [
6622
+ "rate_relation"
5365
6623
  ],
5366
- "description": "Fallback used for requests outside a promoted replacement's safe coverage."
6624
+ "properties": {
6625
+ "rate_relation": {
6626
+ "type": "string",
6627
+ "enum": [
6628
+ "additive_surcharge"
6629
+ ]
6630
+ }
6631
+ },
6632
+ "unevaluatedProperties": {
6633
+ "not": {}
6634
+ },
6635
+ "allOf": [
6636
+ {
6637
+ "$ref": "#/components/schemas/Cost.ModelCatalogTokenEstimateComponentBase"
6638
+ }
6639
+ ]
5367
6640
  },
5368
- "Cost.GenAiEtlTaskFamily": {
5369
- "type": "string",
5370
- "enum": [
5371
- "open_reasoning_generation",
5372
- "classification",
5373
- "sequence_labeling",
5374
- "structured_extraction",
5375
- "retrieval_entity_resolution",
5376
- "similarity_clustering",
5377
- "normalization_transformation",
5378
- "numeric_analytical",
5379
- "unknown"
6641
+ "Cost.ModelCatalogTokenBaseRateComponent": {
6642
+ "type": "object",
6643
+ "required": [
6644
+ "rate_relation"
5380
6645
  ],
5381
- "description": "Task family inferred for a repeated GenAI workflow cluster."
6646
+ "properties": {
6647
+ "rate_relation": {
6648
+ "type": "string",
6649
+ "enum": [
6650
+ "base_rate"
6651
+ ]
6652
+ }
6653
+ },
6654
+ "unevaluatedProperties": {
6655
+ "not": {}
6656
+ },
6657
+ "allOf": [
6658
+ {
6659
+ "$ref": "#/components/schemas/Cost.ModelCatalogTokenEstimateComponentBase"
6660
+ }
6661
+ ]
5382
6662
  },
5383
- "Cost.GenAiEtlValidationMetric": {
6663
+ "Cost.ModelCatalogTokenConditionalOverrideRateComponent": {
6664
+ "type": "object",
6665
+ "required": [
6666
+ "rate_relation",
6667
+ "replaces_usage_dimension",
6668
+ "conditional_evidence"
6669
+ ],
6670
+ "properties": {
6671
+ "rate_relation": {
6672
+ "type": "string",
6673
+ "enum": [
6674
+ "replaces_published_rate"
6675
+ ]
6676
+ },
6677
+ "replaces_usage_dimension": {
6678
+ "type": "string",
6679
+ "description": "Published usage dimension whose prior base, surcharge, or subtype rate was replaced."
6680
+ },
6681
+ "conditional_evidence": {
6682
+ "$ref": "#/components/schemas/Cost.ModelCatalogConditionalRateEvidence"
6683
+ }
6684
+ },
6685
+ "unevaluatedProperties": {
6686
+ "not": {}
6687
+ },
6688
+ "allOf": [
6689
+ {
6690
+ "$ref": "#/components/schemas/Cost.ModelCatalogTokenEstimateComponentBase"
6691
+ }
6692
+ ]
6693
+ },
6694
+ "Cost.ModelCatalogTokenEstimateComponent": {
6695
+ "oneOf": [
6696
+ {
6697
+ "$ref": "#/components/schemas/Cost.ModelCatalogTokenBaseRateComponent"
6698
+ },
6699
+ {
6700
+ "$ref": "#/components/schemas/Cost.ModelCatalogTokenAdditiveSurchargeComponent"
6701
+ },
6702
+ {
6703
+ "$ref": "#/components/schemas/Cost.ModelCatalogTokenInclusiveReplacementRateComponent"
6704
+ },
6705
+ {
6706
+ "$ref": "#/components/schemas/Cost.ModelCatalogTokenConditionalOverrideRateComponent"
6707
+ }
6708
+ ],
6709
+ "description": "One evidenced token or request component contributing to a current-catalog estimate. The rate_relation literal selects the required evidence shape."
6710
+ },
6711
+ "Cost.ModelCatalogTokenEstimateComponentBase": {
6712
+ "type": "object",
6713
+ "required": [
6714
+ "component",
6715
+ "usage_dimension",
6716
+ "unit",
6717
+ "source_billing_mode",
6718
+ "billing_mode",
6719
+ "quantity",
6720
+ "unit_price_usd",
6721
+ "estimated_cost_usd"
6722
+ ],
6723
+ "properties": {
6724
+ "component": {
6725
+ "type": "string",
6726
+ "description": "Source-defined pricing component, such as prompt, completion, request, cache read, cache write, or internal reasoning."
6727
+ },
6728
+ "usage_dimension": {
6729
+ "type": "string",
6730
+ "description": "Qyl-observed usage dimension to which this rate was applied, such as input_tokens or output_tokens."
6731
+ },
6732
+ "unit": {
6733
+ "type": "string",
6734
+ "description": "Source-declared unit represented by the rate."
6735
+ },
6736
+ "source_billing_mode": {
6737
+ "type": "string",
6738
+ "description": "Source-specific billing mode retained from the catalog or deterministically derived from the provider-defined meter."
6739
+ },
6740
+ "billing_mode": {
6741
+ "$ref": "#/components/schemas/Cost.ModelCatalogBillingMode"
6742
+ },
6743
+ "quantity": {
6744
+ "type": "number",
6745
+ "format": "double",
6746
+ "minimum": 0,
6747
+ "description": "Measured quantity to which the catalog unit price was applied."
6748
+ },
6749
+ "unit_price_usd": {
6750
+ "allOf": [
6751
+ {
6752
+ "$ref": "#/components/schemas/Common.CostUsd"
6753
+ }
6754
+ ],
6755
+ "description": "Catalog price in USD per source-defined unit."
6756
+ },
6757
+ "estimated_cost_usd": {
6758
+ "allOf": [
6759
+ {
6760
+ "$ref": "#/components/schemas/Common.CostUsd"
6761
+ }
6762
+ ],
6763
+ "description": "Estimated USD contribution of this component for the reported cluster period."
6764
+ }
6765
+ },
6766
+ "description": "Fields shared by every included token or request pricing component."
6767
+ },
6768
+ "Cost.ModelCatalogTokenEstimateExclusion": {
6769
+ "oneOf": [
6770
+ {
6771
+ "$ref": "#/components/schemas/Cost.ModelCatalogUsageNotObservedExclusion"
6772
+ },
6773
+ {
6774
+ "$ref": "#/components/schemas/Cost.ModelCatalogConditionalAdjustmentNotAppliedExclusion"
6775
+ },
6776
+ {
6777
+ "$ref": "#/components/schemas/Cost.ModelCatalogSupersededOverrideExclusion"
6778
+ },
6779
+ {
6780
+ "$ref": "#/components/schemas/Cost.ModelCatalogOutsideTokenScopeExclusion"
6781
+ },
6782
+ {
6783
+ "$ref": "#/components/schemas/Cost.ModelCatalogUnsupportedUsageExclusion"
6784
+ },
6785
+ {
6786
+ "$ref": "#/components/schemas/Cost.ModelCatalogUnsupportedBillingExclusion"
6787
+ }
6788
+ ],
6789
+ "description": "Auditable catalog meter or conditional adjustment excluded from a token-and-request estimate. The reason literal selects the required evidence shape."
6790
+ },
6791
+ "Cost.ModelCatalogTokenEstimateExclusionBase": {
6792
+ "type": "object",
6793
+ "required": [
6794
+ "component",
6795
+ "usage_dimension",
6796
+ "unit",
6797
+ "source_billing_mode",
6798
+ "rate_evidence"
6799
+ ],
6800
+ "properties": {
6801
+ "component": {
6802
+ "type": "string"
6803
+ },
6804
+ "usage_dimension": {
6805
+ "type": "string"
6806
+ },
6807
+ "unit": {
6808
+ "type": "string"
6809
+ },
6810
+ "source_billing_mode": {
6811
+ "type": "string",
6812
+ "description": "Source-specific billing mode retained from the catalog or deterministically derived from the provider-defined meter, including unsupported modes."
6813
+ },
6814
+ "rate_evidence": {
6815
+ "allOf": [
6816
+ {
6817
+ "$ref": "#/components/schemas/Cost.ModelCatalogExclusionRateEvidence"
6818
+ }
6819
+ ],
6820
+ "description": "Relation, replacement target, and ordered override evidence for the omitted rate."
6821
+ },
6822
+ "unit_price_usd": {
6823
+ "allOf": [
6824
+ {
6825
+ "$ref": "#/components/schemas/Common.CostUsd"
6826
+ }
6827
+ ],
6828
+ "description": "Catalog rate omitted from the estimate, when the source supplied one."
6829
+ }
6830
+ },
6831
+ "description": "Fields shared by every catalog meter or conditional adjustment excluded from a token-and-request estimate."
6832
+ },
6833
+ "Cost.ModelCatalogTokenExclusionReason": {
5384
6834
  "type": "string",
5385
6835
  "enum": [
5386
- "accuracy",
5387
- "macro_f1",
5388
- "span_f1",
5389
- "field_exact_match",
5390
- "schema_validity",
5391
- "match_accuracy",
5392
- "recall_at_k",
5393
- "mean_reciprocal_rank",
5394
- "exact_match",
5395
- "numeric_tolerance",
5396
- "human_preference",
5397
- "task_success",
5398
- "unavailable"
6836
+ "usage_not_observed",
6837
+ "conditional_adjustment_not_applied",
6838
+ "superseded_by_later_override",
6839
+ "outside_token_estimate_scope",
6840
+ "unsupported_usage_dimension",
6841
+ "unsupported_billing_mode"
6842
+ ],
6843
+ "description": "Why a catalog meter or conditional adjustment was not included in a token-and-request estimate."
6844
+ },
6845
+ "Cost.ModelCatalogTokenInclusiveReplacementRateComponent": {
6846
+ "type": "object",
6847
+ "required": [
6848
+ "rate_relation",
6849
+ "replaces_usage_dimension"
6850
+ ],
6851
+ "properties": {
6852
+ "rate_relation": {
6853
+ "type": "string",
6854
+ "enum": [
6855
+ "replaces_inclusive_base_rate"
6856
+ ]
6857
+ },
6858
+ "replaces_usage_dimension": {
6859
+ "type": "string",
6860
+ "description": "Inclusive base usage dimension replaced by this subtype rate."
6861
+ },
6862
+ "conditional_evidence": {
6863
+ "allOf": [
6864
+ {
6865
+ "$ref": "#/components/schemas/Cost.ModelCatalogConditionalRateEvidence"
6866
+ }
6867
+ ],
6868
+ "description": "Ordered override evidence when the source conditionally altered this subtype rate."
6869
+ }
6870
+ },
6871
+ "unevaluatedProperties": {
6872
+ "not": {}
6873
+ },
6874
+ "allOf": [
6875
+ {
6876
+ "$ref": "#/components/schemas/Cost.ModelCatalogTokenEstimateComponentBase"
6877
+ }
6878
+ ]
6879
+ },
6880
+ "Cost.ModelCatalogUnsupportedBillingExclusion": {
6881
+ "type": "object",
6882
+ "required": [
6883
+ "reason"
6884
+ ],
6885
+ "properties": {
6886
+ "billing_mode": {
6887
+ "allOf": [
6888
+ {
6889
+ "$ref": "#/components/schemas/Cost.ModelCatalogBillingMode"
6890
+ }
6891
+ ],
6892
+ "description": "Normalized billing mode when the source mode has a partial known mapping; absent when no supported normalization exists."
6893
+ },
6894
+ "reason": {
6895
+ "type": "string",
6896
+ "enum": [
6897
+ "unsupported_billing_mode"
6898
+ ]
6899
+ }
6900
+ },
6901
+ "unevaluatedProperties": {
6902
+ "not": {}
6903
+ },
6904
+ "allOf": [
6905
+ {
6906
+ "$ref": "#/components/schemas/Cost.ModelCatalogTokenEstimateExclusionBase"
6907
+ }
6908
+ ]
6909
+ },
6910
+ "Cost.ModelCatalogUnsupportedUsageExclusion": {
6911
+ "type": "object",
6912
+ "required": [
6913
+ "reason"
5399
6914
  ],
5400
- "description": "Task-specific metric that can falsify a proposed replacement."
6915
+ "properties": {
6916
+ "reason": {
6917
+ "type": "string",
6918
+ "enum": [
6919
+ "unsupported_usage_dimension"
6920
+ ]
6921
+ }
6922
+ },
6923
+ "unevaluatedProperties": {
6924
+ "not": {}
6925
+ },
6926
+ "allOf": [
6927
+ {
6928
+ "$ref": "#/components/schemas/Cost.ModelCatalogOptionallyNormalizedBillingExclusionBase"
6929
+ }
6930
+ ]
6931
+ },
6932
+ "Cost.ModelCatalogUsageNotObservedExclusion": {
6933
+ "type": "object",
6934
+ "required": [
6935
+ "reason"
6936
+ ],
6937
+ "properties": {
6938
+ "reason": {
6939
+ "type": "string",
6940
+ "enum": [
6941
+ "usage_not_observed"
6942
+ ]
6943
+ }
6944
+ },
6945
+ "unevaluatedProperties": {
6946
+ "not": {}
6947
+ },
6948
+ "allOf": [
6949
+ {
6950
+ "$ref": "#/components/schemas/Cost.ModelCatalogSupportedBillingExclusionBase"
6951
+ }
6952
+ ]
5401
6953
  },
5402
- "Cost.ProviderCostAttribution": {
6954
+ "Cost.ProviderBillingAttribution": {
5403
6955
  "type": "string",
5404
6956
  "enum": [
5405
6957
  "provider_model_period",
5406
6958
  "provider_period",
5407
- "scenario",
5408
6959
  "unavailable"
5409
6960
  ],
5410
- "description": "Granularity at which a cost value can be attributed to telemetry."
6961
+ "description": "Granularity at which official provider-billed cost can be attributed to telemetry."
5411
6962
  },
5412
- "Cost.ProviderCostSource": {
6963
+ "Cost.ProviderBillingSource": {
5413
6964
  "type": "object",
5414
6965
  "required": [
5415
6966
  "provider",
5416
- "kind",
5417
6967
  "status",
5418
6968
  "source_endpoint",
5419
6969
  "attribution"
@@ -5423,21 +6973,13 @@
5423
6973
  "type": "string",
5424
6974
  "description": "Canonical GenAI provider or cloud billing system name."
5425
6975
  },
5426
- "kind": {
5427
- "allOf": [
5428
- {
5429
- "$ref": "#/components/schemas/Cost.ProviderCostSourceKind"
5430
- }
5431
- ],
5432
- "description": "Whether the API returned billed cost or a public catalog price."
5433
- },
5434
6976
  "status": {
5435
6977
  "allOf": [
5436
6978
  {
5437
- "$ref": "#/components/schemas/Cost.ProviderCostSourceStatus"
6979
+ "$ref": "#/components/schemas/Cost.ProviderBillingSourceStatus"
5438
6980
  }
5439
6981
  ],
5440
- "description": "Current synchronization and attribution state."
6982
+ "description": "Current billing synchronization state."
5441
6983
  },
5442
6984
  "source_endpoint": {
5443
6985
  "allOf": [
@@ -5450,7 +6992,7 @@
5450
6992
  "attribution": {
5451
6993
  "allOf": [
5452
6994
  {
5453
- "$ref": "#/components/schemas/Cost.ProviderCostAttribution"
6995
+ "$ref": "#/components/schemas/Cost.ProviderBillingAttribution"
5454
6996
  }
5455
6997
  ],
5456
6998
  "description": "Attribution granularity supported by this source response."
@@ -5468,12 +7010,12 @@
5468
7010
  "period_start": {
5469
7011
  "type": "string",
5470
7012
  "format": "date-time",
5471
- "description": "Start of the provider billing or catalog validity period."
7013
+ "description": "Start of the provider billing period."
5472
7014
  },
5473
7015
  "period_end": {
5474
7016
  "type": "string",
5475
7017
  "format": "date-time",
5476
- "description": "End of the provider billing or catalog validity period."
7018
+ "description": "End of the provider billing period."
5477
7019
  },
5478
7020
  "currency_code": {
5479
7021
  "type": "string",
@@ -5496,27 +7038,21 @@
5496
7038
  "description": "Stable, non-sensitive failure category for the last attempt."
5497
7039
  }
5498
7040
  },
5499
- "description": "Provenance for cost data fetched directly from a provider-owned API."
5500
- },
5501
- "Cost.ProviderCostSourceKind": {
5502
- "type": "string",
5503
- "enum": [
5504
- "actual_billed_cost",
5505
- "official_public_catalog"
5506
- ],
5507
- "description": "How a provider-owned API supplied a cost value."
7041
+ "unevaluatedProperties": {
7042
+ "not": {}
7043
+ },
7044
+ "description": "Provenance for billed cost data fetched directly from a provider-owned API."
5508
7045
  },
5509
- "Cost.ProviderCostSourceStatus": {
7046
+ "Cost.ProviderBillingSourceStatus": {
5510
7047
  "type": "string",
5511
7048
  "enum": [
5512
7049
  "unconfigured",
5513
7050
  "pending",
5514
7051
  "current",
5515
7052
  "stale",
5516
- "sync_failed",
5517
- "not_attributable"
7053
+ "sync_failed"
5518
7054
  ],
5519
- "description": "Current synchronization state for a provider-owned cost source."
7055
+ "description": "Current synchronization state for a provider-owned billing source."
5520
7056
  },
5521
7057
  "Domains.Observe.Session.DeviceType": {
5522
7058
  "type": "string",
@@ -5556,6 +7092,9 @@
5556
7092
  "description": "Previous session ID (for session continuity)"
5557
7093
  }
5558
7094
  },
7095
+ "unevaluatedProperties": {
7096
+ "not": {}
7097
+ },
5559
7098
  "description": "Session span/event attributes"
5560
7099
  },
5561
7100
  "Domains.Observe.Session.SessionClientInfo": {
@@ -5598,6 +7137,9 @@
5598
7137
  "description": "Browser version"
5599
7138
  }
5600
7139
  },
7140
+ "unevaluatedProperties": {
7141
+ "not": {}
7142
+ },
5601
7143
  "description": "Session client information"
5602
7144
  },
5603
7145
  "Domains.Observe.Session.SessionEntity": {
@@ -5704,6 +7246,9 @@
5704
7246
  "description": "GenAI usage summary"
5705
7247
  }
5706
7248
  },
7249
+ "unevaluatedProperties": {
7250
+ "not": {}
7251
+ },
5707
7252
  "description": "Complete session entity with aggregated data",
5708
7253
  "x-csharp-type": "SessionEntity"
5709
7254
  },
@@ -5745,6 +7290,9 @@
5745
7290
  "description": "Event domain"
5746
7291
  }
5747
7292
  },
7293
+ "unevaluatedProperties": {
7294
+ "not": {}
7295
+ },
5748
7296
  "description": "Session lifecycle event"
5749
7297
  },
5750
7298
  "Domains.Observe.Session.SessionEventName": {
@@ -5802,6 +7350,9 @@
5802
7350
  "description": "Providers used in session"
5803
7351
  }
5804
7352
  },
7353
+ "unevaluatedProperties": {
7354
+ "not": {}
7355
+ },
5805
7356
  "description": "Session GenAI usage summary"
5806
7357
  },
5807
7358
  "Domains.Observe.Session.SessionGeoInfo": {
@@ -5832,6 +7383,9 @@
5832
7383
  "description": "Timezone"
5833
7384
  }
5834
7385
  },
7386
+ "unevaluatedProperties": {
7387
+ "not": {}
7388
+ },
5835
7389
  "description": "Session geographic information"
5836
7390
  },
5837
7391
  "Domains.Observe.Session.SessionState": {
@@ -5902,6 +7456,9 @@
5902
7456
  "description": "Bounce rate (single-page sessions)"
5903
7457
  }
5904
7458
  },
7459
+ "unevaluatedProperties": {
7460
+ "not": {}
7461
+ },
5905
7462
  "description": "Aggregated session statistics"
5906
7463
  },
5907
7464
  "Health.HealthCheckEntry": {
@@ -5922,6 +7479,9 @@
5922
7479
  "format": "double"
5923
7480
  }
5924
7481
  },
7482
+ "unevaluatedProperties": {
7483
+ "not": {}
7484
+ },
5925
7485
  "description": "One named health-check result."
5926
7486
  },
5927
7487
  "Health.HealthReport": {
@@ -5946,6 +7506,9 @@
5946
7506
  }
5947
7507
  }
5948
7508
  },
7509
+ "unevaluatedProperties": {
7510
+ "not": {}
7511
+ },
5949
7512
  "description": "Readiness or liveness report returned by /health and /alive."
5950
7513
  },
5951
7514
  "Health.HealthStatus": {
@@ -5968,6 +7531,9 @@
5968
7531
  "default": 24
5969
7532
  }
5970
7533
  },
7534
+ "unevaluatedProperties": {
7535
+ "not": {}
7536
+ },
5971
7537
  "description": "Input for display_mcp_dashboard."
5972
7538
  },
5973
7539
  "Mcp.Tools.DisplayMcpDashboardOutput": {
@@ -5980,6 +7546,9 @@
5980
7546
  "$ref": "#/components/schemas/Mcp.Tools.McpDashboardStats"
5981
7547
  }
5982
7548
  },
7549
+ "unevaluatedProperties": {
7550
+ "not": {}
7551
+ },
5983
7552
  "description": "Structured output for display_mcp_dashboard."
5984
7553
  },
5985
7554
  "Mcp.Tools.DisplayTracesInput": {
@@ -5999,6 +7568,9 @@
5999
7568
  "default": 20
6000
7569
  }
6001
7570
  },
7571
+ "unevaluatedProperties": {
7572
+ "not": {}
7573
+ },
6002
7574
  "description": "Input for display_traces."
6003
7575
  },
6004
7576
  "Mcp.Tools.DisplayTracesOutput": {
@@ -6021,6 +7593,9 @@
6021
7593
  "$ref": "#/components/schemas/Mcp.Tools.McpDataMode"
6022
7594
  }
6023
7595
  },
7596
+ "unevaluatedProperties": {
7597
+ "not": {}
7598
+ },
6024
7599
  "description": "Structured output for display_traces."
6025
7600
  },
6026
7601
  "Mcp.Tools.FetchTelemetryInput": {
@@ -6060,6 +7635,9 @@
6060
7635
  "maximum": 168
6061
7636
  }
6062
7637
  },
7638
+ "unevaluatedProperties": {
7639
+ "not": {}
7640
+ },
6063
7641
  "description": "Input for the app-only fetch_telemetry tool."
6064
7642
  },
6065
7643
  "Mcp.Tools.FetchTelemetryOutput": {
@@ -6090,6 +7668,9 @@
6090
7668
  "$ref": "#/components/schemas/Mcp.Tools.McpDataMode"
6091
7669
  }
6092
7670
  },
7671
+ "unevaluatedProperties": {
7672
+ "not": {}
7673
+ },
6093
7674
  "description": "Structured output for the app-only fetch_telemetry tool."
6094
7675
  },
6095
7676
  "Mcp.Tools.FetchTelemetryView": {
@@ -6112,6 +7693,9 @@
6112
7693
  "$ref": "#/components/schemas/Common.TraceId"
6113
7694
  }
6114
7695
  },
7696
+ "unevaluatedProperties": {
7697
+ "not": {}
7698
+ },
6115
7699
  "description": "Input for get_trace."
6116
7700
  },
6117
7701
  "Mcp.Tools.GetTraceOutput": {
@@ -6128,6 +7712,9 @@
6128
7712
  "$ref": "#/components/schemas/Mcp.Tools.McpDataMode"
6129
7713
  }
6130
7714
  },
7715
+ "unevaluatedProperties": {
7716
+ "not": {}
7717
+ },
6131
7718
  "description": "Structured output for get_trace."
6132
7719
  },
6133
7720
  "Mcp.Tools.ListSessionsInput": {
@@ -6144,6 +7731,9 @@
6144
7731
  "type": "boolean"
6145
7732
  }
6146
7733
  },
7734
+ "unevaluatedProperties": {
7735
+ "not": {}
7736
+ },
6147
7737
  "description": "Input for list_sessions."
6148
7738
  },
6149
7739
  "Mcp.Tools.ListSessionsOutput": {
@@ -6163,6 +7753,9 @@
6163
7753
  "$ref": "#/components/schemas/Mcp.Tools.McpDataMode"
6164
7754
  }
6165
7755
  },
7756
+ "unevaluatedProperties": {
7757
+ "not": {}
7758
+ },
6166
7759
  "description": "Structured output for list_sessions."
6167
7760
  },
6168
7761
  "Mcp.Tools.ListTracesInput": {
@@ -6176,6 +7769,9 @@
6176
7769
  "default": 20
6177
7770
  }
6178
7771
  },
7772
+ "unevaluatedProperties": {
7773
+ "not": {}
7774
+ },
6179
7775
  "description": "Input for list_traces."
6180
7776
  },
6181
7777
  "Mcp.Tools.ListTracesOutput": {
@@ -6195,6 +7791,9 @@
6195
7791
  "$ref": "#/components/schemas/Mcp.Tools.McpDataMode"
6196
7792
  }
6197
7793
  },
7794
+ "unevaluatedProperties": {
7795
+ "not": {}
7796
+ },
6198
7797
  "description": "Structured output for list_traces."
6199
7798
  },
6200
7799
  "Mcp.Tools.McpDashboardBucket": {
@@ -6219,6 +7818,9 @@
6219
7818
  "format": "int32",
6220
7819
  "minimum": 0
6221
7820
  }
7821
+ },
7822
+ "unevaluatedProperties": {
7823
+ "not": {}
6222
7824
  }
6223
7825
  },
6224
7826
  "Mcp.Tools.McpDashboardStats": {
@@ -6284,6 +7886,9 @@
6284
7886
  "$ref": "#/components/schemas/Mcp.Tools.McpDataMode"
6285
7887
  }
6286
7888
  },
7889
+ "unevaluatedProperties": {
7890
+ "not": {}
7891
+ },
6287
7892
  "description": "Aggregate MCP traffic statistics shown by qyl.mcp."
6288
7893
  },
6289
7894
  "Mcp.Tools.McpDashboardTotals": {
@@ -6310,6 +7915,9 @@
6310
7915
  "minimum": 0,
6311
7916
  "maximum": 1
6312
7917
  }
7918
+ },
7919
+ "unevaluatedProperties": {
7920
+ "not": {}
6313
7921
  }
6314
7922
  },
6315
7923
  "Mcp.Tools.McpDashboardWindow": {
@@ -6333,6 +7941,9 @@
6333
7941
  "format": "double",
6334
7942
  "minimum": 0
6335
7943
  }
7944
+ },
7945
+ "unevaluatedProperties": {
7946
+ "not": {}
6336
7947
  }
6337
7948
  },
6338
7949
  "Mcp.Tools.McpDataMode": {
@@ -6358,6 +7969,9 @@
6358
7969
  "format": "int32",
6359
7970
  "minimum": 0
6360
7971
  }
7972
+ },
7973
+ "unevaluatedProperties": {
7974
+ "not": {}
6361
7975
  }
6362
7976
  },
6363
7977
  "Mcp.Tools.McpToolStats": {
@@ -6400,6 +8014,9 @@
6400
8014
  "format": "double",
6401
8015
  "minimum": 0
6402
8016
  }
8017
+ },
8018
+ "unevaluatedProperties": {
8019
+ "not": {}
6403
8020
  }
6404
8021
  },
6405
8022
  "Mcp.Tools.SearchLogsInput": {
@@ -6428,6 +8045,9 @@
6428
8045
  "default": 50
6429
8046
  }
6430
8047
  },
8048
+ "unevaluatedProperties": {
8049
+ "not": {}
8050
+ },
6431
8051
  "description": "Input for search_logs."
6432
8052
  },
6433
8053
  "Mcp.Tools.SearchLogsOutput": {
@@ -6447,12 +8067,14 @@
6447
8067
  "$ref": "#/components/schemas/Mcp.Tools.McpDataMode"
6448
8068
  }
6449
8069
  },
8070
+ "unevaluatedProperties": {
8071
+ "not": {}
8072
+ },
6450
8073
  "description": "Structured output for search_logs."
6451
8074
  },
6452
8075
  "OTel.Enums.AggregationTemporality": {
6453
8076
  "type": "number",
6454
8077
  "enum": [
6455
- 0,
6456
8078
  1,
6457
8079
  2
6458
8080
  ],
@@ -6638,177 +8260,576 @@
6638
8260
  ],
6639
8261
  "description": "Telemetry SDK language"
6640
8262
  },
6641
- "OTel.Logs.LogBody": {
8263
+ "OTel.Logs.LogBody": {
8264
+ "type": "object",
8265
+ "oneOf": [
8266
+ {
8267
+ "$ref": "#/components/schemas/OTel.Logs.LogBodyString"
8268
+ },
8269
+ {
8270
+ "$ref": "#/components/schemas/OTel.Logs.LogBodyKvList"
8271
+ },
8272
+ {
8273
+ "$ref": "#/components/schemas/OTel.Logs.LogBodyArray"
8274
+ },
8275
+ {
8276
+ "$ref": "#/components/schemas/OTel.Logs.LogBodyBytes"
8277
+ }
8278
+ ],
8279
+ "discriminator": {
8280
+ "propertyName": "kind",
8281
+ "mapping": {
8282
+ "stringBody": "#/components/schemas/OTel.Logs.LogBodyString",
8283
+ "kvListBody": "#/components/schemas/OTel.Logs.LogBodyKvList",
8284
+ "arrayBody": "#/components/schemas/OTel.Logs.LogBodyArray",
8285
+ "bytesBody": "#/components/schemas/OTel.Logs.LogBodyBytes"
8286
+ }
8287
+ },
8288
+ "description": "Log body content - can be string, structured, or bytes"
8289
+ },
8290
+ "OTel.Logs.LogBodyArray": {
8291
+ "type": "object",
8292
+ "required": [
8293
+ "array_value"
8294
+ ],
8295
+ "properties": {
8296
+ "array_value": {
8297
+ "type": "array",
8298
+ "items": {
8299
+ "$ref": "#/components/schemas/Common.AttributeValue"
8300
+ },
8301
+ "description": "Array of values"
8302
+ }
8303
+ },
8304
+ "unevaluatedProperties": {
8305
+ "not": {}
8306
+ },
8307
+ "description": "Array log body"
8308
+ },
8309
+ "OTel.Logs.LogBodyBytes": {
8310
+ "type": "object",
8311
+ "required": [
8312
+ "bytes_value"
8313
+ ],
8314
+ "properties": {
8315
+ "bytes_value": {
8316
+ "type": "string",
8317
+ "contentEncoding": "base64",
8318
+ "description": "Binary value (base64 encoded)"
8319
+ }
8320
+ },
8321
+ "unevaluatedProperties": {
8322
+ "not": {}
8323
+ },
8324
+ "description": "Binary log body"
8325
+ },
8326
+ "OTel.Logs.LogBodyKvList": {
8327
+ "type": "object",
8328
+ "required": [
8329
+ "kv_list_value"
8330
+ ],
8331
+ "properties": {
8332
+ "kv_list_value": {
8333
+ "type": "array",
8334
+ "items": {
8335
+ "$ref": "#/components/schemas/Common.Attribute"
8336
+ },
8337
+ "description": "Key-value pairs"
8338
+ }
8339
+ },
8340
+ "unevaluatedProperties": {
8341
+ "not": {}
8342
+ },
8343
+ "description": "Structured key-value log body"
8344
+ },
8345
+ "OTel.Logs.LogBodyString": {
8346
+ "type": "object",
8347
+ "required": [
8348
+ "string_value"
8349
+ ],
8350
+ "properties": {
8351
+ "string_value": {
8352
+ "type": "string",
8353
+ "description": "String value"
8354
+ }
8355
+ },
8356
+ "unevaluatedProperties": {
8357
+ "not": {}
8358
+ },
8359
+ "description": "String log body"
8360
+ },
8361
+ "OTel.Logs.LogRecord": {
8362
+ "type": "object",
8363
+ "required": [
8364
+ "time_unix_nano",
8365
+ "observed_time_unix_nano",
8366
+ "severity_number",
8367
+ "body",
8368
+ "resource"
8369
+ ],
8370
+ "properties": {
8371
+ "time_unix_nano": {
8372
+ "allOf": [
8373
+ {
8374
+ "$ref": "#/components/schemas/Common.UnixNanos"
8375
+ }
8376
+ ],
8377
+ "description": "Timestamp when the event occurred (nanoseconds since epoch)"
8378
+ },
8379
+ "observed_time_unix_nano": {
8380
+ "allOf": [
8381
+ {
8382
+ "$ref": "#/components/schemas/Common.UnixNanos"
8383
+ }
8384
+ ],
8385
+ "description": "Timestamp when the log was observed/collected (nanoseconds since epoch)"
8386
+ },
8387
+ "severity_number": {
8388
+ "allOf": [
8389
+ {
8390
+ "$ref": "#/components/schemas/OTel.Enums.SeverityNumber"
8391
+ }
8392
+ ],
8393
+ "description": "Severity number (1-24)"
8394
+ },
8395
+ "severity_text": {
8396
+ "allOf": [
8397
+ {
8398
+ "$ref": "#/components/schemas/OTel.Enums.SeverityText"
8399
+ }
8400
+ ],
8401
+ "description": "Severity text (DEBUG, INFO, WARN, ERROR, etc.)"
8402
+ },
8403
+ "body": {
8404
+ "allOf": [
8405
+ {
8406
+ "$ref": "#/components/schemas/OTel.Logs.LogBody"
8407
+ }
8408
+ ],
8409
+ "description": "Log body - the main content"
8410
+ },
8411
+ "attributes": {
8412
+ "type": "array",
8413
+ "items": {
8414
+ "$ref": "#/components/schemas/Common.Attribute"
8415
+ },
8416
+ "description": "Log attributes"
8417
+ },
8418
+ "dropped_attributes_count": {
8419
+ "allOf": [
8420
+ {
8421
+ "$ref": "#/components/schemas/Common.Count"
8422
+ }
8423
+ ],
8424
+ "description": "Dropped attributes count"
8425
+ },
8426
+ "flags": {
8427
+ "type": "integer",
8428
+ "format": "int32",
8429
+ "description": "Flags (trace flags)"
8430
+ },
8431
+ "trace_id": {
8432
+ "allOf": [
8433
+ {
8434
+ "$ref": "#/components/schemas/Common.TraceId"
8435
+ }
8436
+ ],
8437
+ "description": "Associated trace ID"
8438
+ },
8439
+ "span_id": {
8440
+ "allOf": [
8441
+ {
8442
+ "$ref": "#/components/schemas/Common.SpanId"
8443
+ }
8444
+ ],
8445
+ "description": "Associated span ID"
8446
+ },
8447
+ "resource": {
8448
+ "allOf": [
8449
+ {
8450
+ "$ref": "#/components/schemas/OTel.Resource.Resource"
8451
+ }
8452
+ ],
8453
+ "description": "Resource describing the entity that produced this log"
8454
+ },
8455
+ "instrumentation_scope": {
8456
+ "allOf": [
8457
+ {
8458
+ "$ref": "#/components/schemas/Common.InstrumentationScope"
8459
+ }
8460
+ ],
8461
+ "description": "Instrumentation scope"
8462
+ }
8463
+ },
8464
+ "unevaluatedProperties": {
8465
+ "not": {}
8466
+ },
8467
+ "description": "OpenTelemetry Log Record"
8468
+ },
8469
+ "OTel.Logs.LogTemplate": {
6642
8470
  "type": "object",
6643
- "oneOf": [
6644
- {
6645
- "$ref": "#/components/schemas/OTel.Logs.LogBodyString"
6646
- },
6647
- {
6648
- "$ref": "#/components/schemas/OTel.Logs.LogBodyKvList"
8471
+ "required": [
8472
+ "template",
8473
+ "parameters"
8474
+ ],
8475
+ "properties": {
8476
+ "template": {
8477
+ "type": "string",
8478
+ "description": "Template string with {placeholder} syntax"
6649
8479
  },
6650
- {
6651
- "$ref": "#/components/schemas/OTel.Logs.LogBodyArray"
8480
+ "parameters": {
8481
+ "type": "array",
8482
+ "items": {
8483
+ "$ref": "#/components/schemas/Common.Attribute"
8484
+ },
8485
+ "description": "Template parameters"
6652
8486
  },
6653
- {
6654
- "$ref": "#/components/schemas/OTel.Logs.LogBodyBytes"
8487
+ "rendered_message": {
8488
+ "type": "string",
8489
+ "description": "Rendered message"
6655
8490
  }
8491
+ },
8492
+ "unevaluatedProperties": {
8493
+ "not": {}
8494
+ },
8495
+ "description": "Log message template with placeholders"
8496
+ },
8497
+ "OTel.Metrics.ExponentialHistogramBuckets": {
8498
+ "type": "object",
8499
+ "required": [
8500
+ "offset",
8501
+ "bucket_counts"
6656
8502
  ],
6657
- "discriminator": {
6658
- "propertyName": "kind",
6659
- "mapping": {
6660
- "stringBody": "#/components/schemas/OTel.Logs.LogBodyString",
6661
- "kvListBody": "#/components/schemas/OTel.Logs.LogBodyKvList",
6662
- "arrayBody": "#/components/schemas/OTel.Logs.LogBodyArray",
6663
- "bytesBody": "#/components/schemas/OTel.Logs.LogBodyBytes"
8503
+ "properties": {
8504
+ "offset": {
8505
+ "type": "integer",
8506
+ "format": "int32",
8507
+ "description": "Index of the first bucket count."
8508
+ },
8509
+ "bucket_counts": {
8510
+ "type": "array",
8511
+ "items": {
8512
+ "$ref": "#/components/schemas/OTel.Metrics.MetricUInt64"
8513
+ }
6664
8514
  }
6665
8515
  },
6666
- "description": "Log body content - can be string, structured, or bytes"
8516
+ "unevaluatedProperties": {
8517
+ "not": {}
8518
+ },
8519
+ "description": "Bucket range used by an OTLP exponential histogram data point."
6667
8520
  },
6668
- "OTel.Logs.LogBodyArray": {
8521
+ "OTel.Metrics.ExponentialHistogramMetricPoint": {
6669
8522
  "type": "object",
6670
8523
  "required": [
6671
- "array_value"
8524
+ "type",
8525
+ "count",
8526
+ "scale",
8527
+ "zero_count",
8528
+ "zero_threshold",
8529
+ "positive",
8530
+ "negative",
8531
+ "aggregation_temporality"
6672
8532
  ],
6673
8533
  "properties": {
6674
- "array_value": {
8534
+ "type": {
8535
+ "type": "string",
8536
+ "enum": [
8537
+ "exponential_histogram"
8538
+ ]
8539
+ },
8540
+ "count": {
8541
+ "$ref": "#/components/schemas/OTel.Metrics.MetricUInt64"
8542
+ },
8543
+ "sum": {
8544
+ "type": "number",
8545
+ "format": "double"
8546
+ },
8547
+ "scale": {
8548
+ "type": "integer",
8549
+ "format": "int32"
8550
+ },
8551
+ "zero_count": {
8552
+ "$ref": "#/components/schemas/OTel.Metrics.MetricUInt64"
8553
+ },
8554
+ "zero_threshold": {
8555
+ "type": "number",
8556
+ "format": "double"
8557
+ },
8558
+ "positive": {
8559
+ "$ref": "#/components/schemas/OTel.Metrics.ExponentialHistogramBuckets"
8560
+ },
8561
+ "negative": {
8562
+ "$ref": "#/components/schemas/OTel.Metrics.ExponentialHistogramBuckets"
8563
+ },
8564
+ "min": {
8565
+ "type": "number",
8566
+ "format": "double"
8567
+ },
8568
+ "max": {
8569
+ "type": "number",
8570
+ "format": "double"
8571
+ },
8572
+ "aggregation_temporality": {
8573
+ "$ref": "#/components/schemas/OTel.Enums.AggregationTemporality"
8574
+ },
8575
+ "exemplars": {
6675
8576
  "type": "array",
6676
8577
  "items": {
6677
- "$ref": "#/components/schemas/Common.AttributeValue"
6678
- },
6679
- "description": "Array of values"
8578
+ "$ref": "#/components/schemas/OTel.Metrics.MetricExemplar"
8579
+ }
6680
8580
  }
6681
8581
  },
6682
- "description": "Array log body"
8582
+ "unevaluatedProperties": {
8583
+ "not": {}
8584
+ },
8585
+ "allOf": [
8586
+ {
8587
+ "$ref": "#/components/schemas/OTel.Metrics.MetricPointBase"
8588
+ }
8589
+ ],
8590
+ "description": "Base-2 exponential histogram measurement."
6683
8591
  },
6684
- "OTel.Logs.LogBodyBytes": {
8592
+ "OTel.Metrics.GaugeMetricPoint": {
6685
8593
  "type": "object",
6686
8594
  "required": [
6687
- "bytes_value"
8595
+ "type",
8596
+ "value"
6688
8597
  ],
6689
8598
  "properties": {
6690
- "bytes_value": {
8599
+ "type": {
6691
8600
  "type": "string",
6692
- "contentEncoding": "base64",
6693
- "description": "Binary value (base64 encoded)"
8601
+ "enum": [
8602
+ "gauge"
8603
+ ]
8604
+ },
8605
+ "value": {
8606
+ "$ref": "#/components/schemas/OTel.Metrics.MetricNumberValue"
8607
+ },
8608
+ "exemplars": {
8609
+ "type": "array",
8610
+ "items": {
8611
+ "$ref": "#/components/schemas/OTel.Metrics.MetricExemplar"
8612
+ }
6694
8613
  }
6695
8614
  },
6696
- "description": "Binary log body"
8615
+ "unevaluatedProperties": {
8616
+ "not": {}
8617
+ },
8618
+ "allOf": [
8619
+ {
8620
+ "$ref": "#/components/schemas/OTel.Metrics.MetricPointBase"
8621
+ }
8622
+ ],
8623
+ "description": "Instantaneous gauge measurement."
6697
8624
  },
6698
- "OTel.Logs.LogBodyKvList": {
8625
+ "OTel.Metrics.HistogramMetricPoint": {
6699
8626
  "type": "object",
6700
8627
  "required": [
6701
- "kv_list_value"
8628
+ "type",
8629
+ "count",
8630
+ "bucket_counts",
8631
+ "explicit_bounds",
8632
+ "aggregation_temporality"
6702
8633
  ],
6703
8634
  "properties": {
6704
- "kv_list_value": {
8635
+ "type": {
8636
+ "type": "string",
8637
+ "enum": [
8638
+ "histogram"
8639
+ ]
8640
+ },
8641
+ "count": {
8642
+ "$ref": "#/components/schemas/OTel.Metrics.MetricUInt64"
8643
+ },
8644
+ "sum": {
8645
+ "type": "number",
8646
+ "format": "double"
8647
+ },
8648
+ "bucket_counts": {
6705
8649
  "type": "array",
6706
8650
  "items": {
6707
- "$ref": "#/components/schemas/Common.Attribute"
6708
- },
6709
- "description": "Key-value pairs"
8651
+ "$ref": "#/components/schemas/OTel.Metrics.MetricUInt64"
8652
+ }
8653
+ },
8654
+ "explicit_bounds": {
8655
+ "type": "array",
8656
+ "items": {
8657
+ "type": "number",
8658
+ "format": "double"
8659
+ }
8660
+ },
8661
+ "min": {
8662
+ "type": "number",
8663
+ "format": "double"
8664
+ },
8665
+ "max": {
8666
+ "type": "number",
8667
+ "format": "double"
8668
+ },
8669
+ "aggregation_temporality": {
8670
+ "$ref": "#/components/schemas/OTel.Enums.AggregationTemporality"
8671
+ },
8672
+ "exemplars": {
8673
+ "type": "array",
8674
+ "items": {
8675
+ "$ref": "#/components/schemas/OTel.Metrics.MetricExemplar"
8676
+ }
6710
8677
  }
6711
8678
  },
6712
- "description": "Structured key-value log body"
8679
+ "unevaluatedProperties": {
8680
+ "not": {}
8681
+ },
8682
+ "allOf": [
8683
+ {
8684
+ "$ref": "#/components/schemas/OTel.Metrics.MetricPointBase"
8685
+ }
8686
+ ],
8687
+ "description": "Explicit-bucket histogram measurement."
6713
8688
  },
6714
- "OTel.Logs.LogBodyString": {
8689
+ "OTel.Metrics.MetricDoubleValue": {
6715
8690
  "type": "object",
6716
8691
  "required": [
6717
- "string_value"
8692
+ "as_double"
6718
8693
  ],
6719
8694
  "properties": {
6720
- "string_value": {
6721
- "type": "string",
6722
- "description": "String value"
8695
+ "as_double": {
8696
+ "type": "number",
8697
+ "format": "double"
6723
8698
  }
6724
8699
  },
6725
- "description": "String log body"
8700
+ "unevaluatedProperties": {
8701
+ "not": {}
8702
+ },
8703
+ "description": "A floating-point measurement value from an OTLP number data point or exemplar."
6726
8704
  },
6727
- "OTel.Logs.LogRecord": {
8705
+ "OTel.Metrics.MetricExemplar": {
6728
8706
  "type": "object",
6729
8707
  "required": [
6730
8708
  "time_unix_nano",
6731
- "observed_time_unix_nano",
6732
- "severity_number",
6733
- "body",
6734
- "resource"
8709
+ "value"
6735
8710
  ],
6736
8711
  "properties": {
6737
8712
  "time_unix_nano": {
6738
- "allOf": [
6739
- {
6740
- "$ref": "#/components/schemas/Common.UnixNanos"
6741
- }
6742
- ],
6743
- "description": "Timestamp when the event occurred (nanoseconds since epoch)"
8713
+ "$ref": "#/components/schemas/OTel.Metrics.MetricUnixNanos"
6744
8714
  },
6745
- "observed_time_unix_nano": {
6746
- "allOf": [
6747
- {
6748
- "$ref": "#/components/schemas/Common.UnixNanos"
6749
- }
6750
- ],
6751
- "description": "Timestamp when the log was observed/collected (nanoseconds since epoch)"
8715
+ "value": {
8716
+ "$ref": "#/components/schemas/OTel.Metrics.MetricNumberValue"
8717
+ },
8718
+ "span_id": {
8719
+ "$ref": "#/components/schemas/Common.SpanId"
8720
+ },
8721
+ "trace_id": {
8722
+ "$ref": "#/components/schemas/Common.TraceId"
8723
+ },
8724
+ "filtered_attributes": {
8725
+ "type": "array",
8726
+ "items": {
8727
+ "$ref": "#/components/schemas/Common.Attribute"
8728
+ }
8729
+ }
8730
+ },
8731
+ "unevaluatedProperties": {
8732
+ "not": {}
8733
+ },
8734
+ "description": "A sampled measurement linked to the trace or span active when it was recorded."
8735
+ },
8736
+ "OTel.Metrics.MetricInt64": {
8737
+ "type": "string",
8738
+ "format": "int64",
8739
+ "description": "An OTLP signed 64-bit metric integer encoded as a decimal JSON string.",
8740
+ "x-csharp-type": "long"
8741
+ },
8742
+ "OTel.Metrics.MetricIntegerValue": {
8743
+ "type": "object",
8744
+ "required": [
8745
+ "as_int"
8746
+ ],
8747
+ "properties": {
8748
+ "as_int": {
8749
+ "$ref": "#/components/schemas/OTel.Metrics.MetricInt64"
8750
+ }
8751
+ },
8752
+ "unevaluatedProperties": {
8753
+ "not": {}
8754
+ },
8755
+ "description": "An integer measurement value from an OTLP number data point or exemplar."
8756
+ },
8757
+ "OTel.Metrics.MetricNumberValue": {
8758
+ "anyOf": [
8759
+ {
8760
+ "$ref": "#/components/schemas/OTel.Metrics.MetricIntegerValue"
8761
+ },
8762
+ {
8763
+ "$ref": "#/components/schemas/OTel.Metrics.MetricDoubleValue"
8764
+ }
8765
+ ],
8766
+ "description": "The exactly-one numeric value carried by an OTLP number data point or exemplar."
8767
+ },
8768
+ "OTel.Metrics.MetricPoint": {
8769
+ "anyOf": [
8770
+ {
8771
+ "$ref": "#/components/schemas/OTel.Metrics.GaugeMetricPoint"
8772
+ },
8773
+ {
8774
+ "$ref": "#/components/schemas/OTel.Metrics.SumMetricPoint"
8775
+ },
8776
+ {
8777
+ "$ref": "#/components/schemas/OTel.Metrics.HistogramMetricPoint"
8778
+ },
8779
+ {
8780
+ "$ref": "#/components/schemas/OTel.Metrics.ExponentialHistogramMetricPoint"
8781
+ },
8782
+ {
8783
+ "$ref": "#/components/schemas/OTel.Metrics.SummaryMetricPoint"
8784
+ }
8785
+ ],
8786
+ "description": "One persisted OTLP metric data point, discriminated by aggregation kind."
8787
+ },
8788
+ "OTel.Metrics.MetricPointBase": {
8789
+ "type": "object",
8790
+ "required": [
8791
+ "name",
8792
+ "start_time_unix_nano",
8793
+ "time_unix_nano",
8794
+ "flags",
8795
+ "resource"
8796
+ ],
8797
+ "properties": {
8798
+ "name": {
8799
+ "type": "string",
8800
+ "minLength": 1,
8801
+ "description": "Metric stream name."
6752
8802
  },
6753
- "severity_number": {
6754
- "allOf": [
6755
- {
6756
- "$ref": "#/components/schemas/OTel.Enums.SeverityNumber"
6757
- }
6758
- ],
6759
- "description": "Severity number (1-24)"
8803
+ "description": {
8804
+ "type": "string"
6760
8805
  },
6761
- "severity_text": {
6762
- "allOf": [
6763
- {
6764
- "$ref": "#/components/schemas/OTel.Enums.SeverityText"
6765
- }
6766
- ],
6767
- "description": "Severity text (DEBUG, INFO, WARN, ERROR, etc.)"
8806
+ "unit": {
8807
+ "type": "string"
6768
8808
  },
6769
- "body": {
6770
- "allOf": [
6771
- {
6772
- "$ref": "#/components/schemas/OTel.Logs.LogBody"
6773
- }
6774
- ],
6775
- "description": "Log body - the main content"
8809
+ "metadata": {
8810
+ "type": "array",
8811
+ "items": {
8812
+ "$ref": "#/components/schemas/Common.Attribute"
8813
+ },
8814
+ "description": "Non-identifying metadata attached to the OTLP metric descriptor."
6776
8815
  },
6777
8816
  "attributes": {
6778
8817
  "type": "array",
6779
8818
  "items": {
6780
8819
  "$ref": "#/components/schemas/Common.Attribute"
6781
8820
  },
6782
- "description": "Log attributes"
8821
+ "description": "Attributes identifying this metric time series."
6783
8822
  },
6784
- "dropped_attributes_count": {
6785
- "allOf": [
6786
- {
6787
- "$ref": "#/components/schemas/Common.Count"
6788
- }
6789
- ],
6790
- "description": "Dropped attributes count"
8823
+ "start_time_unix_nano": {
8824
+ "$ref": "#/components/schemas/OTel.Metrics.MetricStartUnixNanos"
8825
+ },
8826
+ "time_unix_nano": {
8827
+ "$ref": "#/components/schemas/OTel.Metrics.MetricUnixNanos"
6791
8828
  },
6792
8829
  "flags": {
6793
8830
  "type": "integer",
6794
- "format": "int32",
6795
- "description": "Flags (trace flags)"
6796
- },
6797
- "trace_id": {
6798
- "allOf": [
6799
- {
6800
- "$ref": "#/components/schemas/Common.TraceId"
6801
- }
6802
- ],
6803
- "description": "Associated trace ID"
6804
- },
6805
- "span_id": {
6806
- "allOf": [
6807
- {
6808
- "$ref": "#/components/schemas/Common.SpanId"
6809
- }
6810
- ],
6811
- "description": "Associated span ID"
8831
+ "format": "uint32",
8832
+ "description": "OTLP data-point flags preserved as an extensible bit field."
6812
8833
  },
6813
8834
  "resource": {
6814
8835
  "allOf": [
@@ -6816,43 +8837,143 @@
6816
8837
  "$ref": "#/components/schemas/OTel.Resource.Resource"
6817
8838
  }
6818
8839
  ],
6819
- "description": "Resource describing the entity that produced this log"
8840
+ "description": "Resource describing the entity that produced the metric."
8841
+ },
8842
+ "resource_schema_url": {
8843
+ "type": "string"
6820
8844
  },
6821
8845
  "instrumentation_scope": {
6822
- "allOf": [
6823
- {
6824
- "$ref": "#/components/schemas/Common.InstrumentationScope"
6825
- }
6826
- ],
6827
- "description": "Instrumentation scope"
8846
+ "$ref": "#/components/schemas/Common.InstrumentationScope"
8847
+ },
8848
+ "scope_schema_url": {
8849
+ "type": "string"
6828
8850
  }
6829
8851
  },
6830
- "description": "OpenTelemetry Log Record"
8852
+ "description": "Fields shared by every persisted OTLP metric data point."
6831
8853
  },
6832
- "OTel.Logs.LogTemplate": {
8854
+ "OTel.Metrics.MetricStartUnixNanos": {
8855
+ "type": "string",
8856
+ "format": "uint64",
8857
+ "minimum": 0,
8858
+ "description": "An optional OTLP metric start timestamp in Unix nanoseconds, encoded as a decimal JSON string.",
8859
+ "x-csharp-type": "ulong"
8860
+ },
8861
+ "OTel.Metrics.MetricUInt64": {
8862
+ "type": "string",
8863
+ "format": "uint64",
8864
+ "description": "An OTLP unsigned 64-bit metric count encoded as a decimal JSON string.",
8865
+ "x-csharp-type": "ulong"
8866
+ },
8867
+ "OTel.Metrics.MetricUnixNanos": {
8868
+ "type": "string",
8869
+ "format": "uint64",
8870
+ "minimum": 1,
8871
+ "description": "A non-zero OTLP metric or exemplar timestamp in Unix nanoseconds.",
8872
+ "x-csharp-type": "ulong"
8873
+ },
8874
+ "OTel.Metrics.SumMetricPoint": {
6833
8875
  "type": "object",
6834
8876
  "required": [
6835
- "template",
6836
- "parameters"
8877
+ "type",
8878
+ "value",
8879
+ "aggregation_temporality",
8880
+ "is_monotonic"
6837
8881
  ],
6838
8882
  "properties": {
6839
- "template": {
8883
+ "type": {
6840
8884
  "type": "string",
6841
- "description": "Template string with {placeholder} syntax"
8885
+ "enum": [
8886
+ "sum"
8887
+ ]
6842
8888
  },
6843
- "parameters": {
8889
+ "value": {
8890
+ "$ref": "#/components/schemas/OTel.Metrics.MetricNumberValue"
8891
+ },
8892
+ "aggregation_temporality": {
8893
+ "$ref": "#/components/schemas/OTel.Enums.AggregationTemporality"
8894
+ },
8895
+ "is_monotonic": {
8896
+ "type": "boolean"
8897
+ },
8898
+ "exemplars": {
6844
8899
  "type": "array",
6845
8900
  "items": {
6846
- "$ref": "#/components/schemas/Common.Attribute"
6847
- },
6848
- "description": "Template parameters"
6849
- },
6850
- "rendered_message": {
8901
+ "$ref": "#/components/schemas/OTel.Metrics.MetricExemplar"
8902
+ }
8903
+ }
8904
+ },
8905
+ "unevaluatedProperties": {
8906
+ "not": {}
8907
+ },
8908
+ "allOf": [
8909
+ {
8910
+ "$ref": "#/components/schemas/OTel.Metrics.MetricPointBase"
8911
+ }
8912
+ ],
8913
+ "description": "Delta or cumulative sum measurement."
8914
+ },
8915
+ "OTel.Metrics.SummaryMetricPoint": {
8916
+ "type": "object",
8917
+ "required": [
8918
+ "type",
8919
+ "count",
8920
+ "sum",
8921
+ "quantile_values"
8922
+ ],
8923
+ "properties": {
8924
+ "type": {
6851
8925
  "type": "string",
6852
- "description": "Rendered message"
8926
+ "enum": [
8927
+ "summary"
8928
+ ]
8929
+ },
8930
+ "count": {
8931
+ "$ref": "#/components/schemas/OTel.Metrics.MetricUInt64"
8932
+ },
8933
+ "sum": {
8934
+ "type": "number",
8935
+ "format": "double"
8936
+ },
8937
+ "quantile_values": {
8938
+ "type": "array",
8939
+ "items": {
8940
+ "$ref": "#/components/schemas/OTel.Metrics.SummaryQuantileValue"
8941
+ }
6853
8942
  }
6854
8943
  },
6855
- "description": "Log message template with placeholders"
8944
+ "unevaluatedProperties": {
8945
+ "not": {}
8946
+ },
8947
+ "allOf": [
8948
+ {
8949
+ "$ref": "#/components/schemas/OTel.Metrics.MetricPointBase"
8950
+ }
8951
+ ],
8952
+ "description": "Pre-aggregated summary measurement."
8953
+ },
8954
+ "OTel.Metrics.SummaryQuantileValue": {
8955
+ "type": "object",
8956
+ "required": [
8957
+ "quantile",
8958
+ "value"
8959
+ ],
8960
+ "properties": {
8961
+ "quantile": {
8962
+ "type": "number",
8963
+ "format": "double",
8964
+ "minimum": 0,
8965
+ "maximum": 1
8966
+ },
8967
+ "value": {
8968
+ "type": "number",
8969
+ "format": "double",
8970
+ "minimum": 0
8971
+ }
8972
+ },
8973
+ "unevaluatedProperties": {
8974
+ "not": {}
8975
+ },
8976
+ "description": "A quantile and value reported by an OTLP summary data point."
6856
8977
  },
6857
8978
  "OTel.Profiles.Profile": {
6858
8979
  "type": "object",
@@ -6998,6 +9119,9 @@
6998
9119
  "description": "Stack table (ordered location sequences)"
6999
9120
  }
7000
9121
  },
9122
+ "unevaluatedProperties": {
9123
+ "not": {}
9124
+ },
7001
9125
  "description": "OpenTelemetry Profile representing a continuous profiling snapshot"
7002
9126
  },
7003
9127
  "OTel.Profiles.ProfileFunction": {
@@ -7024,6 +9148,9 @@
7024
9148
  "description": "First line number of the function in source"
7025
9149
  }
7026
9150
  },
9151
+ "unevaluatedProperties": {
9152
+ "not": {}
9153
+ },
7027
9154
  "description": "Function identity in a profiled binary"
7028
9155
  },
7029
9156
  "OTel.Profiles.ProfileLine": {
@@ -7045,6 +9172,9 @@
7045
9172
  "description": "Source column number"
7046
9173
  }
7047
9174
  },
9175
+ "unevaluatedProperties": {
9176
+ "not": {}
9177
+ },
7048
9178
  "description": "Source line within a location"
7049
9179
  },
7050
9180
  "OTel.Profiles.ProfileLink": {
@@ -7067,6 +9197,9 @@
7067
9197
  "description": "Linked span ID (8 bytes)"
7068
9198
  }
7069
9199
  },
9200
+ "unevaluatedProperties": {
9201
+ "not": {}
9202
+ },
7070
9203
  "description": "Cross-signal link from profile sample to trace/span"
7071
9204
  },
7072
9205
  "OTel.Profiles.ProfileLocation": {
@@ -7098,6 +9231,9 @@
7098
9231
  "description": "Attribute indices"
7099
9232
  }
7100
9233
  },
9234
+ "unevaluatedProperties": {
9235
+ "not": {}
9236
+ },
7101
9237
  "description": "Code location within a profiled binary"
7102
9238
  },
7103
9239
  "OTel.Profiles.ProfileMapping": {
@@ -7132,6 +9268,9 @@
7132
9268
  "description": "Attribute indices"
7133
9269
  }
7134
9270
  },
9271
+ "unevaluatedProperties": {
9272
+ "not": {}
9273
+ },
7135
9274
  "description": "Memory mapping for a loaded binary or shared library"
7136
9275
  },
7137
9276
  "OTel.Profiles.ProfileQueryFilters": {
@@ -7200,6 +9339,9 @@
7200
9339
  "description": "End of time range (exclusive, ISO 8601)"
7201
9340
  }
7202
9341
  },
9342
+ "unevaluatedProperties": {
9343
+ "not": {}
9344
+ },
7203
9345
  "description": "Filter parameters for querying profiles"
7204
9346
  },
7205
9347
  "OTel.Profiles.ProfileSample": {
@@ -7239,6 +9381,9 @@
7239
9381
  "description": "Timestamps for each value in nanoseconds since epoch"
7240
9382
  }
7241
9383
  },
9384
+ "unevaluatedProperties": {
9385
+ "not": {}
9386
+ },
7242
9387
  "description": "Individual profiling sample"
7243
9388
  },
7244
9389
  "OTel.Profiles.ProfileStack": {
@@ -7253,6 +9398,9 @@
7253
9398
  "description": "Location indices from leaf (index 0) to root"
7254
9399
  }
7255
9400
  },
9401
+ "unevaluatedProperties": {
9402
+ "not": {}
9403
+ },
7256
9404
  "description": "Ordered sequence of location indices forming a call stack"
7257
9405
  },
7258
9406
  "OTel.Profiles.ProfileStats": {
@@ -7306,6 +9454,9 @@
7306
9454
  "description": "Stats grouped by frame type"
7307
9455
  }
7308
9456
  },
9457
+ "unevaluatedProperties": {
9458
+ "not": {}
9459
+ },
7309
9460
  "description": "Aggregated profile statistics"
7310
9461
  },
7311
9462
  "OTel.Profiles.ProfileStatsByDimension": {
@@ -7343,6 +9494,9 @@
7343
9494
  "description": "Average duration in nanoseconds"
7344
9495
  }
7345
9496
  },
9497
+ "unevaluatedProperties": {
9498
+ "not": {}
9499
+ },
7346
9500
  "description": "Profile statistics for a specific dimension value"
7347
9501
  },
7348
9502
  "OTel.Profiles.ProfileValueType": {
@@ -7359,6 +9513,9 @@
7359
9513
  "description": "Unit string index into string table"
7360
9514
  }
7361
9515
  },
9516
+ "unevaluatedProperties": {
9517
+ "not": {}
9518
+ },
7362
9519
  "description": "Sample type descriptor (what was measured and in what unit)"
7363
9520
  },
7364
9521
  "OTel.Resource.CloudProvider": {
@@ -7596,6 +9753,9 @@
7596
9753
  "description": "Dropped attributes count"
7597
9754
  }
7598
9755
  },
9756
+ "unevaluatedProperties": {
9757
+ "not": {}
9758
+ },
7599
9759
  "description": "Resource describes the entity producing telemetry"
7600
9760
  },
7601
9761
  "OTel.Traces.Span": {
@@ -7747,6 +9907,9 @@
7747
9907
  "description": "Instrumentation scope"
7748
9908
  }
7749
9909
  },
9910
+ "unevaluatedProperties": {
9911
+ "not": {}
9912
+ },
7750
9913
  "description": "OpenTelemetry Span representing a single operation in a distributed trace"
7751
9914
  },
7752
9915
  "OTel.Traces.SpanEvent": {
@@ -7785,6 +9948,9 @@
7785
9948
  "description": "Dropped attributes count"
7786
9949
  }
7787
9950
  },
9951
+ "unevaluatedProperties": {
9952
+ "not": {}
9953
+ },
7788
9954
  "description": "Event occurring during a span's lifetime"
7789
9955
  },
7790
9956
  "OTel.Traces.SpanLink": {
@@ -7839,6 +10005,9 @@
7839
10005
  "description": "Link flags"
7840
10006
  }
7841
10007
  },
10008
+ "unevaluatedProperties": {
10009
+ "not": {}
10010
+ },
7842
10011
  "description": "Link to another span (e.g., batch processing)"
7843
10012
  },
7844
10013
  "OTel.Traces.SpanQueryFilters": {
@@ -7905,6 +10074,9 @@
7905
10074
  "description": "Filter by attribute key-value pair"
7906
10075
  }
7907
10076
  },
10077
+ "unevaluatedProperties": {
10078
+ "not": {}
10079
+ },
7908
10080
  "description": "Filter parameters for querying spans"
7909
10081
  },
7910
10082
  "OTel.Traces.SpanStats": {
@@ -8011,6 +10183,9 @@
8011
10183
  "description": "Stats grouped by operation name"
8012
10184
  }
8013
10185
  },
10186
+ "unevaluatedProperties": {
10187
+ "not": {}
10188
+ },
8014
10189
  "description": "Aggregated span statistics"
8015
10190
  },
8016
10191
  "OTel.Traces.SpanStatsByDimension": {
@@ -8048,6 +10223,9 @@
8048
10223
  "description": "Error rate for this dimension"
8049
10224
  }
8050
10225
  },
10226
+ "unevaluatedProperties": {
10227
+ "not": {}
10228
+ },
8051
10229
  "description": "Span statistics for a specific dimension value"
8052
10230
  },
8053
10231
  "OTel.Traces.SpanStatus": {
@@ -8069,6 +10247,9 @@
8069
10247
  "description": "Status message (only for ERROR status)"
8070
10248
  }
8071
10249
  },
10250
+ "unevaluatedProperties": {
10251
+ "not": {}
10252
+ },
8072
10253
  "description": "Span status"
8073
10254
  },
8074
10255
  "OTel.Traces.Trace": {
@@ -8085,6 +10266,9 @@
8085
10266
  "description": "All spans in this trace"
8086
10267
  }
8087
10268
  },
10269
+ "unevaluatedProperties": {
10270
+ "not": {}
10271
+ },
8088
10272
  "allOf": [
8089
10273
  {
8090
10274
  "$ref": "#/components/schemas/OTel.Traces.TraceSummary"
@@ -8179,6 +10363,9 @@
8179
10363
  "type": "string"
8180
10364
  }
8181
10365
  },
10366
+ "unevaluatedProperties": {
10367
+ "not": {}
10368
+ },
8182
10369
  "allOf": [
8183
10370
  {
8184
10371
  "$ref": "#/components/schemas/Runner.Mcp.RunnerMcpContentMetadata"
@@ -8197,6 +10384,9 @@
8197
10384
  "contentEncoding": "base64"
8198
10385
  }
8199
10386
  },
10387
+ "unevaluatedProperties": {
10388
+ "not": {}
10389
+ },
8200
10390
  "allOf": [
8201
10391
  {
8202
10392
  "$ref": "#/components/schemas/Runner.Mcp.RunnerMcpResourceContentMetadata"
@@ -8261,6 +10451,9 @@
8261
10451
  "$ref": "#/components/schemas/Runner.Mcp.RunnerMcpResourceContent"
8262
10452
  }
8263
10453
  },
10454
+ "unevaluatedProperties": {
10455
+ "not": {}
10456
+ },
8264
10457
  "allOf": [
8265
10458
  {
8266
10459
  "$ref": "#/components/schemas/Runner.Mcp.RunnerMcpContentMetadata"
@@ -8290,6 +10483,9 @@
8290
10483
  "type": "string"
8291
10484
  }
8292
10485
  },
10486
+ "unevaluatedProperties": {
10487
+ "not": {}
10488
+ },
8293
10489
  "description": "Icon metadata carried by MCP tools and resource links."
8294
10490
  },
8295
10491
  "Runner.Mcp.RunnerMcpImageContent": {
@@ -8314,6 +10510,9 @@
8314
10510
  "type": "string"
8315
10511
  }
8316
10512
  },
10513
+ "unevaluatedProperties": {
10514
+ "not": {}
10515
+ },
8317
10516
  "allOf": [
8318
10517
  {
8319
10518
  "$ref": "#/components/schemas/Runner.Mcp.RunnerMcpContentMetadata"
@@ -8394,6 +10593,9 @@
8394
10593
  }
8395
10594
  }
8396
10595
  },
10596
+ "unevaluatedProperties": {
10597
+ "not": {}
10598
+ },
8397
10599
  "allOf": [
8398
10600
  {
8399
10601
  "$ref": "#/components/schemas/Runner.Mcp.RunnerMcpContentMetadata"
@@ -8416,6 +10618,9 @@
8416
10618
  "unevaluatedProperties": {}
8417
10619
  }
8418
10620
  },
10621
+ "unevaluatedProperties": {
10622
+ "not": {}
10623
+ },
8419
10624
  "description": "Resource URI accepted by the runner's MCP projection."
8420
10625
  },
8421
10626
  "Runner.Mcp.RunnerMcpResourceReadResponse": {
@@ -8435,6 +10640,9 @@
8435
10640
  "unevaluatedProperties": {}
8436
10641
  }
8437
10642
  },
10643
+ "unevaluatedProperties": {
10644
+ "not": {}
10645
+ },
8438
10646
  "description": "Stable qyl projection of an MCP resources/read result."
8439
10647
  },
8440
10648
  "Runner.Mcp.RunnerMcpTask": {
@@ -8472,6 +10680,9 @@
8472
10680
  "format": "double"
8473
10681
  }
8474
10682
  },
10683
+ "unevaluatedProperties": {
10684
+ "not": {}
10685
+ },
8475
10686
  "description": "Task returned by an MCP task-augmented tool call. ttl and pollInterval are encoded as milliseconds."
8476
10687
  },
8477
10688
  "Runner.Mcp.RunnerMcpTaskMetadata": {
@@ -8482,6 +10693,9 @@
8482
10693
  "format": "double"
8483
10694
  }
8484
10695
  },
10696
+ "unevaluatedProperties": {
10697
+ "not": {}
10698
+ },
8485
10699
  "description": "Task-augmentation metadata accepted on an MCP tool call. ttl is encoded as milliseconds."
8486
10700
  },
8487
10701
  "Runner.Mcp.RunnerMcpTaskStatus": {
@@ -8512,6 +10726,9 @@
8512
10726
  "type": "string"
8513
10727
  }
8514
10728
  },
10729
+ "unevaluatedProperties": {
10730
+ "not": {}
10731
+ },
8515
10732
  "allOf": [
8516
10733
  {
8517
10734
  "$ref": "#/components/schemas/Runner.Mcp.RunnerMcpContentMetadata"
@@ -8529,6 +10746,9 @@
8529
10746
  "type": "string"
8530
10747
  }
8531
10748
  },
10749
+ "unevaluatedProperties": {
10750
+ "not": {}
10751
+ },
8532
10752
  "allOf": [
8533
10753
  {
8534
10754
  "$ref": "#/components/schemas/Runner.Mcp.RunnerMcpResourceContentMetadata"
@@ -8578,6 +10798,9 @@
8578
10798
  "unevaluatedProperties": {}
8579
10799
  }
8580
10800
  },
10801
+ "unevaluatedProperties": {
10802
+ "not": {}
10803
+ },
8581
10804
  "description": "Stable qyl projection of an MCP tool advertised by a runner resource."
8582
10805
  },
8583
10806
  "Runner.Mcp.RunnerMcpToolCallRequest": {
@@ -8601,6 +10824,9 @@
8601
10824
  "unevaluatedProperties": {}
8602
10825
  }
8603
10826
  },
10827
+ "unevaluatedProperties": {
10828
+ "not": {}
10829
+ },
8604
10830
  "description": "Tool call accepted by the runner's MCP projection."
8605
10831
  },
8606
10832
  "Runner.Mcp.RunnerMcpToolCallResponse": {
@@ -8631,6 +10857,9 @@
8631
10857
  "unevaluatedProperties": {}
8632
10858
  }
8633
10859
  },
10860
+ "unevaluatedProperties": {
10861
+ "not": {}
10862
+ },
8634
10863
  "description": "Stable qyl projection of an MCP tool-call result."
8635
10864
  },
8636
10865
  "Runner.Mcp.RunnerMcpToolExecution": {
@@ -8640,6 +10869,9 @@
8640
10869
  "$ref": "#/components/schemas/Runner.Mcp.RunnerMcpToolTaskSupport"
8641
10870
  }
8642
10871
  },
10872
+ "unevaluatedProperties": {
10873
+ "not": {}
10874
+ },
8643
10875
  "description": "Execution metadata advertised for an MCP tool."
8644
10876
  },
8645
10877
  "Runner.Mcp.RunnerMcpToolResultContent": {
@@ -8673,6 +10905,9 @@
8673
10905
  "type": "boolean"
8674
10906
  }
8675
10907
  },
10908
+ "unevaluatedProperties": {
10909
+ "not": {}
10910
+ },
8676
10911
  "allOf": [
8677
10912
  {
8678
10913
  "$ref": "#/components/schemas/Runner.Mcp.RunnerMcpContentMetadata"
@@ -8712,6 +10947,9 @@
8712
10947
  },
8713
10948
  "input": {}
8714
10949
  },
10950
+ "unevaluatedProperties": {
10951
+ "not": {}
10952
+ },
8715
10953
  "allOf": [
8716
10954
  {
8717
10955
  "$ref": "#/components/schemas/Runner.Mcp.RunnerMcpContentMetadata"
@@ -8739,6 +10977,9 @@
8739
10977
  "unevaluatedProperties": {}
8740
10978
  }
8741
10979
  },
10980
+ "unevaluatedProperties": {
10981
+ "not": {}
10982
+ },
8742
10983
  "description": "MCP tools currently advertised by a runner resource."
8743
10984
  },
8744
10985
  "Runner.RunnerLogEvents": {
@@ -8762,6 +11003,9 @@
8762
11003
  "type": "string"
8763
11004
  }
8764
11005
  },
11006
+ "unevaluatedProperties": {
11007
+ "not": {}
11008
+ },
8765
11009
  "description": "One bounded child-process log line exposed by the runner."
8766
11010
  },
8767
11011
  "Runner.RunnerLogStream": {
@@ -8786,6 +11030,9 @@
8786
11030
  "type": "string"
8787
11031
  }
8788
11032
  },
11033
+ "unevaluatedProperties": {
11034
+ "not": {}
11035
+ },
8789
11036
  "description": "Identity reported by a connected MCP server during initialization."
8790
11037
  },
8791
11038
  "Runner.RunnerResourceEvents": {
@@ -8863,6 +11110,9 @@
8863
11110
  "minimum": 0
8864
11111
  }
8865
11112
  },
11113
+ "unevaluatedProperties": {
11114
+ "not": {}
11115
+ },
8866
11116
  "description": "Current client-visible state of one runner resource."
8867
11117
  },
8868
11118
  "Streaming.HeartbeatEvent": {
@@ -8883,6 +11133,9 @@
8883
11133
  "format": "date-time"
8884
11134
  }
8885
11135
  },
11136
+ "unevaluatedProperties": {
11137
+ "not": {}
11138
+ },
8886
11139
  "description": "Keep-alive event emitted while no new log is available."
8887
11140
  },
8888
11141
  "Streaming.LogEvents": {
@@ -8917,6 +11170,9 @@
8917
11170
  "format": "date-time"
8918
11171
  }
8919
11172
  },
11173
+ "unevaluatedProperties": {
11174
+ "not": {}
11175
+ },
8920
11176
  "description": "One log delivered by the collector's live stream."
8921
11177
  }
8922
11178
  },