validation.json 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  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": ["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. }