validation.json 2.2 KB

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