schema_stateful_query.json 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. {
  2. "$schema": "http://json-schema.org/draft-07/schema#",
  3. "description": "Schema for CMake file API query.json files",
  4. "type": "object",
  5. "required": [
  6. "requests"
  7. ],
  8. "properties": {
  9. "requests": {
  10. "type": "array",
  11. "items": {
  12. "type": "object",
  13. "required": [
  14. "kind",
  15. "version"
  16. ],
  17. "properties": {
  18. "kind": {
  19. "type": "string",
  20. "description": "Specifies one of the Object Kinds to be included in the reply"
  21. },
  22. "version": {
  23. "description": "Version(s) of the object kind that the client understands",
  24. "oneOf": [
  25. {
  26. "$ref": "#/definitions/versionMajorOnly"
  27. },
  28. {
  29. "$ref": "#/definitions/versionObject"
  30. },
  31. {
  32. "type": "array",
  33. "items": {
  34. "oneOf": [
  35. {
  36. "$ref": "#/definitions/versionMajorOnly"
  37. },
  38. {
  39. "$ref": "#/definitions/versionObject"
  40. }
  41. ]
  42. }
  43. }
  44. ]
  45. },
  46. "client": {
  47. "description": "Optional member reserved for use by the client. This value is preserved in the reply."
  48. }
  49. }
  50. }
  51. },
  52. "client": {
  53. "description": "Optional member reserved for use by the client. This value is preserved in the reply."
  54. }
  55. },
  56. "$comment": "Other top level properties are reserved for future use. If present, they are ignored for forward compatibility.",
  57. "additionalProperties": true,
  58. "definitions": {
  59. "versionMajorOnly": {
  60. "type": "integer",
  61. "description": "A non-negative major version number",
  62. "minimum": 0
  63. },
  64. "versionObject": {
  65. "type": "object",
  66. "required": [
  67. "major"
  68. ],
  69. "properties": {
  70. "major": {
  71. "type": "integer",
  72. "description": "The major version number",
  73. "minimum": 0
  74. },
  75. "minor": {
  76. "type": "integer",
  77. "description": "The minor version number",
  78. "minimum": 0
  79. }
  80. },
  81. "additionalProperties": false
  82. }
  83. }
  84. }