@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.
@@ -24,6 +24,9 @@
24
24
  "description": "Attribute value"
25
25
  }
26
26
  },
27
+ "unevaluatedProperties": {
28
+ "not": {}
29
+ },
27
30
  "description": "Key-value attribute pair following OTel conventions"
28
31
  },
29
32
  "Common.AttributeBytesValue": {
@@ -44,6 +47,9 @@
44
47
  "contentEncoding": "base64"
45
48
  }
46
49
  },
50
+ "unevaluatedProperties": {
51
+ "not": {}
52
+ },
47
53
  "description": "Base64 bytes projected by qyl without colliding with an ordinary string attribute."
48
54
  },
49
55
  "Common.AttributeKeyValueListValue": {
@@ -98,6 +104,9 @@
98
104
  "description": "List of key-value attributes"
99
105
  }
100
106
  },
107
+ "unevaluatedProperties": {
108
+ "not": {}
109
+ },
101
110
  "description": "Collection of attributes"
102
111
  },
103
112
  "Common.ByteSize": {
@@ -197,6 +206,9 @@
197
206
  "description": "Stable dependency category; never contains raw exception text"
198
207
  }
199
208
  },
209
+ "unevaluatedProperties": {
210
+ "not": {}
211
+ },
200
212
  "allOf": [
201
213
  {
202
214
  "$ref": "#/$defs/Common.Errors.ProblemDetails"
@@ -221,6 +233,9 @@
221
233
  "description": "The conflicting resource ID"
222
234
  }
223
235
  },
236
+ "unevaluatedProperties": {
237
+ "not": {}
238
+ },
224
239
  "allOf": [
225
240
  {
226
241
  "$ref": "#/$defs/Common.Errors.ProblemDetails"
@@ -245,6 +260,9 @@
245
260
  "description": "Required permission that is missing"
246
261
  }
247
262
  },
263
+ "unevaluatedProperties": {
264
+ "not": {}
265
+ },
248
266
  "allOf": [
249
267
  {
250
268
  "$ref": "#/$defs/Common.Errors.ProblemDetails"
@@ -269,6 +287,9 @@
269
287
  "description": "Error code for support reference"
270
288
  }
271
289
  },
290
+ "unevaluatedProperties": {
291
+ "not": {}
292
+ },
272
293
  "allOf": [
273
294
  {
274
295
  "$ref": "#/$defs/Common.Errors.ProblemDetails"
@@ -297,6 +318,9 @@
297
318
  "description": "The identifier that was not found"
298
319
  }
299
320
  },
321
+ "unevaluatedProperties": {
322
+ "not": {}
323
+ },
300
324
  "allOf": [
301
325
  {
302
326
  "$ref": "#/$defs/Common.Errors.ProblemDetails"
@@ -357,6 +381,9 @@
357
381
  ]
358
382
  }
359
383
  },
384
+ "unevaluatedProperties": {
385
+ "not": {}
386
+ },
360
387
  "allOf": [
361
388
  {
362
389
  "$ref": "#/$defs/Common.Errors.ProblemDetails"
@@ -386,6 +413,9 @@
386
413
  "description": "Reason for unavailability"
387
414
  }
388
415
  },
416
+ "unevaluatedProperties": {
417
+ "not": {}
418
+ },
389
419
  "allOf": [
390
420
  {
391
421
  "$ref": "#/$defs/Common.Errors.ProblemDetails"
@@ -406,6 +436,9 @@
406
436
  ]
407
437
  }
408
438
  },
439
+ "unevaluatedProperties": {
440
+ "not": {}
441
+ },
409
442
  "allOf": [
410
443
  {
411
444
  "$ref": "#/$defs/Common.Errors.ProblemDetails"
@@ -434,6 +467,9 @@
434
467
  "description": "List of validation errors"
435
468
  }
436
469
  },
470
+ "unevaluatedProperties": {
471
+ "not": {}
472
+ },
437
473
  "allOf": [
438
474
  {
439
475
  "$ref": "#/$defs/Common.Errors.ProblemDetails"
@@ -466,6 +502,9 @@
466
502
  "description": "The rejected value (if safe to include)"
467
503
  }
468
504
  },
505
+ "unevaluatedProperties": {
506
+ "not": {}
507
+ },
469
508
  "description": "Individual validation error detail"
470
509
  },
471
510
  "Common.HttpMethod": {
@@ -524,6 +563,9 @@
524
563
  "description": "Dropped attributes count"
525
564
  }
526
565
  },
566
+ "unevaluatedProperties": {
567
+ "not": {}
568
+ },
527
569
  "description": "Instrumentation scope identifying the library/component emitting telemetry"
528
570
  },
529
571
  "Common.IpAddress": {
@@ -575,6 +617,9 @@
575
617
  "description": "Filter expression"
576
618
  }
577
619
  },
620
+ "unevaluatedProperties": {
621
+ "not": {}
622
+ },
578
623
  "description": "Aggregation query parameters"
579
624
  },
580
625
  "Common.Pagination.CursorPaginationParams": {
@@ -602,6 +647,9 @@
602
647
  "default": "desc"
603
648
  }
604
649
  },
650
+ "unevaluatedProperties": {
651
+ "not": {}
652
+ },
605
653
  "description": "Cursor-based pagination parameters"
606
654
  },
607
655
  "Common.Pagination.OffsetPaginationParams": {
@@ -623,6 +671,9 @@
623
671
  "default": 100
624
672
  }
625
673
  },
674
+ "unevaluatedProperties": {
675
+ "not": {}
676
+ },
626
677
  "description": "Offset-based pagination parameters"
627
678
  },
628
679
  "Common.Pagination.SortOrder": {
@@ -658,6 +709,9 @@
658
709
  "default": 100
659
710
  }
660
711
  },
712
+ "unevaluatedProperties": {
713
+ "not": {}
714
+ },
661
715
  "description": "Streaming parameters for SSE endpoints"
662
716
  },
663
717
  "Common.Pagination.TimeBucket": {
@@ -695,6 +749,9 @@
695
749
  "default": 1000
696
750
  }
697
751
  },
752
+ "unevaluatedProperties": {
753
+ "not": {}
754
+ },
698
755
  "description": "Time-range based query parameters"
699
756
  },
700
757
  "Common.Percentage": {
@@ -860,7 +917,8 @@
860
917
  "error_rate",
861
918
  "average_latency_ms",
862
919
  "p95_latency_ms",
863
- "cost_attribution",
920
+ "catalog_token_estimate",
921
+ "candidate_status",
864
922
  "candidate_path",
865
923
  "validation_metrics",
866
924
  "residual_path",
@@ -929,43 +987,37 @@
929
987
  "p95_latency_ms": {
930
988
  "$ref": "#/$defs/Common.DurationMs"
931
989
  },
932
- "observed_cost_usd": {
990
+ "catalog_token_estimate": {
933
991
  "allOf": [
934
992
  {
935
- "$ref": "#/$defs/Common.CostUsd"
993
+ "$ref": "#/$defs/Cost.GenAiEtlCatalogTokenCostEstimate"
936
994
  }
937
995
  ],
938
- "description": "Provider-sourced cost attributable to this cluster, absent when attribution is not defensible."
939
- },
940
- "cost_per_call_usd": {
941
- "$ref": "#/$defs/Common.CostUsd"
942
- },
943
- "cost_attribution": {
944
- "$ref": "#/$defs/Cost.ProviderCostAttribution"
996
+ "description": "Outcome and, when calculated, detailed current-catalog token-and-request estimate for this cluster. Aggregate provider billing is never attributed to a cluster."
945
997
  },
946
- "spend_share": {
998
+ "measurable_coverage": {
947
999
  "allOf": [
948
1000
  {
949
1001
  "$ref": "#/$defs/Common.Ratio"
950
1002
  }
951
1003
  ],
952
- "description": "Fraction of attributable spend represented by this cluster."
1004
+ "description": "Fraction of calls with a task-specific correctness signal."
953
1005
  },
954
- "measurable_coverage": {
1006
+ "safe_deferral_coverage": {
955
1007
  "allOf": [
956
1008
  {
957
1009
  "$ref": "#/$defs/Common.Ratio"
958
1010
  }
959
1011
  ],
960
- "description": "Fraction of calls with a task-specific correctness signal."
1012
+ "description": "Fraction of calls proven safe to route to a residual path."
961
1013
  },
962
- "safe_deferral_coverage": {
1014
+ "candidate_status": {
963
1015
  "allOf": [
964
1016
  {
965
- "$ref": "#/$defs/Common.Ratio"
1017
+ "$ref": "#/$defs/Cost.GenAiEtlCandidateStatus"
966
1018
  }
967
1019
  ],
968
- "description": "Fraction of calls proven safe to route to a residual path."
1020
+ "description": "Evidence status qualifying the proposed candidate path."
969
1021
  },
970
1022
  "candidate_path": {
971
1023
  "$ref": "#/$defs/Cost.GenAiEtlCandidatePath"
@@ -1000,6 +1052,9 @@
1000
1052
  }
1001
1053
  }
1002
1054
  },
1055
+ "unevaluatedProperties": {
1056
+ "not": {}
1057
+ },
1003
1058
  "description": "Observed economics and evidence for one repeated GenAI workflow cluster."
1004
1059
  },
1005
1060
  "Cost.GenAiEtlAuditEvaluationRequest": {
@@ -1017,6 +1072,9 @@
1017
1072
  "maxItems": 100
1018
1073
  }
1019
1074
  },
1075
+ "unevaluatedProperties": {
1076
+ "not": {}
1077
+ },
1020
1078
  "description": "Batch of cluster scenarios evaluated against one audit period."
1021
1079
  },
1022
1080
  "Cost.GenAiEtlAuditEvaluationResponse": {
@@ -1047,6 +1105,9 @@
1047
1105
  }
1048
1106
  }
1049
1107
  },
1108
+ "unevaluatedProperties": {
1109
+ "not": {}
1110
+ },
1050
1111
  "description": "Batch result for ETL replacement scenarios."
1051
1112
  },
1052
1113
  "Cost.GenAiEtlAuditReport": {
@@ -1056,7 +1117,8 @@
1056
1117
  "period_start",
1057
1118
  "period_end",
1058
1119
  "summary",
1059
- "cost_sources",
1120
+ "billing_sources",
1121
+ "catalog_sources",
1060
1122
  "clusters"
1061
1123
  ],
1062
1124
  "properties": {
@@ -1075,11 +1137,19 @@
1075
1137
  "summary": {
1076
1138
  "$ref": "#/$defs/Cost.GenAiEtlAuditSummary"
1077
1139
  },
1078
- "cost_sources": {
1140
+ "billing_sources": {
1079
1141
  "type": "array",
1080
1142
  "items": {
1081
- "$ref": "#/$defs/Cost.ProviderCostSource"
1082
- }
1143
+ "$ref": "#/$defs/Cost.ProviderBillingSource"
1144
+ },
1145
+ "description": "Provider-owned aggregate billing sources. These totals are not attributed to clusters or used as evaluation baselines."
1146
+ },
1147
+ "catalog_sources": {
1148
+ "type": "array",
1149
+ "items": {
1150
+ "$ref": "#/$defs/Cost.ModelCatalogSource"
1151
+ },
1152
+ "description": "Configured live model catalog sources and their current synchronization state."
1083
1153
  },
1084
1154
  "clusters": {
1085
1155
  "type": "array",
@@ -1088,6 +1158,9 @@
1088
1158
  }
1089
1159
  }
1090
1160
  },
1161
+ "unevaluatedProperties": {
1162
+ "not": {}
1163
+ },
1091
1164
  "description": "Trace-level ETL audit for a bounded period."
1092
1165
  },
1093
1166
  "Cost.GenAiEtlAuditSummary": {
@@ -1096,7 +1169,7 @@
1096
1169
  "total_calls",
1097
1170
  "total_input_tokens",
1098
1171
  "total_output_tokens",
1099
- "priced_call_coverage"
1172
+ "catalog_token_priced_call_coverage"
1100
1173
  ],
1101
1174
  "properties": {
1102
1175
  "total_calls": {
@@ -1108,29 +1181,29 @@
1108
1181
  "total_output_tokens": {
1109
1182
  "$ref": "#/$defs/Common.TokenCount"
1110
1183
  },
1111
- "attributed_cost_usd": {
1184
+ "estimated_catalog_token_cost_usd": {
1112
1185
  "allOf": [
1113
1186
  {
1114
1187
  "$ref": "#/$defs/Common.CostUsd"
1115
1188
  }
1116
1189
  ],
1117
- "description": "Provider-sourced cost attributable to the returned trace population."
1190
+ "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."
1118
1191
  },
1119
- "priced_call_coverage": {
1192
+ "catalog_token_priced_call_coverage": {
1120
1193
  "allOf": [
1121
1194
  {
1122
1195
  "$ref": "#/$defs/Common.Ratio"
1123
1196
  }
1124
1197
  ],
1125
- "description": "Fraction of calls covered by provider cost attribution."
1198
+ "description": "Fraction of observed calls covered by all-or-nothing calculated token-and-request estimates; missing pricing is not treated as zero."
1126
1199
  },
1127
- "economic_concentration": {
1200
+ "estimated_token_economic_concentration": {
1128
1201
  "allOf": [
1129
1202
  {
1130
1203
  "$ref": "#/$defs/Common.Ratio"
1131
1204
  }
1132
1205
  ],
1133
- "description": "Fraction of attributable spend represented by the returned top clusters."
1206
+ "description": "Returned top-cluster token-and-request estimate divided by estimated_catalog_token_cost_usd for the full observed audit population."
1134
1207
  },
1135
1208
  "measurable_coverage": {
1136
1209
  "allOf": [
@@ -1148,82 +1221,39 @@
1148
1221
  ],
1149
1222
  "description": "Fraction of calls proven safe to defer to a residual path."
1150
1223
  },
1151
- "candidate_etl_spend_share": {
1224
+ "candidate_etl_estimated_token_spend_share": {
1152
1225
  "allOf": [
1153
1226
  {
1154
1227
  "$ref": "#/$defs/Common.Ratio"
1155
1228
  }
1156
1229
  ],
1157
- "description": "Fraction of attributable spend attached to ETL-shaped candidates."
1230
+ "description": "Fraction of estimated current-catalog token-and-request spend attached to ETL-shaped candidates."
1158
1231
  }
1159
1232
  },
1233
+ "unevaluatedProperties": {
1234
+ "not": {}
1235
+ },
1160
1236
  "description": "Aggregate trace-level economics for the requested audit period."
1161
1237
  },
1162
- "Cost.GenAiEtlCalculationStatus": {
1163
- "type": "string",
1164
- "enum": [
1165
- "calculated",
1166
- "missing_frontier_cost"
1167
- ],
1168
- "description": "Whether the replaceable-value formula had a defensible baseline cost."
1169
- },
1170
- "Cost.GenAiEtlCandidatePath": {
1171
- "type": "string",
1172
- "enum": [
1173
- "exact_cache",
1174
- "deterministic_code",
1175
- "bounded_retrieval",
1176
- "small_classifier_extractor",
1177
- "smaller_generative_model",
1178
- "frontier_model",
1179
- "insufficient_evidence"
1180
- ],
1181
- "description": "Lowest-risk implementation class suggested by currently available evidence."
1182
- },
1183
- "Cost.GenAiEtlClusterEvaluation": {
1238
+ "Cost.GenAiEtlCalculatedClusterEvaluationBase": {
1184
1239
  "type": "object",
1185
1240
  "required": [
1186
- "cluster_id",
1187
1241
  "status",
1188
- "call_count",
1189
- "coverage",
1190
- "served_call_count",
1191
- "residual_call_count",
1192
- "frontier_cost_basis",
1193
- "alternative_cost_per_call_usd",
1194
- "period_maintenance_cost_usd",
1195
- "period_error_cost_usd"
1242
+ "frontier_cost_per_call_usd",
1243
+ "current_period_cost_usd",
1244
+ "gross_replaceable_value_usd",
1245
+ "net_replaceable_value_usd"
1196
1246
  ],
1197
1247
  "properties": {
1198
- "cluster_id": {
1199
- "type": "string"
1200
- },
1201
1248
  "status": {
1202
- "$ref": "#/$defs/Cost.GenAiEtlCalculationStatus"
1203
- },
1204
- "call_count": {
1205
- "$ref": "#/$defs/Common.Count"
1206
- },
1207
- "coverage": {
1208
- "$ref": "#/$defs/Common.Ratio"
1209
- },
1210
- "served_call_count": {
1211
- "type": "number",
1212
- "format": "double"
1213
- },
1214
- "residual_call_count": {
1215
- "type": "number",
1216
- "format": "double"
1249
+ "type": "string",
1250
+ "enum": [
1251
+ "calculated"
1252
+ ]
1217
1253
  },
1218
1254
  "frontier_cost_per_call_usd": {
1219
1255
  "$ref": "#/$defs/Common.CostUsd"
1220
1256
  },
1221
- "frontier_cost_basis": {
1222
- "$ref": "#/$defs/Cost.ProviderCostAttribution"
1223
- },
1224
- "alternative_cost_per_call_usd": {
1225
- "$ref": "#/$defs/Common.CostUsd"
1226
- },
1227
1257
  "current_period_cost_usd": {
1228
1258
  "$ref": "#/$defs/Common.CostUsd"
1229
1259
  },
@@ -1231,201 +1261,1477 @@
1231
1261
  "type": "number",
1232
1262
  "format": "double"
1233
1263
  },
1234
- "period_maintenance_cost_usd": {
1235
- "$ref": "#/$defs/Common.CostUsd"
1236
- },
1237
- "period_error_cost_usd": {
1238
- "$ref": "#/$defs/Common.CostUsd"
1239
- },
1240
1264
  "net_replaceable_value_usd": {
1241
1265
  "type": "number",
1242
1266
  "format": "double",
1243
1267
  "description": "Net period value; this may be negative when maintenance or error cost exceeds gross savings."
1244
1268
  }
1245
1269
  },
1246
- "description": "Result of replaceable_value = calls * coverage * (frontier - alternative) - maintenance - error."
1270
+ "allOf": [
1271
+ {
1272
+ "$ref": "#/$defs/Cost.GenAiEtlClusterEvaluationBase"
1273
+ }
1274
+ ]
1275
+ },
1276
+ "Cost.GenAiEtlCandidatePath": {
1277
+ "type": "string",
1278
+ "enum": [
1279
+ "exact_cache",
1280
+ "deterministic_code",
1281
+ "bounded_retrieval",
1282
+ "small_classifier_extractor",
1283
+ "smaller_generative_model",
1284
+ "frontier_model",
1285
+ "insufficient_evidence"
1286
+ ],
1287
+ "description": "Lowest-risk implementation class suggested by currently available evidence."
1288
+ },
1289
+ "Cost.GenAiEtlCandidateStatus": {
1290
+ "type": "string",
1291
+ "enum": [
1292
+ "hypothesis_only",
1293
+ "insufficient_evidence"
1294
+ ],
1295
+ "description": "Evidence status of the proposed replacement path."
1296
+ },
1297
+ "Cost.GenAiEtlCatalogTokenAmbiguousModelEstimate": {
1298
+ "type": "object",
1299
+ "required": [
1300
+ "status"
1301
+ ],
1302
+ "properties": {
1303
+ "status": {
1304
+ "type": "string",
1305
+ "enum": [
1306
+ "ambiguous_model"
1307
+ ]
1308
+ }
1309
+ },
1310
+ "unevaluatedProperties": {
1311
+ "not": {}
1312
+ },
1313
+ "allOf": [
1314
+ {
1315
+ "$ref": "#/$defs/Cost.GenAiEtlCatalogTokenEstimateFailureBase"
1316
+ }
1317
+ ]
1247
1318
  },
1248
- "Cost.GenAiEtlClusterScenario": {
1319
+ "Cost.GenAiEtlCatalogTokenCalculatedEstimate": {
1249
1320
  "type": "object",
1250
1321
  "required": [
1251
- "cluster_id",
1252
- "coverage",
1253
- "alternative_cost_per_call_usd",
1254
- "period_maintenance_cost_usd",
1255
- "period_error_cost_usd"
1322
+ "status",
1323
+ "estimated_catalog_token_cost_usd",
1324
+ "estimated_catalog_token_cost_per_call_usd",
1325
+ "provenance",
1326
+ "components"
1256
1327
  ],
1257
1328
  "properties": {
1258
- "cluster_id": {
1259
- "type": "string"
1329
+ "status": {
1330
+ "type": "string",
1331
+ "enum": [
1332
+ "calculated"
1333
+ ]
1260
1334
  },
1261
- "coverage": {
1335
+ "estimated_catalog_token_cost_usd": {
1262
1336
  "allOf": [
1263
1337
  {
1264
- "$ref": "#/$defs/Common.Ratio"
1338
+ "$ref": "#/$defs/Common.CostUsd"
1265
1339
  }
1266
1340
  ],
1267
- "description": "Fraction of cluster calls the replacement is expected to serve safely."
1341
+ "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."
1268
1342
  },
1269
- "frontier_cost_per_call_usd": {
1343
+ "estimated_catalog_token_cost_per_call_usd": {
1270
1344
  "allOf": [
1271
1345
  {
1272
1346
  "$ref": "#/$defs/Common.CostUsd"
1273
1347
  }
1274
1348
  ],
1275
- "description": "Explicit baseline cost per call. When absent, qyl uses provider-attributed cluster cost and otherwise fails closed."
1349
+ "description": "Estimated token and request cost per observed cluster call; this is not an official billed total."
1276
1350
  },
1277
- "alternative_cost_per_call_usd": {
1278
- "$ref": "#/$defs/Common.CostUsd"
1351
+ "provenance": {
1352
+ "allOf": [
1353
+ {
1354
+ "$ref": "#/$defs/Cost.ModelCatalogPriceProvenance"
1355
+ }
1356
+ ],
1357
+ "description": "Exact catalog snapshot and model-match evidence."
1279
1358
  },
1280
- "period_maintenance_cost_usd": {
1281
- "$ref": "#/$defs/Common.CostUsd"
1359
+ "components": {
1360
+ "type": "array",
1361
+ "items": {
1362
+ "$ref": "#/$defs/Cost.ModelCatalogTokenEstimateComponent"
1363
+ },
1364
+ "minItems": 1,
1365
+ "description": "Included token or request usage and rate contributions. Ordered source overrides carry conditional evidence; ordinary inclusive subtype replacements do not require it."
1282
1366
  },
1283
- "period_error_cost_usd": {
1284
- "$ref": "#/$defs/Common.CostUsd"
1367
+ "exclusions": {
1368
+ "type": "array",
1369
+ "items": {
1370
+ "$ref": "#/$defs/Cost.ModelCatalogTokenEstimateExclusion"
1371
+ },
1372
+ "minItems": 1,
1373
+ "description": "Meters or conditional adjustments explicitly omitted from this calculated estimate."
1285
1374
  }
1286
1375
  },
1287
- "description": "What-if assumptions for one workflow cluster over the requested period."
1288
- },
1289
- "Cost.GenAiEtlEvidenceSignal": {
1290
- "type": "string",
1291
- "enum": [
1292
- "workflow_identity",
1293
- "output_contract",
1294
- "provider_model",
1295
- "token_usage",
1296
- "provider_cost",
1297
- "recurring_schema",
1298
- "bounded_reference",
1299
- "task_metric",
1300
- "accepted_output_replay",
1301
- "downstream_fate",
1302
- "calibrated_confidence",
1303
- "shadow_comparison",
1304
- "fallback_policy"
1305
- ],
1306
- "description": "Observable evidence needed to promote an inferred replacement safely."
1307
- },
1308
- "Cost.GenAiEtlOutputContract": {
1309
- "type": "string",
1310
- "enum": [
1311
- "prose",
1312
- "label",
1313
- "span_list",
1314
- "record",
1315
- "vector",
1316
- "catalog_reference",
1317
- "number",
1318
- "boolean",
1319
- "unknown"
1320
- ],
1321
- "description": "Machine-readable output contract inferred for a workflow cluster."
1376
+ "unevaluatedProperties": {
1377
+ "not": {}
1378
+ },
1379
+ "description": "Calculated all-or-nothing current-catalog token and request estimate for a complete workflow cluster."
1322
1380
  },
1323
- "Cost.GenAiEtlPromotionGate": {
1381
+ "Cost.GenAiEtlCatalogTokenClusterEvaluation": {
1324
1382
  "type": "object",
1325
1383
  "required": [
1326
- "gate",
1327
- "state"
1384
+ "frontier_cost_basis",
1385
+ "catalog_provenance"
1328
1386
  ],
1329
1387
  "properties": {
1330
- "gate": {
1331
- "$ref": "#/$defs/Cost.GenAiEtlPromotionGateKind"
1332
- },
1333
- "state": {
1334
- "$ref": "#/$defs/Cost.GenAiEtlPromotionGateState"
1335
- },
1336
- "reason": {
1388
+ "frontier_cost_basis": {
1337
1389
  "type": "string",
1338
- "description": "Stable evidence code explaining the current gate state."
1339
- }
1340
- },
1341
- "description": "Promotion readiness for one gate."
1342
- },
1343
- "Cost.GenAiEtlPromotionGateKind": {
1344
- "type": "string",
1390
+ "enum": [
1391
+ "catalog_token_estimate"
1392
+ ]
1393
+ },
1394
+ "catalog_provenance": {
1395
+ "allOf": [
1396
+ {
1397
+ "$ref": "#/$defs/Cost.ModelCatalogPriceProvenance"
1398
+ }
1399
+ ],
1400
+ "description": "Exact live-catalog snapshot and model-match evidence used for the calculated frontier cost."
1401
+ }
1402
+ },
1403
+ "unevaluatedProperties": {
1404
+ "not": {}
1405
+ },
1406
+ "allOf": [
1407
+ {
1408
+ "$ref": "#/$defs/Cost.GenAiEtlCalculatedClusterEvaluationBase"
1409
+ }
1410
+ ]
1411
+ },
1412
+ "Cost.GenAiEtlCatalogTokenConditionalPricingUnresolvableEstimate": {
1413
+ "type": "object",
1414
+ "required": [
1415
+ "status"
1416
+ ],
1417
+ "properties": {
1418
+ "status": {
1419
+ "type": "string",
1420
+ "enum": [
1421
+ "conditional_pricing_unresolvable"
1422
+ ]
1423
+ }
1424
+ },
1425
+ "unevaluatedProperties": {
1426
+ "not": {}
1427
+ },
1428
+ "allOf": [
1429
+ {
1430
+ "$ref": "#/$defs/Cost.GenAiEtlCatalogTokenEstimateFailureBase"
1431
+ }
1432
+ ]
1433
+ },
1434
+ "Cost.GenAiEtlCatalogTokenCostEstimate": {
1435
+ "oneOf": [
1436
+ {
1437
+ "$ref": "#/$defs/Cost.GenAiEtlCatalogTokenCalculatedEstimate"
1438
+ },
1439
+ {
1440
+ "$ref": "#/$defs/Cost.GenAiEtlCatalogTokenSourceUnavailableEstimate"
1441
+ },
1442
+ {
1443
+ "$ref": "#/$defs/Cost.GenAiEtlCatalogTokenStaleSourceEstimate"
1444
+ },
1445
+ {
1446
+ "$ref": "#/$defs/Cost.GenAiEtlCatalogTokenMissingModelIdentityEstimate"
1447
+ },
1448
+ {
1449
+ "$ref": "#/$defs/Cost.GenAiEtlCatalogTokenModelNotFoundEstimate"
1450
+ },
1451
+ {
1452
+ "$ref": "#/$defs/Cost.GenAiEtlCatalogTokenAmbiguousModelEstimate"
1453
+ },
1454
+ {
1455
+ "$ref": "#/$defs/Cost.GenAiEtlCatalogTokenIncompleteUsageEstimate"
1456
+ },
1457
+ {
1458
+ "$ref": "#/$defs/Cost.GenAiEtlCatalogTokenConditionalPricingUnresolvableEstimate"
1459
+ },
1460
+ {
1461
+ "$ref": "#/$defs/Cost.GenAiEtlCatalogTokenUnsupportedPricingEstimate"
1462
+ }
1463
+ ],
1464
+ "description": "All-or-nothing current-catalog token and request estimate. The status literal selects the complete calculated or fail-closed response shape."
1465
+ },
1466
+ "Cost.GenAiEtlCatalogTokenEstimateFailureBase": {
1467
+ "type": "object",
1468
+ "properties": {
1469
+ "exclusions": {
1470
+ "type": "array",
1471
+ "items": {
1472
+ "$ref": "#/$defs/Cost.ModelCatalogTokenEstimateExclusion"
1473
+ },
1474
+ "minItems": 1,
1475
+ "description": "Available meter or conditional evidence explaining why the cluster estimate failed closed."
1476
+ }
1477
+ }
1478
+ },
1479
+ "Cost.GenAiEtlCatalogTokenIncompleteUsageEstimate": {
1480
+ "type": "object",
1481
+ "required": [
1482
+ "status"
1483
+ ],
1484
+ "properties": {
1485
+ "status": {
1486
+ "type": "string",
1487
+ "enum": [
1488
+ "incomplete_usage"
1489
+ ]
1490
+ }
1491
+ },
1492
+ "unevaluatedProperties": {
1493
+ "not": {}
1494
+ },
1495
+ "allOf": [
1496
+ {
1497
+ "$ref": "#/$defs/Cost.GenAiEtlCatalogTokenEstimateFailureBase"
1498
+ }
1499
+ ]
1500
+ },
1501
+ "Cost.GenAiEtlCatalogTokenMissingModelIdentityEstimate": {
1502
+ "type": "object",
1503
+ "required": [
1504
+ "status"
1505
+ ],
1506
+ "properties": {
1507
+ "status": {
1508
+ "type": "string",
1509
+ "enum": [
1510
+ "missing_model_identity"
1511
+ ]
1512
+ }
1513
+ },
1514
+ "unevaluatedProperties": {
1515
+ "not": {}
1516
+ },
1517
+ "allOf": [
1518
+ {
1519
+ "$ref": "#/$defs/Cost.GenAiEtlCatalogTokenEstimateFailureBase"
1520
+ }
1521
+ ]
1522
+ },
1523
+ "Cost.GenAiEtlCatalogTokenModelNotFoundEstimate": {
1524
+ "type": "object",
1525
+ "required": [
1526
+ "status"
1527
+ ],
1528
+ "properties": {
1529
+ "status": {
1530
+ "type": "string",
1531
+ "enum": [
1532
+ "model_not_found"
1533
+ ]
1534
+ }
1535
+ },
1536
+ "unevaluatedProperties": {
1537
+ "not": {}
1538
+ },
1539
+ "allOf": [
1540
+ {
1541
+ "$ref": "#/$defs/Cost.GenAiEtlCatalogTokenEstimateFailureBase"
1542
+ }
1543
+ ]
1544
+ },
1545
+ "Cost.GenAiEtlCatalogTokenSourceUnavailableEstimate": {
1546
+ "type": "object",
1547
+ "required": [
1548
+ "status"
1549
+ ],
1550
+ "properties": {
1551
+ "status": {
1552
+ "type": "string",
1553
+ "enum": [
1554
+ "source_unavailable"
1555
+ ]
1556
+ }
1557
+ },
1558
+ "unevaluatedProperties": {
1559
+ "not": {}
1560
+ },
1561
+ "allOf": [
1562
+ {
1563
+ "$ref": "#/$defs/Cost.GenAiEtlCatalogTokenEstimateFailureBase"
1564
+ }
1565
+ ]
1566
+ },
1567
+ "Cost.GenAiEtlCatalogTokenStaleSourceEstimate": {
1568
+ "type": "object",
1569
+ "required": [
1570
+ "status"
1571
+ ],
1572
+ "properties": {
1573
+ "status": {
1574
+ "type": "string",
1575
+ "enum": [
1576
+ "stale_source"
1577
+ ]
1578
+ }
1579
+ },
1580
+ "unevaluatedProperties": {
1581
+ "not": {}
1582
+ },
1583
+ "allOf": [
1584
+ {
1585
+ "$ref": "#/$defs/Cost.GenAiEtlCatalogTokenEstimateFailureBase"
1586
+ }
1587
+ ]
1588
+ },
1589
+ "Cost.GenAiEtlCatalogTokenUnsupportedPricingEstimate": {
1590
+ "type": "object",
1591
+ "required": [
1592
+ "status"
1593
+ ],
1594
+ "properties": {
1595
+ "status": {
1596
+ "type": "string",
1597
+ "enum": [
1598
+ "unsupported_pricing"
1599
+ ]
1600
+ }
1601
+ },
1602
+ "unevaluatedProperties": {
1603
+ "not": {}
1604
+ },
1605
+ "allOf": [
1606
+ {
1607
+ "$ref": "#/$defs/Cost.GenAiEtlCatalogTokenEstimateFailureBase"
1608
+ }
1609
+ ]
1610
+ },
1611
+ "Cost.GenAiEtlClusterEvaluation": {
1612
+ "oneOf": [
1613
+ {
1614
+ "$ref": "#/$defs/Cost.GenAiEtlScenarioClusterEvaluation"
1615
+ },
1616
+ {
1617
+ "$ref": "#/$defs/Cost.GenAiEtlCatalogTokenClusterEvaluation"
1618
+ },
1619
+ {
1620
+ "$ref": "#/$defs/Cost.GenAiEtlUnavailableClusterEvaluation"
1621
+ }
1622
+ ],
1623
+ "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."
1624
+ },
1625
+ "Cost.GenAiEtlClusterEvaluationBase": {
1626
+ "type": "object",
1627
+ "required": [
1628
+ "cluster_id",
1629
+ "call_count",
1630
+ "coverage",
1631
+ "served_call_count",
1632
+ "residual_call_count",
1633
+ "alternative_cost_per_call_usd",
1634
+ "period_maintenance_cost_usd",
1635
+ "period_error_cost_usd"
1636
+ ],
1637
+ "properties": {
1638
+ "cluster_id": {
1639
+ "type": "string"
1640
+ },
1641
+ "call_count": {
1642
+ "$ref": "#/$defs/Common.Count"
1643
+ },
1644
+ "coverage": {
1645
+ "$ref": "#/$defs/Common.Ratio"
1646
+ },
1647
+ "served_call_count": {
1648
+ "type": "number",
1649
+ "format": "double"
1650
+ },
1651
+ "residual_call_count": {
1652
+ "type": "number",
1653
+ "format": "double"
1654
+ },
1655
+ "alternative_cost_per_call_usd": {
1656
+ "$ref": "#/$defs/Common.CostUsd"
1657
+ },
1658
+ "period_maintenance_cost_usd": {
1659
+ "$ref": "#/$defs/Common.CostUsd"
1660
+ },
1661
+ "period_error_cost_usd": {
1662
+ "$ref": "#/$defs/Common.CostUsd"
1663
+ }
1664
+ }
1665
+ },
1666
+ "Cost.GenAiEtlClusterScenario": {
1667
+ "type": "object",
1668
+ "required": [
1669
+ "cluster_id",
1670
+ "coverage",
1671
+ "alternative_cost_per_call_usd",
1672
+ "period_maintenance_cost_usd",
1673
+ "period_error_cost_usd"
1674
+ ],
1675
+ "properties": {
1676
+ "cluster_id": {
1677
+ "type": "string"
1678
+ },
1679
+ "coverage": {
1680
+ "allOf": [
1681
+ {
1682
+ "$ref": "#/$defs/Common.Ratio"
1683
+ }
1684
+ ],
1685
+ "description": "Fraction of cluster calls the replacement is expected to serve safely."
1686
+ },
1687
+ "frontier_cost_per_call_usd": {
1688
+ "allOf": [
1689
+ {
1690
+ "$ref": "#/$defs/Common.CostUsd"
1691
+ }
1692
+ ],
1693
+ "description": "Explicit scenario baseline cost per call. It wins over a calculated catalog estimate; when both are absent, evaluation fails closed."
1694
+ },
1695
+ "alternative_cost_per_call_usd": {
1696
+ "$ref": "#/$defs/Common.CostUsd"
1697
+ },
1698
+ "period_maintenance_cost_usd": {
1699
+ "$ref": "#/$defs/Common.CostUsd"
1700
+ },
1701
+ "period_error_cost_usd": {
1702
+ "$ref": "#/$defs/Common.CostUsd"
1703
+ }
1704
+ },
1705
+ "unevaluatedProperties": {
1706
+ "not": {}
1707
+ },
1708
+ "description": "What-if assumptions for one workflow cluster over the requested period."
1709
+ },
1710
+ "Cost.GenAiEtlEvidenceSignal": {
1711
+ "type": "string",
1712
+ "enum": [
1713
+ "workflow_identity",
1714
+ "output_contract",
1715
+ "provider_model",
1716
+ "token_usage",
1717
+ "catalog_token_estimate",
1718
+ "recurring_schema",
1719
+ "bounded_reference",
1720
+ "task_metric",
1721
+ "accepted_output_replay",
1722
+ "downstream_fate",
1723
+ "calibrated_confidence",
1724
+ "shadow_comparison",
1725
+ "fallback_policy"
1726
+ ],
1727
+ "description": "Observable evidence needed to promote an inferred replacement safely."
1728
+ },
1729
+ "Cost.GenAiEtlFrontierCostBasis": {
1730
+ "type": "string",
1731
+ "enum": [
1732
+ "scenario",
1733
+ "catalog_token_estimate",
1734
+ "unavailable"
1735
+ ],
1736
+ "description": "Evidence basis for the frontier cost used in a replacement-value calculation."
1737
+ },
1738
+ "Cost.GenAiEtlOutputContract": {
1739
+ "type": "string",
1740
+ "enum": [
1741
+ "prose",
1742
+ "label",
1743
+ "span_list",
1744
+ "record",
1745
+ "vector",
1746
+ "catalog_reference",
1747
+ "number",
1748
+ "boolean",
1749
+ "unknown"
1750
+ ],
1751
+ "description": "Machine-readable output contract inferred for a workflow cluster."
1752
+ },
1753
+ "Cost.GenAiEtlPromotionGate": {
1754
+ "type": "object",
1755
+ "required": [
1756
+ "gate",
1757
+ "state"
1758
+ ],
1759
+ "properties": {
1760
+ "gate": {
1761
+ "$ref": "#/$defs/Cost.GenAiEtlPromotionGateKind"
1762
+ },
1763
+ "state": {
1764
+ "$ref": "#/$defs/Cost.GenAiEtlPromotionGateState"
1765
+ },
1766
+ "reason": {
1767
+ "type": "string",
1768
+ "description": "Stable evidence code explaining the current gate state."
1769
+ }
1770
+ },
1771
+ "unevaluatedProperties": {
1772
+ "not": {}
1773
+ },
1774
+ "description": "Promotion readiness for one gate."
1775
+ },
1776
+ "Cost.GenAiEtlPromotionGateKind": {
1777
+ "type": "string",
1778
+ "enum": [
1779
+ "contract_stability",
1780
+ "offline_replay",
1781
+ "calibrated_confidence",
1782
+ "shadow_traffic",
1783
+ "limited_serving",
1784
+ "rollback_residual_policy"
1785
+ ],
1786
+ "description": "Promotion gate from replay through limited serving and rollback."
1787
+ },
1788
+ "Cost.GenAiEtlPromotionGateState": {
1789
+ "type": "string",
1790
+ "enum": [
1791
+ "passed",
1792
+ "failed",
1793
+ "not_evaluated",
1794
+ "blocked_missing_evidence"
1795
+ ],
1796
+ "description": "Evaluation state of a promotion gate."
1797
+ },
1798
+ "Cost.GenAiEtlResidualPath": {
1799
+ "type": "string",
1800
+ "enum": [
1801
+ "frontier_model",
1802
+ "human_review",
1803
+ "retry",
1804
+ "degraded_response",
1805
+ "none",
1806
+ "undetermined"
1807
+ ],
1808
+ "description": "Fallback used for requests outside a promoted replacement's safe coverage."
1809
+ },
1810
+ "Cost.GenAiEtlScenarioClusterEvaluation": {
1811
+ "type": "object",
1812
+ "required": [
1813
+ "frontier_cost_basis"
1814
+ ],
1815
+ "properties": {
1816
+ "frontier_cost_basis": {
1817
+ "type": "string",
1818
+ "enum": [
1819
+ "scenario"
1820
+ ]
1821
+ }
1822
+ },
1823
+ "unevaluatedProperties": {
1824
+ "not": {}
1825
+ },
1826
+ "allOf": [
1827
+ {
1828
+ "$ref": "#/$defs/Cost.GenAiEtlCalculatedClusterEvaluationBase"
1829
+ }
1830
+ ]
1831
+ },
1832
+ "Cost.GenAiEtlTaskFamily": {
1833
+ "type": "string",
1834
+ "enum": [
1835
+ "open_reasoning_generation",
1836
+ "classification",
1837
+ "sequence_labeling",
1838
+ "structured_extraction",
1839
+ "retrieval_entity_resolution",
1840
+ "similarity_clustering",
1841
+ "normalization_transformation",
1842
+ "numeric_analytical",
1843
+ "unknown"
1844
+ ],
1845
+ "description": "Task family inferred for a repeated GenAI workflow cluster."
1846
+ },
1847
+ "Cost.GenAiEtlUnavailableClusterEvaluation": {
1848
+ "type": "object",
1849
+ "required": [
1850
+ "status",
1851
+ "frontier_cost_basis"
1852
+ ],
1853
+ "properties": {
1854
+ "status": {
1855
+ "type": "string",
1856
+ "enum": [
1857
+ "missing_frontier_cost"
1858
+ ]
1859
+ },
1860
+ "frontier_cost_basis": {
1861
+ "type": "string",
1862
+ "enum": [
1863
+ "unavailable"
1864
+ ]
1865
+ }
1866
+ },
1867
+ "unevaluatedProperties": {
1868
+ "not": {}
1869
+ },
1870
+ "allOf": [
1871
+ {
1872
+ "$ref": "#/$defs/Cost.GenAiEtlClusterEvaluationBase"
1873
+ }
1874
+ ]
1875
+ },
1876
+ "Cost.GenAiEtlValidationMetric": {
1877
+ "type": "string",
1878
+ "enum": [
1879
+ "accuracy",
1880
+ "macro_f1",
1881
+ "calibration_error",
1882
+ "span_precision",
1883
+ "span_recall",
1884
+ "span_f1",
1885
+ "field_exact_match",
1886
+ "schema_validity",
1887
+ "match_accuracy",
1888
+ "recall_at_k",
1889
+ "mean_reciprocal_rank",
1890
+ "exact_match",
1891
+ "numeric_tolerance",
1892
+ "human_preference",
1893
+ "task_success",
1894
+ "unavailable"
1895
+ ],
1896
+ "description": "Task-specific metrics that can falsify a proposed replacement."
1897
+ },
1898
+ "Cost.ModelCatalogAdditiveSurchargeEvidence": {
1899
+ "type": "object",
1900
+ "required": [
1901
+ "rate_relation"
1902
+ ],
1903
+ "properties": {
1904
+ "rate_relation": {
1905
+ "type": "string",
1906
+ "enum": [
1907
+ "additive_surcharge"
1908
+ ]
1909
+ }
1910
+ },
1911
+ "unevaluatedProperties": {
1912
+ "not": {}
1913
+ }
1914
+ },
1915
+ "Cost.ModelCatalogBaseRateEvidence": {
1916
+ "type": "object",
1917
+ "required": [
1918
+ "rate_relation"
1919
+ ],
1920
+ "properties": {
1921
+ "rate_relation": {
1922
+ "type": "string",
1923
+ "enum": [
1924
+ "base_rate"
1925
+ ]
1926
+ }
1927
+ },
1928
+ "unevaluatedProperties": {
1929
+ "not": {}
1930
+ }
1931
+ },
1932
+ "Cost.ModelCatalogBillingMode": {
1933
+ "type": "string",
1934
+ "enum": [
1935
+ "per_unit",
1936
+ "per_request"
1937
+ ],
1938
+ "description": "How a catalog rate charges its measured quantity."
1939
+ },
1940
+ "Cost.ModelCatalogConditionalAdjustmentNotAppliedExclusion": {
1941
+ "type": "object",
1942
+ "required": [
1943
+ "reason"
1944
+ ],
1945
+ "properties": {
1946
+ "reason": {
1947
+ "type": "string",
1948
+ "enum": [
1949
+ "conditional_adjustment_not_applied"
1950
+ ]
1951
+ }
1952
+ },
1953
+ "unevaluatedProperties": {
1954
+ "not": {}
1955
+ },
1956
+ "allOf": [
1957
+ {
1958
+ "$ref": "#/$defs/Cost.ModelCatalogConditionalExclusionBase"
1959
+ }
1960
+ ]
1961
+ },
1962
+ "Cost.ModelCatalogConditionalExclusionBase": {
1963
+ "type": "object",
1964
+ "required": [
1965
+ "component",
1966
+ "usage_dimension",
1967
+ "unit",
1968
+ "source_billing_mode",
1969
+ "rate_evidence"
1970
+ ],
1971
+ "properties": {
1972
+ "component": {
1973
+ "type": "string"
1974
+ },
1975
+ "usage_dimension": {
1976
+ "type": "string"
1977
+ },
1978
+ "unit": {
1979
+ "type": "string"
1980
+ },
1981
+ "source_billing_mode": {
1982
+ "type": "string",
1983
+ "description": "Source-specific billing mode retained from the catalog or deterministically derived from the provider-defined meter."
1984
+ },
1985
+ "billing_mode": {
1986
+ "allOf": [
1987
+ {
1988
+ "$ref": "#/$defs/Cost.ModelCatalogBillingMode"
1989
+ }
1990
+ ],
1991
+ "description": "Normalized billing mode when qyl recognizes the conditional source meter; absent when the source meter has no supported normalization."
1992
+ },
1993
+ "rate_evidence": {
1994
+ "allOf": [
1995
+ {
1996
+ "$ref": "#/$defs/Cost.ModelCatalogPublishedReplacementEvidence"
1997
+ }
1998
+ ],
1999
+ "description": "The ordered source override that was not applied or was superseded."
2000
+ },
2001
+ "unit_price_usd": {
2002
+ "allOf": [
2003
+ {
2004
+ "$ref": "#/$defs/Common.CostUsd"
2005
+ }
2006
+ ],
2007
+ "description": "Catalog rate omitted from the estimate, when the source supplied one."
2008
+ }
2009
+ }
2010
+ },
2011
+ "Cost.ModelCatalogConditionalRateEvidence": {
2012
+ "type": "object",
2013
+ "required": [
2014
+ "source_order",
2015
+ "condition_usage_dimension",
2016
+ "exclusive_minimum_quantity",
2017
+ "observed_per_call_quantity"
2018
+ ],
2019
+ "properties": {
2020
+ "source_order": {
2021
+ "allOf": [
2022
+ {
2023
+ "$ref": "#/$defs/Cost.ModelCatalogSourceOrder"
2024
+ }
2025
+ ],
2026
+ "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."
2027
+ },
2028
+ "condition_usage_dimension": {
2029
+ "type": "string",
2030
+ "description": "Observed per-call usage dimension evaluated by the source condition."
2031
+ },
2032
+ "exclusive_minimum_quantity": {
2033
+ "type": "number",
2034
+ "format": "double",
2035
+ "minimum": 0,
2036
+ "description": "Exclusive minimum quantity declared by the source condition."
2037
+ },
2038
+ "observed_per_call_quantity": {
2039
+ "type": "number",
2040
+ "format": "double",
2041
+ "minimum": 0,
2042
+ "description": "Observed per-call quantity compared with the exclusive minimum."
2043
+ }
2044
+ },
2045
+ "unevaluatedProperties": {
2046
+ "not": {}
2047
+ },
2048
+ "description": "Ordered evidence proving whether a conditional catalog override applied to an observed request quantity."
2049
+ },
2050
+ "Cost.ModelCatalogExclusionRateEvidence": {
2051
+ "oneOf": [
2052
+ {
2053
+ "$ref": "#/$defs/Cost.ModelCatalogBaseRateEvidence"
2054
+ },
2055
+ {
2056
+ "$ref": "#/$defs/Cost.ModelCatalogAdditiveSurchargeEvidence"
2057
+ },
2058
+ {
2059
+ "$ref": "#/$defs/Cost.ModelCatalogInclusiveReplacementEvidence"
2060
+ },
2061
+ {
2062
+ "$ref": "#/$defs/Cost.ModelCatalogPublishedReplacementEvidence"
2063
+ }
2064
+ ],
2065
+ "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."
2066
+ },
2067
+ "Cost.ModelCatalogInclusiveReplacementEvidence": {
2068
+ "type": "object",
2069
+ "required": [
2070
+ "rate_relation",
2071
+ "replaces_usage_dimension"
2072
+ ],
2073
+ "properties": {
2074
+ "rate_relation": {
2075
+ "type": "string",
2076
+ "enum": [
2077
+ "replaces_inclusive_base_rate"
2078
+ ]
2079
+ },
2080
+ "replaces_usage_dimension": {
2081
+ "type": "string",
2082
+ "description": "Inclusive base usage dimension replaced by this subtype rate."
2083
+ },
2084
+ "conditional_evidence": {
2085
+ "allOf": [
2086
+ {
2087
+ "$ref": "#/$defs/Cost.ModelCatalogConditionalRateEvidence"
2088
+ }
2089
+ ],
2090
+ "description": "Ordered evidence when a source override altered the selected subtype rate."
2091
+ }
2092
+ },
2093
+ "unevaluatedProperties": {
2094
+ "not": {}
2095
+ }
2096
+ },
2097
+ "Cost.ModelCatalogMatchKind": {
2098
+ "type": "string",
1345
2099
  "enum": [
1346
- "contract_stability",
1347
- "offline_replay",
1348
- "calibrated_confidence",
1349
- "shadow_traffic",
1350
- "limited_serving",
1351
- "rollback_residual_policy"
2100
+ "exact_model_id",
2101
+ "exact_canonical_slug"
2102
+ ],
2103
+ "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."
2104
+ },
2105
+ "Cost.ModelCatalogObservedIdentityBasis": {
2106
+ "type": "string",
2107
+ "enum": [
2108
+ "response_model",
2109
+ "request_model_fallback"
2110
+ ],
2111
+ "description": "Telemetry attribute used as the observed model identity for an exact catalog match."
2112
+ },
2113
+ "Cost.ModelCatalogOptionallyNormalizedBillingExclusionBase": {
2114
+ "type": "object",
2115
+ "properties": {
2116
+ "billing_mode": {
2117
+ "allOf": [
2118
+ {
2119
+ "$ref": "#/$defs/Cost.ModelCatalogBillingMode"
2120
+ }
2121
+ ],
2122
+ "description": "Normalized billing mode when qyl recognizes the source meter; absent when the source meter has no supported normalization."
2123
+ }
2124
+ },
2125
+ "allOf": [
2126
+ {
2127
+ "$ref": "#/$defs/Cost.ModelCatalogTokenEstimateExclusionBase"
2128
+ }
2129
+ ]
2130
+ },
2131
+ "Cost.ModelCatalogOutsideTokenScopeExclusion": {
2132
+ "type": "object",
2133
+ "required": [
2134
+ "reason"
2135
+ ],
2136
+ "properties": {
2137
+ "reason": {
2138
+ "type": "string",
2139
+ "enum": [
2140
+ "outside_token_estimate_scope"
2141
+ ]
2142
+ }
2143
+ },
2144
+ "unevaluatedProperties": {
2145
+ "not": {}
2146
+ },
2147
+ "allOf": [
2148
+ {
2149
+ "$ref": "#/$defs/Cost.ModelCatalogOptionallyNormalizedBillingExclusionBase"
2150
+ }
2151
+ ]
2152
+ },
2153
+ "Cost.ModelCatalogPriceProvenance": {
2154
+ "type": "object",
2155
+ "required": [
2156
+ "source_id",
2157
+ "source_endpoint",
2158
+ "snapshot_id",
2159
+ "price_model_id",
2160
+ "observed_model_id",
2161
+ "observed_model_identity_basis",
2162
+ "model_match_kind",
2163
+ "retrieved_at",
2164
+ "price_semantics"
2165
+ ],
2166
+ "properties": {
2167
+ "source_id": {
2168
+ "type": "string",
2169
+ "description": "Unique stable identifier of the configured catalog source."
2170
+ },
2171
+ "source_endpoint": {
2172
+ "allOf": [
2173
+ {
2174
+ "$ref": "#/$defs/Common.UrlString"
2175
+ }
2176
+ ],
2177
+ "description": "Configured API endpoint from which the catalog was retrieved."
2178
+ },
2179
+ "snapshot_id": {
2180
+ "type": "string",
2181
+ "description": "Content-addressed identifier of the exact catalog snapshot used for this estimate."
2182
+ },
2183
+ "price_model_id": {
2184
+ "type": "string",
2185
+ "description": "Exact model identifier selected from the source catalog."
2186
+ },
2187
+ "observed_model_id": {
2188
+ "type": "string",
2189
+ "description": "Exact observed telemetry value compared with the selected catalog record."
2190
+ },
2191
+ "observed_model_identity_basis": {
2192
+ "$ref": "#/$defs/Cost.ModelCatalogObservedIdentityBasis"
2193
+ },
2194
+ "model_match_kind": {
2195
+ "$ref": "#/$defs/Cost.ModelCatalogMatchKind"
2196
+ },
2197
+ "retrieved_at": {
2198
+ "type": "string",
2199
+ "format": "date-time",
2200
+ "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."
2201
+ },
2202
+ "price_semantics": {
2203
+ "$ref": "#/$defs/Cost.ModelCatalogPriceSemantics"
2204
+ }
2205
+ },
2206
+ "unevaluatedProperties": {
2207
+ "not": {}
2208
+ },
2209
+ "description": "Provenance for the live catalog rates used to estimate one cluster."
2210
+ },
2211
+ "Cost.ModelCatalogPriceSemantics": {
2212
+ "type": "string",
2213
+ "enum": [
2214
+ "minimum_available_rate",
2215
+ "published_rate"
2216
+ ],
2217
+ "description": "How a live catalog rate was selected when estimating cluster cost."
2218
+ },
2219
+ "Cost.ModelCatalogPublishedReplacementEvidence": {
2220
+ "type": "object",
2221
+ "required": [
2222
+ "rate_relation",
2223
+ "replaces_usage_dimension",
2224
+ "conditional_evidence"
2225
+ ],
2226
+ "properties": {
2227
+ "rate_relation": {
2228
+ "type": "string",
2229
+ "enum": [
2230
+ "replaces_published_rate"
2231
+ ]
2232
+ },
2233
+ "replaces_usage_dimension": {
2234
+ "type": "string",
2235
+ "description": "Published usage dimension whose prior base, surcharge, or subtype rate was replaced."
2236
+ },
2237
+ "conditional_evidence": {
2238
+ "$ref": "#/$defs/Cost.ModelCatalogConditionalRateEvidence"
2239
+ }
2240
+ },
2241
+ "unevaluatedProperties": {
2242
+ "not": {}
2243
+ }
2244
+ },
2245
+ "Cost.ModelCatalogRateRelation": {
2246
+ "type": "string",
2247
+ "enum": [
2248
+ "base_rate",
2249
+ "additive_surcharge",
2250
+ "replaces_inclusive_base_rate",
2251
+ "replaces_published_rate"
2252
+ ],
2253
+ "description": "How a selected catalog rate relates to the source's published base rate for the same component."
2254
+ },
2255
+ "Cost.ModelCatalogSource": {
2256
+ "type": "object",
2257
+ "required": [
2258
+ "source_id",
2259
+ "priority",
2260
+ "status",
2261
+ "source_endpoint"
2262
+ ],
2263
+ "properties": {
2264
+ "source_id": {
2265
+ "type": "string",
2266
+ "description": "Unique stable identifier of the configured catalog source."
2267
+ },
2268
+ "priority": {
2269
+ "allOf": [
2270
+ {
2271
+ "$ref": "#/$defs/Common.Count"
2272
+ }
2273
+ ],
2274
+ "description": "Configured source priority used for deterministic selection when multiple current catalogs match. Zero is highest priority; lower values win."
2275
+ },
2276
+ "status": {
2277
+ "$ref": "#/$defs/Cost.ModelCatalogSourceStatus"
2278
+ },
2279
+ "price_semantics": {
2280
+ "allOf": [
2281
+ {
2282
+ "$ref": "#/$defs/Cost.ModelCatalogPriceSemantics"
2283
+ }
2284
+ ],
2285
+ "description": "Rate-selection semantics published by this source's active snapshot."
2286
+ },
2287
+ "source_endpoint": {
2288
+ "allOf": [
2289
+ {
2290
+ "$ref": "#/$defs/Common.UrlString"
2291
+ }
2292
+ ],
2293
+ "description": "Configured API endpoint used to fetch the live model catalog."
2294
+ },
2295
+ "last_attempt_at": {
2296
+ "type": "string",
2297
+ "format": "date-time",
2298
+ "description": "UTC time of the latest fetch attempt."
2299
+ },
2300
+ "last_verified_at": {
2301
+ "type": "string",
2302
+ "format": "date-time",
2303
+ "description": "UTC time when the source was last verified successfully, including a verification that retained unchanged content."
2304
+ },
2305
+ "retrieved_at": {
2306
+ "type": "string",
2307
+ "format": "date-time",
2308
+ "description": "UTC time when the content of the currently retained catalog snapshot was retrieved."
2309
+ },
2310
+ "active_snapshot_id": {
2311
+ "type": "string",
2312
+ "description": "Content-addressed identifier of the catalog snapshot currently used for estimates."
2313
+ },
2314
+ "model_count": {
2315
+ "allOf": [
2316
+ {
2317
+ "$ref": "#/$defs/Common.Count"
2318
+ }
2319
+ ],
2320
+ "description": "Number of model records in the active catalog snapshot."
2321
+ },
2322
+ "failure_category": {
2323
+ "type": "string",
2324
+ "description": "Stable, non-sensitive failure category for the last attempt."
2325
+ }
2326
+ },
2327
+ "unevaluatedProperties": {
2328
+ "not": {}
2329
+ },
2330
+ "description": "Synchronization metadata for one configurable live model catalog source."
2331
+ },
2332
+ "Cost.ModelCatalogSourceOrder": {
2333
+ "type": "integer",
2334
+ "format": "int64",
2335
+ "minimum": 1,
2336
+ "description": "One-based position of a conditional override in its source response."
2337
+ },
2338
+ "Cost.ModelCatalogSourceStatus": {
2339
+ "type": "string",
2340
+ "enum": [
2341
+ "unconfigured",
2342
+ "pending",
2343
+ "current",
2344
+ "stale",
2345
+ "sync_failed"
2346
+ ],
2347
+ "description": "Current synchronization state for a configured live model catalog."
2348
+ },
2349
+ "Cost.ModelCatalogSupersededOverrideExclusion": {
2350
+ "type": "object",
2351
+ "required": [
2352
+ "reason"
2353
+ ],
2354
+ "properties": {
2355
+ "reason": {
2356
+ "type": "string",
2357
+ "enum": [
2358
+ "superseded_by_later_override"
2359
+ ]
2360
+ }
2361
+ },
2362
+ "unevaluatedProperties": {
2363
+ "not": {}
2364
+ },
2365
+ "allOf": [
2366
+ {
2367
+ "$ref": "#/$defs/Cost.ModelCatalogConditionalExclusionBase"
2368
+ }
2369
+ ]
2370
+ },
2371
+ "Cost.ModelCatalogSupportedBillingExclusionBase": {
2372
+ "type": "object",
2373
+ "required": [
2374
+ "billing_mode"
2375
+ ],
2376
+ "properties": {
2377
+ "billing_mode": {
2378
+ "$ref": "#/$defs/Cost.ModelCatalogBillingMode"
2379
+ }
2380
+ },
2381
+ "allOf": [
2382
+ {
2383
+ "$ref": "#/$defs/Cost.ModelCatalogTokenEstimateExclusionBase"
2384
+ }
2385
+ ]
2386
+ },
2387
+ "Cost.ModelCatalogTokenAdditiveSurchargeComponent": {
2388
+ "type": "object",
2389
+ "required": [
2390
+ "rate_relation"
1352
2391
  ],
1353
- "description": "Promotion gate from replay through limited serving and rollback."
2392
+ "properties": {
2393
+ "rate_relation": {
2394
+ "type": "string",
2395
+ "enum": [
2396
+ "additive_surcharge"
2397
+ ]
2398
+ }
2399
+ },
2400
+ "unevaluatedProperties": {
2401
+ "not": {}
2402
+ },
2403
+ "allOf": [
2404
+ {
2405
+ "$ref": "#/$defs/Cost.ModelCatalogTokenEstimateComponentBase"
2406
+ }
2407
+ ]
1354
2408
  },
1355
- "Cost.GenAiEtlPromotionGateState": {
1356
- "type": "string",
1357
- "enum": [
1358
- "passed",
1359
- "failed",
1360
- "not_evaluated",
1361
- "blocked_missing_evidence"
2409
+ "Cost.ModelCatalogTokenBaseRateComponent": {
2410
+ "type": "object",
2411
+ "required": [
2412
+ "rate_relation"
1362
2413
  ],
1363
- "description": "Evaluation state of a promotion gate."
2414
+ "properties": {
2415
+ "rate_relation": {
2416
+ "type": "string",
2417
+ "enum": [
2418
+ "base_rate"
2419
+ ]
2420
+ }
2421
+ },
2422
+ "unevaluatedProperties": {
2423
+ "not": {}
2424
+ },
2425
+ "allOf": [
2426
+ {
2427
+ "$ref": "#/$defs/Cost.ModelCatalogTokenEstimateComponentBase"
2428
+ }
2429
+ ]
1364
2430
  },
1365
- "Cost.GenAiEtlResidualPath": {
1366
- "type": "string",
1367
- "enum": [
1368
- "frontier_model",
1369
- "human_review",
1370
- "retry",
1371
- "degraded_response",
1372
- "none",
1373
- "undetermined"
2431
+ "Cost.ModelCatalogTokenConditionalOverrideRateComponent": {
2432
+ "type": "object",
2433
+ "required": [
2434
+ "rate_relation",
2435
+ "replaces_usage_dimension",
2436
+ "conditional_evidence"
1374
2437
  ],
1375
- "description": "Fallback used for requests outside a promoted replacement's safe coverage."
2438
+ "properties": {
2439
+ "rate_relation": {
2440
+ "type": "string",
2441
+ "enum": [
2442
+ "replaces_published_rate"
2443
+ ]
2444
+ },
2445
+ "replaces_usage_dimension": {
2446
+ "type": "string",
2447
+ "description": "Published usage dimension whose prior base, surcharge, or subtype rate was replaced."
2448
+ },
2449
+ "conditional_evidence": {
2450
+ "$ref": "#/$defs/Cost.ModelCatalogConditionalRateEvidence"
2451
+ }
2452
+ },
2453
+ "unevaluatedProperties": {
2454
+ "not": {}
2455
+ },
2456
+ "allOf": [
2457
+ {
2458
+ "$ref": "#/$defs/Cost.ModelCatalogTokenEstimateComponentBase"
2459
+ }
2460
+ ]
1376
2461
  },
1377
- "Cost.GenAiEtlTaskFamily": {
1378
- "type": "string",
1379
- "enum": [
1380
- "open_reasoning_generation",
1381
- "classification",
1382
- "sequence_labeling",
1383
- "structured_extraction",
1384
- "retrieval_entity_resolution",
1385
- "similarity_clustering",
1386
- "normalization_transformation",
1387
- "numeric_analytical",
1388
- "unknown"
2462
+ "Cost.ModelCatalogTokenEstimateComponent": {
2463
+ "oneOf": [
2464
+ {
2465
+ "$ref": "#/$defs/Cost.ModelCatalogTokenBaseRateComponent"
2466
+ },
2467
+ {
2468
+ "$ref": "#/$defs/Cost.ModelCatalogTokenAdditiveSurchargeComponent"
2469
+ },
2470
+ {
2471
+ "$ref": "#/$defs/Cost.ModelCatalogTokenInclusiveReplacementRateComponent"
2472
+ },
2473
+ {
2474
+ "$ref": "#/$defs/Cost.ModelCatalogTokenConditionalOverrideRateComponent"
2475
+ }
1389
2476
  ],
1390
- "description": "Task family inferred for a repeated GenAI workflow cluster."
2477
+ "description": "One evidenced token or request component contributing to a current-catalog estimate. The rate_relation literal selects the required evidence shape."
1391
2478
  },
1392
- "Cost.GenAiEtlValidationMetric": {
2479
+ "Cost.ModelCatalogTokenEstimateComponentBase": {
2480
+ "type": "object",
2481
+ "required": [
2482
+ "component",
2483
+ "usage_dimension",
2484
+ "unit",
2485
+ "source_billing_mode",
2486
+ "billing_mode",
2487
+ "quantity",
2488
+ "unit_price_usd",
2489
+ "estimated_cost_usd"
2490
+ ],
2491
+ "properties": {
2492
+ "component": {
2493
+ "type": "string",
2494
+ "description": "Source-defined pricing component, such as prompt, completion, request, cache read, cache write, or internal reasoning."
2495
+ },
2496
+ "usage_dimension": {
2497
+ "type": "string",
2498
+ "description": "Qyl-observed usage dimension to which this rate was applied, such as input_tokens or output_tokens."
2499
+ },
2500
+ "unit": {
2501
+ "type": "string",
2502
+ "description": "Source-declared unit represented by the rate."
2503
+ },
2504
+ "source_billing_mode": {
2505
+ "type": "string",
2506
+ "description": "Source-specific billing mode retained from the catalog or deterministically derived from the provider-defined meter."
2507
+ },
2508
+ "billing_mode": {
2509
+ "$ref": "#/$defs/Cost.ModelCatalogBillingMode"
2510
+ },
2511
+ "quantity": {
2512
+ "type": "number",
2513
+ "format": "double",
2514
+ "minimum": 0,
2515
+ "description": "Measured quantity to which the catalog unit price was applied."
2516
+ },
2517
+ "unit_price_usd": {
2518
+ "allOf": [
2519
+ {
2520
+ "$ref": "#/$defs/Common.CostUsd"
2521
+ }
2522
+ ],
2523
+ "description": "Catalog price in USD per source-defined unit."
2524
+ },
2525
+ "estimated_cost_usd": {
2526
+ "allOf": [
2527
+ {
2528
+ "$ref": "#/$defs/Common.CostUsd"
2529
+ }
2530
+ ],
2531
+ "description": "Estimated USD contribution of this component for the reported cluster period."
2532
+ }
2533
+ },
2534
+ "description": "Fields shared by every included token or request pricing component."
2535
+ },
2536
+ "Cost.ModelCatalogTokenEstimateExclusion": {
2537
+ "oneOf": [
2538
+ {
2539
+ "$ref": "#/$defs/Cost.ModelCatalogUsageNotObservedExclusion"
2540
+ },
2541
+ {
2542
+ "$ref": "#/$defs/Cost.ModelCatalogConditionalAdjustmentNotAppliedExclusion"
2543
+ },
2544
+ {
2545
+ "$ref": "#/$defs/Cost.ModelCatalogSupersededOverrideExclusion"
2546
+ },
2547
+ {
2548
+ "$ref": "#/$defs/Cost.ModelCatalogOutsideTokenScopeExclusion"
2549
+ },
2550
+ {
2551
+ "$ref": "#/$defs/Cost.ModelCatalogUnsupportedUsageExclusion"
2552
+ },
2553
+ {
2554
+ "$ref": "#/$defs/Cost.ModelCatalogUnsupportedBillingExclusion"
2555
+ }
2556
+ ],
2557
+ "description": "Auditable catalog meter or conditional adjustment excluded from a token-and-request estimate. The reason literal selects the required evidence shape."
2558
+ },
2559
+ "Cost.ModelCatalogTokenEstimateExclusionBase": {
2560
+ "type": "object",
2561
+ "required": [
2562
+ "component",
2563
+ "usage_dimension",
2564
+ "unit",
2565
+ "source_billing_mode",
2566
+ "rate_evidence"
2567
+ ],
2568
+ "properties": {
2569
+ "component": {
2570
+ "type": "string"
2571
+ },
2572
+ "usage_dimension": {
2573
+ "type": "string"
2574
+ },
2575
+ "unit": {
2576
+ "type": "string"
2577
+ },
2578
+ "source_billing_mode": {
2579
+ "type": "string",
2580
+ "description": "Source-specific billing mode retained from the catalog or deterministically derived from the provider-defined meter, including unsupported modes."
2581
+ },
2582
+ "rate_evidence": {
2583
+ "allOf": [
2584
+ {
2585
+ "$ref": "#/$defs/Cost.ModelCatalogExclusionRateEvidence"
2586
+ }
2587
+ ],
2588
+ "description": "Relation, replacement target, and ordered override evidence for the omitted rate."
2589
+ },
2590
+ "unit_price_usd": {
2591
+ "allOf": [
2592
+ {
2593
+ "$ref": "#/$defs/Common.CostUsd"
2594
+ }
2595
+ ],
2596
+ "description": "Catalog rate omitted from the estimate, when the source supplied one."
2597
+ }
2598
+ },
2599
+ "description": "Fields shared by every catalog meter or conditional adjustment excluded from a token-and-request estimate."
2600
+ },
2601
+ "Cost.ModelCatalogTokenExclusionReason": {
1393
2602
  "type": "string",
1394
2603
  "enum": [
1395
- "accuracy",
1396
- "macro_f1",
1397
- "calibration_error",
1398
- "span_precision",
1399
- "span_recall",
1400
- "span_f1",
1401
- "field_exact_match",
1402
- "schema_validity",
1403
- "match_accuracy",
1404
- "recall_at_k",
1405
- "mean_reciprocal_rank",
1406
- "exact_match",
1407
- "numeric_tolerance",
1408
- "human_preference",
1409
- "task_success",
1410
- "unavailable"
2604
+ "usage_not_observed",
2605
+ "conditional_adjustment_not_applied",
2606
+ "superseded_by_later_override",
2607
+ "outside_token_estimate_scope",
2608
+ "unsupported_usage_dimension",
2609
+ "unsupported_billing_mode"
1411
2610
  ],
1412
- "description": "Task-specific metrics that can falsify a proposed replacement."
2611
+ "description": "Why a catalog meter or conditional adjustment was not included in a token-and-request estimate."
2612
+ },
2613
+ "Cost.ModelCatalogTokenInclusiveReplacementRateComponent": {
2614
+ "type": "object",
2615
+ "required": [
2616
+ "rate_relation",
2617
+ "replaces_usage_dimension"
2618
+ ],
2619
+ "properties": {
2620
+ "rate_relation": {
2621
+ "type": "string",
2622
+ "enum": [
2623
+ "replaces_inclusive_base_rate"
2624
+ ]
2625
+ },
2626
+ "replaces_usage_dimension": {
2627
+ "type": "string",
2628
+ "description": "Inclusive base usage dimension replaced by this subtype rate."
2629
+ },
2630
+ "conditional_evidence": {
2631
+ "allOf": [
2632
+ {
2633
+ "$ref": "#/$defs/Cost.ModelCatalogConditionalRateEvidence"
2634
+ }
2635
+ ],
2636
+ "description": "Ordered override evidence when the source conditionally altered this subtype rate."
2637
+ }
2638
+ },
2639
+ "unevaluatedProperties": {
2640
+ "not": {}
2641
+ },
2642
+ "allOf": [
2643
+ {
2644
+ "$ref": "#/$defs/Cost.ModelCatalogTokenEstimateComponentBase"
2645
+ }
2646
+ ]
2647
+ },
2648
+ "Cost.ModelCatalogUnsupportedBillingExclusion": {
2649
+ "type": "object",
2650
+ "required": [
2651
+ "reason"
2652
+ ],
2653
+ "properties": {
2654
+ "billing_mode": {
2655
+ "allOf": [
2656
+ {
2657
+ "$ref": "#/$defs/Cost.ModelCatalogBillingMode"
2658
+ }
2659
+ ],
2660
+ "description": "Normalized billing mode when the source mode has a partial known mapping; absent when no supported normalization exists."
2661
+ },
2662
+ "reason": {
2663
+ "type": "string",
2664
+ "enum": [
2665
+ "unsupported_billing_mode"
2666
+ ]
2667
+ }
2668
+ },
2669
+ "unevaluatedProperties": {
2670
+ "not": {}
2671
+ },
2672
+ "allOf": [
2673
+ {
2674
+ "$ref": "#/$defs/Cost.ModelCatalogTokenEstimateExclusionBase"
2675
+ }
2676
+ ]
2677
+ },
2678
+ "Cost.ModelCatalogUnsupportedUsageExclusion": {
2679
+ "type": "object",
2680
+ "required": [
2681
+ "reason"
2682
+ ],
2683
+ "properties": {
2684
+ "reason": {
2685
+ "type": "string",
2686
+ "enum": [
2687
+ "unsupported_usage_dimension"
2688
+ ]
2689
+ }
2690
+ },
2691
+ "unevaluatedProperties": {
2692
+ "not": {}
2693
+ },
2694
+ "allOf": [
2695
+ {
2696
+ "$ref": "#/$defs/Cost.ModelCatalogOptionallyNormalizedBillingExclusionBase"
2697
+ }
2698
+ ]
2699
+ },
2700
+ "Cost.ModelCatalogUsageNotObservedExclusion": {
2701
+ "type": "object",
2702
+ "required": [
2703
+ "reason"
2704
+ ],
2705
+ "properties": {
2706
+ "reason": {
2707
+ "type": "string",
2708
+ "enum": [
2709
+ "usage_not_observed"
2710
+ ]
2711
+ }
2712
+ },
2713
+ "unevaluatedProperties": {
2714
+ "not": {}
2715
+ },
2716
+ "allOf": [
2717
+ {
2718
+ "$ref": "#/$defs/Cost.ModelCatalogSupportedBillingExclusionBase"
2719
+ }
2720
+ ]
1413
2721
  },
1414
- "Cost.ProviderCostAttribution": {
2722
+ "Cost.ProviderBillingAttribution": {
1415
2723
  "type": "string",
1416
2724
  "enum": [
1417
2725
  "provider_model_period",
1418
2726
  "provider_period",
1419
- "scenario",
1420
2727
  "unavailable"
1421
2728
  ],
1422
- "description": "Granularity at which a cost value can be attributed to telemetry."
2729
+ "description": "Granularity at which official provider-billed cost can be attributed to telemetry."
1423
2730
  },
1424
- "Cost.ProviderCostSource": {
2731
+ "Cost.ProviderBillingSource": {
1425
2732
  "type": "object",
1426
2733
  "required": [
1427
2734
  "provider",
1428
- "kind",
1429
2735
  "status",
1430
2736
  "source_endpoint",
1431
2737
  "attribution"
@@ -1435,21 +2741,13 @@
1435
2741
  "type": "string",
1436
2742
  "description": "Canonical GenAI provider or cloud billing system name."
1437
2743
  },
1438
- "kind": {
1439
- "allOf": [
1440
- {
1441
- "$ref": "#/$defs/Cost.ProviderCostSourceKind"
1442
- }
1443
- ],
1444
- "description": "Whether the API returned billed cost or a public catalog price."
1445
- },
1446
2744
  "status": {
1447
2745
  "allOf": [
1448
2746
  {
1449
- "$ref": "#/$defs/Cost.ProviderCostSourceStatus"
2747
+ "$ref": "#/$defs/Cost.ProviderBillingSourceStatus"
1450
2748
  }
1451
2749
  ],
1452
- "description": "Current synchronization and attribution state."
2750
+ "description": "Current billing synchronization state."
1453
2751
  },
1454
2752
  "source_endpoint": {
1455
2753
  "allOf": [
@@ -1462,7 +2760,7 @@
1462
2760
  "attribution": {
1463
2761
  "allOf": [
1464
2762
  {
1465
- "$ref": "#/$defs/Cost.ProviderCostAttribution"
2763
+ "$ref": "#/$defs/Cost.ProviderBillingAttribution"
1466
2764
  }
1467
2765
  ],
1468
2766
  "description": "Attribution granularity supported by this source response."
@@ -1480,12 +2778,12 @@
1480
2778
  "period_start": {
1481
2779
  "type": "string",
1482
2780
  "format": "date-time",
1483
- "description": "Start of the provider billing or catalog validity period."
2781
+ "description": "Start of the provider billing period."
1484
2782
  },
1485
2783
  "period_end": {
1486
2784
  "type": "string",
1487
2785
  "format": "date-time",
1488
- "description": "End of the provider billing or catalog validity period."
2786
+ "description": "End of the provider billing period."
1489
2787
  },
1490
2788
  "currency_code": {
1491
2789
  "type": "string",
@@ -1508,27 +2806,21 @@
1508
2806
  "description": "Stable, non-sensitive failure category for the last attempt."
1509
2807
  }
1510
2808
  },
1511
- "description": "Provenance for cost data fetched directly from a provider-owned API."
1512
- },
1513
- "Cost.ProviderCostSourceKind": {
1514
- "type": "string",
1515
- "enum": [
1516
- "actual_billed_cost",
1517
- "official_public_catalog"
1518
- ],
1519
- "description": "How a provider-owned API supplied a cost value."
2809
+ "unevaluatedProperties": {
2810
+ "not": {}
2811
+ },
2812
+ "description": "Provenance for billed cost data fetched directly from a provider-owned API."
1520
2813
  },
1521
- "Cost.ProviderCostSourceStatus": {
2814
+ "Cost.ProviderBillingSourceStatus": {
1522
2815
  "type": "string",
1523
2816
  "enum": [
1524
2817
  "unconfigured",
1525
2818
  "pending",
1526
2819
  "current",
1527
2820
  "stale",
1528
- "sync_failed",
1529
- "not_attributable"
2821
+ "sync_failed"
1530
2822
  ],
1531
- "description": "Current synchronization state for a provider-owned cost source."
2823
+ "description": "Current synchronization state for a provider-owned billing source."
1532
2824
  },
1533
2825
  "Domains.Observe.Session.DeviceType": {
1534
2826
  "type": "string",
@@ -1568,6 +2860,9 @@
1568
2860
  "description": "Previous session ID (for session continuity)"
1569
2861
  }
1570
2862
  },
2863
+ "unevaluatedProperties": {
2864
+ "not": {}
2865
+ },
1571
2866
  "description": "Session span/event attributes"
1572
2867
  },
1573
2868
  "Domains.Observe.Session.SessionClientInfo": {
@@ -1610,6 +2905,9 @@
1610
2905
  "description": "Browser version"
1611
2906
  }
1612
2907
  },
2908
+ "unevaluatedProperties": {
2909
+ "not": {}
2910
+ },
1613
2911
  "description": "Session client information"
1614
2912
  },
1615
2913
  "Domains.Observe.Session.SessionEntity": {
@@ -1716,6 +3014,9 @@
1716
3014
  "description": "GenAI usage summary"
1717
3015
  }
1718
3016
  },
3017
+ "unevaluatedProperties": {
3018
+ "not": {}
3019
+ },
1719
3020
  "description": "Complete session entity with aggregated data",
1720
3021
  "x-csharp-type": "SessionEntity"
1721
3022
  },
@@ -1757,6 +3058,9 @@
1757
3058
  "description": "Event domain"
1758
3059
  }
1759
3060
  },
3061
+ "unevaluatedProperties": {
3062
+ "not": {}
3063
+ },
1760
3064
  "description": "Session lifecycle event"
1761
3065
  },
1762
3066
  "Domains.Observe.Session.SessionEventName": {
@@ -1814,6 +3118,9 @@
1814
3118
  "description": "Providers used in session"
1815
3119
  }
1816
3120
  },
3121
+ "unevaluatedProperties": {
3122
+ "not": {}
3123
+ },
1817
3124
  "description": "Session GenAI usage summary"
1818
3125
  },
1819
3126
  "Domains.Observe.Session.SessionGeoInfo": {
@@ -1844,6 +3151,9 @@
1844
3151
  "description": "Timezone"
1845
3152
  }
1846
3153
  },
3154
+ "unevaluatedProperties": {
3155
+ "not": {}
3156
+ },
1847
3157
  "description": "Session geographic information"
1848
3158
  },
1849
3159
  "Domains.Observe.Session.SessionState": {
@@ -1914,6 +3224,9 @@
1914
3224
  "description": "Bounce rate (single-page sessions)"
1915
3225
  }
1916
3226
  },
3227
+ "unevaluatedProperties": {
3228
+ "not": {}
3229
+ },
1917
3230
  "description": "Aggregated session statistics"
1918
3231
  },
1919
3232
  "Health.HealthCheckEntry": {
@@ -1934,6 +3247,9 @@
1934
3247
  "format": "double"
1935
3248
  }
1936
3249
  },
3250
+ "unevaluatedProperties": {
3251
+ "not": {}
3252
+ },
1937
3253
  "description": "One named health-check result."
1938
3254
  },
1939
3255
  "Health.HealthReport": {
@@ -1958,6 +3274,9 @@
1958
3274
  }
1959
3275
  }
1960
3276
  },
3277
+ "unevaluatedProperties": {
3278
+ "not": {}
3279
+ },
1961
3280
  "description": "Readiness or liveness report returned by /health and /alive."
1962
3281
  },
1963
3282
  "Health.HealthStatus": {
@@ -1980,6 +3299,9 @@
1980
3299
  "default": 24
1981
3300
  }
1982
3301
  },
3302
+ "unevaluatedProperties": {
3303
+ "not": {}
3304
+ },
1983
3305
  "description": "Input for display_mcp_dashboard."
1984
3306
  },
1985
3307
  "Mcp.Tools.DisplayMcpDashboardOutput": {
@@ -1992,6 +3314,9 @@
1992
3314
  "$ref": "#/$defs/Mcp.Tools.McpDashboardStats"
1993
3315
  }
1994
3316
  },
3317
+ "unevaluatedProperties": {
3318
+ "not": {}
3319
+ },
1995
3320
  "description": "Structured output for display_mcp_dashboard."
1996
3321
  },
1997
3322
  "Mcp.Tools.DisplayTracesInput": {
@@ -2011,6 +3336,9 @@
2011
3336
  "default": 20
2012
3337
  }
2013
3338
  },
3339
+ "unevaluatedProperties": {
3340
+ "not": {}
3341
+ },
2014
3342
  "description": "Input for display_traces."
2015
3343
  },
2016
3344
  "Mcp.Tools.DisplayTracesOutput": {
@@ -2033,6 +3361,9 @@
2033
3361
  "$ref": "#/$defs/Mcp.Tools.McpDataMode"
2034
3362
  }
2035
3363
  },
3364
+ "unevaluatedProperties": {
3365
+ "not": {}
3366
+ },
2036
3367
  "description": "Structured output for display_traces."
2037
3368
  },
2038
3369
  "Mcp.Tools.FetchTelemetryInput": {
@@ -2072,6 +3403,9 @@
2072
3403
  "maximum": 168
2073
3404
  }
2074
3405
  },
3406
+ "unevaluatedProperties": {
3407
+ "not": {}
3408
+ },
2075
3409
  "description": "Input for the app-only fetch_telemetry tool."
2076
3410
  },
2077
3411
  "Mcp.Tools.FetchTelemetryOutput": {
@@ -2102,6 +3436,9 @@
2102
3436
  "$ref": "#/$defs/Mcp.Tools.McpDataMode"
2103
3437
  }
2104
3438
  },
3439
+ "unevaluatedProperties": {
3440
+ "not": {}
3441
+ },
2105
3442
  "description": "Structured output for the app-only fetch_telemetry tool."
2106
3443
  },
2107
3444
  "Mcp.Tools.FetchTelemetryView": {
@@ -2124,6 +3461,9 @@
2124
3461
  "$ref": "#/$defs/Common.TraceId"
2125
3462
  }
2126
3463
  },
3464
+ "unevaluatedProperties": {
3465
+ "not": {}
3466
+ },
2127
3467
  "description": "Input for get_trace."
2128
3468
  },
2129
3469
  "Mcp.Tools.GetTraceOutput": {
@@ -2140,6 +3480,9 @@
2140
3480
  "$ref": "#/$defs/Mcp.Tools.McpDataMode"
2141
3481
  }
2142
3482
  },
3483
+ "unevaluatedProperties": {
3484
+ "not": {}
3485
+ },
2143
3486
  "description": "Structured output for get_trace."
2144
3487
  },
2145
3488
  "Mcp.Tools.ListSessionsInput": {
@@ -2156,6 +3499,9 @@
2156
3499
  "type": "boolean"
2157
3500
  }
2158
3501
  },
3502
+ "unevaluatedProperties": {
3503
+ "not": {}
3504
+ },
2159
3505
  "description": "Input for list_sessions."
2160
3506
  },
2161
3507
  "Mcp.Tools.ListSessionsOutput": {
@@ -2175,6 +3521,9 @@
2175
3521
  "$ref": "#/$defs/Mcp.Tools.McpDataMode"
2176
3522
  }
2177
3523
  },
3524
+ "unevaluatedProperties": {
3525
+ "not": {}
3526
+ },
2178
3527
  "description": "Structured output for list_sessions."
2179
3528
  },
2180
3529
  "Mcp.Tools.ListTracesInput": {
@@ -2188,6 +3537,9 @@
2188
3537
  "default": 20
2189
3538
  }
2190
3539
  },
3540
+ "unevaluatedProperties": {
3541
+ "not": {}
3542
+ },
2191
3543
  "description": "Input for list_traces."
2192
3544
  },
2193
3545
  "Mcp.Tools.ListTracesOutput": {
@@ -2207,6 +3559,9 @@
2207
3559
  "$ref": "#/$defs/Mcp.Tools.McpDataMode"
2208
3560
  }
2209
3561
  },
3562
+ "unevaluatedProperties": {
3563
+ "not": {}
3564
+ },
2210
3565
  "description": "Structured output for list_traces."
2211
3566
  },
2212
3567
  "Mcp.Tools.McpDashboardBucket": {
@@ -2231,6 +3586,9 @@
2231
3586
  "format": "int32",
2232
3587
  "minimum": 0
2233
3588
  }
3589
+ },
3590
+ "unevaluatedProperties": {
3591
+ "not": {}
2234
3592
  }
2235
3593
  },
2236
3594
  "Mcp.Tools.McpDashboardStats": {
@@ -2296,6 +3654,9 @@
2296
3654
  "$ref": "#/$defs/Mcp.Tools.McpDataMode"
2297
3655
  }
2298
3656
  },
3657
+ "unevaluatedProperties": {
3658
+ "not": {}
3659
+ },
2299
3660
  "description": "Aggregate MCP traffic statistics shown by qyl.mcp."
2300
3661
  },
2301
3662
  "Mcp.Tools.McpDashboardTotals": {
@@ -2322,6 +3683,9 @@
2322
3683
  "minimum": 0,
2323
3684
  "maximum": 1
2324
3685
  }
3686
+ },
3687
+ "unevaluatedProperties": {
3688
+ "not": {}
2325
3689
  }
2326
3690
  },
2327
3691
  "Mcp.Tools.McpDashboardWindow": {
@@ -2345,6 +3709,9 @@
2345
3709
  "format": "double",
2346
3710
  "minimum": 0
2347
3711
  }
3712
+ },
3713
+ "unevaluatedProperties": {
3714
+ "not": {}
2348
3715
  }
2349
3716
  },
2350
3717
  "Mcp.Tools.McpDataMode": {
@@ -2370,6 +3737,9 @@
2370
3737
  "format": "int32",
2371
3738
  "minimum": 0
2372
3739
  }
3740
+ },
3741
+ "unevaluatedProperties": {
3742
+ "not": {}
2373
3743
  }
2374
3744
  },
2375
3745
  "Mcp.Tools.McpToolStats": {
@@ -2412,6 +3782,9 @@
2412
3782
  "format": "double",
2413
3783
  "minimum": 0
2414
3784
  }
3785
+ },
3786
+ "unevaluatedProperties": {
3787
+ "not": {}
2415
3788
  }
2416
3789
  },
2417
3790
  "Mcp.Tools.SearchLogsInput": {
@@ -2440,6 +3813,9 @@
2440
3813
  "default": 50
2441
3814
  }
2442
3815
  },
3816
+ "unevaluatedProperties": {
3817
+ "not": {}
3818
+ },
2443
3819
  "description": "Input for search_logs."
2444
3820
  },
2445
3821
  "Mcp.Tools.SearchLogsOutput": {
@@ -2459,12 +3835,14 @@
2459
3835
  "$ref": "#/$defs/Mcp.Tools.McpDataMode"
2460
3836
  }
2461
3837
  },
3838
+ "unevaluatedProperties": {
3839
+ "not": {}
3840
+ },
2462
3841
  "description": "Structured output for search_logs."
2463
3842
  },
2464
3843
  "OTel.Enums.AggregationTemporality": {
2465
3844
  "type": "number",
2466
3845
  "enum": [
2467
- 0,
2468
3846
  1,
2469
3847
  2
2470
3848
  ],
@@ -2650,177 +4028,578 @@
2650
4028
  ],
2651
4029
  "description": "Telemetry SDK language"
2652
4030
  },
2653
- "OTel.Logs.LogBody": {
4031
+ "OTel.Logs.LogBody": {
4032
+ "type": "object",
4033
+ "oneOf": [
4034
+ {
4035
+ "$ref": "#/$defs/OTel.Logs.LogBodyString"
4036
+ },
4037
+ {
4038
+ "$ref": "#/$defs/OTel.Logs.LogBodyKvList"
4039
+ },
4040
+ {
4041
+ "$ref": "#/$defs/OTel.Logs.LogBodyArray"
4042
+ },
4043
+ {
4044
+ "$ref": "#/$defs/OTel.Logs.LogBodyBytes"
4045
+ }
4046
+ ],
4047
+ "discriminator": {
4048
+ "propertyName": "kind",
4049
+ "mapping": {
4050
+ "stringBody": "#/components/schemas/OTel.Logs.LogBodyString",
4051
+ "kvListBody": "#/components/schemas/OTel.Logs.LogBodyKvList",
4052
+ "arrayBody": "#/components/schemas/OTel.Logs.LogBodyArray",
4053
+ "bytesBody": "#/components/schemas/OTel.Logs.LogBodyBytes"
4054
+ }
4055
+ },
4056
+ "description": "Log body content - can be string, structured, or bytes"
4057
+ },
4058
+ "OTel.Logs.LogBodyArray": {
4059
+ "type": "object",
4060
+ "required": [
4061
+ "array_value"
4062
+ ],
4063
+ "properties": {
4064
+ "array_value": {
4065
+ "type": "array",
4066
+ "items": {
4067
+ "$ref": "#/$defs/Common.AttributeValue"
4068
+ },
4069
+ "description": "Array of values"
4070
+ }
4071
+ },
4072
+ "unevaluatedProperties": {
4073
+ "not": {}
4074
+ },
4075
+ "description": "Array log body"
4076
+ },
4077
+ "OTel.Logs.LogBodyBytes": {
4078
+ "type": "object",
4079
+ "required": [
4080
+ "bytes_value"
4081
+ ],
4082
+ "properties": {
4083
+ "bytes_value": {
4084
+ "type": "string",
4085
+ "contentEncoding": "base64",
4086
+ "description": "Binary value (base64 encoded)"
4087
+ }
4088
+ },
4089
+ "unevaluatedProperties": {
4090
+ "not": {}
4091
+ },
4092
+ "description": "Binary log body"
4093
+ },
4094
+ "OTel.Logs.LogBodyKvList": {
4095
+ "type": "object",
4096
+ "required": [
4097
+ "kv_list_value"
4098
+ ],
4099
+ "properties": {
4100
+ "kv_list_value": {
4101
+ "type": "array",
4102
+ "items": {
4103
+ "$ref": "#/$defs/Common.Attribute"
4104
+ },
4105
+ "description": "Key-value pairs"
4106
+ }
4107
+ },
4108
+ "unevaluatedProperties": {
4109
+ "not": {}
4110
+ },
4111
+ "description": "Structured key-value log body"
4112
+ },
4113
+ "OTel.Logs.LogBodyString": {
4114
+ "type": "object",
4115
+ "required": [
4116
+ "string_value"
4117
+ ],
4118
+ "properties": {
4119
+ "string_value": {
4120
+ "type": "string",
4121
+ "description": "String value"
4122
+ }
4123
+ },
4124
+ "unevaluatedProperties": {
4125
+ "not": {}
4126
+ },
4127
+ "description": "String log body"
4128
+ },
4129
+ "OTel.Logs.LogRecord": {
4130
+ "type": "object",
4131
+ "required": [
4132
+ "time_unix_nano",
4133
+ "observed_time_unix_nano",
4134
+ "severity_number",
4135
+ "body",
4136
+ "resource"
4137
+ ],
4138
+ "properties": {
4139
+ "time_unix_nano": {
4140
+ "allOf": [
4141
+ {
4142
+ "$ref": "#/$defs/Common.UnixNanos"
4143
+ }
4144
+ ],
4145
+ "description": "Timestamp when the event occurred (nanoseconds since epoch)"
4146
+ },
4147
+ "observed_time_unix_nano": {
4148
+ "allOf": [
4149
+ {
4150
+ "$ref": "#/$defs/Common.UnixNanos"
4151
+ }
4152
+ ],
4153
+ "description": "Timestamp when the log was observed/collected (nanoseconds since epoch)"
4154
+ },
4155
+ "severity_number": {
4156
+ "allOf": [
4157
+ {
4158
+ "$ref": "#/$defs/OTel.Enums.SeverityNumber"
4159
+ }
4160
+ ],
4161
+ "description": "Severity number (1-24)"
4162
+ },
4163
+ "severity_text": {
4164
+ "allOf": [
4165
+ {
4166
+ "$ref": "#/$defs/OTel.Enums.SeverityText"
4167
+ }
4168
+ ],
4169
+ "description": "Severity text (DEBUG, INFO, WARN, ERROR, etc.)"
4170
+ },
4171
+ "body": {
4172
+ "allOf": [
4173
+ {
4174
+ "$ref": "#/$defs/OTel.Logs.LogBody"
4175
+ }
4176
+ ],
4177
+ "description": "Log body - the main content"
4178
+ },
4179
+ "attributes": {
4180
+ "type": "array",
4181
+ "items": {
4182
+ "$ref": "#/$defs/Common.Attribute"
4183
+ },
4184
+ "description": "Log attributes"
4185
+ },
4186
+ "dropped_attributes_count": {
4187
+ "allOf": [
4188
+ {
4189
+ "$ref": "#/$defs/Common.Count"
4190
+ }
4191
+ ],
4192
+ "description": "Dropped attributes count"
4193
+ },
4194
+ "flags": {
4195
+ "type": "integer",
4196
+ "format": "int32",
4197
+ "description": "Flags (trace flags)"
4198
+ },
4199
+ "trace_id": {
4200
+ "allOf": [
4201
+ {
4202
+ "$ref": "#/$defs/Common.TraceId"
4203
+ }
4204
+ ],
4205
+ "description": "Associated trace ID"
4206
+ },
4207
+ "span_id": {
4208
+ "allOf": [
4209
+ {
4210
+ "$ref": "#/$defs/Common.SpanId"
4211
+ }
4212
+ ],
4213
+ "description": "Associated span ID"
4214
+ },
4215
+ "resource": {
4216
+ "allOf": [
4217
+ {
4218
+ "$ref": "#/$defs/OTel.Resource.Resource"
4219
+ }
4220
+ ],
4221
+ "description": "Resource describing the entity that produced this log"
4222
+ },
4223
+ "instrumentation_scope": {
4224
+ "allOf": [
4225
+ {
4226
+ "$ref": "#/$defs/Common.InstrumentationScope"
4227
+ }
4228
+ ],
4229
+ "description": "Instrumentation scope"
4230
+ }
4231
+ },
4232
+ "unevaluatedProperties": {
4233
+ "not": {}
4234
+ },
4235
+ "description": "OpenTelemetry Log Record"
4236
+ },
4237
+ "OTel.Logs.LogTemplate": {
2654
4238
  "type": "object",
2655
- "oneOf": [
2656
- {
2657
- "$ref": "#/$defs/OTel.Logs.LogBodyString"
2658
- },
2659
- {
2660
- "$ref": "#/$defs/OTel.Logs.LogBodyKvList"
4239
+ "required": [
4240
+ "template",
4241
+ "parameters"
4242
+ ],
4243
+ "properties": {
4244
+ "template": {
4245
+ "type": "string",
4246
+ "description": "Template string with {placeholder} syntax"
2661
4247
  },
2662
- {
2663
- "$ref": "#/$defs/OTel.Logs.LogBodyArray"
4248
+ "parameters": {
4249
+ "type": "array",
4250
+ "items": {
4251
+ "$ref": "#/$defs/Common.Attribute"
4252
+ },
4253
+ "description": "Template parameters"
2664
4254
  },
2665
- {
2666
- "$ref": "#/$defs/OTel.Logs.LogBodyBytes"
4255
+ "rendered_message": {
4256
+ "type": "string",
4257
+ "description": "Rendered message"
2667
4258
  }
4259
+ },
4260
+ "unevaluatedProperties": {
4261
+ "not": {}
4262
+ },
4263
+ "description": "Log message template with placeholders"
4264
+ },
4265
+ "OTel.Metrics.ExponentialHistogramBuckets": {
4266
+ "type": "object",
4267
+ "required": [
4268
+ "offset",
4269
+ "bucket_counts"
2668
4270
  ],
2669
- "discriminator": {
2670
- "propertyName": "kind",
2671
- "mapping": {
2672
- "stringBody": "#/components/schemas/OTel.Logs.LogBodyString",
2673
- "kvListBody": "#/components/schemas/OTel.Logs.LogBodyKvList",
2674
- "arrayBody": "#/components/schemas/OTel.Logs.LogBodyArray",
2675
- "bytesBody": "#/components/schemas/OTel.Logs.LogBodyBytes"
4271
+ "properties": {
4272
+ "offset": {
4273
+ "type": "integer",
4274
+ "format": "int32",
4275
+ "description": "Index of the first bucket count."
4276
+ },
4277
+ "bucket_counts": {
4278
+ "type": "array",
4279
+ "items": {
4280
+ "$ref": "#/$defs/OTel.Metrics.MetricUInt64"
4281
+ }
2676
4282
  }
2677
4283
  },
2678
- "description": "Log body content - can be string, structured, or bytes"
4284
+ "unevaluatedProperties": {
4285
+ "not": {}
4286
+ },
4287
+ "description": "Bucket range used by an OTLP exponential histogram data point."
2679
4288
  },
2680
- "OTel.Logs.LogBodyArray": {
4289
+ "OTel.Metrics.ExponentialHistogramMetricPoint": {
2681
4290
  "type": "object",
2682
4291
  "required": [
2683
- "array_value"
4292
+ "type",
4293
+ "count",
4294
+ "scale",
4295
+ "zero_count",
4296
+ "zero_threshold",
4297
+ "positive",
4298
+ "negative",
4299
+ "aggregation_temporality"
2684
4300
  ],
2685
4301
  "properties": {
2686
- "array_value": {
4302
+ "type": {
4303
+ "type": "string",
4304
+ "enum": [
4305
+ "exponential_histogram"
4306
+ ]
4307
+ },
4308
+ "count": {
4309
+ "$ref": "#/$defs/OTel.Metrics.MetricUInt64"
4310
+ },
4311
+ "sum": {
4312
+ "type": "number",
4313
+ "format": "double"
4314
+ },
4315
+ "scale": {
4316
+ "type": "integer",
4317
+ "format": "int32"
4318
+ },
4319
+ "zero_count": {
4320
+ "$ref": "#/$defs/OTel.Metrics.MetricUInt64"
4321
+ },
4322
+ "zero_threshold": {
4323
+ "type": "number",
4324
+ "format": "double"
4325
+ },
4326
+ "positive": {
4327
+ "$ref": "#/$defs/OTel.Metrics.ExponentialHistogramBuckets"
4328
+ },
4329
+ "negative": {
4330
+ "$ref": "#/$defs/OTel.Metrics.ExponentialHistogramBuckets"
4331
+ },
4332
+ "min": {
4333
+ "type": "number",
4334
+ "format": "double"
4335
+ },
4336
+ "max": {
4337
+ "type": "number",
4338
+ "format": "double"
4339
+ },
4340
+ "aggregation_temporality": {
4341
+ "$ref": "#/$defs/OTel.Enums.AggregationTemporality"
4342
+ },
4343
+ "exemplars": {
2687
4344
  "type": "array",
2688
4345
  "items": {
2689
- "$ref": "#/$defs/Common.AttributeValue"
2690
- },
2691
- "description": "Array of values"
4346
+ "$ref": "#/$defs/OTel.Metrics.MetricExemplar"
4347
+ }
2692
4348
  }
2693
4349
  },
2694
- "description": "Array log body"
4350
+ "unevaluatedProperties": {
4351
+ "not": {}
4352
+ },
4353
+ "allOf": [
4354
+ {
4355
+ "$ref": "#/$defs/OTel.Metrics.MetricPointBase"
4356
+ }
4357
+ ],
4358
+ "description": "Base-2 exponential histogram measurement."
2695
4359
  },
2696
- "OTel.Logs.LogBodyBytes": {
4360
+ "OTel.Metrics.GaugeMetricPoint": {
2697
4361
  "type": "object",
2698
4362
  "required": [
2699
- "bytes_value"
4363
+ "type",
4364
+ "value"
2700
4365
  ],
2701
4366
  "properties": {
2702
- "bytes_value": {
4367
+ "type": {
2703
4368
  "type": "string",
2704
- "contentEncoding": "base64",
2705
- "description": "Binary value (base64 encoded)"
4369
+ "enum": [
4370
+ "gauge"
4371
+ ]
4372
+ },
4373
+ "value": {
4374
+ "$ref": "#/$defs/OTel.Metrics.MetricNumberValue"
4375
+ },
4376
+ "exemplars": {
4377
+ "type": "array",
4378
+ "items": {
4379
+ "$ref": "#/$defs/OTel.Metrics.MetricExemplar"
4380
+ }
2706
4381
  }
2707
4382
  },
2708
- "description": "Binary log body"
4383
+ "unevaluatedProperties": {
4384
+ "not": {}
4385
+ },
4386
+ "allOf": [
4387
+ {
4388
+ "$ref": "#/$defs/OTel.Metrics.MetricPointBase"
4389
+ }
4390
+ ],
4391
+ "description": "Instantaneous gauge measurement."
2709
4392
  },
2710
- "OTel.Logs.LogBodyKvList": {
4393
+ "OTel.Metrics.HistogramMetricPoint": {
2711
4394
  "type": "object",
2712
4395
  "required": [
2713
- "kv_list_value"
4396
+ "type",
4397
+ "count",
4398
+ "bucket_counts",
4399
+ "explicit_bounds",
4400
+ "aggregation_temporality"
2714
4401
  ],
2715
4402
  "properties": {
2716
- "kv_list_value": {
4403
+ "type": {
4404
+ "type": "string",
4405
+ "enum": [
4406
+ "histogram"
4407
+ ]
4408
+ },
4409
+ "count": {
4410
+ "$ref": "#/$defs/OTel.Metrics.MetricUInt64"
4411
+ },
4412
+ "sum": {
4413
+ "type": "number",
4414
+ "format": "double"
4415
+ },
4416
+ "bucket_counts": {
2717
4417
  "type": "array",
2718
4418
  "items": {
2719
- "$ref": "#/$defs/Common.Attribute"
2720
- },
2721
- "description": "Key-value pairs"
4419
+ "$ref": "#/$defs/OTel.Metrics.MetricUInt64"
4420
+ }
4421
+ },
4422
+ "explicit_bounds": {
4423
+ "type": "array",
4424
+ "items": {
4425
+ "type": "number",
4426
+ "format": "double"
4427
+ }
4428
+ },
4429
+ "min": {
4430
+ "type": "number",
4431
+ "format": "double"
4432
+ },
4433
+ "max": {
4434
+ "type": "number",
4435
+ "format": "double"
4436
+ },
4437
+ "aggregation_temporality": {
4438
+ "$ref": "#/$defs/OTel.Enums.AggregationTemporality"
4439
+ },
4440
+ "exemplars": {
4441
+ "type": "array",
4442
+ "items": {
4443
+ "$ref": "#/$defs/OTel.Metrics.MetricExemplar"
4444
+ }
2722
4445
  }
2723
4446
  },
2724
- "description": "Structured key-value log body"
4447
+ "unevaluatedProperties": {
4448
+ "not": {}
4449
+ },
4450
+ "allOf": [
4451
+ {
4452
+ "$ref": "#/$defs/OTel.Metrics.MetricPointBase"
4453
+ }
4454
+ ],
4455
+ "description": "Explicit-bucket histogram measurement."
2725
4456
  },
2726
- "OTel.Logs.LogBodyString": {
4457
+ "OTel.Metrics.MetricDoubleValue": {
2727
4458
  "type": "object",
2728
4459
  "required": [
2729
- "string_value"
4460
+ "as_double"
2730
4461
  ],
2731
4462
  "properties": {
2732
- "string_value": {
2733
- "type": "string",
2734
- "description": "String value"
4463
+ "as_double": {
4464
+ "type": "number",
4465
+ "format": "double"
2735
4466
  }
2736
4467
  },
2737
- "description": "String log body"
4468
+ "unevaluatedProperties": {
4469
+ "not": {}
4470
+ },
4471
+ "description": "A floating-point measurement value from an OTLP number data point or exemplar."
2738
4472
  },
2739
- "OTel.Logs.LogRecord": {
4473
+ "OTel.Metrics.MetricExemplar": {
2740
4474
  "type": "object",
2741
4475
  "required": [
2742
4476
  "time_unix_nano",
2743
- "observed_time_unix_nano",
2744
- "severity_number",
2745
- "body",
2746
- "resource"
4477
+ "value"
2747
4478
  ],
2748
4479
  "properties": {
2749
4480
  "time_unix_nano": {
2750
- "allOf": [
2751
- {
2752
- "$ref": "#/$defs/Common.UnixNanos"
2753
- }
2754
- ],
2755
- "description": "Timestamp when the event occurred (nanoseconds since epoch)"
4481
+ "$ref": "#/$defs/OTel.Metrics.MetricUnixNanos"
2756
4482
  },
2757
- "observed_time_unix_nano": {
2758
- "allOf": [
2759
- {
2760
- "$ref": "#/$defs/Common.UnixNanos"
2761
- }
2762
- ],
2763
- "description": "Timestamp when the log was observed/collected (nanoseconds since epoch)"
4483
+ "value": {
4484
+ "$ref": "#/$defs/OTel.Metrics.MetricNumberValue"
4485
+ },
4486
+ "span_id": {
4487
+ "$ref": "#/$defs/Common.SpanId"
4488
+ },
4489
+ "trace_id": {
4490
+ "$ref": "#/$defs/Common.TraceId"
4491
+ },
4492
+ "filtered_attributes": {
4493
+ "type": "array",
4494
+ "items": {
4495
+ "$ref": "#/$defs/Common.Attribute"
4496
+ }
4497
+ }
4498
+ },
4499
+ "unevaluatedProperties": {
4500
+ "not": {}
4501
+ },
4502
+ "description": "A sampled measurement linked to the trace or span active when it was recorded."
4503
+ },
4504
+ "OTel.Metrics.MetricInt64": {
4505
+ "type": "string",
4506
+ "format": "int64",
4507
+ "description": "An OTLP signed 64-bit metric integer encoded as a decimal JSON string.",
4508
+ "x-csharp-type": "long",
4509
+ "pattern": "^(0|-?[1-9][0-9]*)$",
4510
+ "maxLength": 20
4511
+ },
4512
+ "OTel.Metrics.MetricIntegerValue": {
4513
+ "type": "object",
4514
+ "required": [
4515
+ "as_int"
4516
+ ],
4517
+ "properties": {
4518
+ "as_int": {
4519
+ "$ref": "#/$defs/OTel.Metrics.MetricInt64"
4520
+ }
4521
+ },
4522
+ "unevaluatedProperties": {
4523
+ "not": {}
4524
+ },
4525
+ "description": "An integer measurement value from an OTLP number data point or exemplar."
4526
+ },
4527
+ "OTel.Metrics.MetricNumberValue": {
4528
+ "anyOf": [
4529
+ {
4530
+ "$ref": "#/$defs/OTel.Metrics.MetricIntegerValue"
4531
+ },
4532
+ {
4533
+ "$ref": "#/$defs/OTel.Metrics.MetricDoubleValue"
4534
+ }
4535
+ ],
4536
+ "description": "The exactly-one numeric value carried by an OTLP number data point or exemplar."
4537
+ },
4538
+ "OTel.Metrics.MetricPoint": {
4539
+ "anyOf": [
4540
+ {
4541
+ "$ref": "#/$defs/OTel.Metrics.GaugeMetricPoint"
4542
+ },
4543
+ {
4544
+ "$ref": "#/$defs/OTel.Metrics.SumMetricPoint"
4545
+ },
4546
+ {
4547
+ "$ref": "#/$defs/OTel.Metrics.HistogramMetricPoint"
4548
+ },
4549
+ {
4550
+ "$ref": "#/$defs/OTel.Metrics.ExponentialHistogramMetricPoint"
4551
+ },
4552
+ {
4553
+ "$ref": "#/$defs/OTel.Metrics.SummaryMetricPoint"
4554
+ }
4555
+ ],
4556
+ "description": "One persisted OTLP metric data point, discriminated by aggregation kind."
4557
+ },
4558
+ "OTel.Metrics.MetricPointBase": {
4559
+ "type": "object",
4560
+ "required": [
4561
+ "name",
4562
+ "start_time_unix_nano",
4563
+ "time_unix_nano",
4564
+ "flags",
4565
+ "resource"
4566
+ ],
4567
+ "properties": {
4568
+ "name": {
4569
+ "type": "string",
4570
+ "minLength": 1,
4571
+ "description": "Metric stream name."
2764
4572
  },
2765
- "severity_number": {
2766
- "allOf": [
2767
- {
2768
- "$ref": "#/$defs/OTel.Enums.SeverityNumber"
2769
- }
2770
- ],
2771
- "description": "Severity number (1-24)"
4573
+ "description": {
4574
+ "type": "string"
2772
4575
  },
2773
- "severity_text": {
2774
- "allOf": [
2775
- {
2776
- "$ref": "#/$defs/OTel.Enums.SeverityText"
2777
- }
2778
- ],
2779
- "description": "Severity text (DEBUG, INFO, WARN, ERROR, etc.)"
4576
+ "unit": {
4577
+ "type": "string"
2780
4578
  },
2781
- "body": {
2782
- "allOf": [
2783
- {
2784
- "$ref": "#/$defs/OTel.Logs.LogBody"
2785
- }
2786
- ],
2787
- "description": "Log body - the main content"
4579
+ "metadata": {
4580
+ "type": "array",
4581
+ "items": {
4582
+ "$ref": "#/$defs/Common.Attribute"
4583
+ },
4584
+ "description": "Non-identifying metadata attached to the OTLP metric descriptor."
2788
4585
  },
2789
4586
  "attributes": {
2790
4587
  "type": "array",
2791
4588
  "items": {
2792
4589
  "$ref": "#/$defs/Common.Attribute"
2793
4590
  },
2794
- "description": "Log attributes"
4591
+ "description": "Attributes identifying this metric time series."
2795
4592
  },
2796
- "dropped_attributes_count": {
2797
- "allOf": [
2798
- {
2799
- "$ref": "#/$defs/Common.Count"
2800
- }
2801
- ],
2802
- "description": "Dropped attributes count"
4593
+ "start_time_unix_nano": {
4594
+ "$ref": "#/$defs/OTel.Metrics.MetricStartUnixNanos"
4595
+ },
4596
+ "time_unix_nano": {
4597
+ "$ref": "#/$defs/OTel.Metrics.MetricUnixNanos"
2803
4598
  },
2804
4599
  "flags": {
2805
4600
  "type": "integer",
2806
- "format": "int32",
2807
- "description": "Flags (trace flags)"
2808
- },
2809
- "trace_id": {
2810
- "allOf": [
2811
- {
2812
- "$ref": "#/$defs/Common.TraceId"
2813
- }
2814
- ],
2815
- "description": "Associated trace ID"
2816
- },
2817
- "span_id": {
2818
- "allOf": [
2819
- {
2820
- "$ref": "#/$defs/Common.SpanId"
2821
- }
2822
- ],
2823
- "description": "Associated span ID"
4601
+ "format": "uint32",
4602
+ "description": "OTLP data-point flags preserved as an extensible bit field."
2824
4603
  },
2825
4604
  "resource": {
2826
4605
  "allOf": [
@@ -2828,43 +4607,147 @@
2828
4607
  "$ref": "#/$defs/OTel.Resource.Resource"
2829
4608
  }
2830
4609
  ],
2831
- "description": "Resource describing the entity that produced this log"
4610
+ "description": "Resource describing the entity that produced the metric."
4611
+ },
4612
+ "resource_schema_url": {
4613
+ "type": "string"
2832
4614
  },
2833
4615
  "instrumentation_scope": {
2834
- "allOf": [
2835
- {
2836
- "$ref": "#/$defs/Common.InstrumentationScope"
2837
- }
2838
- ],
2839
- "description": "Instrumentation scope"
4616
+ "$ref": "#/$defs/Common.InstrumentationScope"
4617
+ },
4618
+ "scope_schema_url": {
4619
+ "type": "string"
2840
4620
  }
2841
4621
  },
2842
- "description": "OpenTelemetry Log Record"
4622
+ "description": "Fields shared by every persisted OTLP metric data point."
2843
4623
  },
2844
- "OTel.Logs.LogTemplate": {
4624
+ "OTel.Metrics.MetricStartUnixNanos": {
4625
+ "type": "string",
4626
+ "format": "uint64",
4627
+ "description": "An optional OTLP metric start timestamp in Unix nanoseconds, encoded as a decimal JSON string.",
4628
+ "x-csharp-type": "ulong",
4629
+ "pattern": "^(0|[1-9][0-9]*)$",
4630
+ "maxLength": 20
4631
+ },
4632
+ "OTel.Metrics.MetricUInt64": {
4633
+ "type": "string",
4634
+ "format": "uint64",
4635
+ "description": "An OTLP unsigned 64-bit metric count encoded as a decimal JSON string.",
4636
+ "x-csharp-type": "ulong",
4637
+ "pattern": "^(0|[1-9][0-9]*)$",
4638
+ "maxLength": 20
4639
+ },
4640
+ "OTel.Metrics.MetricUnixNanos": {
4641
+ "type": "string",
4642
+ "format": "uint64",
4643
+ "description": "A non-zero OTLP metric or exemplar timestamp in Unix nanoseconds.",
4644
+ "x-csharp-type": "ulong",
4645
+ "pattern": "^[1-9][0-9]*$",
4646
+ "maxLength": 20
4647
+ },
4648
+ "OTel.Metrics.SumMetricPoint": {
2845
4649
  "type": "object",
2846
4650
  "required": [
2847
- "template",
2848
- "parameters"
4651
+ "type",
4652
+ "value",
4653
+ "aggregation_temporality",
4654
+ "is_monotonic"
2849
4655
  ],
2850
4656
  "properties": {
2851
- "template": {
4657
+ "type": {
2852
4658
  "type": "string",
2853
- "description": "Template string with {placeholder} syntax"
4659
+ "enum": [
4660
+ "sum"
4661
+ ]
2854
4662
  },
2855
- "parameters": {
4663
+ "value": {
4664
+ "$ref": "#/$defs/OTel.Metrics.MetricNumberValue"
4665
+ },
4666
+ "aggregation_temporality": {
4667
+ "$ref": "#/$defs/OTel.Enums.AggregationTemporality"
4668
+ },
4669
+ "is_monotonic": {
4670
+ "type": "boolean"
4671
+ },
4672
+ "exemplars": {
2856
4673
  "type": "array",
2857
4674
  "items": {
2858
- "$ref": "#/$defs/Common.Attribute"
2859
- },
2860
- "description": "Template parameters"
2861
- },
2862
- "rendered_message": {
4675
+ "$ref": "#/$defs/OTel.Metrics.MetricExemplar"
4676
+ }
4677
+ }
4678
+ },
4679
+ "unevaluatedProperties": {
4680
+ "not": {}
4681
+ },
4682
+ "allOf": [
4683
+ {
4684
+ "$ref": "#/$defs/OTel.Metrics.MetricPointBase"
4685
+ }
4686
+ ],
4687
+ "description": "Delta or cumulative sum measurement."
4688
+ },
4689
+ "OTel.Metrics.SummaryMetricPoint": {
4690
+ "type": "object",
4691
+ "required": [
4692
+ "type",
4693
+ "count",
4694
+ "sum",
4695
+ "quantile_values"
4696
+ ],
4697
+ "properties": {
4698
+ "type": {
2863
4699
  "type": "string",
2864
- "description": "Rendered message"
4700
+ "enum": [
4701
+ "summary"
4702
+ ]
4703
+ },
4704
+ "count": {
4705
+ "$ref": "#/$defs/OTel.Metrics.MetricUInt64"
4706
+ },
4707
+ "sum": {
4708
+ "type": "number",
4709
+ "format": "double"
4710
+ },
4711
+ "quantile_values": {
4712
+ "type": "array",
4713
+ "items": {
4714
+ "$ref": "#/$defs/OTel.Metrics.SummaryQuantileValue"
4715
+ }
2865
4716
  }
2866
4717
  },
2867
- "description": "Log message template with placeholders"
4718
+ "unevaluatedProperties": {
4719
+ "not": {}
4720
+ },
4721
+ "allOf": [
4722
+ {
4723
+ "$ref": "#/$defs/OTel.Metrics.MetricPointBase"
4724
+ }
4725
+ ],
4726
+ "description": "Pre-aggregated summary measurement."
4727
+ },
4728
+ "OTel.Metrics.SummaryQuantileValue": {
4729
+ "type": "object",
4730
+ "required": [
4731
+ "quantile",
4732
+ "value"
4733
+ ],
4734
+ "properties": {
4735
+ "quantile": {
4736
+ "type": "number",
4737
+ "format": "double",
4738
+ "minimum": 0,
4739
+ "maximum": 1
4740
+ },
4741
+ "value": {
4742
+ "type": "number",
4743
+ "format": "double",
4744
+ "minimum": 0
4745
+ }
4746
+ },
4747
+ "unevaluatedProperties": {
4748
+ "not": {}
4749
+ },
4750
+ "description": "A quantile and value reported by an OTLP summary data point."
2868
4751
  },
2869
4752
  "OTel.Profiles.Profile": {
2870
4753
  "type": "object",
@@ -3010,6 +4893,9 @@
3010
4893
  "description": "Stack table (ordered location sequences)"
3011
4894
  }
3012
4895
  },
4896
+ "unevaluatedProperties": {
4897
+ "not": {}
4898
+ },
3013
4899
  "description": "OpenTelemetry Profile representing a continuous profiling snapshot"
3014
4900
  },
3015
4901
  "OTel.Profiles.ProfileFunction": {
@@ -3036,6 +4922,9 @@
3036
4922
  "description": "First line number of the function in source"
3037
4923
  }
3038
4924
  },
4925
+ "unevaluatedProperties": {
4926
+ "not": {}
4927
+ },
3039
4928
  "description": "Function identity in a profiled binary"
3040
4929
  },
3041
4930
  "OTel.Profiles.ProfileLine": {
@@ -3057,6 +4946,9 @@
3057
4946
  "description": "Source column number"
3058
4947
  }
3059
4948
  },
4949
+ "unevaluatedProperties": {
4950
+ "not": {}
4951
+ },
3060
4952
  "description": "Source line within a location"
3061
4953
  },
3062
4954
  "OTel.Profiles.ProfileLink": {
@@ -3079,6 +4971,9 @@
3079
4971
  "description": "Linked span ID (8 bytes)"
3080
4972
  }
3081
4973
  },
4974
+ "unevaluatedProperties": {
4975
+ "not": {}
4976
+ },
3082
4977
  "description": "Cross-signal link from profile sample to trace/span"
3083
4978
  },
3084
4979
  "OTel.Profiles.ProfileLocation": {
@@ -3110,6 +5005,9 @@
3110
5005
  "description": "Attribute indices"
3111
5006
  }
3112
5007
  },
5008
+ "unevaluatedProperties": {
5009
+ "not": {}
5010
+ },
3113
5011
  "description": "Code location within a profiled binary"
3114
5012
  },
3115
5013
  "OTel.Profiles.ProfileMapping": {
@@ -3144,6 +5042,9 @@
3144
5042
  "description": "Attribute indices"
3145
5043
  }
3146
5044
  },
5045
+ "unevaluatedProperties": {
5046
+ "not": {}
5047
+ },
3147
5048
  "description": "Memory mapping for a loaded binary or shared library"
3148
5049
  },
3149
5050
  "OTel.Profiles.ProfileQueryFilters": {
@@ -3212,6 +5113,9 @@
3212
5113
  "description": "End of time range (exclusive, ISO 8601)"
3213
5114
  }
3214
5115
  },
5116
+ "unevaluatedProperties": {
5117
+ "not": {}
5118
+ },
3215
5119
  "description": "Filter parameters for querying profiles"
3216
5120
  },
3217
5121
  "OTel.Profiles.ProfileSample": {
@@ -3251,6 +5155,9 @@
3251
5155
  "description": "Timestamps for each value in nanoseconds since epoch"
3252
5156
  }
3253
5157
  },
5158
+ "unevaluatedProperties": {
5159
+ "not": {}
5160
+ },
3254
5161
  "description": "Individual profiling sample"
3255
5162
  },
3256
5163
  "OTel.Profiles.ProfileStack": {
@@ -3265,6 +5172,9 @@
3265
5172
  "description": "Location indices from leaf (index 0) to root"
3266
5173
  }
3267
5174
  },
5175
+ "unevaluatedProperties": {
5176
+ "not": {}
5177
+ },
3268
5178
  "description": "Ordered sequence of location indices forming a call stack"
3269
5179
  },
3270
5180
  "OTel.Profiles.ProfileStats": {
@@ -3318,6 +5228,9 @@
3318
5228
  "description": "Stats grouped by frame type"
3319
5229
  }
3320
5230
  },
5231
+ "unevaluatedProperties": {
5232
+ "not": {}
5233
+ },
3321
5234
  "description": "Aggregated profile statistics"
3322
5235
  },
3323
5236
  "OTel.Profiles.ProfileStatsByDimension": {
@@ -3355,6 +5268,9 @@
3355
5268
  "description": "Average duration in nanoseconds"
3356
5269
  }
3357
5270
  },
5271
+ "unevaluatedProperties": {
5272
+ "not": {}
5273
+ },
3358
5274
  "description": "Profile statistics for a specific dimension value"
3359
5275
  },
3360
5276
  "OTel.Profiles.ProfileValueType": {
@@ -3371,6 +5287,9 @@
3371
5287
  "description": "Unit string index into string table"
3372
5288
  }
3373
5289
  },
5290
+ "unevaluatedProperties": {
5291
+ "not": {}
5292
+ },
3374
5293
  "description": "Sample type descriptor (what was measured and in what unit)"
3375
5294
  },
3376
5295
  "OTel.Resource.CloudProvider": {
@@ -3608,6 +5527,9 @@
3608
5527
  "description": "Dropped attributes count"
3609
5528
  }
3610
5529
  },
5530
+ "unevaluatedProperties": {
5531
+ "not": {}
5532
+ },
3611
5533
  "description": "Resource describes the entity producing telemetry"
3612
5534
  },
3613
5535
  "OTel.Traces.Span": {
@@ -3759,6 +5681,9 @@
3759
5681
  "description": "Instrumentation scope"
3760
5682
  }
3761
5683
  },
5684
+ "unevaluatedProperties": {
5685
+ "not": {}
5686
+ },
3762
5687
  "description": "OpenTelemetry Span representing a single operation in a distributed trace"
3763
5688
  },
3764
5689
  "OTel.Traces.SpanEvent": {
@@ -3797,6 +5722,9 @@
3797
5722
  "description": "Dropped attributes count"
3798
5723
  }
3799
5724
  },
5725
+ "unevaluatedProperties": {
5726
+ "not": {}
5727
+ },
3800
5728
  "description": "Event occurring during a span's lifetime"
3801
5729
  },
3802
5730
  "OTel.Traces.SpanLink": {
@@ -3851,6 +5779,9 @@
3851
5779
  "description": "Link flags"
3852
5780
  }
3853
5781
  },
5782
+ "unevaluatedProperties": {
5783
+ "not": {}
5784
+ },
3854
5785
  "description": "Link to another span (e.g., batch processing)"
3855
5786
  },
3856
5787
  "OTel.Traces.SpanQueryFilters": {
@@ -3917,6 +5848,9 @@
3917
5848
  "description": "Filter by attribute key-value pair"
3918
5849
  }
3919
5850
  },
5851
+ "unevaluatedProperties": {
5852
+ "not": {}
5853
+ },
3920
5854
  "description": "Filter parameters for querying spans"
3921
5855
  },
3922
5856
  "OTel.Traces.SpanStats": {
@@ -4023,6 +5957,9 @@
4023
5957
  "description": "Stats grouped by operation name"
4024
5958
  }
4025
5959
  },
5960
+ "unevaluatedProperties": {
5961
+ "not": {}
5962
+ },
4026
5963
  "description": "Aggregated span statistics"
4027
5964
  },
4028
5965
  "OTel.Traces.SpanStatsByDimension": {
@@ -4060,6 +5997,9 @@
4060
5997
  "description": "Error rate for this dimension"
4061
5998
  }
4062
5999
  },
6000
+ "unevaluatedProperties": {
6001
+ "not": {}
6002
+ },
4063
6003
  "description": "Span statistics for a specific dimension value"
4064
6004
  },
4065
6005
  "OTel.Traces.SpanStatus": {
@@ -4081,6 +6021,9 @@
4081
6021
  "description": "Status message (only for ERROR status)"
4082
6022
  }
4083
6023
  },
6024
+ "unevaluatedProperties": {
6025
+ "not": {}
6026
+ },
4084
6027
  "description": "Span status"
4085
6028
  },
4086
6029
  "OTel.Traces.Trace": {
@@ -4097,6 +6040,9 @@
4097
6040
  "description": "All spans in this trace"
4098
6041
  }
4099
6042
  },
6043
+ "unevaluatedProperties": {
6044
+ "not": {}
6045
+ },
4100
6046
  "allOf": [
4101
6047
  {
4102
6048
  "$ref": "#/$defs/OTel.Traces.TraceSummary"
@@ -4191,6 +6137,9 @@
4191
6137
  "type": "string"
4192
6138
  }
4193
6139
  },
6140
+ "unevaluatedProperties": {
6141
+ "not": {}
6142
+ },
4194
6143
  "allOf": [
4195
6144
  {
4196
6145
  "$ref": "#/$defs/Runner.Mcp.RunnerMcpContentMetadata"
@@ -4209,6 +6158,9 @@
4209
6158
  "contentEncoding": "base64"
4210
6159
  }
4211
6160
  },
6161
+ "unevaluatedProperties": {
6162
+ "not": {}
6163
+ },
4212
6164
  "allOf": [
4213
6165
  {
4214
6166
  "$ref": "#/$defs/Runner.Mcp.RunnerMcpResourceContentMetadata"
@@ -4273,6 +6225,9 @@
4273
6225
  "$ref": "#/$defs/Runner.Mcp.RunnerMcpResourceContent"
4274
6226
  }
4275
6227
  },
6228
+ "unevaluatedProperties": {
6229
+ "not": {}
6230
+ },
4276
6231
  "allOf": [
4277
6232
  {
4278
6233
  "$ref": "#/$defs/Runner.Mcp.RunnerMcpContentMetadata"
@@ -4302,6 +6257,9 @@
4302
6257
  "type": "string"
4303
6258
  }
4304
6259
  },
6260
+ "unevaluatedProperties": {
6261
+ "not": {}
6262
+ },
4305
6263
  "description": "Icon metadata carried by MCP tools and resource links."
4306
6264
  },
4307
6265
  "Runner.Mcp.RunnerMcpImageContent": {
@@ -4326,6 +6284,9 @@
4326
6284
  "type": "string"
4327
6285
  }
4328
6286
  },
6287
+ "unevaluatedProperties": {
6288
+ "not": {}
6289
+ },
4329
6290
  "allOf": [
4330
6291
  {
4331
6292
  "$ref": "#/$defs/Runner.Mcp.RunnerMcpContentMetadata"
@@ -4406,6 +6367,9 @@
4406
6367
  }
4407
6368
  }
4408
6369
  },
6370
+ "unevaluatedProperties": {
6371
+ "not": {}
6372
+ },
4409
6373
  "allOf": [
4410
6374
  {
4411
6375
  "$ref": "#/$defs/Runner.Mcp.RunnerMcpContentMetadata"
@@ -4428,6 +6392,9 @@
4428
6392
  "unevaluatedProperties": {}
4429
6393
  }
4430
6394
  },
6395
+ "unevaluatedProperties": {
6396
+ "not": {}
6397
+ },
4431
6398
  "description": "Resource URI accepted by the runner's MCP projection."
4432
6399
  },
4433
6400
  "Runner.Mcp.RunnerMcpResourceReadResponse": {
@@ -4447,6 +6414,9 @@
4447
6414
  "unevaluatedProperties": {}
4448
6415
  }
4449
6416
  },
6417
+ "unevaluatedProperties": {
6418
+ "not": {}
6419
+ },
4450
6420
  "description": "Stable qyl projection of an MCP resources/read result."
4451
6421
  },
4452
6422
  "Runner.Mcp.RunnerMcpTask": {
@@ -4484,6 +6454,9 @@
4484
6454
  "format": "double"
4485
6455
  }
4486
6456
  },
6457
+ "unevaluatedProperties": {
6458
+ "not": {}
6459
+ },
4487
6460
  "description": "Task returned by an MCP task-augmented tool call. ttl and pollInterval are encoded as milliseconds."
4488
6461
  },
4489
6462
  "Runner.Mcp.RunnerMcpTaskMetadata": {
@@ -4494,6 +6467,9 @@
4494
6467
  "format": "double"
4495
6468
  }
4496
6469
  },
6470
+ "unevaluatedProperties": {
6471
+ "not": {}
6472
+ },
4497
6473
  "description": "Task-augmentation metadata accepted on an MCP tool call. ttl is encoded as milliseconds."
4498
6474
  },
4499
6475
  "Runner.Mcp.RunnerMcpTaskStatus": {
@@ -4524,6 +6500,9 @@
4524
6500
  "type": "string"
4525
6501
  }
4526
6502
  },
6503
+ "unevaluatedProperties": {
6504
+ "not": {}
6505
+ },
4527
6506
  "allOf": [
4528
6507
  {
4529
6508
  "$ref": "#/$defs/Runner.Mcp.RunnerMcpContentMetadata"
@@ -4541,6 +6520,9 @@
4541
6520
  "type": "string"
4542
6521
  }
4543
6522
  },
6523
+ "unevaluatedProperties": {
6524
+ "not": {}
6525
+ },
4544
6526
  "allOf": [
4545
6527
  {
4546
6528
  "$ref": "#/$defs/Runner.Mcp.RunnerMcpResourceContentMetadata"
@@ -4590,6 +6572,9 @@
4590
6572
  "unevaluatedProperties": {}
4591
6573
  }
4592
6574
  },
6575
+ "unevaluatedProperties": {
6576
+ "not": {}
6577
+ },
4593
6578
  "description": "Stable qyl projection of an MCP tool advertised by a runner resource."
4594
6579
  },
4595
6580
  "Runner.Mcp.RunnerMcpToolCallRequest": {
@@ -4613,6 +6598,9 @@
4613
6598
  "unevaluatedProperties": {}
4614
6599
  }
4615
6600
  },
6601
+ "unevaluatedProperties": {
6602
+ "not": {}
6603
+ },
4616
6604
  "description": "Tool call accepted by the runner's MCP projection."
4617
6605
  },
4618
6606
  "Runner.Mcp.RunnerMcpToolCallResponse": {
@@ -4643,6 +6631,9 @@
4643
6631
  "unevaluatedProperties": {}
4644
6632
  }
4645
6633
  },
6634
+ "unevaluatedProperties": {
6635
+ "not": {}
6636
+ },
4646
6637
  "description": "Stable qyl projection of an MCP tool-call result."
4647
6638
  },
4648
6639
  "Runner.Mcp.RunnerMcpToolExecution": {
@@ -4652,6 +6643,9 @@
4652
6643
  "$ref": "#/$defs/Runner.Mcp.RunnerMcpToolTaskSupport"
4653
6644
  }
4654
6645
  },
6646
+ "unevaluatedProperties": {
6647
+ "not": {}
6648
+ },
4655
6649
  "description": "Execution metadata advertised for an MCP tool."
4656
6650
  },
4657
6651
  "Runner.Mcp.RunnerMcpToolResultContent": {
@@ -4685,6 +6679,9 @@
4685
6679
  "type": "boolean"
4686
6680
  }
4687
6681
  },
6682
+ "unevaluatedProperties": {
6683
+ "not": {}
6684
+ },
4688
6685
  "allOf": [
4689
6686
  {
4690
6687
  "$ref": "#/$defs/Runner.Mcp.RunnerMcpContentMetadata"
@@ -4724,6 +6721,9 @@
4724
6721
  },
4725
6722
  "input": {}
4726
6723
  },
6724
+ "unevaluatedProperties": {
6725
+ "not": {}
6726
+ },
4727
6727
  "allOf": [
4728
6728
  {
4729
6729
  "$ref": "#/$defs/Runner.Mcp.RunnerMcpContentMetadata"
@@ -4751,6 +6751,9 @@
4751
6751
  "unevaluatedProperties": {}
4752
6752
  }
4753
6753
  },
6754
+ "unevaluatedProperties": {
6755
+ "not": {}
6756
+ },
4754
6757
  "description": "MCP tools currently advertised by a runner resource."
4755
6758
  },
4756
6759
  "Runner.RunnerLogEvents": {
@@ -4774,6 +6777,9 @@
4774
6777
  "type": "string"
4775
6778
  }
4776
6779
  },
6780
+ "unevaluatedProperties": {
6781
+ "not": {}
6782
+ },
4777
6783
  "description": "One bounded child-process log line exposed by the runner."
4778
6784
  },
4779
6785
  "Runner.RunnerLogStream": {
@@ -4798,6 +6804,9 @@
4798
6804
  "type": "string"
4799
6805
  }
4800
6806
  },
6807
+ "unevaluatedProperties": {
6808
+ "not": {}
6809
+ },
4801
6810
  "description": "Identity reported by a connected MCP server during initialization."
4802
6811
  },
4803
6812
  "Runner.RunnerResourceEvents": {
@@ -4875,6 +6884,9 @@
4875
6884
  "minimum": 0
4876
6885
  }
4877
6886
  },
6887
+ "unevaluatedProperties": {
6888
+ "not": {}
6889
+ },
4878
6890
  "description": "Current client-visible state of one runner resource."
4879
6891
  },
4880
6892
  "Streaming.HeartbeatEvent": {
@@ -4895,6 +6907,9 @@
4895
6907
  "format": "date-time"
4896
6908
  }
4897
6909
  },
6910
+ "unevaluatedProperties": {
6911
+ "not": {}
6912
+ },
4898
6913
  "description": "Keep-alive event emitted while no new log is available."
4899
6914
  },
4900
6915
  "Streaming.LogEvents": {
@@ -4929,6 +6944,9 @@
4929
6944
  "format": "date-time"
4930
6945
  }
4931
6946
  },
6947
+ "unevaluatedProperties": {
6948
+ "not": {}
6949
+ },
4932
6950
  "description": "One log delivered by the collector's live stream."
4933
6951
  }
4934
6952
  }