@lukoweb/apitogo 0.1.23 → 0.1.37

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (477) hide show
  1. package/README.md +92 -0
  2. package/cli.js +13 -13
  3. package/client.d.ts +8 -8
  4. package/dist/cli/cli.js +1117 -624
  5. package/dist/declarations/config/config.d.ts +4 -0
  6. package/dist/declarations/config/loader.d.ts +2 -0
  7. package/dist/declarations/config/resolve-modules.d.ts +34 -0
  8. package/dist/declarations/config/validators/InputNavigationSchema.d.ts +7 -7
  9. package/dist/declarations/config/validators/ModulesSchema.d.ts +417 -0
  10. package/dist/declarations/config/validators/ZudokuConfig.d.ts +123 -4
  11. package/dist/declarations/index.d.ts +3 -1
  12. package/dist/declarations/lib/authentication/components/ProductionUnlockPage.d.ts +1 -0
  13. package/dist/declarations/lib/authentication/hook.d.ts +3 -19
  14. package/dist/declarations/lib/authentication/providers/dev-portal-constants.d.ts +16 -0
  15. package/dist/declarations/lib/authentication/providers/dev-portal-utils.d.ts +9 -0
  16. package/dist/declarations/lib/authentication/providers/dev-portal.d.ts +39 -0
  17. package/dist/declarations/lib/authentication/state.d.ts +12 -26
  18. package/dist/declarations/lib/components/LandingLayout.d.ts +4 -0
  19. package/dist/declarations/lib/components/index.d.ts +2 -0
  20. package/dist/declarations/lib/plugins/api-keys/index.d.ts +2 -1
  21. package/dist/flat-config.d.ts +209 -24
  22. package/docs/components/alert.mdx +130 -0
  23. package/docs/components/badge.mdx +70 -0
  24. package/docs/components/button.mdx +132 -0
  25. package/docs/components/callout.mdx +112 -0
  26. package/docs/components/card.mdx +104 -0
  27. package/docs/components/checkbox.mdx +72 -0
  28. package/docs/components/client-only.mdx +79 -0
  29. package/docs/components/code-tabs.mdx +179 -0
  30. package/docs/components/dialog.mdx +167 -0
  31. package/docs/components/head.mdx +200 -0
  32. package/docs/components/icons.mdx +27 -0
  33. package/docs/components/input.mdx +96 -0
  34. package/docs/components/label.mdx +86 -0
  35. package/docs/components/link.mdx +242 -0
  36. package/docs/components/markdown.mdx +151 -0
  37. package/docs/components/mermaid.mdx +81 -0
  38. package/docs/components/playground.mdx +87 -0
  39. package/docs/components/secret.mdx +79 -0
  40. package/docs/components/select.mdx +176 -0
  41. package/docs/components/shadcn.mdx +73 -0
  42. package/docs/components/slider.mdx +108 -0
  43. package/docs/components/slot.mdx +119 -0
  44. package/docs/components/stepper.mdx +138 -0
  45. package/docs/components/switch.mdx +96 -0
  46. package/docs/components/syntax-highlight.mdx +602 -0
  47. package/docs/components/textarea.mdx +78 -0
  48. package/docs/components/tooltip.mdx +195 -0
  49. package/docs/components/typography.mdx +61 -0
  50. package/docs/concepts/auth-provider-api-identities.md +109 -0
  51. package/docs/configuration/ai-assistants.md +65 -0
  52. package/docs/configuration/api-catalog.md +109 -0
  53. package/docs/configuration/api-reference.md +397 -0
  54. package/docs/configuration/authentication-auth0.md +174 -0
  55. package/docs/configuration/authentication-azure-ad.md +238 -0
  56. package/docs/configuration/authentication-clerk.md +110 -0
  57. package/docs/configuration/authentication-firebase.md +62 -0
  58. package/docs/configuration/authentication-pingfederate.md +136 -0
  59. package/docs/configuration/authentication-supabase.md +226 -0
  60. package/docs/configuration/authentication.md +231 -0
  61. package/docs/configuration/build-configuration.mdx +147 -0
  62. package/docs/configuration/docs.md +282 -0
  63. package/docs/configuration/footer.mdx +214 -0
  64. package/docs/configuration/llms.md +90 -0
  65. package/docs/configuration/make-config.mdx +90 -0
  66. package/docs/configuration/navigation.mdx +422 -0
  67. package/docs/configuration/overview.md +380 -0
  68. package/docs/configuration/protected-routes.md +150 -0
  69. package/docs/configuration/search.md +163 -0
  70. package/docs/configuration/sentry.mdx +44 -0
  71. package/docs/configuration/site.md +124 -0
  72. package/docs/configuration/slots.mdx +125 -0
  73. package/docs/configuration/vite-config.md +18 -0
  74. package/docs/custom-plugins.md +285 -0
  75. package/docs/customization/colors-theme.mdx +276 -0
  76. package/docs/customization/fonts.md +110 -0
  77. package/docs/deploy/apache-nginx.md +41 -0
  78. package/docs/deploy/apitogo.md +139 -0
  79. package/docs/deploy/cloudflare-pages.md +75 -0
  80. package/docs/deploy/direct-upload.md +18 -0
  81. package/docs/deploy/github-pages.md +50 -0
  82. package/docs/deploy/vercel.md +103 -0
  83. package/docs/deployment.md +21 -0
  84. package/docs/extending/events.md +124 -0
  85. package/docs/guides/custom-pages.md +106 -0
  86. package/docs/guides/environment-variables.md +99 -0
  87. package/docs/guides/managing-api-keys-and-identities.md +172 -0
  88. package/docs/guides/mermaid.mdx +70 -0
  89. package/docs/guides/navigation-migration.md +87 -0
  90. package/docs/guides/navigation-rules.mdx +203 -0
  91. package/docs/guides/processors.mdx +234 -0
  92. package/docs/guides/static-files.md +55 -0
  93. package/docs/guides/transforming-examples.md +156 -0
  94. package/docs/guides/using-multiple-apis.md +87 -0
  95. package/docs/markdown/admonitions.md +128 -0
  96. package/docs/markdown/code-blocks.md +196 -0
  97. package/docs/markdown/frontmatter.md +173 -0
  98. package/docs/markdown/mdx.md +68 -0
  99. package/docs/markdown/overview.md +275 -0
  100. package/docs/plugins.md +5 -0
  101. package/docs/quickstart.md +87 -0
  102. package/docs/writing.mdx +72 -0
  103. package/package.json +170 -116
  104. package/src/app/ZuploBuildConfig.ts +36 -36
  105. package/src/app/defaultTheme.css +77 -77
  106. package/src/app/demo-cdn.html +37 -37
  107. package/src/app/demo.html +21 -21
  108. package/src/app/demo.tsx +77 -77
  109. package/src/app/entry.client.tsx +118 -118
  110. package/src/app/entry.server.tsx +160 -160
  111. package/src/app/env.ts +40 -40
  112. package/src/app/font.geist.css +73 -73
  113. package/src/app/main.css +390 -390
  114. package/src/app/main.tsx +8 -1
  115. package/src/app/polyfills.ts +47 -47
  116. package/src/app/processRoutes.tsx +51 -25
  117. package/src/app/sentry.ts +24 -24
  118. package/src/app/standalone.html +23 -23
  119. package/src/app/standalone.tsx +60 -60
  120. package/src/app/utils/createRedirectRoutes.ts +11 -11
  121. package/src/config/config.ts +32 -0
  122. package/src/config/create-plugin.ts +71 -71
  123. package/src/config/file-exists.ts +6 -6
  124. package/src/config/loader.ts +11 -1
  125. package/src/config/resolve-modules.ts +260 -0
  126. package/src/config/validators/BuildSchema.ts +95 -95
  127. package/src/config/validators/HeaderNavigationSchema.ts +41 -41
  128. package/src/config/validators/InputNavigationSchema.test-d.ts +178 -178
  129. package/src/config/validators/InputNavigationSchema.ts +206 -206
  130. package/src/config/validators/ModulesSchema.ts +312 -0
  131. package/src/config/validators/ProtectedRoutesSchema.ts +35 -35
  132. package/src/config/validators/ZudokuConfig.ts +766 -729
  133. package/src/config/validators/auth.ts +3 -3
  134. package/src/config/validators/reason-codes.ts +7 -7
  135. package/src/env.d.ts +11 -11
  136. package/src/index.ts +31 -0
  137. package/src/lib/MissingIcon.tsx +22 -22
  138. package/src/lib/assets/language-icons/bun.tsx +50 -50
  139. package/src/lib/assets/language-icons/c.tsx +31 -31
  140. package/src/lib/assets/language-icons/commonlisp.tsx +22 -22
  141. package/src/lib/assets/language-icons/cpp.tsx +35 -35
  142. package/src/lib/assets/language-icons/csharp.tsx +35 -35
  143. package/src/lib/assets/language-icons/css.tsx +36 -36
  144. package/src/lib/assets/language-icons/dart.tsx +39 -39
  145. package/src/lib/assets/language-icons/elixir.tsx +19 -19
  146. package/src/lib/assets/language-icons/go.tsx +19 -19
  147. package/src/lib/assets/language-icons/graphql.tsx +19 -19
  148. package/src/lib/assets/language-icons/html.tsx +24 -24
  149. package/src/lib/assets/language-icons/java.tsx +35 -35
  150. package/src/lib/assets/language-icons/javascript.tsx +11 -11
  151. package/src/lib/assets/language-icons/json.tsx +19 -19
  152. package/src/lib/assets/language-icons/kotlin.tsx +30 -30
  153. package/src/lib/assets/language-icons/markdown.tsx +19 -19
  154. package/src/lib/assets/language-icons/mdx.tsx +23 -23
  155. package/src/lib/assets/language-icons/npm.tsx +15 -15
  156. package/src/lib/assets/language-icons/objectivec.tsx +23 -23
  157. package/src/lib/assets/language-icons/ocaml.tsx +34 -34
  158. package/src/lib/assets/language-icons/php.tsx +19 -19
  159. package/src/lib/assets/language-icons/pnpm.tsx +32 -32
  160. package/src/lib/assets/language-icons/powershell.tsx +27 -27
  161. package/src/lib/assets/language-icons/python.tsx +23 -23
  162. package/src/lib/assets/language-icons/react.tsx +21 -21
  163. package/src/lib/assets/language-icons/ruby.tsx +19 -19
  164. package/src/lib/assets/language-icons/rust.tsx +19 -19
  165. package/src/lib/assets/language-icons/scala.tsx +19 -19
  166. package/src/lib/assets/language-icons/shell.tsx +19 -19
  167. package/src/lib/assets/language-icons/swift.tsx +19 -19
  168. package/src/lib/assets/language-icons/toml.tsx +23 -23
  169. package/src/lib/assets/language-icons/typescript.tsx +23 -23
  170. package/src/lib/assets/language-icons/xml.tsx +19 -19
  171. package/src/lib/assets/language-icons/yaml.tsx +23 -23
  172. package/src/lib/assets/language-icons/yarn.tsx +17 -17
  173. package/src/lib/assets/language-icons/zig.tsx +32 -32
  174. package/src/lib/auth/issuer.ts +34 -31
  175. package/src/lib/authentication/AuthenticationPlugin.tsx +33 -33
  176. package/src/lib/authentication/authentication.ts +48 -48
  177. package/src/lib/authentication/components/OAuthErrorPage.tsx +197 -197
  178. package/src/lib/authentication/components/ProductionUnlockPage.tsx +27 -0
  179. package/src/lib/authentication/components/SignOut.tsx +15 -15
  180. package/src/lib/authentication/constants.ts +1 -1
  181. package/src/lib/authentication/errors.ts +34 -34
  182. package/src/lib/authentication/hook.ts +141 -139
  183. package/src/lib/authentication/providers/auth0.tsx +91 -91
  184. package/src/lib/authentication/providers/azureb2c.tsx +223 -223
  185. package/src/lib/authentication/providers/dev-portal-constants.ts +21 -0
  186. package/src/lib/authentication/providers/dev-portal-utils.ts +107 -0
  187. package/src/lib/authentication/providers/dev-portal.tsx +270 -0
  188. package/src/lib/authentication/providers/firebase.tsx +486 -486
  189. package/src/lib/authentication/providers/openid.tsx +516 -516
  190. package/src/lib/authentication/providers/supabase.tsx +412 -412
  191. package/src/lib/authentication/providers/util.ts +26 -26
  192. package/src/lib/authentication/state.ts +179 -91
  193. package/src/lib/authentication/ui/icons/Apple.tsx +10 -10
  194. package/src/lib/authentication/ui/icons/Facebook.tsx +15 -15
  195. package/src/lib/authentication/ui/icons/Github.tsx +16 -16
  196. package/src/lib/authentication/ui/icons/Google.tsx +16 -16
  197. package/src/lib/authentication/ui/icons/Microsoft.tsx +12 -12
  198. package/src/lib/authentication/ui/icons/X.tsx +10 -10
  199. package/src/lib/authentication/utils/relativeRedirectUrl.ts +16 -16
  200. package/src/lib/components/AnchorLink.tsx +24 -24
  201. package/src/lib/components/Banner.tsx +52 -52
  202. package/src/lib/components/Bootstrap.tsx +77 -77
  203. package/src/lib/components/BuildCheck.tsx +87 -87
  204. package/src/lib/components/CategoryHeading.tsx +19 -19
  205. package/src/lib/components/ClientOnly.tsx +19 -19
  206. package/src/lib/components/ErrorPage.tsx +26 -26
  207. package/src/lib/components/Footer.tsx +140 -140
  208. package/src/lib/components/Framed.tsx +51 -51
  209. package/src/lib/components/Header.tsx +11 -3
  210. package/src/lib/components/HeaderNavigation.tsx +148 -148
  211. package/src/lib/components/Heading.tsx +84 -84
  212. package/src/lib/components/InlineCode.tsx +15 -15
  213. package/src/lib/components/LandingLayout.tsx +21 -0
  214. package/src/lib/components/LanguageIcon.tsx +199 -199
  215. package/src/lib/components/Markdown.tsx +55 -55
  216. package/src/lib/components/Meta.tsx +46 -46
  217. package/src/lib/components/MobileTopNavigation.tsx +11 -3
  218. package/src/lib/components/NotFoundPage.tsx +37 -37
  219. package/src/lib/components/PageProgress.tsx +28 -28
  220. package/src/lib/components/PagefindSearchMeta.tsx +14 -14
  221. package/src/lib/components/Pagination.tsx +44 -44
  222. package/src/lib/components/PathRenderer.tsx +61 -61
  223. package/src/lib/components/PluginHeads.tsx +17 -17
  224. package/src/lib/components/Search.tsx +70 -70
  225. package/src/lib/components/Slot.tsx +64 -64
  226. package/src/lib/components/Spinner.tsx +5 -5
  227. package/src/lib/components/StatusPage.tsx +96 -96
  228. package/src/lib/components/ThemeSwitch.tsx +49 -49
  229. package/src/lib/components/Typography.tsx +12 -12
  230. package/src/lib/components/Zudoku.tsx +106 -106
  231. package/src/lib/components/cache.ts +27 -27
  232. package/src/lib/components/context/RenderContext.ts +11 -11
  233. package/src/lib/components/context/RouterEventsEmitter.tsx +19 -19
  234. package/src/lib/components/context/SlotProvider.tsx +149 -149
  235. package/src/lib/components/context/ViewportAnchorContext.tsx +137 -137
  236. package/src/lib/components/context/ZudokuContext.ts +140 -140
  237. package/src/lib/components/context/ZudokuProvider.tsx +22 -22
  238. package/src/lib/components/context/ZudokuReactContext.tsx +17 -17
  239. package/src/lib/components/index.ts +2 -0
  240. package/src/lib/components/navigation/Navigation.tsx +51 -51
  241. package/src/lib/components/navigation/NavigationBadge.tsx +48 -48
  242. package/src/lib/components/navigation/NavigationFilterContext.tsx +28 -28
  243. package/src/lib/components/navigation/NavigationWrapper.tsx +49 -49
  244. package/src/lib/components/navigation/Toc.tsx +137 -137
  245. package/src/lib/components/navigation/ZudokuLogo.tsx +25 -25
  246. package/src/lib/components/navigation/ZuploLogo.tsx +14 -14
  247. package/src/lib/components/navigation/utils.ts +234 -234
  248. package/src/lib/core/RouteGuard.tsx +11 -1
  249. package/src/lib/core/ZudokuContext.ts +271 -271
  250. package/src/lib/core/plugins.ts +138 -138
  251. package/src/lib/core/react-query.ts +1 -1
  252. package/src/lib/core/router.ts +1 -1
  253. package/src/lib/core/transform-config.ts +67 -67
  254. package/src/lib/demo/DemoAnnouncement.tsx +17 -17
  255. package/src/lib/errors/ErrorAlert.tsx +28 -28
  256. package/src/lib/errors/RouterError.tsx +18 -18
  257. package/src/lib/errors/ServerError.tsx +5 -5
  258. package/src/lib/errors/TopLevelError.tsx +6 -6
  259. package/src/lib/hooks/index.ts +13 -13
  260. package/src/lib/hooks/useEvent.ts +41 -41
  261. package/src/lib/hooks/useHighlighter.ts +15 -15
  262. package/src/lib/hooks/useHotkey.ts +70 -70
  263. package/src/lib/icons.ts +2 -2
  264. package/src/lib/navigation/applyRules.ts +127 -127
  265. package/src/lib/navigation/pathMatcher.ts +81 -81
  266. package/src/lib/oas/graphql/circular.ts +69 -69
  267. package/src/lib/oas/graphql/constants.ts +2 -2
  268. package/src/lib/oas/graphql/index.ts +791 -791
  269. package/src/lib/oas/parser/dereference/index.ts +84 -84
  270. package/src/lib/oas/parser/dereference/resolveRef.ts +32 -32
  271. package/src/lib/oas/parser/index.ts +129 -129
  272. package/src/lib/oas/parser/schemas/v3.0.json +1489 -1489
  273. package/src/lib/oas/parser/schemas/v3.1.json +1298 -1298
  274. package/src/lib/oas/parser/upgrade/index.ts +174 -174
  275. package/src/lib/plugins/api-catalog/index.tsx +119 -119
  276. package/src/lib/plugins/api-keys/ProtectedRoute.tsx +33 -33
  277. package/src/lib/plugins/api-keys/index.tsx +274 -272
  278. package/src/lib/plugins/api-keys/settings/ApiKeyList.tsx +67 -67
  279. package/src/lib/plugins/custom-pages/index.tsx +32 -32
  280. package/src/lib/plugins/markdown/assets/ChatGPTLogo.tsx +11 -11
  281. package/src/lib/plugins/markdown/assets/ClaudeLogo.tsx +19 -19
  282. package/src/lib/plugins/markdown/index.tsx +62 -62
  283. package/src/lib/plugins/openapi/ColorizedParam.tsx +115 -115
  284. package/src/lib/plugins/openapi/Endpoint.tsx +85 -85
  285. package/src/lib/plugins/openapi/MCPEndpoint.tsx +273 -273
  286. package/src/lib/plugins/openapi/OasProvider.tsx +74 -74
  287. package/src/lib/plugins/openapi/OperationList.tsx +275 -275
  288. package/src/lib/plugins/openapi/ParamInfos.tsx +96 -96
  289. package/src/lib/plugins/openapi/ParameterList.tsx +53 -53
  290. package/src/lib/plugins/openapi/ParameterListItem.tsx +161 -161
  291. package/src/lib/plugins/openapi/PlaygroundDialogWrapper.tsx +67 -67
  292. package/src/lib/plugins/openapi/SidecarBox.tsx +57 -57
  293. package/src/lib/plugins/openapi/SimpleSelect.tsx +46 -46
  294. package/src/lib/plugins/openapi/client/GraphQLClient.tsx +73 -73
  295. package/src/lib/plugins/openapi/client/GraphQLContext.tsx +16 -16
  296. package/src/lib/plugins/openapi/client/createServer.ts +35 -35
  297. package/src/lib/plugins/openapi/client/useCreateQuery.ts +44 -44
  298. package/src/lib/plugins/openapi/components/ConstValue.tsx +24 -24
  299. package/src/lib/plugins/openapi/components/NonHighlightedCode.tsx +22 -22
  300. package/src/lib/plugins/openapi/components/SelectOnClick.tsx +29 -29
  301. package/src/lib/plugins/openapi/context.tsx +16 -16
  302. package/src/lib/plugins/openapi/graphql/fragment-masking.ts +104 -104
  303. package/src/lib/plugins/openapi/graphql/gql.ts +95 -95
  304. package/src/lib/plugins/openapi/graphql/graphql.ts +835 -835
  305. package/src/lib/plugins/openapi/graphql/index.ts +2 -2
  306. package/src/lib/plugins/openapi/index.tsx +221 -221
  307. package/src/lib/plugins/openapi/interfaces.ts +100 -100
  308. package/src/lib/plugins/openapi/playground/Headers.tsx +6 -6
  309. package/src/lib/plugins/openapi/playground/PathParams.tsx +53 -53
  310. package/src/lib/plugins/openapi/playground/Spinner.tsx +87 -87
  311. package/src/lib/plugins/openapi/playground/createUrl.ts +25 -25
  312. package/src/lib/plugins/openapi/playground/fileUtils.ts +36 -36
  313. package/src/lib/plugins/openapi/playground/rememberedIdentity.ts +26 -26
  314. package/src/lib/plugins/openapi/playground/request-panel/UrlPath.tsx +31 -31
  315. package/src/lib/plugins/openapi/playground/request-panel/UrlQueryParams.tsx +29 -29
  316. package/src/lib/plugins/openapi/playground/request-panel/useKeyValueFieldManager.ts +340 -340
  317. package/src/lib/plugins/openapi/playground/result-panel/ResponseStatusBar.tsx +117 -117
  318. package/src/lib/plugins/openapi/playground/result-panel/convertToTypes.ts +36 -36
  319. package/src/lib/plugins/openapi/playground/serializeQueryParams.ts +125 -125
  320. package/src/lib/plugins/openapi/playground/useRememberSkipLoginDialog.tsx +23 -23
  321. package/src/lib/plugins/openapi/processors/removeExtensions.ts +29 -29
  322. package/src/lib/plugins/openapi/processors/removeParameters.ts +103 -103
  323. package/src/lib/plugins/openapi/processors/removePaths.ts +57 -57
  324. package/src/lib/plugins/openapi/processors/traverse.ts +1 -1
  325. package/src/lib/plugins/openapi/schema/SchemaExampleAndDefault.tsx +39 -39
  326. package/src/lib/plugins/openapi/schema/UnionView.tsx +132 -132
  327. package/src/lib/plugins/openapi/schema/union-helpers.ts +123 -123
  328. package/src/lib/plugins/openapi/schema/utils.ts +49 -49
  329. package/src/lib/plugins/openapi/state.ts +36 -36
  330. package/src/lib/plugins/openapi/util/buildTagCategories.ts +54 -54
  331. package/src/lib/plugins/openapi/util/createHttpSnippet.ts +135 -135
  332. package/src/lib/plugins/openapi/util/createNavigationCategory.tsx +39 -39
  333. package/src/lib/plugins/openapi/util/generateSchemaExample.ts +191 -191
  334. package/src/lib/plugins/openapi/util/getRoutes.tsx +265 -265
  335. package/src/lib/plugins/openapi/util/methodColorMap.tsx +11 -11
  336. package/src/lib/plugins/openapi/util/methodToColor.ts +27 -27
  337. package/src/lib/plugins/openapi/util/sanitizeMarkdownForMetatag.tsx +32 -32
  338. package/src/lib/plugins/openapi/util/useWarmupSchema.ts +23 -23
  339. package/src/lib/plugins/search-inkeep/index.tsx +108 -108
  340. package/src/lib/plugins/search-inkeep/inkeep.ts +24 -24
  341. package/src/lib/plugins/search-pagefind/get-results.tsx +74 -74
  342. package/src/lib/plugins/search-pagefind/index.tsx +21 -21
  343. package/src/lib/plugins/search-pagefind/types.ts +118 -118
  344. package/src/lib/shiki-constants.ts +24 -24
  345. package/src/lib/testing/index.tsx +146 -146
  346. package/src/lib/ui/Accordion.tsx +55 -55
  347. package/src/lib/ui/Alert.tsx +84 -84
  348. package/src/lib/ui/AlertDialog.tsx +195 -195
  349. package/src/lib/ui/AspectRatio.tsx +5 -5
  350. package/src/lib/ui/Badge.tsx +48 -48
  351. package/src/lib/ui/Breadcrumb.tsx +115 -115
  352. package/src/lib/ui/Button.tsx +65 -65
  353. package/src/lib/ui/ButtonGroup.tsx +80 -80
  354. package/src/lib/ui/Callout.tsx +113 -113
  355. package/src/lib/ui/Card.tsx +95 -95
  356. package/src/lib/ui/Carousel.tsx +259 -259
  357. package/src/lib/ui/Checkbox.tsx +28 -28
  358. package/src/lib/ui/CodeBlock.tsx +92 -92
  359. package/src/lib/ui/CodeTabPanel.tsx +13 -13
  360. package/src/lib/ui/CodeTabs.tsx +161 -161
  361. package/src/lib/ui/Collapsible.tsx +31 -31
  362. package/src/lib/ui/Dialog.tsx +138 -138
  363. package/src/lib/ui/DismissibleAlert.tsx +74 -74
  364. package/src/lib/ui/Drawer.tsx +121 -121
  365. package/src/lib/ui/DropdownMenu.tsx +254 -254
  366. package/src/lib/ui/EmbeddedCodeBlock.tsx +99 -99
  367. package/src/lib/ui/Form.tsx +176 -176
  368. package/src/lib/ui/Frame.tsx +81 -81
  369. package/src/lib/ui/HoverCard.tsx +26 -26
  370. package/src/lib/ui/Input.tsx +23 -23
  371. package/src/lib/ui/InputGroup.tsx +168 -168
  372. package/src/lib/ui/Item.tsx +213 -213
  373. package/src/lib/ui/Kbd.tsx +28 -28
  374. package/src/lib/ui/Label.tsx +23 -23
  375. package/src/lib/ui/NativeSelect.tsx +48 -48
  376. package/src/lib/ui/NavigationMenu.tsx +169 -169
  377. package/src/lib/ui/Pagination.tsx +115 -115
  378. package/src/lib/ui/Popover.tsx +28 -28
  379. package/src/lib/ui/Progress.tsx +25 -25
  380. package/src/lib/ui/RadioGroup.tsx +41 -41
  381. package/src/lib/ui/ReactComponentDoc.tsx +68 -68
  382. package/src/lib/ui/ScrollArea.tsx +45 -45
  383. package/src/lib/ui/Secret.tsx +133 -133
  384. package/src/lib/ui/Select.tsx +184 -184
  385. package/src/lib/ui/Separator.tsx +25 -25
  386. package/src/lib/ui/Skeleton.tsx +15 -15
  387. package/src/lib/ui/Slider.tsx +25 -25
  388. package/src/lib/ui/Stepper.tsx +8 -8
  389. package/src/lib/ui/Switch.tsx +26 -26
  390. package/src/lib/ui/SyntaxHighlight.tsx +54 -54
  391. package/src/lib/ui/Tabs.tsx +52 -52
  392. package/src/lib/ui/Textarea.tsx +22 -22
  393. package/src/lib/ui/Toggle.tsx +42 -42
  394. package/src/lib/ui/ToggleGroup.tsx +58 -58
  395. package/src/lib/ui/Tooltip.tsx +65 -65
  396. package/src/lib/ui/Value.tsx +42 -42
  397. package/src/lib/ui/util.tsx +8 -8
  398. package/src/lib/util/cn.ts +6 -6
  399. package/src/lib/util/createVariantComponent.tsx +61 -61
  400. package/src/lib/util/ensureArray.ts +3 -3
  401. package/src/lib/util/flattenAllOf.ts +72 -72
  402. package/src/lib/util/flattenAllOfProcessor.ts +74 -74
  403. package/src/lib/util/hastToJsx.tsx +67 -67
  404. package/src/lib/util/humanFileSize.ts +15 -15
  405. package/src/lib/util/invariant.ts +52 -52
  406. package/src/lib/util/joinUrl.ts +60 -60
  407. package/src/lib/util/logInit.ts +9 -9
  408. package/src/lib/util/objectEntries.ts +5 -5
  409. package/src/lib/util/os.ts +18 -18
  410. package/src/lib/util/pastellize.ts +25 -25
  411. package/src/lib/util/problemJson.ts +63 -63
  412. package/src/lib/util/readFrontmatter.ts +14 -14
  413. package/src/lib/util/renderIf.ts +4 -4
  414. package/src/lib/util/scrollIntoViewIfNeeded.ts +18 -18
  415. package/src/lib/util/slugify.ts +21 -21
  416. package/src/lib/util/syncZustandState.ts +22 -22
  417. package/src/lib/util/traverse.ts +70 -70
  418. package/src/lib/util/types.ts +7 -7
  419. package/src/lib/util/url.ts +18 -18
  420. package/src/lib/util/useCopyToClipboard.ts +17 -17
  421. package/src/lib/util/useExposedProps.tsx +27 -27
  422. package/src/lib/util/useIsomorphicLayoutEffect.ts +6 -6
  423. package/src/lib/util/useLatest.ts +18 -18
  424. package/src/lib/util/useOnScreen.ts +34 -34
  425. package/src/lib/util/useScrollToAnchor.ts +70 -70
  426. package/src/lib/util/useScrollToTop.ts +18 -18
  427. package/src/types.d.ts +57 -53
  428. package/src/vite/api/SchemaManager.ts +371 -371
  429. package/src/vite/api/schema-codegen.ts +163 -163
  430. package/src/vite/config.ts +5 -1
  431. package/src/vite/css/collect.ts +42 -42
  432. package/src/vite/css/plugin.ts +105 -105
  433. package/src/vite/debug.ts +18 -18
  434. package/src/vite/dev-portal-env.ts +93 -0
  435. package/src/vite/html.ts +54 -54
  436. package/src/vite/index.ts +2 -2
  437. package/src/vite/mdx/rehype-extract-toc-with-jsx-export.ts +19 -19
  438. package/src/vite/mdx/rehype-extract-toc-with-jsx.ts +70 -70
  439. package/src/vite/mdx/remark-code-tabs.ts +47 -47
  440. package/src/vite/mdx/remark-inject-filepath.ts +13 -13
  441. package/src/vite/mdx/remark-last-modified.ts +103 -103
  442. package/src/vite/mdx/remark-link-rewrite.ts +23 -23
  443. package/src/vite/mdx/remark-normalize-image-url.ts +15 -15
  444. package/src/vite/mdx/remark-static-generation.ts +149 -149
  445. package/src/vite/mdx/utils.ts +32 -32
  446. package/src/vite/output.ts +261 -261
  447. package/src/vite/package-root.ts +12 -12
  448. package/src/vite/pagefind-dev-index.ts +100 -100
  449. package/src/vite/plugin-api-keys.ts +6 -1
  450. package/src/vite/plugin-api.ts +4 -1
  451. package/src/vite/plugin-auth.ts +5 -1
  452. package/src/vite/plugin-component.ts +1 -1
  453. package/src/vite/plugin-config-reload.ts +49 -49
  454. package/src/vite/plugin-doc-metadata.ts +45 -45
  455. package/src/vite/plugin-docs.ts +4 -1
  456. package/src/vite/plugin-metadata.ts +30 -30
  457. package/src/vite/plugin-modules.ts +144 -0
  458. package/src/vite/plugin-shiki-register.ts +97 -97
  459. package/src/vite/plugin-theme.ts +399 -399
  460. package/src/vite/plugin.ts +2 -0
  461. package/src/vite/prerender/utils.ts +76 -76
  462. package/src/vite/prerender/worker.ts +118 -118
  463. package/src/vite/reporter.ts +34 -34
  464. package/src/vite/shadcn-registry.ts +48 -48
  465. package/src/vite/sitemap.ts +78 -78
  466. package/src/vite/ssr-templates/cloudflare.ts +19 -19
  467. package/src/vite/ssr-templates/node.ts +25 -25
  468. package/src/vite/ssr-templates/vercel.ts +22 -22
  469. package/src/vite/zuplo.ts +30 -30
  470. package/src/vite-env.d.ts +6 -6
  471. package/src/zuplo/enrich-with-zuplo-mcp.ts +168 -168
  472. package/src/zuplo/enrich-with-zuplo.ts +256 -256
  473. package/src/zuplo/policy-types.ts +46 -46
  474. package/src/zuplo/with-zuplo-processors.ts +36 -36
  475. package/src/zuplo/with-zuplo.ts +14 -14
  476. package/LICENSE.md +0 -18
  477. package/dist/declarations/lib/components/navigation/ZudokuLogo.d.ts +0 -6
@@ -1,1298 +1,1298 @@
1
- {
2
- "$id": "https://spec.openapis.org/oas/3.1/schema/2022-10-07",
3
- "$schema": "https://json-schema.org/draft/2020-12/schema",
4
- "description": "The description of OpenAPI v3.1.x documents without schema validation, as defined by https://spec.openapis.org/oas/v3.1.0",
5
- "type": "object",
6
- "properties": {
7
- "openapi": {
8
- "type": "string",
9
- "pattern": "^3\\.1\\.\\d+(-.+)?$"
10
- },
11
- "info": {
12
- "$ref": "#/$defs/info"
13
- },
14
- "jsonSchemaDialect": {
15
- "type": "string",
16
- "format": "uri",
17
- "default": "https://spec.openapis.org/oas/3.1/dialect/base"
18
- },
19
- "servers": {
20
- "type": "array",
21
- "items": {
22
- "$ref": "#/$defs/server"
23
- },
24
- "default": [
25
- {
26
- "url": "/"
27
- }
28
- ]
29
- },
30
- "paths": {
31
- "$ref": "#/$defs/paths"
32
- },
33
- "webhooks": {
34
- "type": "object",
35
- "additionalProperties": {
36
- "$ref": "#/$defs/path-item-or-reference"
37
- }
38
- },
39
- "components": {
40
- "$ref": "#/$defs/components"
41
- },
42
- "security": {
43
- "type": "array",
44
- "items": {
45
- "$ref": "#/$defs/security-requirement"
46
- }
47
- },
48
- "tags": {
49
- "type": "array",
50
- "items": {
51
- "$ref": "#/$defs/tag"
52
- }
53
- },
54
- "externalDocs": {
55
- "$ref": "#/$defs/external-documentation"
56
- }
57
- },
58
- "required": ["openapi", "info"],
59
- "anyOf": [
60
- {
61
- "required": ["paths"]
62
- },
63
- {
64
- "required": ["components"]
65
- },
66
- {
67
- "required": ["webhooks"]
68
- }
69
- ],
70
- "$ref": "#/$defs/specification-extensions",
71
- "unevaluatedProperties": false,
72
- "$defs": {
73
- "info": {
74
- "$comment": "https://spec.openapis.org/oas/v3.1.0#info-object",
75
- "type": "object",
76
- "properties": {
77
- "title": {
78
- "type": "string"
79
- },
80
- "summary": {
81
- "type": "string"
82
- },
83
- "description": {
84
- "type": "string"
85
- },
86
- "termsOfService": {
87
- "type": "string",
88
- "format": "uri"
89
- },
90
- "contact": {
91
- "$ref": "#/$defs/contact"
92
- },
93
- "license": {
94
- "$ref": "#/$defs/license"
95
- },
96
- "version": {
97
- "type": "string"
98
- }
99
- },
100
- "required": ["title", "version"],
101
- "$ref": "#/$defs/specification-extensions",
102
- "unevaluatedProperties": false
103
- },
104
- "contact": {
105
- "$comment": "https://spec.openapis.org/oas/v3.1.0#contact-object",
106
- "type": "object",
107
- "properties": {
108
- "name": {
109
- "type": "string"
110
- },
111
- "url": {
112
- "type": "string",
113
- "format": "uri"
114
- },
115
- "email": {
116
- "type": "string",
117
- "format": "email"
118
- }
119
- },
120
- "$ref": "#/$defs/specification-extensions",
121
- "unevaluatedProperties": false
122
- },
123
- "license": {
124
- "$comment": "https://spec.openapis.org/oas/v3.1.0#license-object",
125
- "type": "object",
126
- "properties": {
127
- "name": {
128
- "type": "string"
129
- },
130
- "identifier": {
131
- "type": "string"
132
- },
133
- "url": {
134
- "type": "string",
135
- "format": "uri"
136
- }
137
- },
138
- "required": ["name"],
139
- "dependentSchemas": {
140
- "identifier": {
141
- "not": {
142
- "required": ["url"]
143
- }
144
- }
145
- },
146
- "$ref": "#/$defs/specification-extensions",
147
- "unevaluatedProperties": false
148
- },
149
- "server": {
150
- "$comment": "https://spec.openapis.org/oas/v3.1.0#server-object",
151
- "type": "object",
152
- "properties": {
153
- "url": {
154
- "type": "string",
155
- "format": "uri-reference"
156
- },
157
- "description": {
158
- "type": "string"
159
- },
160
- "variables": {
161
- "type": "object",
162
- "additionalProperties": {
163
- "$ref": "#/$defs/server-variable"
164
- }
165
- }
166
- },
167
- "required": ["url"],
168
- "$ref": "#/$defs/specification-extensions",
169
- "unevaluatedProperties": false
170
- },
171
- "server-variable": {
172
- "$comment": "https://spec.openapis.org/oas/v3.1.0#server-variable-object",
173
- "type": "object",
174
- "properties": {
175
- "enum": {
176
- "type": "array",
177
- "items": {
178
- "type": "string"
179
- },
180
- "minItems": 1
181
- },
182
- "default": {
183
- "type": "string"
184
- },
185
- "description": {
186
- "type": "string"
187
- }
188
- },
189
- "required": ["default"],
190
- "$ref": "#/$defs/specification-extensions",
191
- "unevaluatedProperties": false
192
- },
193
- "components": {
194
- "$comment": "https://spec.openapis.org/oas/v3.1.0#components-object",
195
- "type": "object",
196
- "properties": {
197
- "schemas": {
198
- "type": "object",
199
- "additionalProperties": {
200
- "$ref": "#/$defs/schema"
201
- }
202
- },
203
- "responses": {
204
- "type": "object",
205
- "additionalProperties": {
206
- "$ref": "#/$defs/response-or-reference"
207
- }
208
- },
209
- "parameters": {
210
- "type": "object",
211
- "additionalProperties": {
212
- "$ref": "#/$defs/parameter-or-reference"
213
- }
214
- },
215
- "examples": {
216
- "type": "object",
217
- "additionalProperties": {
218
- "$ref": "#/$defs/example-or-reference"
219
- }
220
- },
221
- "requestBodies": {
222
- "type": "object",
223
- "additionalProperties": {
224
- "$ref": "#/$defs/request-body-or-reference"
225
- }
226
- },
227
- "headers": {
228
- "type": "object",
229
- "additionalProperties": {
230
- "$ref": "#/$defs/header-or-reference"
231
- }
232
- },
233
- "securitySchemes": {
234
- "type": "object",
235
- "additionalProperties": {
236
- "$ref": "#/$defs/security-scheme-or-reference"
237
- }
238
- },
239
- "links": {
240
- "type": "object",
241
- "additionalProperties": {
242
- "$ref": "#/$defs/link-or-reference"
243
- }
244
- },
245
- "callbacks": {
246
- "type": "object",
247
- "additionalProperties": {
248
- "$ref": "#/$defs/callbacks-or-reference"
249
- }
250
- },
251
- "pathItems": {
252
- "type": "object",
253
- "additionalProperties": {
254
- "$ref": "#/$defs/path-item-or-reference"
255
- }
256
- }
257
- },
258
- "patternProperties": {
259
- "^(schemas|responses|parameters|examples|requestBodies|headers|securitySchemes|links|callbacks|pathItems)$": {
260
- "$comment": "Enumerating all of the property names in the regex above is necessary for unevaluatedProperties to work as expected",
261
- "propertyNames": {
262
- "pattern": "^[a-zA-Z0-9._-]+$"
263
- }
264
- }
265
- },
266
- "$ref": "#/$defs/specification-extensions",
267
- "unevaluatedProperties": false
268
- },
269
- "paths": {
270
- "$comment": "https://spec.openapis.org/oas/v3.1.0#paths-object",
271
- "type": "object",
272
- "patternProperties": {
273
- "^/": {
274
- "$ref": "#/$defs/path-item"
275
- }
276
- },
277
- "$ref": "#/$defs/specification-extensions",
278
- "unevaluatedProperties": false
279
- },
280
- "path-item": {
281
- "$comment": "https://spec.openapis.org/oas/v3.1.0#path-item-object",
282
- "type": "object",
283
- "properties": {
284
- "summary": {
285
- "type": "string"
286
- },
287
- "description": {
288
- "type": "string"
289
- },
290
- "servers": {
291
- "type": "array",
292
- "items": {
293
- "$ref": "#/$defs/server"
294
- }
295
- },
296
- "parameters": {
297
- "type": "array",
298
- "items": {
299
- "$ref": "#/$defs/parameter-or-reference"
300
- }
301
- },
302
- "get": {
303
- "$ref": "#/$defs/operation"
304
- },
305
- "put": {
306
- "$ref": "#/$defs/operation"
307
- },
308
- "post": {
309
- "$ref": "#/$defs/operation"
310
- },
311
- "delete": {
312
- "$ref": "#/$defs/operation"
313
- },
314
- "options": {
315
- "$ref": "#/$defs/operation"
316
- },
317
- "head": {
318
- "$ref": "#/$defs/operation"
319
- },
320
- "patch": {
321
- "$ref": "#/$defs/operation"
322
- },
323
- "trace": {
324
- "$ref": "#/$defs/operation"
325
- }
326
- },
327
- "$ref": "#/$defs/specification-extensions",
328
- "unevaluatedProperties": false
329
- },
330
- "path-item-or-reference": {
331
- "if": {
332
- "type": "object",
333
- "required": ["$ref"]
334
- },
335
- "then": {
336
- "$ref": "#/$defs/reference"
337
- },
338
- "else": {
339
- "$ref": "#/$defs/path-item"
340
- }
341
- },
342
- "operation": {
343
- "$comment": "https://spec.openapis.org/oas/v3.1.0#operation-object",
344
- "type": "object",
345
- "properties": {
346
- "tags": {
347
- "type": "array",
348
- "items": {
349
- "type": "string"
350
- }
351
- },
352
- "summary": {
353
- "type": "string"
354
- },
355
- "description": {
356
- "type": "string"
357
- },
358
- "externalDocs": {
359
- "$ref": "#/$defs/external-documentation"
360
- },
361
- "operationId": {
362
- "type": "string"
363
- },
364
- "parameters": {
365
- "type": "array",
366
- "items": {
367
- "$ref": "#/$defs/parameter-or-reference"
368
- }
369
- },
370
- "requestBody": {
371
- "$ref": "#/$defs/request-body-or-reference"
372
- },
373
- "responses": {
374
- "$ref": "#/$defs/responses"
375
- },
376
- "callbacks": {
377
- "type": "object",
378
- "additionalProperties": {
379
- "$ref": "#/$defs/callbacks-or-reference"
380
- }
381
- },
382
- "deprecated": {
383
- "default": false,
384
- "type": "boolean"
385
- },
386
- "security": {
387
- "type": "array",
388
- "items": {
389
- "$ref": "#/$defs/security-requirement"
390
- }
391
- },
392
- "servers": {
393
- "type": "array",
394
- "items": {
395
- "$ref": "#/$defs/server"
396
- }
397
- }
398
- },
399
- "$ref": "#/$defs/specification-extensions",
400
- "unevaluatedProperties": false
401
- },
402
- "external-documentation": {
403
- "$comment": "https://spec.openapis.org/oas/v3.1.0#external-documentation-object",
404
- "type": "object",
405
- "properties": {
406
- "description": {
407
- "type": "string"
408
- },
409
- "url": {
410
- "type": "string",
411
- "format": "uri"
412
- }
413
- },
414
- "required": ["url"],
415
- "$ref": "#/$defs/specification-extensions",
416
- "unevaluatedProperties": false
417
- },
418
- "parameter": {
419
- "$comment": "https://spec.openapis.org/oas/v3.1.0#parameter-object",
420
- "type": "object",
421
- "properties": {
422
- "name": {
423
- "type": "string"
424
- },
425
- "in": {
426
- "enum": ["query", "header", "path", "cookie"]
427
- },
428
- "description": {
429
- "type": "string"
430
- },
431
- "required": {
432
- "default": false,
433
- "type": "boolean"
434
- },
435
- "deprecated": {
436
- "default": false,
437
- "type": "boolean"
438
- },
439
- "schema": {
440
- "$ref": "#/$defs/schema"
441
- },
442
- "content": {
443
- "$ref": "#/$defs/content",
444
- "minProperties": 1,
445
- "maxProperties": 1
446
- }
447
- },
448
- "required": ["name", "in"],
449
- "oneOf": [
450
- {
451
- "required": ["schema"]
452
- },
453
- {
454
- "required": ["content"]
455
- }
456
- ],
457
- "if": {
458
- "properties": {
459
- "in": {
460
- "const": "query"
461
- }
462
- },
463
- "required": ["in"]
464
- },
465
- "then": {
466
- "properties": {
467
- "allowEmptyValue": {
468
- "default": false,
469
- "type": "boolean"
470
- }
471
- }
472
- },
473
- "dependentSchemas": {
474
- "schema": {
475
- "properties": {
476
- "style": {
477
- "type": "string"
478
- },
479
- "explode": {
480
- "type": "boolean"
481
- }
482
- },
483
- "allOf": [
484
- {
485
- "$ref": "#/$defs/examples"
486
- },
487
- {
488
- "$ref": "#/$defs/parameter/dependentSchemas/schema/$defs/styles-for-path"
489
- },
490
- {
491
- "$ref": "#/$defs/parameter/dependentSchemas/schema/$defs/styles-for-header"
492
- },
493
- {
494
- "$ref": "#/$defs/parameter/dependentSchemas/schema/$defs/styles-for-query"
495
- },
496
- {
497
- "$ref": "#/$defs/parameter/dependentSchemas/schema/$defs/styles-for-cookie"
498
- },
499
- {
500
- "$ref": "#/$defs/parameter/dependentSchemas/schema/$defs/styles-for-form"
501
- }
502
- ],
503
- "$defs": {
504
- "styles-for-path": {
505
- "if": {
506
- "properties": {
507
- "in": {
508
- "const": "path"
509
- }
510
- },
511
- "required": ["in"]
512
- },
513
- "then": {
514
- "properties": {
515
- "name": {
516
- "pattern": "[^/#?]+$"
517
- },
518
- "style": {
519
- "default": "simple",
520
- "enum": ["matrix", "label", "simple"]
521
- },
522
- "required": {
523
- "const": true
524
- }
525
- },
526
- "required": ["required"]
527
- }
528
- },
529
- "styles-for-header": {
530
- "if": {
531
- "properties": {
532
- "in": {
533
- "const": "header"
534
- }
535
- },
536
- "required": ["in"]
537
- },
538
- "then": {
539
- "properties": {
540
- "style": {
541
- "default": "simple",
542
- "const": "simple"
543
- }
544
- }
545
- }
546
- },
547
- "styles-for-query": {
548
- "if": {
549
- "properties": {
550
- "in": {
551
- "const": "query"
552
- }
553
- },
554
- "required": ["in"]
555
- },
556
- "then": {
557
- "properties": {
558
- "style": {
559
- "default": "form",
560
- "enum": [
561
- "form",
562
- "spaceDelimited",
563
- "pipeDelimited",
564
- "deepObject"
565
- ]
566
- },
567
- "allowReserved": {
568
- "default": false,
569
- "type": "boolean"
570
- }
571
- }
572
- }
573
- },
574
- "styles-for-cookie": {
575
- "if": {
576
- "properties": {
577
- "in": {
578
- "const": "cookie"
579
- }
580
- },
581
- "required": ["in"]
582
- },
583
- "then": {
584
- "properties": {
585
- "style": {
586
- "default": "form",
587
- "const": "form"
588
- }
589
- }
590
- }
591
- },
592
- "styles-for-form": {
593
- "if": {
594
- "properties": {
595
- "style": {
596
- "const": "form"
597
- }
598
- },
599
- "required": ["style"]
600
- },
601
- "then": {
602
- "properties": {
603
- "explode": {
604
- "default": true
605
- }
606
- }
607
- },
608
- "else": {
609
- "properties": {
610
- "explode": {
611
- "default": false
612
- }
613
- }
614
- }
615
- }
616
- }
617
- }
618
- },
619
- "$ref": "#/$defs/specification-extensions",
620
- "unevaluatedProperties": false
621
- },
622
- "parameter-or-reference": {
623
- "if": {
624
- "type": "object",
625
- "required": ["$ref"]
626
- },
627
- "then": {
628
- "$ref": "#/$defs/reference"
629
- },
630
- "else": {
631
- "$ref": "#/$defs/parameter"
632
- }
633
- },
634
- "request-body": {
635
- "$comment": "https://spec.openapis.org/oas/v3.1.0#request-body-object",
636
- "type": "object",
637
- "properties": {
638
- "description": {
639
- "type": "string"
640
- },
641
- "content": {
642
- "$ref": "#/$defs/content"
643
- },
644
- "required": {
645
- "default": false,
646
- "type": "boolean"
647
- }
648
- },
649
- "required": ["content"],
650
- "$ref": "#/$defs/specification-extensions",
651
- "unevaluatedProperties": false
652
- },
653
- "request-body-or-reference": {
654
- "if": {
655
- "type": "object",
656
- "required": ["$ref"]
657
- },
658
- "then": {
659
- "$ref": "#/$defs/reference"
660
- },
661
- "else": {
662
- "$ref": "#/$defs/request-body"
663
- }
664
- },
665
- "content": {
666
- "$comment": "https://spec.openapis.org/oas/v3.1.0#fixed-fields-10",
667
- "type": "object",
668
- "additionalProperties": {
669
- "$ref": "#/$defs/media-type"
670
- },
671
- "propertyNames": {
672
- "format": "media-range"
673
- }
674
- },
675
- "media-type": {
676
- "$comment": "https://spec.openapis.org/oas/v3.1.0#media-type-object",
677
- "type": "object",
678
- "properties": {
679
- "schema": {
680
- "$ref": "#/$defs/schema"
681
- },
682
- "encoding": {
683
- "type": "object",
684
- "additionalProperties": {
685
- "$ref": "#/$defs/encoding"
686
- }
687
- }
688
- },
689
- "allOf": [
690
- {
691
- "$ref": "#/$defs/specification-extensions"
692
- },
693
- {
694
- "$ref": "#/$defs/examples"
695
- }
696
- ],
697
- "unevaluatedProperties": false
698
- },
699
- "encoding": {
700
- "$comment": "https://spec.openapis.org/oas/v3.1.0#encoding-object",
701
- "type": "object",
702
- "properties": {
703
- "contentType": {
704
- "type": "string",
705
- "format": "media-range"
706
- },
707
- "headers": {
708
- "type": "object",
709
- "additionalProperties": {
710
- "$ref": "#/$defs/header-or-reference"
711
- }
712
- },
713
- "style": {
714
- "default": "form",
715
- "enum": ["form", "spaceDelimited", "pipeDelimited", "deepObject"]
716
- },
717
- "explode": {
718
- "type": "boolean"
719
- },
720
- "allowReserved": {
721
- "default": false,
722
- "type": "boolean"
723
- }
724
- },
725
- "allOf": [
726
- {
727
- "$ref": "#/$defs/specification-extensions"
728
- },
729
- {
730
- "$ref": "#/$defs/encoding/$defs/explode-default"
731
- }
732
- ],
733
- "unevaluatedProperties": false,
734
- "$defs": {
735
- "explode-default": {
736
- "if": {
737
- "properties": {
738
- "style": {
739
- "const": "form"
740
- }
741
- },
742
- "required": ["style"]
743
- },
744
- "then": {
745
- "properties": {
746
- "explode": {
747
- "default": true
748
- }
749
- }
750
- },
751
- "else": {
752
- "properties": {
753
- "explode": {
754
- "default": false
755
- }
756
- }
757
- }
758
- }
759
- }
760
- },
761
- "responses": {
762
- "$comment": "https://spec.openapis.org/oas/v3.1.0#responses-object",
763
- "type": "object",
764
- "properties": {
765
- "default": {
766
- "$ref": "#/$defs/response-or-reference"
767
- }
768
- },
769
- "patternProperties": {
770
- "^[1-5](?:[0-9]{2}|XX)$": {
771
- "$ref": "#/$defs/response-or-reference"
772
- }
773
- },
774
- "minProperties": 1,
775
- "$ref": "#/$defs/specification-extensions",
776
- "unevaluatedProperties": false
777
- },
778
- "response": {
779
- "$comment": "https://spec.openapis.org/oas/v3.1.0#response-object",
780
- "type": "object",
781
- "properties": {
782
- "description": {
783
- "type": "string"
784
- },
785
- "headers": {
786
- "type": "object",
787
- "additionalProperties": {
788
- "$ref": "#/$defs/header-or-reference"
789
- }
790
- },
791
- "content": {
792
- "$ref": "#/$defs/content"
793
- },
794
- "links": {
795
- "type": "object",
796
- "additionalProperties": {
797
- "$ref": "#/$defs/link-or-reference"
798
- }
799
- }
800
- },
801
- "required": ["description"],
802
- "$ref": "#/$defs/specification-extensions",
803
- "unevaluatedProperties": false
804
- },
805
- "response-or-reference": {
806
- "if": {
807
- "type": "object",
808
- "required": ["$ref"]
809
- },
810
- "then": {
811
- "$ref": "#/$defs/reference"
812
- },
813
- "else": {
814
- "$ref": "#/$defs/response"
815
- }
816
- },
817
- "callbacks": {
818
- "$comment": "https://spec.openapis.org/oas/v3.1.0#callback-object",
819
- "type": "object",
820
- "$ref": "#/$defs/specification-extensions",
821
- "additionalProperties": {
822
- "$ref": "#/$defs/path-item-or-reference"
823
- }
824
- },
825
- "callbacks-or-reference": {
826
- "if": {
827
- "type": "object",
828
- "required": ["$ref"]
829
- },
830
- "then": {
831
- "$ref": "#/$defs/reference"
832
- },
833
- "else": {
834
- "$ref": "#/$defs/callbacks"
835
- }
836
- },
837
- "example": {
838
- "$comment": "https://spec.openapis.org/oas/v3.1.0#example-object",
839
- "type": "object",
840
- "properties": {
841
- "summary": {
842
- "type": "string"
843
- },
844
- "description": {
845
- "type": "string"
846
- },
847
- "value": true,
848
- "externalValue": {
849
- "type": "string",
850
- "format": "uri"
851
- }
852
- },
853
- "not": {
854
- "required": ["value", "externalValue"]
855
- },
856
- "$ref": "#/$defs/specification-extensions",
857
- "unevaluatedProperties": false
858
- },
859
- "example-or-reference": {
860
- "if": {
861
- "type": "object",
862
- "required": ["$ref"]
863
- },
864
- "then": {
865
- "$ref": "#/$defs/reference"
866
- },
867
- "else": {
868
- "$ref": "#/$defs/example"
869
- }
870
- },
871
- "link": {
872
- "$comment": "https://spec.openapis.org/oas/v3.1.0#link-object",
873
- "type": "object",
874
- "properties": {
875
- "operationRef": {
876
- "type": "string",
877
- "format": "uri-reference"
878
- },
879
- "operationId": {
880
- "type": "string"
881
- },
882
- "parameters": {
883
- "$ref": "#/$defs/map-of-strings"
884
- },
885
- "requestBody": true,
886
- "description": {
887
- "type": "string"
888
- },
889
- "body": {
890
- "$ref": "#/$defs/server"
891
- }
892
- },
893
- "oneOf": [
894
- {
895
- "required": ["operationRef"]
896
- },
897
- {
898
- "required": ["operationId"]
899
- }
900
- ],
901
- "$ref": "#/$defs/specification-extensions",
902
- "unevaluatedProperties": false
903
- },
904
- "link-or-reference": {
905
- "if": {
906
- "type": "object",
907
- "required": ["$ref"]
908
- },
909
- "then": {
910
- "$ref": "#/$defs/reference"
911
- },
912
- "else": {
913
- "$ref": "#/$defs/link"
914
- }
915
- },
916
- "header": {
917
- "$comment": "https://spec.openapis.org/oas/v3.1.0#header-object",
918
- "type": "object",
919
- "properties": {
920
- "description": {
921
- "type": "string"
922
- },
923
- "required": {
924
- "default": false,
925
- "type": "boolean"
926
- },
927
- "deprecated": {
928
- "default": false,
929
- "type": "boolean"
930
- },
931
- "schema": {
932
- "$ref": "#/$defs/schema"
933
- },
934
- "content": {
935
- "$ref": "#/$defs/content",
936
- "minProperties": 1,
937
- "maxProperties": 1
938
- }
939
- },
940
- "oneOf": [
941
- {
942
- "required": ["schema"]
943
- },
944
- {
945
- "required": ["content"]
946
- }
947
- ],
948
- "dependentSchemas": {
949
- "schema": {
950
- "properties": {
951
- "style": {
952
- "default": "simple",
953
- "const": "simple"
954
- },
955
- "explode": {
956
- "default": false,
957
- "type": "boolean"
958
- }
959
- },
960
- "$ref": "#/$defs/examples"
961
- }
962
- },
963
- "$ref": "#/$defs/specification-extensions",
964
- "unevaluatedProperties": false
965
- },
966
- "header-or-reference": {
967
- "if": {
968
- "type": "object",
969
- "required": ["$ref"]
970
- },
971
- "then": {
972
- "$ref": "#/$defs/reference"
973
- },
974
- "else": {
975
- "$ref": "#/$defs/header"
976
- }
977
- },
978
- "tag": {
979
- "$comment": "https://spec.openapis.org/oas/v3.1.0#tag-object",
980
- "type": "object",
981
- "properties": {
982
- "name": {
983
- "type": "string"
984
- },
985
- "description": {
986
- "type": "string"
987
- },
988
- "externalDocs": {
989
- "$ref": "#/$defs/external-documentation"
990
- }
991
- },
992
- "required": ["name"],
993
- "$ref": "#/$defs/specification-extensions",
994
- "unevaluatedProperties": false
995
- },
996
- "reference": {
997
- "$comment": "https://spec.openapis.org/oas/v3.1.0#reference-object",
998
- "type": "object",
999
- "properties": {
1000
- "$ref": {
1001
- "type": "string",
1002
- "format": "uri-reference"
1003
- },
1004
- "summary": {
1005
- "type": "string"
1006
- },
1007
- "description": {
1008
- "type": "string"
1009
- }
1010
- },
1011
- "unevaluatedProperties": false
1012
- },
1013
- "schema": {
1014
- "$comment": "https://spec.openapis.org/oas/v3.1.0#schema-object",
1015
- "$dynamicAnchor": "meta",
1016
- "type": ["object", "boolean"]
1017
- },
1018
- "security-scheme": {
1019
- "$comment": "https://spec.openapis.org/oas/v3.1.0#security-scheme-object",
1020
- "type": "object",
1021
- "properties": {
1022
- "type": {
1023
- "enum": ["apiKey", "http", "mutualTLS", "oauth2", "openIdConnect"]
1024
- },
1025
- "description": {
1026
- "type": "string"
1027
- }
1028
- },
1029
- "required": ["type"],
1030
- "allOf": [
1031
- {
1032
- "$ref": "#/$defs/specification-extensions"
1033
- },
1034
- {
1035
- "$ref": "#/$defs/security-scheme/$defs/type-apikey"
1036
- },
1037
- {
1038
- "$ref": "#/$defs/security-scheme/$defs/type-http"
1039
- },
1040
- {
1041
- "$ref": "#/$defs/security-scheme/$defs/type-http-bearer"
1042
- },
1043
- {
1044
- "$ref": "#/$defs/security-scheme/$defs/type-oauth2"
1045
- },
1046
- {
1047
- "$ref": "#/$defs/security-scheme/$defs/type-oidc"
1048
- }
1049
- ],
1050
- "unevaluatedProperties": false,
1051
- "$defs": {
1052
- "type-apikey": {
1053
- "if": {
1054
- "properties": {
1055
- "type": {
1056
- "const": "apiKey"
1057
- }
1058
- },
1059
- "required": ["type"]
1060
- },
1061
- "then": {
1062
- "properties": {
1063
- "name": {
1064
- "type": "string"
1065
- },
1066
- "in": {
1067
- "enum": ["query", "header", "cookie"]
1068
- }
1069
- },
1070
- "required": ["name", "in"]
1071
- }
1072
- },
1073
- "type-http": {
1074
- "if": {
1075
- "properties": {
1076
- "type": {
1077
- "const": "http"
1078
- }
1079
- },
1080
- "required": ["type"]
1081
- },
1082
- "then": {
1083
- "properties": {
1084
- "scheme": {
1085
- "type": "string"
1086
- }
1087
- },
1088
- "required": ["scheme"]
1089
- }
1090
- },
1091
- "type-http-bearer": {
1092
- "if": {
1093
- "properties": {
1094
- "type": {
1095
- "const": "http"
1096
- },
1097
- "scheme": {
1098
- "type": "string",
1099
- "pattern": "^[Bb][Ee][Aa][Rr][Ee][Rr]$"
1100
- }
1101
- },
1102
- "required": ["type", "scheme"]
1103
- },
1104
- "then": {
1105
- "properties": {
1106
- "bearerFormat": {
1107
- "type": "string"
1108
- }
1109
- }
1110
- }
1111
- },
1112
- "type-oauth2": {
1113
- "if": {
1114
- "properties": {
1115
- "type": {
1116
- "const": "oauth2"
1117
- }
1118
- },
1119
- "required": ["type"]
1120
- },
1121
- "then": {
1122
- "properties": {
1123
- "flows": {
1124
- "$ref": "#/$defs/oauth-flows"
1125
- }
1126
- },
1127
- "required": ["flows"]
1128
- }
1129
- },
1130
- "type-oidc": {
1131
- "if": {
1132
- "properties": {
1133
- "type": {
1134
- "const": "openIdConnect"
1135
- }
1136
- },
1137
- "required": ["type"]
1138
- },
1139
- "then": {
1140
- "properties": {
1141
- "openIdConnectUrl": {
1142
- "type": "string",
1143
- "format": "uri"
1144
- }
1145
- },
1146
- "required": ["openIdConnectUrl"]
1147
- }
1148
- }
1149
- }
1150
- },
1151
- "security-scheme-or-reference": {
1152
- "if": {
1153
- "type": "object",
1154
- "required": ["$ref"]
1155
- },
1156
- "then": {
1157
- "$ref": "#/$defs/reference"
1158
- },
1159
- "else": {
1160
- "$ref": "#/$defs/security-scheme"
1161
- }
1162
- },
1163
- "oauth-flows": {
1164
- "type": "object",
1165
- "properties": {
1166
- "implicit": {
1167
- "$ref": "#/$defs/oauth-flows/$defs/implicit"
1168
- },
1169
- "password": {
1170
- "$ref": "#/$defs/oauth-flows/$defs/password"
1171
- },
1172
- "clientCredentials": {
1173
- "$ref": "#/$defs/oauth-flows/$defs/client-credentials"
1174
- },
1175
- "authorizationCode": {
1176
- "$ref": "#/$defs/oauth-flows/$defs/authorization-code"
1177
- }
1178
- },
1179
- "$ref": "#/$defs/specification-extensions",
1180
- "unevaluatedProperties": false,
1181
- "$defs": {
1182
- "implicit": {
1183
- "type": "object",
1184
- "properties": {
1185
- "authorizationUrl": {
1186
- "type": "string",
1187
- "format": "uri"
1188
- },
1189
- "refreshUrl": {
1190
- "type": "string",
1191
- "format": "uri"
1192
- },
1193
- "scopes": {
1194
- "$ref": "#/$defs/map-of-strings"
1195
- }
1196
- },
1197
- "required": ["authorizationUrl", "scopes"],
1198
- "$ref": "#/$defs/specification-extensions",
1199
- "unevaluatedProperties": false
1200
- },
1201
- "password": {
1202
- "type": "object",
1203
- "properties": {
1204
- "tokenUrl": {
1205
- "type": "string",
1206
- "format": "uri"
1207
- },
1208
- "refreshUrl": {
1209
- "type": "string",
1210
- "format": "uri"
1211
- },
1212
- "scopes": {
1213
- "$ref": "#/$defs/map-of-strings"
1214
- }
1215
- },
1216
- "required": ["tokenUrl", "scopes"],
1217
- "$ref": "#/$defs/specification-extensions",
1218
- "unevaluatedProperties": false
1219
- },
1220
- "client-credentials": {
1221
- "type": "object",
1222
- "properties": {
1223
- "tokenUrl": {
1224
- "type": "string",
1225
- "format": "uri"
1226
- },
1227
- "refreshUrl": {
1228
- "type": "string",
1229
- "format": "uri"
1230
- },
1231
- "scopes": {
1232
- "$ref": "#/$defs/map-of-strings"
1233
- }
1234
- },
1235
- "required": ["tokenUrl", "scopes"],
1236
- "$ref": "#/$defs/specification-extensions",
1237
- "unevaluatedProperties": false
1238
- },
1239
- "authorization-code": {
1240
- "type": "object",
1241
- "properties": {
1242
- "authorizationUrl": {
1243
- "type": "string",
1244
- "format": "uri"
1245
- },
1246
- "tokenUrl": {
1247
- "type": "string",
1248
- "format": "uri"
1249
- },
1250
- "refreshUrl": {
1251
- "type": "string",
1252
- "format": "uri"
1253
- },
1254
- "scopes": {
1255
- "$ref": "#/$defs/map-of-strings"
1256
- }
1257
- },
1258
- "required": ["authorizationUrl", "tokenUrl", "scopes"],
1259
- "$ref": "#/$defs/specification-extensions",
1260
- "unevaluatedProperties": false
1261
- }
1262
- }
1263
- },
1264
- "security-requirement": {
1265
- "$comment": "https://spec.openapis.org/oas/v3.1.0#security-requirement-object",
1266
- "type": "object",
1267
- "additionalProperties": {
1268
- "type": "array",
1269
- "items": {
1270
- "type": "string"
1271
- }
1272
- }
1273
- },
1274
- "specification-extensions": {
1275
- "$comment": "https://spec.openapis.org/oas/v3.1.0#specification-extensions",
1276
- "patternProperties": {
1277
- "^x-": true
1278
- }
1279
- },
1280
- "examples": {
1281
- "properties": {
1282
- "example": true,
1283
- "examples": {
1284
- "type": "object",
1285
- "additionalProperties": {
1286
- "$ref": "#/$defs/example-or-reference"
1287
- }
1288
- }
1289
- }
1290
- },
1291
- "map-of-strings": {
1292
- "type": "object",
1293
- "additionalProperties": {
1294
- "type": "string"
1295
- }
1296
- }
1297
- }
1298
- }
1
+ {
2
+ "$id": "https://spec.openapis.org/oas/3.1/schema/2022-10-07",
3
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
4
+ "description": "The description of OpenAPI v3.1.x documents without schema validation, as defined by https://spec.openapis.org/oas/v3.1.0",
5
+ "type": "object",
6
+ "properties": {
7
+ "openapi": {
8
+ "type": "string",
9
+ "pattern": "^3\\.1\\.\\d+(-.+)?$"
10
+ },
11
+ "info": {
12
+ "$ref": "#/$defs/info"
13
+ },
14
+ "jsonSchemaDialect": {
15
+ "type": "string",
16
+ "format": "uri",
17
+ "default": "https://spec.openapis.org/oas/3.1/dialect/base"
18
+ },
19
+ "servers": {
20
+ "type": "array",
21
+ "items": {
22
+ "$ref": "#/$defs/server"
23
+ },
24
+ "default": [
25
+ {
26
+ "url": "/"
27
+ }
28
+ ]
29
+ },
30
+ "paths": {
31
+ "$ref": "#/$defs/paths"
32
+ },
33
+ "webhooks": {
34
+ "type": "object",
35
+ "additionalProperties": {
36
+ "$ref": "#/$defs/path-item-or-reference"
37
+ }
38
+ },
39
+ "components": {
40
+ "$ref": "#/$defs/components"
41
+ },
42
+ "security": {
43
+ "type": "array",
44
+ "items": {
45
+ "$ref": "#/$defs/security-requirement"
46
+ }
47
+ },
48
+ "tags": {
49
+ "type": "array",
50
+ "items": {
51
+ "$ref": "#/$defs/tag"
52
+ }
53
+ },
54
+ "externalDocs": {
55
+ "$ref": "#/$defs/external-documentation"
56
+ }
57
+ },
58
+ "required": ["openapi", "info"],
59
+ "anyOf": [
60
+ {
61
+ "required": ["paths"]
62
+ },
63
+ {
64
+ "required": ["components"]
65
+ },
66
+ {
67
+ "required": ["webhooks"]
68
+ }
69
+ ],
70
+ "$ref": "#/$defs/specification-extensions",
71
+ "unevaluatedProperties": false,
72
+ "$defs": {
73
+ "info": {
74
+ "$comment": "https://spec.openapis.org/oas/v3.1.0#info-object",
75
+ "type": "object",
76
+ "properties": {
77
+ "title": {
78
+ "type": "string"
79
+ },
80
+ "summary": {
81
+ "type": "string"
82
+ },
83
+ "description": {
84
+ "type": "string"
85
+ },
86
+ "termsOfService": {
87
+ "type": "string",
88
+ "format": "uri"
89
+ },
90
+ "contact": {
91
+ "$ref": "#/$defs/contact"
92
+ },
93
+ "license": {
94
+ "$ref": "#/$defs/license"
95
+ },
96
+ "version": {
97
+ "type": "string"
98
+ }
99
+ },
100
+ "required": ["title", "version"],
101
+ "$ref": "#/$defs/specification-extensions",
102
+ "unevaluatedProperties": false
103
+ },
104
+ "contact": {
105
+ "$comment": "https://spec.openapis.org/oas/v3.1.0#contact-object",
106
+ "type": "object",
107
+ "properties": {
108
+ "name": {
109
+ "type": "string"
110
+ },
111
+ "url": {
112
+ "type": "string",
113
+ "format": "uri"
114
+ },
115
+ "email": {
116
+ "type": "string",
117
+ "format": "email"
118
+ }
119
+ },
120
+ "$ref": "#/$defs/specification-extensions",
121
+ "unevaluatedProperties": false
122
+ },
123
+ "license": {
124
+ "$comment": "https://spec.openapis.org/oas/v3.1.0#license-object",
125
+ "type": "object",
126
+ "properties": {
127
+ "name": {
128
+ "type": "string"
129
+ },
130
+ "identifier": {
131
+ "type": "string"
132
+ },
133
+ "url": {
134
+ "type": "string",
135
+ "format": "uri"
136
+ }
137
+ },
138
+ "required": ["name"],
139
+ "dependentSchemas": {
140
+ "identifier": {
141
+ "not": {
142
+ "required": ["url"]
143
+ }
144
+ }
145
+ },
146
+ "$ref": "#/$defs/specification-extensions",
147
+ "unevaluatedProperties": false
148
+ },
149
+ "server": {
150
+ "$comment": "https://spec.openapis.org/oas/v3.1.0#server-object",
151
+ "type": "object",
152
+ "properties": {
153
+ "url": {
154
+ "type": "string",
155
+ "format": "uri-reference"
156
+ },
157
+ "description": {
158
+ "type": "string"
159
+ },
160
+ "variables": {
161
+ "type": "object",
162
+ "additionalProperties": {
163
+ "$ref": "#/$defs/server-variable"
164
+ }
165
+ }
166
+ },
167
+ "required": ["url"],
168
+ "$ref": "#/$defs/specification-extensions",
169
+ "unevaluatedProperties": false
170
+ },
171
+ "server-variable": {
172
+ "$comment": "https://spec.openapis.org/oas/v3.1.0#server-variable-object",
173
+ "type": "object",
174
+ "properties": {
175
+ "enum": {
176
+ "type": "array",
177
+ "items": {
178
+ "type": "string"
179
+ },
180
+ "minItems": 1
181
+ },
182
+ "default": {
183
+ "type": "string"
184
+ },
185
+ "description": {
186
+ "type": "string"
187
+ }
188
+ },
189
+ "required": ["default"],
190
+ "$ref": "#/$defs/specification-extensions",
191
+ "unevaluatedProperties": false
192
+ },
193
+ "components": {
194
+ "$comment": "https://spec.openapis.org/oas/v3.1.0#components-object",
195
+ "type": "object",
196
+ "properties": {
197
+ "schemas": {
198
+ "type": "object",
199
+ "additionalProperties": {
200
+ "$ref": "#/$defs/schema"
201
+ }
202
+ },
203
+ "responses": {
204
+ "type": "object",
205
+ "additionalProperties": {
206
+ "$ref": "#/$defs/response-or-reference"
207
+ }
208
+ },
209
+ "parameters": {
210
+ "type": "object",
211
+ "additionalProperties": {
212
+ "$ref": "#/$defs/parameter-or-reference"
213
+ }
214
+ },
215
+ "examples": {
216
+ "type": "object",
217
+ "additionalProperties": {
218
+ "$ref": "#/$defs/example-or-reference"
219
+ }
220
+ },
221
+ "requestBodies": {
222
+ "type": "object",
223
+ "additionalProperties": {
224
+ "$ref": "#/$defs/request-body-or-reference"
225
+ }
226
+ },
227
+ "headers": {
228
+ "type": "object",
229
+ "additionalProperties": {
230
+ "$ref": "#/$defs/header-or-reference"
231
+ }
232
+ },
233
+ "securitySchemes": {
234
+ "type": "object",
235
+ "additionalProperties": {
236
+ "$ref": "#/$defs/security-scheme-or-reference"
237
+ }
238
+ },
239
+ "links": {
240
+ "type": "object",
241
+ "additionalProperties": {
242
+ "$ref": "#/$defs/link-or-reference"
243
+ }
244
+ },
245
+ "callbacks": {
246
+ "type": "object",
247
+ "additionalProperties": {
248
+ "$ref": "#/$defs/callbacks-or-reference"
249
+ }
250
+ },
251
+ "pathItems": {
252
+ "type": "object",
253
+ "additionalProperties": {
254
+ "$ref": "#/$defs/path-item-or-reference"
255
+ }
256
+ }
257
+ },
258
+ "patternProperties": {
259
+ "^(schemas|responses|parameters|examples|requestBodies|headers|securitySchemes|links|callbacks|pathItems)$": {
260
+ "$comment": "Enumerating all of the property names in the regex above is necessary for unevaluatedProperties to work as expected",
261
+ "propertyNames": {
262
+ "pattern": "^[a-zA-Z0-9._-]+$"
263
+ }
264
+ }
265
+ },
266
+ "$ref": "#/$defs/specification-extensions",
267
+ "unevaluatedProperties": false
268
+ },
269
+ "paths": {
270
+ "$comment": "https://spec.openapis.org/oas/v3.1.0#paths-object",
271
+ "type": "object",
272
+ "patternProperties": {
273
+ "^/": {
274
+ "$ref": "#/$defs/path-item"
275
+ }
276
+ },
277
+ "$ref": "#/$defs/specification-extensions",
278
+ "unevaluatedProperties": false
279
+ },
280
+ "path-item": {
281
+ "$comment": "https://spec.openapis.org/oas/v3.1.0#path-item-object",
282
+ "type": "object",
283
+ "properties": {
284
+ "summary": {
285
+ "type": "string"
286
+ },
287
+ "description": {
288
+ "type": "string"
289
+ },
290
+ "servers": {
291
+ "type": "array",
292
+ "items": {
293
+ "$ref": "#/$defs/server"
294
+ }
295
+ },
296
+ "parameters": {
297
+ "type": "array",
298
+ "items": {
299
+ "$ref": "#/$defs/parameter-or-reference"
300
+ }
301
+ },
302
+ "get": {
303
+ "$ref": "#/$defs/operation"
304
+ },
305
+ "put": {
306
+ "$ref": "#/$defs/operation"
307
+ },
308
+ "post": {
309
+ "$ref": "#/$defs/operation"
310
+ },
311
+ "delete": {
312
+ "$ref": "#/$defs/operation"
313
+ },
314
+ "options": {
315
+ "$ref": "#/$defs/operation"
316
+ },
317
+ "head": {
318
+ "$ref": "#/$defs/operation"
319
+ },
320
+ "patch": {
321
+ "$ref": "#/$defs/operation"
322
+ },
323
+ "trace": {
324
+ "$ref": "#/$defs/operation"
325
+ }
326
+ },
327
+ "$ref": "#/$defs/specification-extensions",
328
+ "unevaluatedProperties": false
329
+ },
330
+ "path-item-or-reference": {
331
+ "if": {
332
+ "type": "object",
333
+ "required": ["$ref"]
334
+ },
335
+ "then": {
336
+ "$ref": "#/$defs/reference"
337
+ },
338
+ "else": {
339
+ "$ref": "#/$defs/path-item"
340
+ }
341
+ },
342
+ "operation": {
343
+ "$comment": "https://spec.openapis.org/oas/v3.1.0#operation-object",
344
+ "type": "object",
345
+ "properties": {
346
+ "tags": {
347
+ "type": "array",
348
+ "items": {
349
+ "type": "string"
350
+ }
351
+ },
352
+ "summary": {
353
+ "type": "string"
354
+ },
355
+ "description": {
356
+ "type": "string"
357
+ },
358
+ "externalDocs": {
359
+ "$ref": "#/$defs/external-documentation"
360
+ },
361
+ "operationId": {
362
+ "type": "string"
363
+ },
364
+ "parameters": {
365
+ "type": "array",
366
+ "items": {
367
+ "$ref": "#/$defs/parameter-or-reference"
368
+ }
369
+ },
370
+ "requestBody": {
371
+ "$ref": "#/$defs/request-body-or-reference"
372
+ },
373
+ "responses": {
374
+ "$ref": "#/$defs/responses"
375
+ },
376
+ "callbacks": {
377
+ "type": "object",
378
+ "additionalProperties": {
379
+ "$ref": "#/$defs/callbacks-or-reference"
380
+ }
381
+ },
382
+ "deprecated": {
383
+ "default": false,
384
+ "type": "boolean"
385
+ },
386
+ "security": {
387
+ "type": "array",
388
+ "items": {
389
+ "$ref": "#/$defs/security-requirement"
390
+ }
391
+ },
392
+ "servers": {
393
+ "type": "array",
394
+ "items": {
395
+ "$ref": "#/$defs/server"
396
+ }
397
+ }
398
+ },
399
+ "$ref": "#/$defs/specification-extensions",
400
+ "unevaluatedProperties": false
401
+ },
402
+ "external-documentation": {
403
+ "$comment": "https://spec.openapis.org/oas/v3.1.0#external-documentation-object",
404
+ "type": "object",
405
+ "properties": {
406
+ "description": {
407
+ "type": "string"
408
+ },
409
+ "url": {
410
+ "type": "string",
411
+ "format": "uri"
412
+ }
413
+ },
414
+ "required": ["url"],
415
+ "$ref": "#/$defs/specification-extensions",
416
+ "unevaluatedProperties": false
417
+ },
418
+ "parameter": {
419
+ "$comment": "https://spec.openapis.org/oas/v3.1.0#parameter-object",
420
+ "type": "object",
421
+ "properties": {
422
+ "name": {
423
+ "type": "string"
424
+ },
425
+ "in": {
426
+ "enum": ["query", "header", "path", "cookie"]
427
+ },
428
+ "description": {
429
+ "type": "string"
430
+ },
431
+ "required": {
432
+ "default": false,
433
+ "type": "boolean"
434
+ },
435
+ "deprecated": {
436
+ "default": false,
437
+ "type": "boolean"
438
+ },
439
+ "schema": {
440
+ "$ref": "#/$defs/schema"
441
+ },
442
+ "content": {
443
+ "$ref": "#/$defs/content",
444
+ "minProperties": 1,
445
+ "maxProperties": 1
446
+ }
447
+ },
448
+ "required": ["name", "in"],
449
+ "oneOf": [
450
+ {
451
+ "required": ["schema"]
452
+ },
453
+ {
454
+ "required": ["content"]
455
+ }
456
+ ],
457
+ "if": {
458
+ "properties": {
459
+ "in": {
460
+ "const": "query"
461
+ }
462
+ },
463
+ "required": ["in"]
464
+ },
465
+ "then": {
466
+ "properties": {
467
+ "allowEmptyValue": {
468
+ "default": false,
469
+ "type": "boolean"
470
+ }
471
+ }
472
+ },
473
+ "dependentSchemas": {
474
+ "schema": {
475
+ "properties": {
476
+ "style": {
477
+ "type": "string"
478
+ },
479
+ "explode": {
480
+ "type": "boolean"
481
+ }
482
+ },
483
+ "allOf": [
484
+ {
485
+ "$ref": "#/$defs/examples"
486
+ },
487
+ {
488
+ "$ref": "#/$defs/parameter/dependentSchemas/schema/$defs/styles-for-path"
489
+ },
490
+ {
491
+ "$ref": "#/$defs/parameter/dependentSchemas/schema/$defs/styles-for-header"
492
+ },
493
+ {
494
+ "$ref": "#/$defs/parameter/dependentSchemas/schema/$defs/styles-for-query"
495
+ },
496
+ {
497
+ "$ref": "#/$defs/parameter/dependentSchemas/schema/$defs/styles-for-cookie"
498
+ },
499
+ {
500
+ "$ref": "#/$defs/parameter/dependentSchemas/schema/$defs/styles-for-form"
501
+ }
502
+ ],
503
+ "$defs": {
504
+ "styles-for-path": {
505
+ "if": {
506
+ "properties": {
507
+ "in": {
508
+ "const": "path"
509
+ }
510
+ },
511
+ "required": ["in"]
512
+ },
513
+ "then": {
514
+ "properties": {
515
+ "name": {
516
+ "pattern": "[^/#?]+$"
517
+ },
518
+ "style": {
519
+ "default": "simple",
520
+ "enum": ["matrix", "label", "simple"]
521
+ },
522
+ "required": {
523
+ "const": true
524
+ }
525
+ },
526
+ "required": ["required"]
527
+ }
528
+ },
529
+ "styles-for-header": {
530
+ "if": {
531
+ "properties": {
532
+ "in": {
533
+ "const": "header"
534
+ }
535
+ },
536
+ "required": ["in"]
537
+ },
538
+ "then": {
539
+ "properties": {
540
+ "style": {
541
+ "default": "simple",
542
+ "const": "simple"
543
+ }
544
+ }
545
+ }
546
+ },
547
+ "styles-for-query": {
548
+ "if": {
549
+ "properties": {
550
+ "in": {
551
+ "const": "query"
552
+ }
553
+ },
554
+ "required": ["in"]
555
+ },
556
+ "then": {
557
+ "properties": {
558
+ "style": {
559
+ "default": "form",
560
+ "enum": [
561
+ "form",
562
+ "spaceDelimited",
563
+ "pipeDelimited",
564
+ "deepObject"
565
+ ]
566
+ },
567
+ "allowReserved": {
568
+ "default": false,
569
+ "type": "boolean"
570
+ }
571
+ }
572
+ }
573
+ },
574
+ "styles-for-cookie": {
575
+ "if": {
576
+ "properties": {
577
+ "in": {
578
+ "const": "cookie"
579
+ }
580
+ },
581
+ "required": ["in"]
582
+ },
583
+ "then": {
584
+ "properties": {
585
+ "style": {
586
+ "default": "form",
587
+ "const": "form"
588
+ }
589
+ }
590
+ }
591
+ },
592
+ "styles-for-form": {
593
+ "if": {
594
+ "properties": {
595
+ "style": {
596
+ "const": "form"
597
+ }
598
+ },
599
+ "required": ["style"]
600
+ },
601
+ "then": {
602
+ "properties": {
603
+ "explode": {
604
+ "default": true
605
+ }
606
+ }
607
+ },
608
+ "else": {
609
+ "properties": {
610
+ "explode": {
611
+ "default": false
612
+ }
613
+ }
614
+ }
615
+ }
616
+ }
617
+ }
618
+ },
619
+ "$ref": "#/$defs/specification-extensions",
620
+ "unevaluatedProperties": false
621
+ },
622
+ "parameter-or-reference": {
623
+ "if": {
624
+ "type": "object",
625
+ "required": ["$ref"]
626
+ },
627
+ "then": {
628
+ "$ref": "#/$defs/reference"
629
+ },
630
+ "else": {
631
+ "$ref": "#/$defs/parameter"
632
+ }
633
+ },
634
+ "request-body": {
635
+ "$comment": "https://spec.openapis.org/oas/v3.1.0#request-body-object",
636
+ "type": "object",
637
+ "properties": {
638
+ "description": {
639
+ "type": "string"
640
+ },
641
+ "content": {
642
+ "$ref": "#/$defs/content"
643
+ },
644
+ "required": {
645
+ "default": false,
646
+ "type": "boolean"
647
+ }
648
+ },
649
+ "required": ["content"],
650
+ "$ref": "#/$defs/specification-extensions",
651
+ "unevaluatedProperties": false
652
+ },
653
+ "request-body-or-reference": {
654
+ "if": {
655
+ "type": "object",
656
+ "required": ["$ref"]
657
+ },
658
+ "then": {
659
+ "$ref": "#/$defs/reference"
660
+ },
661
+ "else": {
662
+ "$ref": "#/$defs/request-body"
663
+ }
664
+ },
665
+ "content": {
666
+ "$comment": "https://spec.openapis.org/oas/v3.1.0#fixed-fields-10",
667
+ "type": "object",
668
+ "additionalProperties": {
669
+ "$ref": "#/$defs/media-type"
670
+ },
671
+ "propertyNames": {
672
+ "format": "media-range"
673
+ }
674
+ },
675
+ "media-type": {
676
+ "$comment": "https://spec.openapis.org/oas/v3.1.0#media-type-object",
677
+ "type": "object",
678
+ "properties": {
679
+ "schema": {
680
+ "$ref": "#/$defs/schema"
681
+ },
682
+ "encoding": {
683
+ "type": "object",
684
+ "additionalProperties": {
685
+ "$ref": "#/$defs/encoding"
686
+ }
687
+ }
688
+ },
689
+ "allOf": [
690
+ {
691
+ "$ref": "#/$defs/specification-extensions"
692
+ },
693
+ {
694
+ "$ref": "#/$defs/examples"
695
+ }
696
+ ],
697
+ "unevaluatedProperties": false
698
+ },
699
+ "encoding": {
700
+ "$comment": "https://spec.openapis.org/oas/v3.1.0#encoding-object",
701
+ "type": "object",
702
+ "properties": {
703
+ "contentType": {
704
+ "type": "string",
705
+ "format": "media-range"
706
+ },
707
+ "headers": {
708
+ "type": "object",
709
+ "additionalProperties": {
710
+ "$ref": "#/$defs/header-or-reference"
711
+ }
712
+ },
713
+ "style": {
714
+ "default": "form",
715
+ "enum": ["form", "spaceDelimited", "pipeDelimited", "deepObject"]
716
+ },
717
+ "explode": {
718
+ "type": "boolean"
719
+ },
720
+ "allowReserved": {
721
+ "default": false,
722
+ "type": "boolean"
723
+ }
724
+ },
725
+ "allOf": [
726
+ {
727
+ "$ref": "#/$defs/specification-extensions"
728
+ },
729
+ {
730
+ "$ref": "#/$defs/encoding/$defs/explode-default"
731
+ }
732
+ ],
733
+ "unevaluatedProperties": false,
734
+ "$defs": {
735
+ "explode-default": {
736
+ "if": {
737
+ "properties": {
738
+ "style": {
739
+ "const": "form"
740
+ }
741
+ },
742
+ "required": ["style"]
743
+ },
744
+ "then": {
745
+ "properties": {
746
+ "explode": {
747
+ "default": true
748
+ }
749
+ }
750
+ },
751
+ "else": {
752
+ "properties": {
753
+ "explode": {
754
+ "default": false
755
+ }
756
+ }
757
+ }
758
+ }
759
+ }
760
+ },
761
+ "responses": {
762
+ "$comment": "https://spec.openapis.org/oas/v3.1.0#responses-object",
763
+ "type": "object",
764
+ "properties": {
765
+ "default": {
766
+ "$ref": "#/$defs/response-or-reference"
767
+ }
768
+ },
769
+ "patternProperties": {
770
+ "^[1-5](?:[0-9]{2}|XX)$": {
771
+ "$ref": "#/$defs/response-or-reference"
772
+ }
773
+ },
774
+ "minProperties": 1,
775
+ "$ref": "#/$defs/specification-extensions",
776
+ "unevaluatedProperties": false
777
+ },
778
+ "response": {
779
+ "$comment": "https://spec.openapis.org/oas/v3.1.0#response-object",
780
+ "type": "object",
781
+ "properties": {
782
+ "description": {
783
+ "type": "string"
784
+ },
785
+ "headers": {
786
+ "type": "object",
787
+ "additionalProperties": {
788
+ "$ref": "#/$defs/header-or-reference"
789
+ }
790
+ },
791
+ "content": {
792
+ "$ref": "#/$defs/content"
793
+ },
794
+ "links": {
795
+ "type": "object",
796
+ "additionalProperties": {
797
+ "$ref": "#/$defs/link-or-reference"
798
+ }
799
+ }
800
+ },
801
+ "required": ["description"],
802
+ "$ref": "#/$defs/specification-extensions",
803
+ "unevaluatedProperties": false
804
+ },
805
+ "response-or-reference": {
806
+ "if": {
807
+ "type": "object",
808
+ "required": ["$ref"]
809
+ },
810
+ "then": {
811
+ "$ref": "#/$defs/reference"
812
+ },
813
+ "else": {
814
+ "$ref": "#/$defs/response"
815
+ }
816
+ },
817
+ "callbacks": {
818
+ "$comment": "https://spec.openapis.org/oas/v3.1.0#callback-object",
819
+ "type": "object",
820
+ "$ref": "#/$defs/specification-extensions",
821
+ "additionalProperties": {
822
+ "$ref": "#/$defs/path-item-or-reference"
823
+ }
824
+ },
825
+ "callbacks-or-reference": {
826
+ "if": {
827
+ "type": "object",
828
+ "required": ["$ref"]
829
+ },
830
+ "then": {
831
+ "$ref": "#/$defs/reference"
832
+ },
833
+ "else": {
834
+ "$ref": "#/$defs/callbacks"
835
+ }
836
+ },
837
+ "example": {
838
+ "$comment": "https://spec.openapis.org/oas/v3.1.0#example-object",
839
+ "type": "object",
840
+ "properties": {
841
+ "summary": {
842
+ "type": "string"
843
+ },
844
+ "description": {
845
+ "type": "string"
846
+ },
847
+ "value": true,
848
+ "externalValue": {
849
+ "type": "string",
850
+ "format": "uri"
851
+ }
852
+ },
853
+ "not": {
854
+ "required": ["value", "externalValue"]
855
+ },
856
+ "$ref": "#/$defs/specification-extensions",
857
+ "unevaluatedProperties": false
858
+ },
859
+ "example-or-reference": {
860
+ "if": {
861
+ "type": "object",
862
+ "required": ["$ref"]
863
+ },
864
+ "then": {
865
+ "$ref": "#/$defs/reference"
866
+ },
867
+ "else": {
868
+ "$ref": "#/$defs/example"
869
+ }
870
+ },
871
+ "link": {
872
+ "$comment": "https://spec.openapis.org/oas/v3.1.0#link-object",
873
+ "type": "object",
874
+ "properties": {
875
+ "operationRef": {
876
+ "type": "string",
877
+ "format": "uri-reference"
878
+ },
879
+ "operationId": {
880
+ "type": "string"
881
+ },
882
+ "parameters": {
883
+ "$ref": "#/$defs/map-of-strings"
884
+ },
885
+ "requestBody": true,
886
+ "description": {
887
+ "type": "string"
888
+ },
889
+ "body": {
890
+ "$ref": "#/$defs/server"
891
+ }
892
+ },
893
+ "oneOf": [
894
+ {
895
+ "required": ["operationRef"]
896
+ },
897
+ {
898
+ "required": ["operationId"]
899
+ }
900
+ ],
901
+ "$ref": "#/$defs/specification-extensions",
902
+ "unevaluatedProperties": false
903
+ },
904
+ "link-or-reference": {
905
+ "if": {
906
+ "type": "object",
907
+ "required": ["$ref"]
908
+ },
909
+ "then": {
910
+ "$ref": "#/$defs/reference"
911
+ },
912
+ "else": {
913
+ "$ref": "#/$defs/link"
914
+ }
915
+ },
916
+ "header": {
917
+ "$comment": "https://spec.openapis.org/oas/v3.1.0#header-object",
918
+ "type": "object",
919
+ "properties": {
920
+ "description": {
921
+ "type": "string"
922
+ },
923
+ "required": {
924
+ "default": false,
925
+ "type": "boolean"
926
+ },
927
+ "deprecated": {
928
+ "default": false,
929
+ "type": "boolean"
930
+ },
931
+ "schema": {
932
+ "$ref": "#/$defs/schema"
933
+ },
934
+ "content": {
935
+ "$ref": "#/$defs/content",
936
+ "minProperties": 1,
937
+ "maxProperties": 1
938
+ }
939
+ },
940
+ "oneOf": [
941
+ {
942
+ "required": ["schema"]
943
+ },
944
+ {
945
+ "required": ["content"]
946
+ }
947
+ ],
948
+ "dependentSchemas": {
949
+ "schema": {
950
+ "properties": {
951
+ "style": {
952
+ "default": "simple",
953
+ "const": "simple"
954
+ },
955
+ "explode": {
956
+ "default": false,
957
+ "type": "boolean"
958
+ }
959
+ },
960
+ "$ref": "#/$defs/examples"
961
+ }
962
+ },
963
+ "$ref": "#/$defs/specification-extensions",
964
+ "unevaluatedProperties": false
965
+ },
966
+ "header-or-reference": {
967
+ "if": {
968
+ "type": "object",
969
+ "required": ["$ref"]
970
+ },
971
+ "then": {
972
+ "$ref": "#/$defs/reference"
973
+ },
974
+ "else": {
975
+ "$ref": "#/$defs/header"
976
+ }
977
+ },
978
+ "tag": {
979
+ "$comment": "https://spec.openapis.org/oas/v3.1.0#tag-object",
980
+ "type": "object",
981
+ "properties": {
982
+ "name": {
983
+ "type": "string"
984
+ },
985
+ "description": {
986
+ "type": "string"
987
+ },
988
+ "externalDocs": {
989
+ "$ref": "#/$defs/external-documentation"
990
+ }
991
+ },
992
+ "required": ["name"],
993
+ "$ref": "#/$defs/specification-extensions",
994
+ "unevaluatedProperties": false
995
+ },
996
+ "reference": {
997
+ "$comment": "https://spec.openapis.org/oas/v3.1.0#reference-object",
998
+ "type": "object",
999
+ "properties": {
1000
+ "$ref": {
1001
+ "type": "string",
1002
+ "format": "uri-reference"
1003
+ },
1004
+ "summary": {
1005
+ "type": "string"
1006
+ },
1007
+ "description": {
1008
+ "type": "string"
1009
+ }
1010
+ },
1011
+ "unevaluatedProperties": false
1012
+ },
1013
+ "schema": {
1014
+ "$comment": "https://spec.openapis.org/oas/v3.1.0#schema-object",
1015
+ "$dynamicAnchor": "meta",
1016
+ "type": ["object", "boolean"]
1017
+ },
1018
+ "security-scheme": {
1019
+ "$comment": "https://spec.openapis.org/oas/v3.1.0#security-scheme-object",
1020
+ "type": "object",
1021
+ "properties": {
1022
+ "type": {
1023
+ "enum": ["apiKey", "http", "mutualTLS", "oauth2", "openIdConnect"]
1024
+ },
1025
+ "description": {
1026
+ "type": "string"
1027
+ }
1028
+ },
1029
+ "required": ["type"],
1030
+ "allOf": [
1031
+ {
1032
+ "$ref": "#/$defs/specification-extensions"
1033
+ },
1034
+ {
1035
+ "$ref": "#/$defs/security-scheme/$defs/type-apikey"
1036
+ },
1037
+ {
1038
+ "$ref": "#/$defs/security-scheme/$defs/type-http"
1039
+ },
1040
+ {
1041
+ "$ref": "#/$defs/security-scheme/$defs/type-http-bearer"
1042
+ },
1043
+ {
1044
+ "$ref": "#/$defs/security-scheme/$defs/type-oauth2"
1045
+ },
1046
+ {
1047
+ "$ref": "#/$defs/security-scheme/$defs/type-oidc"
1048
+ }
1049
+ ],
1050
+ "unevaluatedProperties": false,
1051
+ "$defs": {
1052
+ "type-apikey": {
1053
+ "if": {
1054
+ "properties": {
1055
+ "type": {
1056
+ "const": "apiKey"
1057
+ }
1058
+ },
1059
+ "required": ["type"]
1060
+ },
1061
+ "then": {
1062
+ "properties": {
1063
+ "name": {
1064
+ "type": "string"
1065
+ },
1066
+ "in": {
1067
+ "enum": ["query", "header", "cookie"]
1068
+ }
1069
+ },
1070
+ "required": ["name", "in"]
1071
+ }
1072
+ },
1073
+ "type-http": {
1074
+ "if": {
1075
+ "properties": {
1076
+ "type": {
1077
+ "const": "http"
1078
+ }
1079
+ },
1080
+ "required": ["type"]
1081
+ },
1082
+ "then": {
1083
+ "properties": {
1084
+ "scheme": {
1085
+ "type": "string"
1086
+ }
1087
+ },
1088
+ "required": ["scheme"]
1089
+ }
1090
+ },
1091
+ "type-http-bearer": {
1092
+ "if": {
1093
+ "properties": {
1094
+ "type": {
1095
+ "const": "http"
1096
+ },
1097
+ "scheme": {
1098
+ "type": "string",
1099
+ "pattern": "^[Bb][Ee][Aa][Rr][Ee][Rr]$"
1100
+ }
1101
+ },
1102
+ "required": ["type", "scheme"]
1103
+ },
1104
+ "then": {
1105
+ "properties": {
1106
+ "bearerFormat": {
1107
+ "type": "string"
1108
+ }
1109
+ }
1110
+ }
1111
+ },
1112
+ "type-oauth2": {
1113
+ "if": {
1114
+ "properties": {
1115
+ "type": {
1116
+ "const": "oauth2"
1117
+ }
1118
+ },
1119
+ "required": ["type"]
1120
+ },
1121
+ "then": {
1122
+ "properties": {
1123
+ "flows": {
1124
+ "$ref": "#/$defs/oauth-flows"
1125
+ }
1126
+ },
1127
+ "required": ["flows"]
1128
+ }
1129
+ },
1130
+ "type-oidc": {
1131
+ "if": {
1132
+ "properties": {
1133
+ "type": {
1134
+ "const": "openIdConnect"
1135
+ }
1136
+ },
1137
+ "required": ["type"]
1138
+ },
1139
+ "then": {
1140
+ "properties": {
1141
+ "openIdConnectUrl": {
1142
+ "type": "string",
1143
+ "format": "uri"
1144
+ }
1145
+ },
1146
+ "required": ["openIdConnectUrl"]
1147
+ }
1148
+ }
1149
+ }
1150
+ },
1151
+ "security-scheme-or-reference": {
1152
+ "if": {
1153
+ "type": "object",
1154
+ "required": ["$ref"]
1155
+ },
1156
+ "then": {
1157
+ "$ref": "#/$defs/reference"
1158
+ },
1159
+ "else": {
1160
+ "$ref": "#/$defs/security-scheme"
1161
+ }
1162
+ },
1163
+ "oauth-flows": {
1164
+ "type": "object",
1165
+ "properties": {
1166
+ "implicit": {
1167
+ "$ref": "#/$defs/oauth-flows/$defs/implicit"
1168
+ },
1169
+ "password": {
1170
+ "$ref": "#/$defs/oauth-flows/$defs/password"
1171
+ },
1172
+ "clientCredentials": {
1173
+ "$ref": "#/$defs/oauth-flows/$defs/client-credentials"
1174
+ },
1175
+ "authorizationCode": {
1176
+ "$ref": "#/$defs/oauth-flows/$defs/authorization-code"
1177
+ }
1178
+ },
1179
+ "$ref": "#/$defs/specification-extensions",
1180
+ "unevaluatedProperties": false,
1181
+ "$defs": {
1182
+ "implicit": {
1183
+ "type": "object",
1184
+ "properties": {
1185
+ "authorizationUrl": {
1186
+ "type": "string",
1187
+ "format": "uri"
1188
+ },
1189
+ "refreshUrl": {
1190
+ "type": "string",
1191
+ "format": "uri"
1192
+ },
1193
+ "scopes": {
1194
+ "$ref": "#/$defs/map-of-strings"
1195
+ }
1196
+ },
1197
+ "required": ["authorizationUrl", "scopes"],
1198
+ "$ref": "#/$defs/specification-extensions",
1199
+ "unevaluatedProperties": false
1200
+ },
1201
+ "password": {
1202
+ "type": "object",
1203
+ "properties": {
1204
+ "tokenUrl": {
1205
+ "type": "string",
1206
+ "format": "uri"
1207
+ },
1208
+ "refreshUrl": {
1209
+ "type": "string",
1210
+ "format": "uri"
1211
+ },
1212
+ "scopes": {
1213
+ "$ref": "#/$defs/map-of-strings"
1214
+ }
1215
+ },
1216
+ "required": ["tokenUrl", "scopes"],
1217
+ "$ref": "#/$defs/specification-extensions",
1218
+ "unevaluatedProperties": false
1219
+ },
1220
+ "client-credentials": {
1221
+ "type": "object",
1222
+ "properties": {
1223
+ "tokenUrl": {
1224
+ "type": "string",
1225
+ "format": "uri"
1226
+ },
1227
+ "refreshUrl": {
1228
+ "type": "string",
1229
+ "format": "uri"
1230
+ },
1231
+ "scopes": {
1232
+ "$ref": "#/$defs/map-of-strings"
1233
+ }
1234
+ },
1235
+ "required": ["tokenUrl", "scopes"],
1236
+ "$ref": "#/$defs/specification-extensions",
1237
+ "unevaluatedProperties": false
1238
+ },
1239
+ "authorization-code": {
1240
+ "type": "object",
1241
+ "properties": {
1242
+ "authorizationUrl": {
1243
+ "type": "string",
1244
+ "format": "uri"
1245
+ },
1246
+ "tokenUrl": {
1247
+ "type": "string",
1248
+ "format": "uri"
1249
+ },
1250
+ "refreshUrl": {
1251
+ "type": "string",
1252
+ "format": "uri"
1253
+ },
1254
+ "scopes": {
1255
+ "$ref": "#/$defs/map-of-strings"
1256
+ }
1257
+ },
1258
+ "required": ["authorizationUrl", "tokenUrl", "scopes"],
1259
+ "$ref": "#/$defs/specification-extensions",
1260
+ "unevaluatedProperties": false
1261
+ }
1262
+ }
1263
+ },
1264
+ "security-requirement": {
1265
+ "$comment": "https://spec.openapis.org/oas/v3.1.0#security-requirement-object",
1266
+ "type": "object",
1267
+ "additionalProperties": {
1268
+ "type": "array",
1269
+ "items": {
1270
+ "type": "string"
1271
+ }
1272
+ }
1273
+ },
1274
+ "specification-extensions": {
1275
+ "$comment": "https://spec.openapis.org/oas/v3.1.0#specification-extensions",
1276
+ "patternProperties": {
1277
+ "^x-": true
1278
+ }
1279
+ },
1280
+ "examples": {
1281
+ "properties": {
1282
+ "example": true,
1283
+ "examples": {
1284
+ "type": "object",
1285
+ "additionalProperties": {
1286
+ "$ref": "#/$defs/example-or-reference"
1287
+ }
1288
+ }
1289
+ }
1290
+ },
1291
+ "map-of-strings": {
1292
+ "type": "object",
1293
+ "additionalProperties": {
1294
+ "type": "string"
1295
+ }
1296
+ }
1297
+ }
1298
+ }