json-schema.d.ts 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. /**
  2. * A JSON Schema 4.0 definition for an OpenAPI Specification
  3. */
  4. export interface JsonSchemaDraft4 {
  5. id?: string;
  6. $schema?: string;
  7. title?: string;
  8. description?: string;
  9. multipleOf?: number;
  10. maximum?: number;
  11. exclusiveMaximum?: boolean;
  12. minimum?: number;
  13. exclusiveMinimum?: boolean;
  14. maxLength?: number;
  15. minLength?: number;
  16. pattern?: string;
  17. additionalItems?: boolean | JsonSchemaDraft4;
  18. items?: JsonSchemaDraft4 | JsonSchemaDraft4[];
  19. maxItems?: number;
  20. minItems?: number;
  21. uniqueItems?: boolean;
  22. maxProperties?: number;
  23. minProperties?: number;
  24. required?: string[];
  25. additionalProperties?: boolean | JsonSchemaDraft4;
  26. definitions?: {
  27. [name: string]: JsonSchemaDraft4;
  28. };
  29. properties?: {
  30. [name: string]: JsonSchemaDraft4;
  31. };
  32. patternProperties?: {
  33. [name: string]: JsonSchemaDraft4;
  34. };
  35. dependencies?: {
  36. [name: string]: JsonSchemaDraft4 | string[];
  37. };
  38. enum?: string[];
  39. type?: string | string[];
  40. allOf?: JsonSchemaDraft4[];
  41. anyOf?: JsonSchemaDraft4[];
  42. oneOf?: JsonSchemaDraft4[];
  43. not?: JsonSchemaDraft4;
  44. }
  45. /**
  46. * A JSON Schema 2020-12 definition for an OpenAPI Specification
  47. */
  48. export interface JsonSchemaDraft202012 {
  49. $id?: string;
  50. $schema?: string;
  51. title?: string;
  52. description?: string;
  53. multipleOf?: number;
  54. maximum?: number;
  55. exclusiveMaximum?: boolean;
  56. minimum?: number;
  57. exclusiveMinimum?: boolean;
  58. maxLength?: number;
  59. minLength?: number;
  60. pattern?: string;
  61. additionalItems?: boolean | JsonSchemaDraft202012;
  62. items?: JsonSchemaDraft202012 | JsonSchemaDraft202012[];
  63. maxItems?: number;
  64. minItems?: number;
  65. uniqueItems?: boolean;
  66. maxProperties?: number;
  67. minProperties?: number;
  68. required?: string[];
  69. additionalProperties?: boolean | JsonSchemaDraft202012;
  70. $defs?: {
  71. [name: string]: JsonSchemaDraft202012;
  72. };
  73. properties?: {
  74. [name: string]: JsonSchemaDraft202012;
  75. };
  76. patternProperties?: {
  77. [name: string]: JsonSchemaDraft202012;
  78. };
  79. dependencies?: {
  80. [name: string]: JsonSchemaDraft202012 | string[];
  81. };
  82. enum?: string[];
  83. type?: string | string[];
  84. allOf?: JsonSchemaDraft202012[];
  85. anyOf?: JsonSchemaDraft202012[];
  86. oneOf?: JsonSchemaDraft202012[];
  87. not?: JsonSchemaDraft202012;
  88. }