validation 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. {
  2. "$schema": "https://json-schema.org/draft/2020-12/schema",
  3. "$id": "https://json-schema.org/draft/2020-12/meta/validation",
  4. "$vocabulary": {
  5. "https://json-schema.org/draft/2020-12/vocab/validation": true
  6. },
  7. "$dynamicAnchor": "meta",
  8. "title": "Validation vocabulary meta-schema",
  9. "type": ["object", "boolean"],
  10. "properties": {
  11. "type": {
  12. "anyOf": [
  13. { "$ref": "#/$defs/simpleTypes" },
  14. {
  15. "type": "array",
  16. "items": { "$ref": "#/$defs/simpleTypes" },
  17. "minItems": 1,
  18. "uniqueItems": true
  19. }
  20. ]
  21. },
  22. "const": true,
  23. "enum": {
  24. "type": "array",
  25. "items": true
  26. },
  27. "multipleOf": {
  28. "type": "number",
  29. "exclusiveMinimum": 0
  30. },
  31. "maximum": {
  32. "type": "number"
  33. },
  34. "exclusiveMaximum": {
  35. "type": "number"
  36. },
  37. "minimum": {
  38. "type": "number"
  39. },
  40. "exclusiveMinimum": {
  41. "type": "number"
  42. },
  43. "maxLength": { "$ref": "#/$defs/nonNegativeInteger" },
  44. "minLength": { "$ref": "#/$defs/nonNegativeIntegerDefault0" },
  45. "pattern": {
  46. "type": "string",
  47. "format": "regex"
  48. },
  49. "maxItems": { "$ref": "#/$defs/nonNegativeInteger" },
  50. "minItems": { "$ref": "#/$defs/nonNegativeIntegerDefault0" },
  51. "uniqueItems": {
  52. "type": "boolean",
  53. "default": false
  54. },
  55. "maxContains": { "$ref": "#/$defs/nonNegativeInteger" },
  56. "minContains": {
  57. "$ref": "#/$defs/nonNegativeInteger",
  58. "default": 1
  59. },
  60. "maxProperties": { "$ref": "#/$defs/nonNegativeInteger" },
  61. "minProperties": { "$ref": "#/$defs/nonNegativeIntegerDefault0" },
  62. "required": { "$ref": "#/$defs/stringArray" },
  63. "dependentRequired": {
  64. "type": "object",
  65. "additionalProperties": {
  66. "$ref": "#/$defs/stringArray"
  67. }
  68. }
  69. },
  70. "$defs": {
  71. "nonNegativeInteger": {
  72. "type": "integer",
  73. "minimum": 0
  74. },
  75. "nonNegativeIntegerDefault0": {
  76. "$ref": "#/$defs/nonNegativeInteger",
  77. "default": 0
  78. },
  79. "simpleTypes": {
  80. "enum": [
  81. "array",
  82. "boolean",
  83. "integer",
  84. "null",
  85. "number",
  86. "object",
  87. "string"
  88. ]
  89. },
  90. "stringArray": {
  91. "type": "array",
  92. "items": { "type": "string" },
  93. "uniqueItems": true,
  94. "default": []
  95. }
  96. }
  97. }