@ancplua/qyl-api-schema 0.5.14 → 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
  },
@@ -489,6 +492,9 @@
489
492
  "description": "Whether there are more items available"
490
493
  }
491
494
  },
495
+ "unevaluatedProperties": {
496
+ "not": {}
497
+ },
492
498
  "description": "Cursor-based paginated response wrapper"
493
499
  }
494
500
  }
@@ -590,6 +596,220 @@
590
596
  ]
591
597
  }
592
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
+ },
593
813
  "/api/v1/profiles": {
594
814
  "get": {
595
815
  "operationId": "ProfilesApi_list",
@@ -1249,6 +1469,9 @@
1249
1469
  "description": "Whether there are more items available"
1250
1470
  }
1251
1471
  },
1472
+ "unevaluatedProperties": {
1473
+ "not": {}
1474
+ },
1252
1475
  "description": "Cursor-based paginated response wrapper"
1253
1476
  }
1254
1477
  }
@@ -1656,6 +1879,9 @@
1656
1879
  "description": "Whether there are more items available"
1657
1880
  }
1658
1881
  },
1882
+ "unevaluatedProperties": {
1883
+ "not": {}
1884
+ },
1659
1885
  "description": "Cursor-based paginated response wrapper"
1660
1886
  }
1661
1887
  }
@@ -2045,6 +2271,9 @@
2045
2271
  "description": "Whether there are more items available"
2046
2272
  }
2047
2273
  },
2274
+ "unevaluatedProperties": {
2275
+ "not": {}
2276
+ },
2048
2277
  "description": "Cursor-based paginated response wrapper"
2049
2278
  }
2050
2279
  }
@@ -2317,6 +2546,9 @@
2317
2546
  "description": "Whether there are more items available"
2318
2547
  }
2319
2548
  },
2549
+ "unevaluatedProperties": {
2550
+ "not": {}
2551
+ },
2320
2552
  "description": "Cursor-based paginated response wrapper"
2321
2553
  }
2322
2554
  }
@@ -4024,6 +4256,9 @@
4024
4256
  "description": "Attribute value"
4025
4257
  }
4026
4258
  },
4259
+ "unevaluatedProperties": {
4260
+ "not": {}
4261
+ },
4027
4262
  "description": "Key-value attribute pair following OTel conventions"
4028
4263
  },
4029
4264
  "Common.AttributeBytesValue": {
@@ -4044,6 +4279,9 @@
4044
4279
  "contentEncoding": "base64"
4045
4280
  }
4046
4281
  },
4282
+ "unevaluatedProperties": {
4283
+ "not": {}
4284
+ },
4047
4285
  "description": "Base64 bytes projected by qyl without colliding with an ordinary string attribute."
4048
4286
  },
4049
4287
  "Common.AttributeKeyValueListValue": {
@@ -4098,6 +4336,9 @@
4098
4336
  "description": "List of key-value attributes"
4099
4337
  }
4100
4338
  },
4339
+ "unevaluatedProperties": {
4340
+ "not": {}
4341
+ },
4101
4342
  "description": "Collection of attributes"
4102
4343
  },
4103
4344
  "Common.ByteSize": {
@@ -4197,6 +4438,9 @@
4197
4438
  "description": "Stable dependency category; never contains raw exception text"
4198
4439
  }
4199
4440
  },
4441
+ "unevaluatedProperties": {
4442
+ "not": {}
4443
+ },
4200
4444
  "allOf": [
4201
4445
  {
4202
4446
  "$ref": "#/components/schemas/Common.Errors.ProblemDetails"
@@ -4221,6 +4465,9 @@
4221
4465
  "description": "The conflicting resource ID"
4222
4466
  }
4223
4467
  },
4468
+ "unevaluatedProperties": {
4469
+ "not": {}
4470
+ },
4224
4471
  "allOf": [
4225
4472
  {
4226
4473
  "$ref": "#/components/schemas/Common.Errors.ProblemDetails"
@@ -4245,6 +4492,9 @@
4245
4492
  "description": "Required permission that is missing"
4246
4493
  }
4247
4494
  },
4495
+ "unevaluatedProperties": {
4496
+ "not": {}
4497
+ },
4248
4498
  "allOf": [
4249
4499
  {
4250
4500
  "$ref": "#/components/schemas/Common.Errors.ProblemDetails"
@@ -4269,6 +4519,9 @@
4269
4519
  "description": "Error code for support reference"
4270
4520
  }
4271
4521
  },
4522
+ "unevaluatedProperties": {
4523
+ "not": {}
4524
+ },
4272
4525
  "allOf": [
4273
4526
  {
4274
4527
  "$ref": "#/components/schemas/Common.Errors.ProblemDetails"
@@ -4297,6 +4550,9 @@
4297
4550
  "description": "The identifier that was not found"
4298
4551
  }
4299
4552
  },
4553
+ "unevaluatedProperties": {
4554
+ "not": {}
4555
+ },
4300
4556
  "allOf": [
4301
4557
  {
4302
4558
  "$ref": "#/components/schemas/Common.Errors.ProblemDetails"
@@ -4357,6 +4613,9 @@
4357
4613
  ]
4358
4614
  }
4359
4615
  },
4616
+ "unevaluatedProperties": {
4617
+ "not": {}
4618
+ },
4360
4619
  "allOf": [
4361
4620
  {
4362
4621
  "$ref": "#/components/schemas/Common.Errors.ProblemDetails"
@@ -4386,6 +4645,9 @@
4386
4645
  "description": "Reason for unavailability"
4387
4646
  }
4388
4647
  },
4648
+ "unevaluatedProperties": {
4649
+ "not": {}
4650
+ },
4389
4651
  "allOf": [
4390
4652
  {
4391
4653
  "$ref": "#/components/schemas/Common.Errors.ProblemDetails"
@@ -4406,6 +4668,9 @@
4406
4668
  ]
4407
4669
  }
4408
4670
  },
4671
+ "unevaluatedProperties": {
4672
+ "not": {}
4673
+ },
4409
4674
  "allOf": [
4410
4675
  {
4411
4676
  "$ref": "#/components/schemas/Common.Errors.ProblemDetails"
@@ -4434,6 +4699,9 @@
4434
4699
  "description": "List of validation errors"
4435
4700
  }
4436
4701
  },
4702
+ "unevaluatedProperties": {
4703
+ "not": {}
4704
+ },
4437
4705
  "allOf": [
4438
4706
  {
4439
4707
  "$ref": "#/components/schemas/Common.Errors.ProblemDetails"
@@ -4466,6 +4734,9 @@
4466
4734
  "description": "The rejected value (if safe to include)"
4467
4735
  }
4468
4736
  },
4737
+ "unevaluatedProperties": {
4738
+ "not": {}
4739
+ },
4469
4740
  "description": "Individual validation error detail"
4470
4741
  },
4471
4742
  "Common.HttpMethod": {
@@ -4524,6 +4795,9 @@
4524
4795
  "description": "Dropped attributes count"
4525
4796
  }
4526
4797
  },
4798
+ "unevaluatedProperties": {
4799
+ "not": {}
4800
+ },
4527
4801
  "description": "Instrumentation scope identifying the library/component emitting telemetry"
4528
4802
  },
4529
4803
  "Common.IpAddress": {
@@ -4575,6 +4849,9 @@
4575
4849
  "description": "Filter expression"
4576
4850
  }
4577
4851
  },
4852
+ "unevaluatedProperties": {
4853
+ "not": {}
4854
+ },
4578
4855
  "description": "Aggregation query parameters"
4579
4856
  },
4580
4857
  "Common.Pagination.CursorPaginationParams": {
@@ -4602,6 +4879,9 @@
4602
4879
  "default": "desc"
4603
4880
  }
4604
4881
  },
4882
+ "unevaluatedProperties": {
4883
+ "not": {}
4884
+ },
4605
4885
  "description": "Cursor-based pagination parameters"
4606
4886
  },
4607
4887
  "Common.Pagination.OffsetPaginationParams": {
@@ -4623,6 +4903,9 @@
4623
4903
  "default": 100
4624
4904
  }
4625
4905
  },
4906
+ "unevaluatedProperties": {
4907
+ "not": {}
4908
+ },
4626
4909
  "description": "Offset-based pagination parameters"
4627
4910
  },
4628
4911
  "Common.Pagination.SortOrder": {
@@ -4658,6 +4941,9 @@
4658
4941
  "default": 100
4659
4942
  }
4660
4943
  },
4944
+ "unevaluatedProperties": {
4945
+ "not": {}
4946
+ },
4661
4947
  "description": "Streaming parameters for SSE endpoints"
4662
4948
  },
4663
4949
  "Common.Pagination.TimeBucket": {
@@ -4695,6 +4981,9 @@
4695
4981
  "default": 1000
4696
4982
  }
4697
4983
  },
4984
+ "unevaluatedProperties": {
4985
+ "not": {}
4986
+ },
4698
4987
  "description": "Time-range based query parameters"
4699
4988
  },
4700
4989
  "Common.Percentage": {
@@ -4860,7 +5149,8 @@
4860
5149
  "error_rate",
4861
5150
  "average_latency_ms",
4862
5151
  "p95_latency_ms",
4863
- "cost_attribution",
5152
+ "catalog_token_estimate",
5153
+ "candidate_status",
4864
5154
  "candidate_path",
4865
5155
  "validation_metrics",
4866
5156
  "residual_path",
@@ -4929,43 +5219,37 @@
4929
5219
  "p95_latency_ms": {
4930
5220
  "$ref": "#/components/schemas/Common.DurationMs"
4931
5221
  },
4932
- "observed_cost_usd": {
5222
+ "catalog_token_estimate": {
4933
5223
  "allOf": [
4934
5224
  {
4935
- "$ref": "#/components/schemas/Common.CostUsd"
5225
+ "$ref": "#/components/schemas/Cost.GenAiEtlCatalogTokenCostEstimate"
4936
5226
  }
4937
5227
  ],
4938
- "description": "Provider-sourced cost attributable to this cluster, absent when attribution is not defensible."
4939
- },
4940
- "cost_per_call_usd": {
4941
- "$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."
4942
5229
  },
4943
- "cost_attribution": {
4944
- "$ref": "#/components/schemas/Cost.ProviderCostAttribution"
4945
- },
4946
- "spend_share": {
5230
+ "measurable_coverage": {
4947
5231
  "allOf": [
4948
5232
  {
4949
5233
  "$ref": "#/components/schemas/Common.Ratio"
4950
5234
  }
4951
5235
  ],
4952
- "description": "Fraction of attributable spend represented by this cluster."
5236
+ "description": "Fraction of calls with a task-specific correctness signal."
4953
5237
  },
4954
- "measurable_coverage": {
5238
+ "safe_deferral_coverage": {
4955
5239
  "allOf": [
4956
5240
  {
4957
5241
  "$ref": "#/components/schemas/Common.Ratio"
4958
5242
  }
4959
5243
  ],
4960
- "description": "Fraction of calls with a task-specific correctness signal."
5244
+ "description": "Fraction of calls proven safe to route to a residual path."
4961
5245
  },
4962
- "safe_deferral_coverage": {
5246
+ "candidate_status": {
4963
5247
  "allOf": [
4964
5248
  {
4965
- "$ref": "#/components/schemas/Common.Ratio"
5249
+ "$ref": "#/components/schemas/Cost.GenAiEtlCandidateStatus"
4966
5250
  }
4967
5251
  ],
4968
- "description": "Fraction of calls proven safe to route to a residual path."
5252
+ "description": "Evidence status qualifying the proposed candidate path."
4969
5253
  },
4970
5254
  "candidate_path": {
4971
5255
  "$ref": "#/components/schemas/Cost.GenAiEtlCandidatePath"
@@ -5000,6 +5284,9 @@
5000
5284
  }
5001
5285
  }
5002
5286
  },
5287
+ "unevaluatedProperties": {
5288
+ "not": {}
5289
+ },
5003
5290
  "description": "Observed economics and evidence for one repeated GenAI workflow cluster."
5004
5291
  },
5005
5292
  "Cost.GenAiEtlAuditEvaluationRequest": {
@@ -5017,6 +5304,9 @@
5017
5304
  "maxItems": 100
5018
5305
  }
5019
5306
  },
5307
+ "unevaluatedProperties": {
5308
+ "not": {}
5309
+ },
5020
5310
  "description": "Batch of cluster scenarios evaluated against one audit period."
5021
5311
  },
5022
5312
  "Cost.GenAiEtlAuditEvaluationResponse": {
@@ -5047,6 +5337,9 @@
5047
5337
  }
5048
5338
  }
5049
5339
  },
5340
+ "unevaluatedProperties": {
5341
+ "not": {}
5342
+ },
5050
5343
  "description": "Batch result for ETL replacement scenarios."
5051
5344
  },
5052
5345
  "Cost.GenAiEtlAuditReport": {
@@ -5056,7 +5349,8 @@
5056
5349
  "period_start",
5057
5350
  "period_end",
5058
5351
  "summary",
5059
- "cost_sources",
5352
+ "billing_sources",
5353
+ "catalog_sources",
5060
5354
  "clusters"
5061
5355
  ],
5062
5356
  "properties": {
@@ -5075,11 +5369,19 @@
5075
5369
  "summary": {
5076
5370
  "$ref": "#/components/schemas/Cost.GenAiEtlAuditSummary"
5077
5371
  },
5078
- "cost_sources": {
5372
+ "billing_sources": {
5079
5373
  "type": "array",
5080
5374
  "items": {
5081
- "$ref": "#/components/schemas/Cost.ProviderCostSource"
5082
- }
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."
5083
5385
  },
5084
5386
  "clusters": {
5085
5387
  "type": "array",
@@ -5088,6 +5390,9 @@
5088
5390
  }
5089
5391
  }
5090
5392
  },
5393
+ "unevaluatedProperties": {
5394
+ "not": {}
5395
+ },
5091
5396
  "description": "Trace-level ETL audit for a bounded period."
5092
5397
  },
5093
5398
  "Cost.GenAiEtlAuditSummary": {
@@ -5096,7 +5401,7 @@
5096
5401
  "total_calls",
5097
5402
  "total_input_tokens",
5098
5403
  "total_output_tokens",
5099
- "priced_call_coverage"
5404
+ "catalog_token_priced_call_coverage"
5100
5405
  ],
5101
5406
  "properties": {
5102
5407
  "total_calls": {
@@ -5108,29 +5413,29 @@
5108
5413
  "total_output_tokens": {
5109
5414
  "$ref": "#/components/schemas/Common.TokenCount"
5110
5415
  },
5111
- "attributed_cost_usd": {
5416
+ "estimated_catalog_token_cost_usd": {
5112
5417
  "allOf": [
5113
5418
  {
5114
5419
  "$ref": "#/components/schemas/Common.CostUsd"
5115
5420
  }
5116
5421
  ],
5117
- "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."
5118
5423
  },
5119
- "priced_call_coverage": {
5424
+ "catalog_token_priced_call_coverage": {
5120
5425
  "allOf": [
5121
5426
  {
5122
5427
  "$ref": "#/components/schemas/Common.Ratio"
5123
5428
  }
5124
5429
  ],
5125
- "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."
5126
5431
  },
5127
- "economic_concentration": {
5432
+ "estimated_token_economic_concentration": {
5128
5433
  "allOf": [
5129
5434
  {
5130
5435
  "$ref": "#/components/schemas/Common.Ratio"
5131
5436
  }
5132
5437
  ],
5133
- "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."
5134
5439
  },
5135
5440
  "measurable_coverage": {
5136
5441
  "allOf": [
@@ -5148,82 +5453,39 @@
5148
5453
  ],
5149
5454
  "description": "Fraction of calls proven safe to defer to a residual path."
5150
5455
  },
5151
- "candidate_etl_spend_share": {
5456
+ "candidate_etl_estimated_token_spend_share": {
5152
5457
  "allOf": [
5153
5458
  {
5154
5459
  "$ref": "#/components/schemas/Common.Ratio"
5155
5460
  }
5156
5461
  ],
5157
- "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."
5158
5463
  }
5159
5464
  },
5465
+ "unevaluatedProperties": {
5466
+ "not": {}
5467
+ },
5160
5468
  "description": "Aggregate trace-level economics for the requested audit period."
5161
5469
  },
5162
- "Cost.GenAiEtlCalculationStatus": {
5163
- "type": "string",
5164
- "enum": [
5165
- "calculated",
5166
- "missing_frontier_cost"
5167
- ],
5168
- "description": "Whether the replaceable-value formula had a defensible baseline cost."
5169
- },
5170
- "Cost.GenAiEtlCandidatePath": {
5171
- "type": "string",
5172
- "enum": [
5173
- "exact_cache",
5174
- "deterministic_code",
5175
- "bounded_retrieval",
5176
- "small_classifier_extractor",
5177
- "smaller_generative_model",
5178
- "frontier_model",
5179
- "insufficient_evidence"
5180
- ],
5181
- "description": "Lowest-risk implementation class suggested by currently available evidence."
5182
- },
5183
- "Cost.GenAiEtlClusterEvaluation": {
5470
+ "Cost.GenAiEtlCalculatedClusterEvaluationBase": {
5184
5471
  "type": "object",
5185
5472
  "required": [
5186
- "cluster_id",
5187
5473
  "status",
5188
- "call_count",
5189
- "coverage",
5190
- "served_call_count",
5191
- "residual_call_count",
5192
- "frontier_cost_basis",
5193
- "alternative_cost_per_call_usd",
5194
- "period_maintenance_cost_usd",
5195
- "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"
5196
5478
  ],
5197
5479
  "properties": {
5198
- "cluster_id": {
5199
- "type": "string"
5200
- },
5201
5480
  "status": {
5202
- "$ref": "#/components/schemas/Cost.GenAiEtlCalculationStatus"
5203
- },
5204
- "call_count": {
5205
- "$ref": "#/components/schemas/Common.Count"
5206
- },
5207
- "coverage": {
5208
- "$ref": "#/components/schemas/Common.Ratio"
5209
- },
5210
- "served_call_count": {
5211
- "type": "number",
5212
- "format": "double"
5213
- },
5214
- "residual_call_count": {
5215
- "type": "number",
5216
- "format": "double"
5481
+ "type": "string",
5482
+ "enum": [
5483
+ "calculated"
5484
+ ]
5217
5485
  },
5218
5486
  "frontier_cost_per_call_usd": {
5219
5487
  "$ref": "#/components/schemas/Common.CostUsd"
5220
5488
  },
5221
- "frontier_cost_basis": {
5222
- "$ref": "#/components/schemas/Cost.ProviderCostAttribution"
5223
- },
5224
- "alternative_cost_per_call_usd": {
5225
- "$ref": "#/components/schemas/Common.CostUsd"
5226
- },
5227
5489
  "current_period_cost_usd": {
5228
5490
  "$ref": "#/components/schemas/Common.CostUsd"
5229
5491
  },
@@ -5231,201 +5493,1477 @@
5231
5493
  "type": "number",
5232
5494
  "format": "double"
5233
5495
  },
5234
- "period_maintenance_cost_usd": {
5235
- "$ref": "#/components/schemas/Common.CostUsd"
5236
- },
5237
- "period_error_cost_usd": {
5238
- "$ref": "#/components/schemas/Common.CostUsd"
5239
- },
5240
5496
  "net_replaceable_value_usd": {
5241
5497
  "type": "number",
5242
5498
  "format": "double",
5243
5499
  "description": "Net period value; this may be negative when maintenance or error cost exceeds gross savings."
5244
5500
  }
5245
5501
  },
5246
- "description": "Result of replaceable_value = calls * coverage * (frontier - alternative) - maintenance - error."
5502
+ "allOf": [
5503
+ {
5504
+ "$ref": "#/components/schemas/Cost.GenAiEtlClusterEvaluationBase"
5505
+ }
5506
+ ]
5247
5507
  },
5248
- "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": {
5249
5530
  "type": "object",
5250
5531
  "required": [
5251
- "cluster_id",
5252
- "coverage",
5253
- "alternative_cost_per_call_usd",
5254
- "period_maintenance_cost_usd",
5255
- "period_error_cost_usd"
5532
+ "status"
5256
5533
  ],
5257
5534
  "properties": {
5258
- "cluster_id": {
5259
- "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
+ ]
5260
5566
  },
5261
- "coverage": {
5567
+ "estimated_catalog_token_cost_usd": {
5262
5568
  "allOf": [
5263
5569
  {
5264
- "$ref": "#/components/schemas/Common.Ratio"
5570
+ "$ref": "#/components/schemas/Common.CostUsd"
5265
5571
  }
5266
5572
  ],
5267
- "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."
5268
5574
  },
5269
- "frontier_cost_per_call_usd": {
5575
+ "estimated_catalog_token_cost_per_call_usd": {
5270
5576
  "allOf": [
5271
5577
  {
5272
5578
  "$ref": "#/components/schemas/Common.CostUsd"
5273
5579
  }
5274
5580
  ],
5275
- "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."
5276
5582
  },
5277
- "alternative_cost_per_call_usd": {
5278
- "$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."
5279
5590
  },
5280
- "period_maintenance_cost_usd": {
5281
- "$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."
5282
5598
  },
5283
- "period_error_cost_usd": {
5284
- "$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."
5285
5606
  }
5286
5607
  },
5287
- "description": "What-if assumptions for one workflow cluster over the requested period."
5288
- },
5289
- "Cost.GenAiEtlEvidenceSignal": {
5290
- "type": "string",
5291
- "enum": [
5292
- "workflow_identity",
5293
- "output_contract",
5294
- "provider_model",
5295
- "token_usage",
5296
- "provider_cost",
5297
- "recurring_schema",
5298
- "bounded_reference",
5299
- "task_metric",
5300
- "accepted_output_replay",
5301
- "downstream_fate",
5302
- "calibrated_confidence",
5303
- "shadow_comparison",
5304
- "fallback_policy"
5305
- ],
5306
- "description": "Observable evidence needed to promote an inferred replacement safely."
5307
- },
5308
- "Cost.GenAiEtlOutputContract": {
5309
- "type": "string",
5310
- "enum": [
5311
- "prose",
5312
- "label",
5313
- "span_list",
5314
- "record",
5315
- "vector",
5316
- "catalog_reference",
5317
- "number",
5318
- "boolean",
5319
- "unknown"
5320
- ],
5321
- "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."
5322
5612
  },
5323
- "Cost.GenAiEtlPromotionGate": {
5613
+ "Cost.GenAiEtlCatalogTokenClusterEvaluation": {
5324
5614
  "type": "object",
5325
5615
  "required": [
5326
- "gate",
5327
- "state"
5616
+ "frontier_cost_basis",
5617
+ "catalog_provenance"
5328
5618
  ],
5329
5619
  "properties": {
5330
- "gate": {
5331
- "$ref": "#/components/schemas/Cost.GenAiEtlPromotionGateKind"
5332
- },
5333
- "state": {
5334
- "$ref": "#/components/schemas/Cost.GenAiEtlPromotionGateState"
5335
- },
5336
- "reason": {
5620
+ "frontier_cost_basis": {
5337
5621
  "type": "string",
5338
- "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."
5339
5633
  }
5340
5634
  },
5341
- "description": "Promotion readiness for one gate."
5342
- },
5343
- "Cost.GenAiEtlPromotionGateKind": {
5344
- "type": "string",
5345
- "enum": [
5346
- "contract_stability",
5347
- "offline_replay",
5348
- "calibrated_confidence",
5349
- "shadow_traffic",
5350
- "limited_serving",
5351
- "rollback_residual_policy"
5352
- ],
5353
- "description": "Promotion gate from replay through limited serving and rollback."
5635
+ "unevaluatedProperties": {
5636
+ "not": {}
5637
+ },
5638
+ "allOf": [
5639
+ {
5640
+ "$ref": "#/components/schemas/Cost.GenAiEtlCalculatedClusterEvaluationBase"
5641
+ }
5642
+ ]
5354
5643
  },
5355
- "Cost.GenAiEtlPromotionGateState": {
5356
- "type": "string",
5357
- "enum": [
5358
- "passed",
5359
- "failed",
5360
- "not_evaluated",
5361
- "blocked_missing_evidence"
5644
+ "Cost.GenAiEtlCatalogTokenConditionalPricingUnresolvableEstimate": {
5645
+ "type": "object",
5646
+ "required": [
5647
+ "status"
5362
5648
  ],
5363
- "description": "Evaluation state of a promotion gate."
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
+ ]
5364
5665
  },
5365
- "Cost.GenAiEtlResidualPath": {
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": {
5366
6330
  "type": "string",
5367
6331
  "enum": [
5368
- "frontier_model",
5369
- "human_review",
5370
- "retry",
5371
- "degraded_response",
5372
- "none",
5373
- "undetermined"
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"
5374
6607
  ],
5375
- "description": "Fallback used for requests outside a promoted replacement's safe coverage."
6608
+ "properties": {
6609
+ "billing_mode": {
6610
+ "$ref": "#/components/schemas/Cost.ModelCatalogBillingMode"
6611
+ }
6612
+ },
6613
+ "allOf": [
6614
+ {
6615
+ "$ref": "#/components/schemas/Cost.ModelCatalogTokenEstimateExclusionBase"
6616
+ }
6617
+ ]
5376
6618
  },
5377
- "Cost.GenAiEtlTaskFamily": {
5378
- "type": "string",
5379
- "enum": [
5380
- "open_reasoning_generation",
5381
- "classification",
5382
- "sequence_labeling",
5383
- "structured_extraction",
5384
- "retrieval_entity_resolution",
5385
- "similarity_clustering",
5386
- "normalization_transformation",
5387
- "numeric_analytical",
5388
- "unknown"
6619
+ "Cost.ModelCatalogTokenAdditiveSurchargeComponent": {
6620
+ "type": "object",
6621
+ "required": [
6622
+ "rate_relation"
5389
6623
  ],
5390
- "description": "Task family inferred for a repeated GenAI workflow cluster."
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
+ ]
5391
6640
  },
5392
- "Cost.GenAiEtlValidationMetric": {
6641
+ "Cost.ModelCatalogTokenBaseRateComponent": {
6642
+ "type": "object",
6643
+ "required": [
6644
+ "rate_relation"
6645
+ ],
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
+ ]
6662
+ },
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": {
5393
6834
  "type": "string",
5394
6835
  "enum": [
5395
- "accuracy",
5396
- "macro_f1",
5397
- "calibration_error",
5398
- "span_precision",
5399
- "span_recall",
5400
- "span_f1",
5401
- "field_exact_match",
5402
- "schema_validity",
5403
- "match_accuracy",
5404
- "recall_at_k",
5405
- "mean_reciprocal_rank",
5406
- "exact_match",
5407
- "numeric_tolerance",
5408
- "human_preference",
5409
- "task_success",
5410
- "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"
5411
6842
  ],
5412
- "description": "Task-specific metrics that can falsify a proposed replacement."
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"
6914
+ ],
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
+ ]
5413
6953
  },
5414
- "Cost.ProviderCostAttribution": {
6954
+ "Cost.ProviderBillingAttribution": {
5415
6955
  "type": "string",
5416
6956
  "enum": [
5417
6957
  "provider_model_period",
5418
6958
  "provider_period",
5419
- "scenario",
5420
6959
  "unavailable"
5421
6960
  ],
5422
- "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."
5423
6962
  },
5424
- "Cost.ProviderCostSource": {
6963
+ "Cost.ProviderBillingSource": {
5425
6964
  "type": "object",
5426
6965
  "required": [
5427
6966
  "provider",
5428
- "kind",
5429
6967
  "status",
5430
6968
  "source_endpoint",
5431
6969
  "attribution"
@@ -5435,21 +6973,13 @@
5435
6973
  "type": "string",
5436
6974
  "description": "Canonical GenAI provider or cloud billing system name."
5437
6975
  },
5438
- "kind": {
5439
- "allOf": [
5440
- {
5441
- "$ref": "#/components/schemas/Cost.ProviderCostSourceKind"
5442
- }
5443
- ],
5444
- "description": "Whether the API returned billed cost or a public catalog price."
5445
- },
5446
6976
  "status": {
5447
6977
  "allOf": [
5448
6978
  {
5449
- "$ref": "#/components/schemas/Cost.ProviderCostSourceStatus"
6979
+ "$ref": "#/components/schemas/Cost.ProviderBillingSourceStatus"
5450
6980
  }
5451
6981
  ],
5452
- "description": "Current synchronization and attribution state."
6982
+ "description": "Current billing synchronization state."
5453
6983
  },
5454
6984
  "source_endpoint": {
5455
6985
  "allOf": [
@@ -5462,7 +6992,7 @@
5462
6992
  "attribution": {
5463
6993
  "allOf": [
5464
6994
  {
5465
- "$ref": "#/components/schemas/Cost.ProviderCostAttribution"
6995
+ "$ref": "#/components/schemas/Cost.ProviderBillingAttribution"
5466
6996
  }
5467
6997
  ],
5468
6998
  "description": "Attribution granularity supported by this source response."
@@ -5480,12 +7010,12 @@
5480
7010
  "period_start": {
5481
7011
  "type": "string",
5482
7012
  "format": "date-time",
5483
- "description": "Start of the provider billing or catalog validity period."
7013
+ "description": "Start of the provider billing period."
5484
7014
  },
5485
7015
  "period_end": {
5486
7016
  "type": "string",
5487
7017
  "format": "date-time",
5488
- "description": "End of the provider billing or catalog validity period."
7018
+ "description": "End of the provider billing period."
5489
7019
  },
5490
7020
  "currency_code": {
5491
7021
  "type": "string",
@@ -5508,27 +7038,21 @@
5508
7038
  "description": "Stable, non-sensitive failure category for the last attempt."
5509
7039
  }
5510
7040
  },
5511
- "description": "Provenance for cost data fetched directly from a provider-owned API."
5512
- },
5513
- "Cost.ProviderCostSourceKind": {
5514
- "type": "string",
5515
- "enum": [
5516
- "actual_billed_cost",
5517
- "official_public_catalog"
5518
- ],
5519
- "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."
5520
7045
  },
5521
- "Cost.ProviderCostSourceStatus": {
7046
+ "Cost.ProviderBillingSourceStatus": {
5522
7047
  "type": "string",
5523
7048
  "enum": [
5524
7049
  "unconfigured",
5525
7050
  "pending",
5526
7051
  "current",
5527
7052
  "stale",
5528
- "sync_failed",
5529
- "not_attributable"
7053
+ "sync_failed"
5530
7054
  ],
5531
- "description": "Current synchronization state for a provider-owned cost source."
7055
+ "description": "Current synchronization state for a provider-owned billing source."
5532
7056
  },
5533
7057
  "Domains.Observe.Session.DeviceType": {
5534
7058
  "type": "string",
@@ -5568,6 +7092,9 @@
5568
7092
  "description": "Previous session ID (for session continuity)"
5569
7093
  }
5570
7094
  },
7095
+ "unevaluatedProperties": {
7096
+ "not": {}
7097
+ },
5571
7098
  "description": "Session span/event attributes"
5572
7099
  },
5573
7100
  "Domains.Observe.Session.SessionClientInfo": {
@@ -5610,6 +7137,9 @@
5610
7137
  "description": "Browser version"
5611
7138
  }
5612
7139
  },
7140
+ "unevaluatedProperties": {
7141
+ "not": {}
7142
+ },
5613
7143
  "description": "Session client information"
5614
7144
  },
5615
7145
  "Domains.Observe.Session.SessionEntity": {
@@ -5716,6 +7246,9 @@
5716
7246
  "description": "GenAI usage summary"
5717
7247
  }
5718
7248
  },
7249
+ "unevaluatedProperties": {
7250
+ "not": {}
7251
+ },
5719
7252
  "description": "Complete session entity with aggregated data",
5720
7253
  "x-csharp-type": "SessionEntity"
5721
7254
  },
@@ -5757,6 +7290,9 @@
5757
7290
  "description": "Event domain"
5758
7291
  }
5759
7292
  },
7293
+ "unevaluatedProperties": {
7294
+ "not": {}
7295
+ },
5760
7296
  "description": "Session lifecycle event"
5761
7297
  },
5762
7298
  "Domains.Observe.Session.SessionEventName": {
@@ -5814,6 +7350,9 @@
5814
7350
  "description": "Providers used in session"
5815
7351
  }
5816
7352
  },
7353
+ "unevaluatedProperties": {
7354
+ "not": {}
7355
+ },
5817
7356
  "description": "Session GenAI usage summary"
5818
7357
  },
5819
7358
  "Domains.Observe.Session.SessionGeoInfo": {
@@ -5844,6 +7383,9 @@
5844
7383
  "description": "Timezone"
5845
7384
  }
5846
7385
  },
7386
+ "unevaluatedProperties": {
7387
+ "not": {}
7388
+ },
5847
7389
  "description": "Session geographic information"
5848
7390
  },
5849
7391
  "Domains.Observe.Session.SessionState": {
@@ -5914,6 +7456,9 @@
5914
7456
  "description": "Bounce rate (single-page sessions)"
5915
7457
  }
5916
7458
  },
7459
+ "unevaluatedProperties": {
7460
+ "not": {}
7461
+ },
5917
7462
  "description": "Aggregated session statistics"
5918
7463
  },
5919
7464
  "Health.HealthCheckEntry": {
@@ -5934,6 +7479,9 @@
5934
7479
  "format": "double"
5935
7480
  }
5936
7481
  },
7482
+ "unevaluatedProperties": {
7483
+ "not": {}
7484
+ },
5937
7485
  "description": "One named health-check result."
5938
7486
  },
5939
7487
  "Health.HealthReport": {
@@ -5958,6 +7506,9 @@
5958
7506
  }
5959
7507
  }
5960
7508
  },
7509
+ "unevaluatedProperties": {
7510
+ "not": {}
7511
+ },
5961
7512
  "description": "Readiness or liveness report returned by /health and /alive."
5962
7513
  },
5963
7514
  "Health.HealthStatus": {
@@ -5980,6 +7531,9 @@
5980
7531
  "default": 24
5981
7532
  }
5982
7533
  },
7534
+ "unevaluatedProperties": {
7535
+ "not": {}
7536
+ },
5983
7537
  "description": "Input for display_mcp_dashboard."
5984
7538
  },
5985
7539
  "Mcp.Tools.DisplayMcpDashboardOutput": {
@@ -5992,6 +7546,9 @@
5992
7546
  "$ref": "#/components/schemas/Mcp.Tools.McpDashboardStats"
5993
7547
  }
5994
7548
  },
7549
+ "unevaluatedProperties": {
7550
+ "not": {}
7551
+ },
5995
7552
  "description": "Structured output for display_mcp_dashboard."
5996
7553
  },
5997
7554
  "Mcp.Tools.DisplayTracesInput": {
@@ -6011,6 +7568,9 @@
6011
7568
  "default": 20
6012
7569
  }
6013
7570
  },
7571
+ "unevaluatedProperties": {
7572
+ "not": {}
7573
+ },
6014
7574
  "description": "Input for display_traces."
6015
7575
  },
6016
7576
  "Mcp.Tools.DisplayTracesOutput": {
@@ -6033,6 +7593,9 @@
6033
7593
  "$ref": "#/components/schemas/Mcp.Tools.McpDataMode"
6034
7594
  }
6035
7595
  },
7596
+ "unevaluatedProperties": {
7597
+ "not": {}
7598
+ },
6036
7599
  "description": "Structured output for display_traces."
6037
7600
  },
6038
7601
  "Mcp.Tools.FetchTelemetryInput": {
@@ -6072,6 +7635,9 @@
6072
7635
  "maximum": 168
6073
7636
  }
6074
7637
  },
7638
+ "unevaluatedProperties": {
7639
+ "not": {}
7640
+ },
6075
7641
  "description": "Input for the app-only fetch_telemetry tool."
6076
7642
  },
6077
7643
  "Mcp.Tools.FetchTelemetryOutput": {
@@ -6102,6 +7668,9 @@
6102
7668
  "$ref": "#/components/schemas/Mcp.Tools.McpDataMode"
6103
7669
  }
6104
7670
  },
7671
+ "unevaluatedProperties": {
7672
+ "not": {}
7673
+ },
6105
7674
  "description": "Structured output for the app-only fetch_telemetry tool."
6106
7675
  },
6107
7676
  "Mcp.Tools.FetchTelemetryView": {
@@ -6124,6 +7693,9 @@
6124
7693
  "$ref": "#/components/schemas/Common.TraceId"
6125
7694
  }
6126
7695
  },
7696
+ "unevaluatedProperties": {
7697
+ "not": {}
7698
+ },
6127
7699
  "description": "Input for get_trace."
6128
7700
  },
6129
7701
  "Mcp.Tools.GetTraceOutput": {
@@ -6140,6 +7712,9 @@
6140
7712
  "$ref": "#/components/schemas/Mcp.Tools.McpDataMode"
6141
7713
  }
6142
7714
  },
7715
+ "unevaluatedProperties": {
7716
+ "not": {}
7717
+ },
6143
7718
  "description": "Structured output for get_trace."
6144
7719
  },
6145
7720
  "Mcp.Tools.ListSessionsInput": {
@@ -6156,6 +7731,9 @@
6156
7731
  "type": "boolean"
6157
7732
  }
6158
7733
  },
7734
+ "unevaluatedProperties": {
7735
+ "not": {}
7736
+ },
6159
7737
  "description": "Input for list_sessions."
6160
7738
  },
6161
7739
  "Mcp.Tools.ListSessionsOutput": {
@@ -6175,6 +7753,9 @@
6175
7753
  "$ref": "#/components/schemas/Mcp.Tools.McpDataMode"
6176
7754
  }
6177
7755
  },
7756
+ "unevaluatedProperties": {
7757
+ "not": {}
7758
+ },
6178
7759
  "description": "Structured output for list_sessions."
6179
7760
  },
6180
7761
  "Mcp.Tools.ListTracesInput": {
@@ -6188,6 +7769,9 @@
6188
7769
  "default": 20
6189
7770
  }
6190
7771
  },
7772
+ "unevaluatedProperties": {
7773
+ "not": {}
7774
+ },
6191
7775
  "description": "Input for list_traces."
6192
7776
  },
6193
7777
  "Mcp.Tools.ListTracesOutput": {
@@ -6207,6 +7791,9 @@
6207
7791
  "$ref": "#/components/schemas/Mcp.Tools.McpDataMode"
6208
7792
  }
6209
7793
  },
7794
+ "unevaluatedProperties": {
7795
+ "not": {}
7796
+ },
6210
7797
  "description": "Structured output for list_traces."
6211
7798
  },
6212
7799
  "Mcp.Tools.McpDashboardBucket": {
@@ -6231,6 +7818,9 @@
6231
7818
  "format": "int32",
6232
7819
  "minimum": 0
6233
7820
  }
7821
+ },
7822
+ "unevaluatedProperties": {
7823
+ "not": {}
6234
7824
  }
6235
7825
  },
6236
7826
  "Mcp.Tools.McpDashboardStats": {
@@ -6296,6 +7886,9 @@
6296
7886
  "$ref": "#/components/schemas/Mcp.Tools.McpDataMode"
6297
7887
  }
6298
7888
  },
7889
+ "unevaluatedProperties": {
7890
+ "not": {}
7891
+ },
6299
7892
  "description": "Aggregate MCP traffic statistics shown by qyl.mcp."
6300
7893
  },
6301
7894
  "Mcp.Tools.McpDashboardTotals": {
@@ -6322,6 +7915,9 @@
6322
7915
  "minimum": 0,
6323
7916
  "maximum": 1
6324
7917
  }
7918
+ },
7919
+ "unevaluatedProperties": {
7920
+ "not": {}
6325
7921
  }
6326
7922
  },
6327
7923
  "Mcp.Tools.McpDashboardWindow": {
@@ -6345,6 +7941,9 @@
6345
7941
  "format": "double",
6346
7942
  "minimum": 0
6347
7943
  }
7944
+ },
7945
+ "unevaluatedProperties": {
7946
+ "not": {}
6348
7947
  }
6349
7948
  },
6350
7949
  "Mcp.Tools.McpDataMode": {
@@ -6370,6 +7969,9 @@
6370
7969
  "format": "int32",
6371
7970
  "minimum": 0
6372
7971
  }
7972
+ },
7973
+ "unevaluatedProperties": {
7974
+ "not": {}
6373
7975
  }
6374
7976
  },
6375
7977
  "Mcp.Tools.McpToolStats": {
@@ -6412,6 +8014,9 @@
6412
8014
  "format": "double",
6413
8015
  "minimum": 0
6414
8016
  }
8017
+ },
8018
+ "unevaluatedProperties": {
8019
+ "not": {}
6415
8020
  }
6416
8021
  },
6417
8022
  "Mcp.Tools.SearchLogsInput": {
@@ -6440,6 +8045,9 @@
6440
8045
  "default": 50
6441
8046
  }
6442
8047
  },
8048
+ "unevaluatedProperties": {
8049
+ "not": {}
8050
+ },
6443
8051
  "description": "Input for search_logs."
6444
8052
  },
6445
8053
  "Mcp.Tools.SearchLogsOutput": {
@@ -6459,12 +8067,14 @@
6459
8067
  "$ref": "#/components/schemas/Mcp.Tools.McpDataMode"
6460
8068
  }
6461
8069
  },
8070
+ "unevaluatedProperties": {
8071
+ "not": {}
8072
+ },
6462
8073
  "description": "Structured output for search_logs."
6463
8074
  },
6464
8075
  "OTel.Enums.AggregationTemporality": {
6465
8076
  "type": "number",
6466
8077
  "enum": [
6467
- 0,
6468
8078
  1,
6469
8079
  2
6470
8080
  ],
@@ -6650,177 +8260,576 @@
6650
8260
  ],
6651
8261
  "description": "Telemetry SDK language"
6652
8262
  },
6653
- "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": {
6654
8470
  "type": "object",
6655
- "oneOf": [
6656
- {
6657
- "$ref": "#/components/schemas/OTel.Logs.LogBodyString"
6658
- },
6659
- {
6660
- "$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"
6661
8479
  },
6662
- {
6663
- "$ref": "#/components/schemas/OTel.Logs.LogBodyArray"
8480
+ "parameters": {
8481
+ "type": "array",
8482
+ "items": {
8483
+ "$ref": "#/components/schemas/Common.Attribute"
8484
+ },
8485
+ "description": "Template parameters"
6664
8486
  },
6665
- {
6666
- "$ref": "#/components/schemas/OTel.Logs.LogBodyBytes"
8487
+ "rendered_message": {
8488
+ "type": "string",
8489
+ "description": "Rendered message"
6667
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"
6668
8502
  ],
6669
- "discriminator": {
6670
- "propertyName": "kind",
6671
- "mapping": {
6672
- "stringBody": "#/components/schemas/OTel.Logs.LogBodyString",
6673
- "kvListBody": "#/components/schemas/OTel.Logs.LogBodyKvList",
6674
- "arrayBody": "#/components/schemas/OTel.Logs.LogBodyArray",
6675
- "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
+ }
6676
8514
  }
6677
8515
  },
6678
- "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."
6679
8520
  },
6680
- "OTel.Logs.LogBodyArray": {
8521
+ "OTel.Metrics.ExponentialHistogramMetricPoint": {
6681
8522
  "type": "object",
6682
8523
  "required": [
6683
- "array_value"
8524
+ "type",
8525
+ "count",
8526
+ "scale",
8527
+ "zero_count",
8528
+ "zero_threshold",
8529
+ "positive",
8530
+ "negative",
8531
+ "aggregation_temporality"
6684
8532
  ],
6685
8533
  "properties": {
6686
- "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": {
6687
8576
  "type": "array",
6688
8577
  "items": {
6689
- "$ref": "#/components/schemas/Common.AttributeValue"
6690
- },
6691
- "description": "Array of values"
8578
+ "$ref": "#/components/schemas/OTel.Metrics.MetricExemplar"
8579
+ }
6692
8580
  }
6693
8581
  },
6694
- "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."
6695
8591
  },
6696
- "OTel.Logs.LogBodyBytes": {
8592
+ "OTel.Metrics.GaugeMetricPoint": {
6697
8593
  "type": "object",
6698
8594
  "required": [
6699
- "bytes_value"
8595
+ "type",
8596
+ "value"
6700
8597
  ],
6701
8598
  "properties": {
6702
- "bytes_value": {
8599
+ "type": {
6703
8600
  "type": "string",
6704
- "contentEncoding": "base64",
6705
- "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
+ }
6706
8613
  }
6707
8614
  },
6708
- "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."
6709
8624
  },
6710
- "OTel.Logs.LogBodyKvList": {
8625
+ "OTel.Metrics.HistogramMetricPoint": {
6711
8626
  "type": "object",
6712
8627
  "required": [
6713
- "kv_list_value"
8628
+ "type",
8629
+ "count",
8630
+ "bucket_counts",
8631
+ "explicit_bounds",
8632
+ "aggregation_temporality"
6714
8633
  ],
6715
8634
  "properties": {
6716
- "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": {
6717
8649
  "type": "array",
6718
8650
  "items": {
6719
- "$ref": "#/components/schemas/Common.Attribute"
6720
- },
6721
- "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
+ }
6722
8677
  }
6723
8678
  },
6724
- "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."
6725
8688
  },
6726
- "OTel.Logs.LogBodyString": {
8689
+ "OTel.Metrics.MetricDoubleValue": {
6727
8690
  "type": "object",
6728
8691
  "required": [
6729
- "string_value"
8692
+ "as_double"
6730
8693
  ],
6731
8694
  "properties": {
6732
- "string_value": {
6733
- "type": "string",
6734
- "description": "String value"
8695
+ "as_double": {
8696
+ "type": "number",
8697
+ "format": "double"
6735
8698
  }
6736
8699
  },
6737
- "description": "String log body"
8700
+ "unevaluatedProperties": {
8701
+ "not": {}
8702
+ },
8703
+ "description": "A floating-point measurement value from an OTLP number data point or exemplar."
6738
8704
  },
6739
- "OTel.Logs.LogRecord": {
8705
+ "OTel.Metrics.MetricExemplar": {
6740
8706
  "type": "object",
6741
8707
  "required": [
6742
8708
  "time_unix_nano",
6743
- "observed_time_unix_nano",
6744
- "severity_number",
6745
- "body",
6746
- "resource"
8709
+ "value"
6747
8710
  ],
6748
8711
  "properties": {
6749
8712
  "time_unix_nano": {
6750
- "allOf": [
6751
- {
6752
- "$ref": "#/components/schemas/Common.UnixNanos"
6753
- }
6754
- ],
6755
- "description": "Timestamp when the event occurred (nanoseconds since epoch)"
8713
+ "$ref": "#/components/schemas/OTel.Metrics.MetricUnixNanos"
6756
8714
  },
6757
- "observed_time_unix_nano": {
6758
- "allOf": [
6759
- {
6760
- "$ref": "#/components/schemas/Common.UnixNanos"
6761
- }
6762
- ],
6763
- "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."
6764
8802
  },
6765
- "severity_number": {
6766
- "allOf": [
6767
- {
6768
- "$ref": "#/components/schemas/OTel.Enums.SeverityNumber"
6769
- }
6770
- ],
6771
- "description": "Severity number (1-24)"
8803
+ "description": {
8804
+ "type": "string"
6772
8805
  },
6773
- "severity_text": {
6774
- "allOf": [
6775
- {
6776
- "$ref": "#/components/schemas/OTel.Enums.SeverityText"
6777
- }
6778
- ],
6779
- "description": "Severity text (DEBUG, INFO, WARN, ERROR, etc.)"
8806
+ "unit": {
8807
+ "type": "string"
6780
8808
  },
6781
- "body": {
6782
- "allOf": [
6783
- {
6784
- "$ref": "#/components/schemas/OTel.Logs.LogBody"
6785
- }
6786
- ],
6787
- "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."
6788
8815
  },
6789
8816
  "attributes": {
6790
8817
  "type": "array",
6791
8818
  "items": {
6792
8819
  "$ref": "#/components/schemas/Common.Attribute"
6793
8820
  },
6794
- "description": "Log attributes"
8821
+ "description": "Attributes identifying this metric time series."
6795
8822
  },
6796
- "dropped_attributes_count": {
6797
- "allOf": [
6798
- {
6799
- "$ref": "#/components/schemas/Common.Count"
6800
- }
6801
- ],
6802
- "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"
6803
8828
  },
6804
8829
  "flags": {
6805
8830
  "type": "integer",
6806
- "format": "int32",
6807
- "description": "Flags (trace flags)"
6808
- },
6809
- "trace_id": {
6810
- "allOf": [
6811
- {
6812
- "$ref": "#/components/schemas/Common.TraceId"
6813
- }
6814
- ],
6815
- "description": "Associated trace ID"
6816
- },
6817
- "span_id": {
6818
- "allOf": [
6819
- {
6820
- "$ref": "#/components/schemas/Common.SpanId"
6821
- }
6822
- ],
6823
- "description": "Associated span ID"
8831
+ "format": "uint32",
8832
+ "description": "OTLP data-point flags preserved as an extensible bit field."
6824
8833
  },
6825
8834
  "resource": {
6826
8835
  "allOf": [
@@ -6828,43 +8837,143 @@
6828
8837
  "$ref": "#/components/schemas/OTel.Resource.Resource"
6829
8838
  }
6830
8839
  ],
6831
- "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"
6832
8844
  },
6833
8845
  "instrumentation_scope": {
6834
- "allOf": [
6835
- {
6836
- "$ref": "#/components/schemas/Common.InstrumentationScope"
6837
- }
6838
- ],
6839
- "description": "Instrumentation scope"
8846
+ "$ref": "#/components/schemas/Common.InstrumentationScope"
8847
+ },
8848
+ "scope_schema_url": {
8849
+ "type": "string"
6840
8850
  }
6841
8851
  },
6842
- "description": "OpenTelemetry Log Record"
8852
+ "description": "Fields shared by every persisted OTLP metric data point."
6843
8853
  },
6844
- "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": {
6845
8875
  "type": "object",
6846
8876
  "required": [
6847
- "template",
6848
- "parameters"
8877
+ "type",
8878
+ "value",
8879
+ "aggregation_temporality",
8880
+ "is_monotonic"
6849
8881
  ],
6850
8882
  "properties": {
6851
- "template": {
8883
+ "type": {
6852
8884
  "type": "string",
6853
- "description": "Template string with {placeholder} syntax"
8885
+ "enum": [
8886
+ "sum"
8887
+ ]
6854
8888
  },
6855
- "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": {
6856
8899
  "type": "array",
6857
8900
  "items": {
6858
- "$ref": "#/components/schemas/Common.Attribute"
6859
- },
6860
- "description": "Template parameters"
6861
- },
6862
- "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": {
6863
8925
  "type": "string",
6864
- "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
+ }
6865
8942
  }
6866
8943
  },
6867
- "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."
6868
8977
  },
6869
8978
  "OTel.Profiles.Profile": {
6870
8979
  "type": "object",
@@ -7010,6 +9119,9 @@
7010
9119
  "description": "Stack table (ordered location sequences)"
7011
9120
  }
7012
9121
  },
9122
+ "unevaluatedProperties": {
9123
+ "not": {}
9124
+ },
7013
9125
  "description": "OpenTelemetry Profile representing a continuous profiling snapshot"
7014
9126
  },
7015
9127
  "OTel.Profiles.ProfileFunction": {
@@ -7036,6 +9148,9 @@
7036
9148
  "description": "First line number of the function in source"
7037
9149
  }
7038
9150
  },
9151
+ "unevaluatedProperties": {
9152
+ "not": {}
9153
+ },
7039
9154
  "description": "Function identity in a profiled binary"
7040
9155
  },
7041
9156
  "OTel.Profiles.ProfileLine": {
@@ -7057,6 +9172,9 @@
7057
9172
  "description": "Source column number"
7058
9173
  }
7059
9174
  },
9175
+ "unevaluatedProperties": {
9176
+ "not": {}
9177
+ },
7060
9178
  "description": "Source line within a location"
7061
9179
  },
7062
9180
  "OTel.Profiles.ProfileLink": {
@@ -7079,6 +9197,9 @@
7079
9197
  "description": "Linked span ID (8 bytes)"
7080
9198
  }
7081
9199
  },
9200
+ "unevaluatedProperties": {
9201
+ "not": {}
9202
+ },
7082
9203
  "description": "Cross-signal link from profile sample to trace/span"
7083
9204
  },
7084
9205
  "OTel.Profiles.ProfileLocation": {
@@ -7110,6 +9231,9 @@
7110
9231
  "description": "Attribute indices"
7111
9232
  }
7112
9233
  },
9234
+ "unevaluatedProperties": {
9235
+ "not": {}
9236
+ },
7113
9237
  "description": "Code location within a profiled binary"
7114
9238
  },
7115
9239
  "OTel.Profiles.ProfileMapping": {
@@ -7144,6 +9268,9 @@
7144
9268
  "description": "Attribute indices"
7145
9269
  }
7146
9270
  },
9271
+ "unevaluatedProperties": {
9272
+ "not": {}
9273
+ },
7147
9274
  "description": "Memory mapping for a loaded binary or shared library"
7148
9275
  },
7149
9276
  "OTel.Profiles.ProfileQueryFilters": {
@@ -7212,6 +9339,9 @@
7212
9339
  "description": "End of time range (exclusive, ISO 8601)"
7213
9340
  }
7214
9341
  },
9342
+ "unevaluatedProperties": {
9343
+ "not": {}
9344
+ },
7215
9345
  "description": "Filter parameters for querying profiles"
7216
9346
  },
7217
9347
  "OTel.Profiles.ProfileSample": {
@@ -7251,6 +9381,9 @@
7251
9381
  "description": "Timestamps for each value in nanoseconds since epoch"
7252
9382
  }
7253
9383
  },
9384
+ "unevaluatedProperties": {
9385
+ "not": {}
9386
+ },
7254
9387
  "description": "Individual profiling sample"
7255
9388
  },
7256
9389
  "OTel.Profiles.ProfileStack": {
@@ -7265,6 +9398,9 @@
7265
9398
  "description": "Location indices from leaf (index 0) to root"
7266
9399
  }
7267
9400
  },
9401
+ "unevaluatedProperties": {
9402
+ "not": {}
9403
+ },
7268
9404
  "description": "Ordered sequence of location indices forming a call stack"
7269
9405
  },
7270
9406
  "OTel.Profiles.ProfileStats": {
@@ -7318,6 +9454,9 @@
7318
9454
  "description": "Stats grouped by frame type"
7319
9455
  }
7320
9456
  },
9457
+ "unevaluatedProperties": {
9458
+ "not": {}
9459
+ },
7321
9460
  "description": "Aggregated profile statistics"
7322
9461
  },
7323
9462
  "OTel.Profiles.ProfileStatsByDimension": {
@@ -7355,6 +9494,9 @@
7355
9494
  "description": "Average duration in nanoseconds"
7356
9495
  }
7357
9496
  },
9497
+ "unevaluatedProperties": {
9498
+ "not": {}
9499
+ },
7358
9500
  "description": "Profile statistics for a specific dimension value"
7359
9501
  },
7360
9502
  "OTel.Profiles.ProfileValueType": {
@@ -7371,6 +9513,9 @@
7371
9513
  "description": "Unit string index into string table"
7372
9514
  }
7373
9515
  },
9516
+ "unevaluatedProperties": {
9517
+ "not": {}
9518
+ },
7374
9519
  "description": "Sample type descriptor (what was measured and in what unit)"
7375
9520
  },
7376
9521
  "OTel.Resource.CloudProvider": {
@@ -7608,6 +9753,9 @@
7608
9753
  "description": "Dropped attributes count"
7609
9754
  }
7610
9755
  },
9756
+ "unevaluatedProperties": {
9757
+ "not": {}
9758
+ },
7611
9759
  "description": "Resource describes the entity producing telemetry"
7612
9760
  },
7613
9761
  "OTel.Traces.Span": {
@@ -7759,6 +9907,9 @@
7759
9907
  "description": "Instrumentation scope"
7760
9908
  }
7761
9909
  },
9910
+ "unevaluatedProperties": {
9911
+ "not": {}
9912
+ },
7762
9913
  "description": "OpenTelemetry Span representing a single operation in a distributed trace"
7763
9914
  },
7764
9915
  "OTel.Traces.SpanEvent": {
@@ -7797,6 +9948,9 @@
7797
9948
  "description": "Dropped attributes count"
7798
9949
  }
7799
9950
  },
9951
+ "unevaluatedProperties": {
9952
+ "not": {}
9953
+ },
7800
9954
  "description": "Event occurring during a span's lifetime"
7801
9955
  },
7802
9956
  "OTel.Traces.SpanLink": {
@@ -7851,6 +10005,9 @@
7851
10005
  "description": "Link flags"
7852
10006
  }
7853
10007
  },
10008
+ "unevaluatedProperties": {
10009
+ "not": {}
10010
+ },
7854
10011
  "description": "Link to another span (e.g., batch processing)"
7855
10012
  },
7856
10013
  "OTel.Traces.SpanQueryFilters": {
@@ -7917,6 +10074,9 @@
7917
10074
  "description": "Filter by attribute key-value pair"
7918
10075
  }
7919
10076
  },
10077
+ "unevaluatedProperties": {
10078
+ "not": {}
10079
+ },
7920
10080
  "description": "Filter parameters for querying spans"
7921
10081
  },
7922
10082
  "OTel.Traces.SpanStats": {
@@ -8023,6 +10183,9 @@
8023
10183
  "description": "Stats grouped by operation name"
8024
10184
  }
8025
10185
  },
10186
+ "unevaluatedProperties": {
10187
+ "not": {}
10188
+ },
8026
10189
  "description": "Aggregated span statistics"
8027
10190
  },
8028
10191
  "OTel.Traces.SpanStatsByDimension": {
@@ -8060,6 +10223,9 @@
8060
10223
  "description": "Error rate for this dimension"
8061
10224
  }
8062
10225
  },
10226
+ "unevaluatedProperties": {
10227
+ "not": {}
10228
+ },
8063
10229
  "description": "Span statistics for a specific dimension value"
8064
10230
  },
8065
10231
  "OTel.Traces.SpanStatus": {
@@ -8081,6 +10247,9 @@
8081
10247
  "description": "Status message (only for ERROR status)"
8082
10248
  }
8083
10249
  },
10250
+ "unevaluatedProperties": {
10251
+ "not": {}
10252
+ },
8084
10253
  "description": "Span status"
8085
10254
  },
8086
10255
  "OTel.Traces.Trace": {
@@ -8097,6 +10266,9 @@
8097
10266
  "description": "All spans in this trace"
8098
10267
  }
8099
10268
  },
10269
+ "unevaluatedProperties": {
10270
+ "not": {}
10271
+ },
8100
10272
  "allOf": [
8101
10273
  {
8102
10274
  "$ref": "#/components/schemas/OTel.Traces.TraceSummary"
@@ -8191,6 +10363,9 @@
8191
10363
  "type": "string"
8192
10364
  }
8193
10365
  },
10366
+ "unevaluatedProperties": {
10367
+ "not": {}
10368
+ },
8194
10369
  "allOf": [
8195
10370
  {
8196
10371
  "$ref": "#/components/schemas/Runner.Mcp.RunnerMcpContentMetadata"
@@ -8209,6 +10384,9 @@
8209
10384
  "contentEncoding": "base64"
8210
10385
  }
8211
10386
  },
10387
+ "unevaluatedProperties": {
10388
+ "not": {}
10389
+ },
8212
10390
  "allOf": [
8213
10391
  {
8214
10392
  "$ref": "#/components/schemas/Runner.Mcp.RunnerMcpResourceContentMetadata"
@@ -8273,6 +10451,9 @@
8273
10451
  "$ref": "#/components/schemas/Runner.Mcp.RunnerMcpResourceContent"
8274
10452
  }
8275
10453
  },
10454
+ "unevaluatedProperties": {
10455
+ "not": {}
10456
+ },
8276
10457
  "allOf": [
8277
10458
  {
8278
10459
  "$ref": "#/components/schemas/Runner.Mcp.RunnerMcpContentMetadata"
@@ -8302,6 +10483,9 @@
8302
10483
  "type": "string"
8303
10484
  }
8304
10485
  },
10486
+ "unevaluatedProperties": {
10487
+ "not": {}
10488
+ },
8305
10489
  "description": "Icon metadata carried by MCP tools and resource links."
8306
10490
  },
8307
10491
  "Runner.Mcp.RunnerMcpImageContent": {
@@ -8326,6 +10510,9 @@
8326
10510
  "type": "string"
8327
10511
  }
8328
10512
  },
10513
+ "unevaluatedProperties": {
10514
+ "not": {}
10515
+ },
8329
10516
  "allOf": [
8330
10517
  {
8331
10518
  "$ref": "#/components/schemas/Runner.Mcp.RunnerMcpContentMetadata"
@@ -8406,6 +10593,9 @@
8406
10593
  }
8407
10594
  }
8408
10595
  },
10596
+ "unevaluatedProperties": {
10597
+ "not": {}
10598
+ },
8409
10599
  "allOf": [
8410
10600
  {
8411
10601
  "$ref": "#/components/schemas/Runner.Mcp.RunnerMcpContentMetadata"
@@ -8428,6 +10618,9 @@
8428
10618
  "unevaluatedProperties": {}
8429
10619
  }
8430
10620
  },
10621
+ "unevaluatedProperties": {
10622
+ "not": {}
10623
+ },
8431
10624
  "description": "Resource URI accepted by the runner's MCP projection."
8432
10625
  },
8433
10626
  "Runner.Mcp.RunnerMcpResourceReadResponse": {
@@ -8447,6 +10640,9 @@
8447
10640
  "unevaluatedProperties": {}
8448
10641
  }
8449
10642
  },
10643
+ "unevaluatedProperties": {
10644
+ "not": {}
10645
+ },
8450
10646
  "description": "Stable qyl projection of an MCP resources/read result."
8451
10647
  },
8452
10648
  "Runner.Mcp.RunnerMcpTask": {
@@ -8484,6 +10680,9 @@
8484
10680
  "format": "double"
8485
10681
  }
8486
10682
  },
10683
+ "unevaluatedProperties": {
10684
+ "not": {}
10685
+ },
8487
10686
  "description": "Task returned by an MCP task-augmented tool call. ttl and pollInterval are encoded as milliseconds."
8488
10687
  },
8489
10688
  "Runner.Mcp.RunnerMcpTaskMetadata": {
@@ -8494,6 +10693,9 @@
8494
10693
  "format": "double"
8495
10694
  }
8496
10695
  },
10696
+ "unevaluatedProperties": {
10697
+ "not": {}
10698
+ },
8497
10699
  "description": "Task-augmentation metadata accepted on an MCP tool call. ttl is encoded as milliseconds."
8498
10700
  },
8499
10701
  "Runner.Mcp.RunnerMcpTaskStatus": {
@@ -8524,6 +10726,9 @@
8524
10726
  "type": "string"
8525
10727
  }
8526
10728
  },
10729
+ "unevaluatedProperties": {
10730
+ "not": {}
10731
+ },
8527
10732
  "allOf": [
8528
10733
  {
8529
10734
  "$ref": "#/components/schemas/Runner.Mcp.RunnerMcpContentMetadata"
@@ -8541,6 +10746,9 @@
8541
10746
  "type": "string"
8542
10747
  }
8543
10748
  },
10749
+ "unevaluatedProperties": {
10750
+ "not": {}
10751
+ },
8544
10752
  "allOf": [
8545
10753
  {
8546
10754
  "$ref": "#/components/schemas/Runner.Mcp.RunnerMcpResourceContentMetadata"
@@ -8590,6 +10798,9 @@
8590
10798
  "unevaluatedProperties": {}
8591
10799
  }
8592
10800
  },
10801
+ "unevaluatedProperties": {
10802
+ "not": {}
10803
+ },
8593
10804
  "description": "Stable qyl projection of an MCP tool advertised by a runner resource."
8594
10805
  },
8595
10806
  "Runner.Mcp.RunnerMcpToolCallRequest": {
@@ -8613,6 +10824,9 @@
8613
10824
  "unevaluatedProperties": {}
8614
10825
  }
8615
10826
  },
10827
+ "unevaluatedProperties": {
10828
+ "not": {}
10829
+ },
8616
10830
  "description": "Tool call accepted by the runner's MCP projection."
8617
10831
  },
8618
10832
  "Runner.Mcp.RunnerMcpToolCallResponse": {
@@ -8643,6 +10857,9 @@
8643
10857
  "unevaluatedProperties": {}
8644
10858
  }
8645
10859
  },
10860
+ "unevaluatedProperties": {
10861
+ "not": {}
10862
+ },
8646
10863
  "description": "Stable qyl projection of an MCP tool-call result."
8647
10864
  },
8648
10865
  "Runner.Mcp.RunnerMcpToolExecution": {
@@ -8652,6 +10869,9 @@
8652
10869
  "$ref": "#/components/schemas/Runner.Mcp.RunnerMcpToolTaskSupport"
8653
10870
  }
8654
10871
  },
10872
+ "unevaluatedProperties": {
10873
+ "not": {}
10874
+ },
8655
10875
  "description": "Execution metadata advertised for an MCP tool."
8656
10876
  },
8657
10877
  "Runner.Mcp.RunnerMcpToolResultContent": {
@@ -8685,6 +10905,9 @@
8685
10905
  "type": "boolean"
8686
10906
  }
8687
10907
  },
10908
+ "unevaluatedProperties": {
10909
+ "not": {}
10910
+ },
8688
10911
  "allOf": [
8689
10912
  {
8690
10913
  "$ref": "#/components/schemas/Runner.Mcp.RunnerMcpContentMetadata"
@@ -8724,6 +10947,9 @@
8724
10947
  },
8725
10948
  "input": {}
8726
10949
  },
10950
+ "unevaluatedProperties": {
10951
+ "not": {}
10952
+ },
8727
10953
  "allOf": [
8728
10954
  {
8729
10955
  "$ref": "#/components/schemas/Runner.Mcp.RunnerMcpContentMetadata"
@@ -8751,6 +10977,9 @@
8751
10977
  "unevaluatedProperties": {}
8752
10978
  }
8753
10979
  },
10980
+ "unevaluatedProperties": {
10981
+ "not": {}
10982
+ },
8754
10983
  "description": "MCP tools currently advertised by a runner resource."
8755
10984
  },
8756
10985
  "Runner.RunnerLogEvents": {
@@ -8774,6 +11003,9 @@
8774
11003
  "type": "string"
8775
11004
  }
8776
11005
  },
11006
+ "unevaluatedProperties": {
11007
+ "not": {}
11008
+ },
8777
11009
  "description": "One bounded child-process log line exposed by the runner."
8778
11010
  },
8779
11011
  "Runner.RunnerLogStream": {
@@ -8798,6 +11030,9 @@
8798
11030
  "type": "string"
8799
11031
  }
8800
11032
  },
11033
+ "unevaluatedProperties": {
11034
+ "not": {}
11035
+ },
8801
11036
  "description": "Identity reported by a connected MCP server during initialization."
8802
11037
  },
8803
11038
  "Runner.RunnerResourceEvents": {
@@ -8875,6 +11110,9 @@
8875
11110
  "minimum": 0
8876
11111
  }
8877
11112
  },
11113
+ "unevaluatedProperties": {
11114
+ "not": {}
11115
+ },
8878
11116
  "description": "Current client-visible state of one runner resource."
8879
11117
  },
8880
11118
  "Streaming.HeartbeatEvent": {
@@ -8895,6 +11133,9 @@
8895
11133
  "format": "date-time"
8896
11134
  }
8897
11135
  },
11136
+ "unevaluatedProperties": {
11137
+ "not": {}
11138
+ },
8898
11139
  "description": "Keep-alive event emitted while no new log is available."
8899
11140
  },
8900
11141
  "Streaming.LogEvents": {
@@ -8929,6 +11170,9 @@
8929
11170
  "format": "date-time"
8930
11171
  }
8931
11172
  },
11173
+ "unevaluatedProperties": {
11174
+ "not": {}
11175
+ },
8932
11176
  "description": "One log delivered by the collector's live stream."
8933
11177
  }
8934
11178
  },