@grafana/openapi 13.2.4 → 13.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (29) hide show
  1. package/dist/api/openapi3.json +358 -247
  2. package/dist/apis/collections.grafana.app-v1alpha1.json +3 -14
  3. package/dist/apis/correlations.grafana.app-v0alpha1.json +411 -0
  4. package/dist/apis/dashboard.grafana.app-v0alpha1.json +865 -105
  5. package/dist/apis/dashboard.grafana.app-v1beta1.json +733 -6
  6. package/dist/apis/dashboard.grafana.app-v2.json +821 -194
  7. package/dist/apis/dashboard.grafana.app-v2alpha1.json +803 -208
  8. package/dist/apis/dashboard.grafana.app-v2beta1.json +985 -374
  9. package/dist/apis/folder.grafana.app-v1.json +644 -20
  10. package/dist/apis/folder.grafana.app-v1beta1.json +644 -20
  11. package/dist/apis/grafana-testdata-datasource.datasource.grafana.app-v0alpha1.json +3 -21
  12. package/dist/apis/historian.alerting.grafana.app-v0alpha1.json +411 -0
  13. package/dist/apis/iam.grafana.app-v0alpha1.json +2397 -748
  14. package/dist/apis/logsdrilldown.grafana.app-v1beta1.json +448 -0
  15. package/dist/apis/notifications.alerting.grafana.app-v0alpha1.json +596 -0
  16. package/dist/apis/notifications.alerting.grafana.app-v1beta1.json +596 -0
  17. package/dist/apis/playlist.grafana.app-v0alpha1.json +415 -0
  18. package/dist/apis/playlist.grafana.app-v1.json +415 -0
  19. package/dist/apis/preferences.grafana.app-v1.json +3 -9
  20. package/dist/apis/preferences.grafana.app-v1alpha1.json +3 -9
  21. package/dist/apis/provisioning.grafana.app-v0alpha1.json +636 -151
  22. package/dist/apis/provisioning.grafana.app-v1beta1.json +621 -100
  23. package/dist/apis/query.grafana.app-v0alpha1.json +14 -11
  24. package/dist/apis/quotas.grafana.app-v0alpha1.json +1 -2
  25. package/dist/apis/rules.alerting.grafana.app-v0alpha1.json +3027 -767
  26. package/dist/apis/rules.alerting.grafana.app-v1beta1.json +4541 -0
  27. package/dist/apis/search.grafana.app-v0alpha1.json +693 -0
  28. package/dist/apis/shorturl.grafana.app-v1beta1.json +411 -0
  29. package/package.json +3 -3
@@ -242,6 +242,81 @@
242
242
  }
243
243
  ]
244
244
  },
245
+ "/folders/search": {
246
+ "post": {
247
+ "tags": ["Search"],
248
+ "description": "Search Folder resources in a namespace.",
249
+ "operationId": "listFolderSearchV1beta1",
250
+ "parameters": [],
251
+ "requestBody": {
252
+ "description": "A SearchQuery describing what to match, sort and return.",
253
+ "content": {
254
+ "application/json": {
255
+ "schema": {
256
+ "$ref": "#/components/schemas/SearchQuery"
257
+ },
258
+ "example": {
259
+ "kind": "SearchQuery",
260
+ "apiVersion": "search.grafana.app/v0alpha1",
261
+ "facetLimit": 0,
262
+ "limit": 10
263
+ }
264
+ }
265
+ },
266
+ "required": true
267
+ },
268
+ "responses": {
269
+ "200": {
270
+ "description": "A SearchResults envelope.",
271
+ "content": {
272
+ "application/json": {
273
+ "schema": {
274
+ "$ref": "#/components/schemas/SearchResults"
275
+ }
276
+ }
277
+ }
278
+ }
279
+ }
280
+ }
281
+ },
282
+ "/folders/search/hybrid": {
283
+ "post": {
284
+ "tags": ["Search"],
285
+ "description": "Hybrid lexical and semantic search for Folder resources in a namespace. Returns top-k results with opaque scores meaningful only for ordering within this response. No pagination, totals, sorting or facets.",
286
+ "operationId": "listFolderHybridSearchV1beta1",
287
+ "parameters": [],
288
+ "requestBody": {
289
+ "description": "A HybridSearchQuery describing what to match and return.",
290
+ "content": {
291
+ "application/json": {
292
+ "schema": {
293
+ "$ref": "#/components/schemas/HybridSearchQuery"
294
+ },
295
+ "example": {
296
+ "kind": "HybridSearchQuery",
297
+ "apiVersion": "search.grafana.app/v0alpha1",
298
+ "query": "production",
299
+ "limit": 10,
300
+ "skipRerank": false
301
+ }
302
+ }
303
+ },
304
+ "required": true
305
+ },
306
+ "responses": {
307
+ "200": {
308
+ "description": "A HybridSearchResults envelope.",
309
+ "content": {
310
+ "application/json": {
311
+ "schema": {
312
+ "$ref": "#/components/schemas/HybridSearchResults"
313
+ }
314
+ }
315
+ }
316
+ }
317
+ }
318
+ }
319
+ },
245
320
  "/folders/{name}": {
246
321
  "get": {
247
322
  "tags": ["Folder"],
@@ -738,12 +813,7 @@
738
813
  "counts": {
739
814
  "type": "array",
740
815
  "items": {
741
- "default": {},
742
- "allOf": [
743
- {
744
- "$ref": "#/components/schemas/ResourceStats"
745
- }
746
- ]
816
+ "$ref": "#/components/schemas/ResourceStats"
747
817
  }
748
818
  },
749
819
  "kind": {
@@ -816,8 +886,7 @@
816
886
  "description": "AccessControl is a flat map of folder-domain action strings to bool, reflecting permissions after parent-chain inheritance has been resolved by the authorization system. Mirrors the shape of legacy dtos.Folder.AccessControl so clients can drop their dual call to /api/folders/{uid}?accesscontrol=true. Only keys for actions the user is granted appear here; absent keys mean \"not granted\".",
817
887
  "type": "object",
818
888
  "additionalProperties": {
819
- "type": "boolean",
820
- "default": false
889
+ "type": "boolean"
821
890
  }
822
891
  },
823
892
  "apiVersion": {
@@ -899,12 +968,7 @@
899
968
  "items": {
900
969
  "type": "array",
901
970
  "items": {
902
- "default": {},
903
- "allOf": [
904
- {
905
- "$ref": "#/components/schemas/FolderInfo"
906
- }
907
- ]
971
+ "$ref": "#/components/schemas/FolderInfo"
908
972
  },
909
973
  "x-kubernetes-list-map-keys": ["uid"],
910
974
  "x-kubernetes-list-type": "map"
@@ -946,12 +1010,7 @@
946
1010
  "items": {
947
1011
  "type": "array",
948
1012
  "items": {
949
- "default": {},
950
- "allOf": [
951
- {
952
- "$ref": "#/components/schemas/Folder"
953
- }
954
- ]
1013
+ "$ref": "#/components/schemas/Folder"
955
1014
  }
956
1015
  },
957
1016
  "kind": {
@@ -1012,6 +1071,524 @@
1012
1071
  }
1013
1072
  }
1014
1073
  },
1074
+ "Unstructured": {
1075
+ "type": "object",
1076
+ "additionalProperties": true,
1077
+ "x-kubernetes-preserve-unknown-fields": true
1078
+ },
1079
+ "ExistsPredicate": {
1080
+ "description": "ExistsPredicate is a future field-existence predicate. Modelled for schema stability; always rejected in v1.",
1081
+ "type": "object",
1082
+ "required": ["field"],
1083
+ "properties": {
1084
+ "field": {
1085
+ "type": "string",
1086
+ "default": ""
1087
+ }
1088
+ }
1089
+ },
1090
+ "FacetTerm": {
1091
+ "description": "FacetTerm is a single facet term and its count.",
1092
+ "type": "object",
1093
+ "required": ["value", "count"],
1094
+ "properties": {
1095
+ "count": {
1096
+ "type": "integer",
1097
+ "format": "int64",
1098
+ "default": 0
1099
+ },
1100
+ "value": {
1101
+ "type": "string",
1102
+ "default": ""
1103
+ }
1104
+ }
1105
+ },
1106
+ "FilterPredicate": {
1107
+ "description": "FilterPredicate is an exact / set-based predicate against a single field. Values are strings whatever the field's declared type, so a boolean field takes \"true\" or \"false\" and a numeric field takes the number written out.\n\nNumbers are held as float64, so only integers up to 2^53 are compared exactly. Past that, values a whole number apart share one representation, and a filter can both match a neighbour and miss the value asked for.",
1108
+ "type": "object",
1109
+ "required": ["field", "operator", "values"],
1110
+ "properties": {
1111
+ "field": {
1112
+ "type": "string",
1113
+ "default": ""
1114
+ },
1115
+ "operator": {
1116
+ "description": "Operator is \"In\", \"NotIn\" or \"All\" in v1. \"In\" matches any of the values, \"NotIn\" excludes all of them, and \"All\" requires the field to hold every value, which only a field holding a list of values can do.",
1117
+ "type": "string",
1118
+ "default": ""
1119
+ },
1120
+ "values": {
1121
+ "type": "array",
1122
+ "items": {
1123
+ "type": "string"
1124
+ }
1125
+ }
1126
+ }
1127
+ },
1128
+ "HybridSearchChunk": {
1129
+ "description": "HybridSearchChunk is matching text from an embedded resource or subresource.",
1130
+ "type": "object",
1131
+ "required": ["subresource", "content"],
1132
+ "properties": {
1133
+ "content": {
1134
+ "type": "string",
1135
+ "default": ""
1136
+ },
1137
+ "subresource": {
1138
+ "description": "Subresource identifies a chunk, for example panel/5. Empty means the whole resource, or a synthesized chunk for a lexical-only hit.",
1139
+ "type": "string",
1140
+ "default": ""
1141
+ }
1142
+ }
1143
+ },
1144
+ "HybridSearchFilter": {
1145
+ "description": "HybridSearchFilter matches any of Values against Field (IN semantics). Unlike lexical search filters, no other operators are supported.",
1146
+ "type": "object",
1147
+ "required": ["field", "values"],
1148
+ "properties": {
1149
+ "field": {
1150
+ "description": "Field is uid or folder for all resources. A single dashboard resource type additionally supports datasource_uid and language (promql, logql, traceql or sql). Searches across multiple types support only uid and folder.",
1151
+ "type": "string",
1152
+ "default": ""
1153
+ },
1154
+ "values": {
1155
+ "description": "Values must contain at least one value. Values containing '*' are rejected. An empty folder value matches resources in the root folder.",
1156
+ "type": "array",
1157
+ "items": {
1158
+ "type": "string"
1159
+ },
1160
+ "x-kubernetes-list-type": "atomic"
1161
+ }
1162
+ }
1163
+ },
1164
+ "HybridSearchManagedBy": {
1165
+ "description": "HybridSearchManagedBy identifies the manager of a returned resource.",
1166
+ "type": "object",
1167
+ "required": ["kind", "id"],
1168
+ "properties": {
1169
+ "id": {
1170
+ "type": "string",
1171
+ "default": ""
1172
+ },
1173
+ "kind": {
1174
+ "type": "string",
1175
+ "default": ""
1176
+ }
1177
+ }
1178
+ },
1179
+ "HybridSearchQuery": {
1180
+ "description": "HybridSearchQuery is the request body for POST .../{resource}/search/hybrid and POST .../global/search/hybrid. It returns the top matching resources, with no pagination, sorting or facets.",
1181
+ "type": "object",
1182
+ "required": ["query"],
1183
+ "properties": {
1184
+ "apiVersion": {
1185
+ "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
1186
+ "type": "string"
1187
+ },
1188
+ "filters": {
1189
+ "description": "Filters are ANDed together. Each field may appear once, with at most 1000 values across all filters. Embedding fields supply text only and do not make additional fields available for filtering.",
1190
+ "type": "array",
1191
+ "items": {
1192
+ "$ref": "#/components/schemas/HybridSearchFilter"
1193
+ },
1194
+ "x-kubernetes-list-type": "atomic"
1195
+ },
1196
+ "kind": {
1197
+ "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
1198
+ "type": "string"
1199
+ },
1200
+ "limit": {
1201
+ "description": "Limit is the maximum number of results across all requested resource types. Zero uses the default of 50, values above 200 are clamped, and negative values are rejected.",
1202
+ "type": "integer",
1203
+ "format": "int64"
1204
+ },
1205
+ "minRelevance": {
1206
+ "description": "MinRelevance is lowest, low, medium, high or highest. Empty keeps every result. Filtering is best-effort: no results are dropped when reranking is unavailable or fails. It cannot be combined with SkipRerank.",
1207
+ "type": "string"
1208
+ },
1209
+ "query": {
1210
+ "description": "Query supplies the lexical query and, unless SemanticQuery is set, the text embedded for semantic search. Required, with a maximum of 1000 bytes.",
1211
+ "type": "string",
1212
+ "default": ""
1213
+ },
1214
+ "resources": {
1215
+ "description": "Resources is required for global hybrid search and rejected by per-resource routes. It must be nonempty and contain unique group/resource pairs.",
1216
+ "type": "array",
1217
+ "items": {
1218
+ "$ref": "#/components/schemas/HybridSearchResource"
1219
+ },
1220
+ "x-kubernetes-list-type": "atomic"
1221
+ },
1222
+ "semanticQuery": {
1223
+ "description": "SemanticQuery supplies optional richer phrasing for semantic search. When provided, it must not be whitespace and must fit within 1000 bytes.",
1224
+ "type": "string"
1225
+ },
1226
+ "skipRerank": {
1227
+ "description": "SkipRerank skips reranking even when a reranker is configured. Multiple resource types are interleaved in request order, preserving each type's ranking.",
1228
+ "type": "boolean"
1229
+ }
1230
+ }
1231
+ },
1232
+ "HybridSearchResource": {
1233
+ "description": "HybridSearchResource identifies a resource type for global hybrid search.",
1234
+ "type": "object",
1235
+ "required": ["group", "resource"],
1236
+ "properties": {
1237
+ "group": {
1238
+ "type": "string",
1239
+ "default": ""
1240
+ },
1241
+ "resource": {
1242
+ "type": "string",
1243
+ "default": ""
1244
+ }
1245
+ }
1246
+ },
1247
+ "HybridSearchResultItem": {
1248
+ "description": "HybridSearchResultItem is one matching resource, with its matching chunks.",
1249
+ "type": "object",
1250
+ "required": ["resource", "score", "title", "folder", "chunks"],
1251
+ "properties": {
1252
+ "chunks": {
1253
+ "description": "Chunks contains matching text, best first. A lexical-only hit has a synthesized chunk containing the resource's title.",
1254
+ "type": "array",
1255
+ "items": {
1256
+ "$ref": "#/components/schemas/HybridSearchChunk"
1257
+ },
1258
+ "x-kubernetes-list-type": "atomic"
1259
+ },
1260
+ "folder": {
1261
+ "description": "Folder is the containing folder's UID. Empty and \"general\" denote the root folder.",
1262
+ "type": "string",
1263
+ "default": ""
1264
+ },
1265
+ "folderTitle": {
1266
+ "description": "FolderTitle is best-effort display data and can be absent.",
1267
+ "type": "string"
1268
+ },
1269
+ "managedBy": {
1270
+ "description": "ManagedBy is absent for unmanaged resources or when lookup fails.",
1271
+ "$ref": "#/components/schemas/HybridSearchManagedBy"
1272
+ },
1273
+ "resource": {
1274
+ "default": {},
1275
+ "$ref": "#/components/schemas/ResourceRef"
1276
+ },
1277
+ "score": {
1278
+ "description": "Score is opaque: higher scores rank first, but scores are meaningful only for ordering within this response. Do not compare scores across queries or treat them as probabilities or distances.",
1279
+ "type": "number",
1280
+ "format": "double",
1281
+ "default": 0
1282
+ },
1283
+ "tags": {
1284
+ "description": "Tags from the lexical index. Omitted when unavailable.",
1285
+ "type": "array",
1286
+ "items": {
1287
+ "type": "string"
1288
+ },
1289
+ "x-kubernetes-list-type": "atomic"
1290
+ },
1291
+ "title": {
1292
+ "type": "string",
1293
+ "default": ""
1294
+ }
1295
+ }
1296
+ },
1297
+ "HybridSearchResults": {
1298
+ "description": "HybridSearchResults is the response body for per-resource and global hybrid search. Items are ordered by relevance. They are a bounded top-k result set, not an exhaustive list, so the response carries no total count or pagination token.",
1299
+ "type": "object",
1300
+ "required": ["items"],
1301
+ "properties": {
1302
+ "apiVersion": {
1303
+ "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
1304
+ "type": "string"
1305
+ },
1306
+ "items": {
1307
+ "type": "array",
1308
+ "items": {
1309
+ "$ref": "#/components/schemas/HybridSearchResultItem"
1310
+ },
1311
+ "x-kubernetes-list-type": "atomic"
1312
+ },
1313
+ "kind": {
1314
+ "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
1315
+ "type": "string"
1316
+ }
1317
+ }
1318
+ },
1319
+ "RangePredicate": {
1320
+ "description": "RangePredicate compares a numeric field against one or two bounds. At least one bound is required, gt cannot be combined with gte, and lt cannot be combined with lte. Boolean and string fields are rejected: only numbers have the order a range asks about. On an integer field a bound must be whole.\n\nBounds are held as float64, so only integers up to 2^53 are compared exactly. Past that, values a whole number apart share one representation, and a bound can both admit a neighbour and exclude the value asked for.",
1321
+ "type": "object",
1322
+ "required": ["field"],
1323
+ "properties": {
1324
+ "field": {
1325
+ "type": "string",
1326
+ "default": ""
1327
+ },
1328
+ "gt": {
1329
+ "type": "number",
1330
+ "format": "double"
1331
+ },
1332
+ "gte": {
1333
+ "type": "number",
1334
+ "format": "double"
1335
+ },
1336
+ "lt": {
1337
+ "type": "number",
1338
+ "format": "double"
1339
+ },
1340
+ "lte": {
1341
+ "type": "number",
1342
+ "format": "double"
1343
+ }
1344
+ }
1345
+ },
1346
+ "RegexPredicate": {
1347
+ "description": "RegexPredicate matches a single field against a regular expression, one pattern per leaf the way a single Prometheus matcher works. Negate turns the leaf from =~ into !~.\n\nMatching is against the whole indexed term and is case-sensitive, so it is restricted to filterable keyword string fields that keep their original case. The pattern is a portable RE2 subset: literals, character classes, grouping, alternation, and greedy repetition. The backend is the source of truth for what the subset admits; it rejects unsupported syntax, fields that do not preserve case, and patterns that expand to too many terms with a 400.",
1348
+ "type": "object",
1349
+ "required": ["field", "pattern"],
1350
+ "properties": {
1351
+ "field": {
1352
+ "type": "string",
1353
+ "default": ""
1354
+ },
1355
+ "negate": {
1356
+ "description": "Negate inverts the match: the field must not match the pattern.",
1357
+ "type": "boolean"
1358
+ },
1359
+ "pattern": {
1360
+ "type": "string",
1361
+ "default": ""
1362
+ }
1363
+ }
1364
+ },
1365
+ "ResourceRef": {
1366
+ "description": "ResourceRef is the full identity of a returned item. Namespace is implicit from the URL and omitted.",
1367
+ "type": "object",
1368
+ "required": ["group", "resource", "kind", "name"],
1369
+ "properties": {
1370
+ "group": {
1371
+ "type": "string",
1372
+ "default": ""
1373
+ },
1374
+ "kind": {
1375
+ "type": "string",
1376
+ "default": ""
1377
+ },
1378
+ "name": {
1379
+ "type": "string",
1380
+ "default": ""
1381
+ },
1382
+ "resource": {
1383
+ "type": "string",
1384
+ "default": ""
1385
+ }
1386
+ }
1387
+ },
1388
+ "ResultItem": {
1389
+ "description": "ResultItem is one search or trash hit. The item shape is identical on both endpoints; only which fields the Fields map can carry differs.",
1390
+ "type": "object",
1391
+ "required": ["resource"],
1392
+ "properties": {
1393
+ "fields": {
1394
+ "description": "Fields holds the JSON values for the requested (or default) fields. Array-typed fields are returned as JSON arrays. Absent fields are omitted.",
1395
+ "$ref": "#/components/schemas/Unstructured"
1396
+ },
1397
+ "resource": {
1398
+ "default": {},
1399
+ "$ref": "#/components/schemas/ResourceRef"
1400
+ },
1401
+ "score": {
1402
+ "description": "Score is present only when a text query was evaluated. A pointer so a real score of 0 is still distinguishable from \"no text query\" (absent).",
1403
+ "type": "number",
1404
+ "format": "double"
1405
+ }
1406
+ }
1407
+ },
1408
+ "ResultsMetadata": {
1409
+ "description": "ResultsMetadata carries the pagination token and the total hit count.",
1410
+ "type": "object",
1411
+ "required": ["totalHits", "totalHitsRelation"],
1412
+ "properties": {
1413
+ "continue": {
1414
+ "type": "string"
1415
+ },
1416
+ "totalHits": {
1417
+ "description": "TotalHits counts the resources matching the query. Always read it together with TotalHitsRelation. When the relation is \"unknown\", this is a zero placeholder that must not be interpreted as a count.",
1418
+ "type": "integer",
1419
+ "format": "int64",
1420
+ "default": 0
1421
+ },
1422
+ "totalHitsRelation": {
1423
+ "description": "TotalHitsRelation is \"eq\" when TotalHits is exact and \"lte\" when it is an upper bound. \"unknown\" means no count is available and TotalHits must be ignored.",
1424
+ "type": "string",
1425
+ "default": ""
1426
+ }
1427
+ }
1428
+ },
1429
+ "SearchQuery": {
1430
+ "description": "SearchQuery is the request body for POST .../{resource}/search, which searches one kind, and for POST .../namespaces/{namespace}/global/search, which searches several resource types at once.",
1431
+ "type": "object",
1432
+ "properties": {
1433
+ "apiVersion": {
1434
+ "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
1435
+ "type": "string"
1436
+ },
1437
+ "continue": {
1438
+ "description": "Continue is an opaque pagination token from a previous page.",
1439
+ "type": "string"
1440
+ },
1441
+ "facetLimit": {
1442
+ "description": "FacetLimit caps the number of terms returned per facet. It applies to every entry in Facets. Zero uses the server default; values above the server cap are clamped.",
1443
+ "type": "integer",
1444
+ "format": "int64"
1445
+ },
1446
+ "facets": {
1447
+ "type": "array",
1448
+ "items": {
1449
+ "type": "string"
1450
+ }
1451
+ },
1452
+ "fields": {
1453
+ "type": "array",
1454
+ "items": {
1455
+ "type": "string"
1456
+ }
1457
+ },
1458
+ "kind": {
1459
+ "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
1460
+ "type": "string"
1461
+ },
1462
+ "labelSelector": {
1463
+ "description": "LabelSelector filters on metadata.labels, ANDed with Where.",
1464
+ "$ref": "#/components/schemas/LabelSelector"
1465
+ },
1466
+ "limit": {
1467
+ "description": "Limit is the page size. Zero uses the default; values above the maximum are clamped.",
1468
+ "type": "integer",
1469
+ "format": "int64"
1470
+ },
1471
+ "sort": {
1472
+ "type": "array",
1473
+ "items": {
1474
+ "$ref": "#/components/schemas/SortField"
1475
+ }
1476
+ },
1477
+ "where": {
1478
+ "description": "Where is the search predicate tree. Omitting it matches everything the endpoint searches: all resources of the kind, or of every type the global search covers (subject to labelSelector and per-item authz).",
1479
+ "$ref": "#/components/schemas/WhereNode"
1480
+ }
1481
+ }
1482
+ },
1483
+ "SearchResults": {
1484
+ "description": "SearchResults is the response body for POST .../{resource}/search.",
1485
+ "type": "object",
1486
+ "required": ["metadata", "items"],
1487
+ "properties": {
1488
+ "apiVersion": {
1489
+ "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
1490
+ "type": "string"
1491
+ },
1492
+ "facets": {
1493
+ "description": "Facets holds term counts per requested facet field. Counts are computed over a bounded sample window, so they are best-effort/approximate.",
1494
+ "type": "object",
1495
+ "additionalProperties": {
1496
+ "type": "array",
1497
+ "items": {
1498
+ "$ref": "#/components/schemas/FacetTerm"
1499
+ }
1500
+ }
1501
+ },
1502
+ "items": {
1503
+ "type": "array",
1504
+ "items": {
1505
+ "$ref": "#/components/schemas/ResultItem"
1506
+ }
1507
+ },
1508
+ "kind": {
1509
+ "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
1510
+ "type": "string"
1511
+ },
1512
+ "metadata": {
1513
+ "default": {},
1514
+ "$ref": "#/components/schemas/ResultsMetadata"
1515
+ }
1516
+ }
1517
+ },
1518
+ "SortField": {
1519
+ "description": "SortField names a field to sort by and a direction (\"asc\" or \"desc\"). V1 allows sorting only on scalar string and numeric fields that declare the sort capability.",
1520
+ "type": "object",
1521
+ "required": ["field"],
1522
+ "properties": {
1523
+ "direction": {
1524
+ "type": "string"
1525
+ },
1526
+ "field": {
1527
+ "type": "string",
1528
+ "default": ""
1529
+ }
1530
+ }
1531
+ },
1532
+ "TextPredicate": {
1533
+ "description": "TextPredicate is a free-text predicate against one or more text-capable fields. When Fields is empty it defaults to the kind's searchTextFields (currently [\"title\"]).",
1534
+ "type": "object",
1535
+ "required": ["value"],
1536
+ "properties": {
1537
+ "boost": {
1538
+ "description": "Boost is a future per-leaf score multiplier. Setting it is rejected in v1.",
1539
+ "type": "number",
1540
+ "format": "double"
1541
+ },
1542
+ "fields": {
1543
+ "type": "array",
1544
+ "items": {
1545
+ "type": "string"
1546
+ }
1547
+ },
1548
+ "value": {
1549
+ "type": "string",
1550
+ "default": ""
1551
+ }
1552
+ }
1553
+ },
1554
+ "WhereNode": {
1555
+ "description": "WhereNode is a single node of the where tree. Exactly one field must be set; the set field names the node's type. Combinators (and/or/not) compose other nodes, leaves (text/filter/range/regex/exists) are terminal predicates.\n\nAll node types are modelled so the schema is future-proof, but v1 only accepts a narrow subset (top-level single leaf or a single and of leaves; text, filter, range and regex leaves; In/NotIn/All filter operators). Everything else is rejected with 422 Unprocessable Entity by the validation layer. exists is sketched for a future version and always rejected today.",
1556
+ "type": "object",
1557
+ "properties": {
1558
+ "and": {
1559
+ "description": "Combinators.",
1560
+ "type": "array",
1561
+ "items": {
1562
+ "$ref": "#/components/schemas/WhereNode"
1563
+ }
1564
+ },
1565
+ "exists": {
1566
+ "$ref": "#/components/schemas/ExistsPredicate"
1567
+ },
1568
+ "filter": {
1569
+ "$ref": "#/components/schemas/FilterPredicate"
1570
+ },
1571
+ "not": {
1572
+ "$ref": "#/components/schemas/WhereNode"
1573
+ },
1574
+ "or": {
1575
+ "type": "array",
1576
+ "items": {
1577
+ "$ref": "#/components/schemas/WhereNode"
1578
+ }
1579
+ },
1580
+ "range": {
1581
+ "$ref": "#/components/schemas/RangePredicate"
1582
+ },
1583
+ "regex": {
1584
+ "$ref": "#/components/schemas/RegexPredicate"
1585
+ },
1586
+ "text": {
1587
+ "description": "Leaves.",
1588
+ "$ref": "#/components/schemas/TextPredicate"
1589
+ }
1590
+ }
1591
+ },
1015
1592
  "APIResource": {
1016
1593
  "description": "APIResource specifies the name of a resource and whether it is namespaced.",
1017
1594
  "type": "object",
@@ -1162,6 +1739,53 @@
1162
1739
  "description": "FieldsV1 stores a set of fields in a data structure like a Trie, in JSON format.\n\nEach key is either a '.' representing the field itself, and will always map to an empty set, or a string representing a sub-field or item. The string will follow one of these four formats: 'f:<name>', where <name> is the name of a field in a struct, or key in a map 'v:<value>', where <value> is the exact json formatted value of a list item 'i:<index>', where <index> is position of a item in a list 'k:<keys>', where <keys> is a map of a list item's key fields to their unique values If a key maps to an empty Fields value, the field that key represents is part of the set.\n\nThe exact format is defined in sigs.k8s.io/structured-merge-diff",
1163
1740
  "type": "object"
1164
1741
  },
1742
+ "LabelSelector": {
1743
+ "description": "A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.",
1744
+ "type": "object",
1745
+ "properties": {
1746
+ "matchExpressions": {
1747
+ "description": "matchExpressions is a list of label selector requirements. The requirements are ANDed.",
1748
+ "type": "array",
1749
+ "items": {
1750
+ "$ref": "#/components/schemas/LabelSelectorRequirement"
1751
+ },
1752
+ "x-kubernetes-list-type": "atomic"
1753
+ },
1754
+ "matchLabels": {
1755
+ "description": "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is \"key\", the operator is \"In\", and the values array contains only \"value\". The requirements are ANDed.",
1756
+ "type": "object",
1757
+ "additionalProperties": {
1758
+ "type": "string"
1759
+ }
1760
+ }
1761
+ },
1762
+ "x-kubernetes-map-type": "atomic"
1763
+ },
1764
+ "LabelSelectorRequirement": {
1765
+ "description": "A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.",
1766
+ "type": "object",
1767
+ "required": ["key", "operator"],
1768
+ "properties": {
1769
+ "key": {
1770
+ "description": "key is the label key that the selector applies to.",
1771
+ "type": "string",
1772
+ "default": ""
1773
+ },
1774
+ "operator": {
1775
+ "description": "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.",
1776
+ "type": "string",
1777
+ "default": ""
1778
+ },
1779
+ "values": {
1780
+ "description": "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.",
1781
+ "type": "array",
1782
+ "items": {
1783
+ "type": "string"
1784
+ },
1785
+ "x-kubernetes-list-type": "atomic"
1786
+ }
1787
+ }
1788
+ },
1165
1789
  "ListMeta": {
1166
1790
  "description": "ListMeta describes metadata that synthetic resources must have, including lists and various status objects. A resource may have only one of {ObjectMeta, ListMeta}.",
1167
1791
  "type": "object",