@ahmed-g-gad/apothem 0.1.1

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 (674) hide show
  1. package/CHANGELOG.md +60 -0
  2. package/LICENSE +21 -0
  3. package/LICENSES/MIT.txt +18 -0
  4. package/LICENSES/PSF-2.0.txt +47 -0
  5. package/README.md +549 -0
  6. package/bin/README.md +37 -0
  7. package/bin/apothem.mjs +78 -0
  8. package/package.json +75 -0
  9. package/pyproject.toml +347 -0
  10. package/src/apothem/README.md +52 -0
  11. package/src/apothem/__init__.py +66 -0
  12. package/src/apothem/__main__.py +28 -0
  13. package/src/apothem/_vendor/.keep +0 -0
  14. package/src/apothem/_vendor/__init__.py +25 -0
  15. package/src/apothem/_vendor/attr/__init__.py +104 -0
  16. package/src/apothem/_vendor/attr/__init__.pyi +389 -0
  17. package/src/apothem/_vendor/attr/_cmp.py +160 -0
  18. package/src/apothem/_vendor/attr/_cmp.pyi +13 -0
  19. package/src/apothem/_vendor/attr/_compat.py +99 -0
  20. package/src/apothem/_vendor/attr/_config.py +31 -0
  21. package/src/apothem/_vendor/attr/_funcs.py +497 -0
  22. package/src/apothem/_vendor/attr/_make.py +3406 -0
  23. package/src/apothem/_vendor/attr/_next_gen.py +674 -0
  24. package/src/apothem/_vendor/attr/_typing_compat.pyi +15 -0
  25. package/src/apothem/_vendor/attr/_version_info.py +89 -0
  26. package/src/apothem/_vendor/attr/_version_info.pyi +9 -0
  27. package/src/apothem/_vendor/attr/converters.py +162 -0
  28. package/src/apothem/_vendor/attr/converters.pyi +19 -0
  29. package/src/apothem/_vendor/attr/exceptions.py +95 -0
  30. package/src/apothem/_vendor/attr/exceptions.pyi +17 -0
  31. package/src/apothem/_vendor/attr/filters.py +72 -0
  32. package/src/apothem/_vendor/attr/filters.pyi +6 -0
  33. package/src/apothem/_vendor/attr/py.typed +0 -0
  34. package/src/apothem/_vendor/attr/setters.py +79 -0
  35. package/src/apothem/_vendor/attr/setters.pyi +20 -0
  36. package/src/apothem/_vendor/attr/validators.py +750 -0
  37. package/src/apothem/_vendor/attr/validators.pyi +140 -0
  38. package/src/apothem/_vendor/attr.LICENSE +21 -0
  39. package/src/apothem/_vendor/attrs/__init__.py +72 -0
  40. package/src/apothem/_vendor/attrs/__init__.pyi +314 -0
  41. package/src/apothem/_vendor/attrs/converters.py +3 -0
  42. package/src/apothem/_vendor/attrs/exceptions.py +3 -0
  43. package/src/apothem/_vendor/attrs/filters.py +3 -0
  44. package/src/apothem/_vendor/attrs/py.typed +0 -0
  45. package/src/apothem/_vendor/attrs/setters.py +3 -0
  46. package/src/apothem/_vendor/attrs/validators.py +3 -0
  47. package/src/apothem/_vendor/attrs.LICENSE +21 -0
  48. package/src/apothem/_vendor/jsonschema/__init__.py +120 -0
  49. package/src/apothem/_vendor/jsonschema/__main__.py +6 -0
  50. package/src/apothem/_vendor/jsonschema/_format.py +546 -0
  51. package/src/apothem/_vendor/jsonschema/_keywords.py +449 -0
  52. package/src/apothem/_vendor/jsonschema/_legacy_keywords.py +449 -0
  53. package/src/apothem/_vendor/jsonschema/_types.py +204 -0
  54. package/src/apothem/_vendor/jsonschema/_typing.py +29 -0
  55. package/src/apothem/_vendor/jsonschema/_utils.py +355 -0
  56. package/src/apothem/_vendor/jsonschema/benchmarks/__init__.py +5 -0
  57. package/src/apothem/_vendor/jsonschema/benchmarks/const_vs_enum.py +30 -0
  58. package/src/apothem/_vendor/jsonschema/benchmarks/contains.py +28 -0
  59. package/src/apothem/_vendor/jsonschema/benchmarks/import_benchmark.py +31 -0
  60. package/src/apothem/_vendor/jsonschema/benchmarks/issue232/issue.json +2653 -0
  61. package/src/apothem/_vendor/jsonschema/benchmarks/issue232.py +25 -0
  62. package/src/apothem/_vendor/jsonschema/benchmarks/json_schema_test_suite.py +12 -0
  63. package/src/apothem/_vendor/jsonschema/benchmarks/nested_schemas.py +56 -0
  64. package/src/apothem/_vendor/jsonschema/benchmarks/subcomponents.py +42 -0
  65. package/src/apothem/_vendor/jsonschema/benchmarks/unused_registry.py +35 -0
  66. package/src/apothem/_vendor/jsonschema/benchmarks/useless_applicator_schemas.py +106 -0
  67. package/src/apothem/_vendor/jsonschema/benchmarks/useless_keywords.py +32 -0
  68. package/src/apothem/_vendor/jsonschema/benchmarks/validator_creation.py +14 -0
  69. package/src/apothem/_vendor/jsonschema/cli.py +292 -0
  70. package/src/apothem/_vendor/jsonschema/exceptions.py +490 -0
  71. package/src/apothem/_vendor/jsonschema/protocols.py +230 -0
  72. package/src/apothem/_vendor/jsonschema/validators.py +1410 -0
  73. package/src/apothem/_vendor/jsonschema.LICENSE +19 -0
  74. package/src/apothem/_vendor/jsonschema_specifications/__init__.py +12 -0
  75. package/src/apothem/_vendor/jsonschema_specifications/_core.py +38 -0
  76. package/src/apothem/_vendor/jsonschema_specifications/schemas/draft201909/metaschema.json +42 -0
  77. package/src/apothem/_vendor/jsonschema_specifications/schemas/draft201909/vocabularies/applicator +56 -0
  78. package/src/apothem/_vendor/jsonschema_specifications/schemas/draft201909/vocabularies/content +17 -0
  79. package/src/apothem/_vendor/jsonschema_specifications/schemas/draft201909/vocabularies/core +57 -0
  80. package/src/apothem/_vendor/jsonschema_specifications/schemas/draft201909/vocabularies/format +14 -0
  81. package/src/apothem/_vendor/jsonschema_specifications/schemas/draft201909/vocabularies/meta-data +37 -0
  82. package/src/apothem/_vendor/jsonschema_specifications/schemas/draft201909/vocabularies/validation +98 -0
  83. package/src/apothem/_vendor/jsonschema_specifications/schemas/draft202012/metaschema.json +58 -0
  84. package/src/apothem/_vendor/jsonschema_specifications/schemas/draft202012/vocabularies/applicator +48 -0
  85. package/src/apothem/_vendor/jsonschema_specifications/schemas/draft202012/vocabularies/content +17 -0
  86. package/src/apothem/_vendor/jsonschema_specifications/schemas/draft202012/vocabularies/core +51 -0
  87. package/src/apothem/_vendor/jsonschema_specifications/schemas/draft202012/vocabularies/format-annotation +14 -0
  88. package/src/apothem/_vendor/jsonschema_specifications/schemas/draft202012/vocabularies/format-assertion +14 -0
  89. package/src/apothem/_vendor/jsonschema_specifications/schemas/draft202012/vocabularies/meta-data +37 -0
  90. package/src/apothem/_vendor/jsonschema_specifications/schemas/draft202012/vocabularies/unevaluated +15 -0
  91. package/src/apothem/_vendor/jsonschema_specifications/schemas/draft202012/vocabularies/validation +98 -0
  92. package/src/apothem/_vendor/jsonschema_specifications/schemas/draft3/metaschema.json +172 -0
  93. package/src/apothem/_vendor/jsonschema_specifications/schemas/draft4/metaschema.json +149 -0
  94. package/src/apothem/_vendor/jsonschema_specifications/schemas/draft6/metaschema.json +153 -0
  95. package/src/apothem/_vendor/jsonschema_specifications/schemas/draft7/metaschema.json +166 -0
  96. package/src/apothem/_vendor/jsonschema_specifications.LICENSE +19 -0
  97. package/src/apothem/_vendor/referencing/__init__.py +7 -0
  98. package/src/apothem/_vendor/referencing/_attrs.py +31 -0
  99. package/src/apothem/_vendor/referencing/_attrs.pyi +21 -0
  100. package/src/apothem/_vendor/referencing/_core.py +739 -0
  101. package/src/apothem/_vendor/referencing/exceptions.py +165 -0
  102. package/src/apothem/_vendor/referencing/jsonschema.py +642 -0
  103. package/src/apothem/_vendor/referencing/py.typed +0 -0
  104. package/src/apothem/_vendor/referencing/retrieval.py +94 -0
  105. package/src/apothem/_vendor/referencing/typing.py +61 -0
  106. package/src/apothem/_vendor/referencing.LICENSE +19 -0
  107. package/src/apothem/_vendor/rpds/__init__.py +251 -0
  108. package/src/apothem/_vendor/typing_extensions.LICENSE +279 -0
  109. package/src/apothem/_vendor/typing_extensions.py +4317 -0
  110. package/src/apothem/_vendor/vendor.txt +22 -0
  111. package/src/apothem/_vendor/yaml/__init__.py +389 -0
  112. package/src/apothem/_vendor/yaml/composer.py +138 -0
  113. package/src/apothem/_vendor/yaml/constructor.py +748 -0
  114. package/src/apothem/_vendor/yaml/cyaml.py +100 -0
  115. package/src/apothem/_vendor/yaml/dumper.py +61 -0
  116. package/src/apothem/_vendor/yaml/emitter.py +1137 -0
  117. package/src/apothem/_vendor/yaml/error.py +74 -0
  118. package/src/apothem/_vendor/yaml/events.py +85 -0
  119. package/src/apothem/_vendor/yaml/loader.py +63 -0
  120. package/src/apothem/_vendor/yaml/nodes.py +48 -0
  121. package/src/apothem/_vendor/yaml/parser.py +588 -0
  122. package/src/apothem/_vendor/yaml/reader.py +185 -0
  123. package/src/apothem/_vendor/yaml/representer.py +388 -0
  124. package/src/apothem/_vendor/yaml/resolver.py +226 -0
  125. package/src/apothem/_vendor/yaml/scanner.py +1435 -0
  126. package/src/apothem/_vendor/yaml/serializer.py +110 -0
  127. package/src/apothem/_vendor/yaml/tokens.py +103 -0
  128. package/src/apothem/_vendor/yaml.LICENSE +20 -0
  129. package/src/apothem/agents/README.md +60 -0
  130. package/src/apothem/agents/codebase-explorer.md +91 -0
  131. package/src/apothem/agents/convention-auditor.md +93 -0
  132. package/src/apothem/agents/dependency-auditor.md +97 -0
  133. package/src/apothem/agents/fact-checker.md +84 -0
  134. package/src/apothem/agents/mcp-builder.md +86 -0
  135. package/src/apothem/agents/memory-auditor.md +93 -0
  136. package/src/apothem/agents/prompt-evaluator.md +87 -0
  137. package/src/apothem/agents/quality-gate.md +103 -0
  138. package/src/apothem/agents/refactor-surgeon.md +74 -0
  139. package/src/apothem/agents/research-scout.md +73 -0
  140. package/src/apothem/agents/security-scanner.md +83 -0
  141. package/src/apothem/agents/test-runner.md +84 -0
  142. package/src/apothem/audit/README.md +73 -0
  143. package/src/apothem/audit/_scan_lib.py +182 -0
  144. package/src/apothem/audit/analyze_graph.py +260 -0
  145. package/src/apothem/audit/build_capability_graph.py +607 -0
  146. package/src/apothem/audit/build_inventory.py +657 -0
  147. package/src/apothem/audit/build_plans_provenance.py +997 -0
  148. package/src/apothem/audit/check_links.py +389 -0
  149. package/src/apothem/audit/classify_artifacts.py +381 -0
  150. package/src/apothem/audit/deprecated-tokens.txt +10 -0
  151. package/src/apothem/audit/execute_plans_migration.py +491 -0
  152. package/src/apothem/audit/known-projects.txt +15 -0
  153. package/src/apothem/audit/render_capability_index.py +467 -0
  154. package/src/apothem/audit/render_inventory.py +405 -0
  155. package/src/apothem/audit/scan_ai_surfaces.py +1125 -0
  156. package/src/apothem/audit/scan_ai_surfaces_coarse.py +261 -0
  157. package/src/apothem/audit/scan_drift_features.py +143 -0
  158. package/src/apothem/audit/scan_frontmatter.py +293 -0
  159. package/src/apothem/audit/scan_header_coverage.py +1134 -0
  160. package/src/apothem/audit/scan_plan_leakage.py +540 -0
  161. package/src/apothem/audit/scan_plans_discipline.py +188 -0
  162. package/src/apothem/audit/scan_secrets_pii.py +245 -0
  163. package/src/apothem/audit/scan_stale_tokens.py +296 -0
  164. package/src/apothem/audit/synthesize_drift.py +205 -0
  165. package/src/apothem/benchmarks/README.md +33 -0
  166. package/src/apothem/benchmarks/__init__.py +3 -0
  167. package/src/apothem/benchmarks/bench_agents.py +63 -0
  168. package/src/apothem/benchmarks/bench_hooks.py +93 -0
  169. package/src/apothem/benchmarks/bench_install.py +58 -0
  170. package/src/apothem/benchmarks/bench_tests.py +93 -0
  171. package/src/apothem/benchmarks/bench_validate_ecosystem.py +84 -0
  172. package/src/apothem/cli/README.md +33 -0
  173. package/src/apothem/cli/__init__.py +229 -0
  174. package/src/apothem/cli/_cmd_completion.py +88 -0
  175. package/src/apothem/cli/_cmd_diff.py +181 -0
  176. package/src/apothem/cli/_cmd_doctor.py +143 -0
  177. package/src/apothem/cli/_cmd_harnesses.py +167 -0
  178. package/src/apothem/cli/_cmd_install.py +327 -0
  179. package/src/apothem/cli/_cmd_migrate_workspace.py +143 -0
  180. package/src/apothem/cli/_cmd_profile.py +341 -0
  181. package/src/apothem/cli/_cmd_status.py +180 -0
  182. package/src/apothem/cli/_cmd_uninstall.py +215 -0
  183. package/src/apothem/cli/_cmd_update.py +397 -0
  184. package/src/apothem/cli/_cmd_verify.py +194 -0
  185. package/src/apothem/cli/_common_flags.py +90 -0
  186. package/src/apothem/cli/_epilogs.py +296 -0
  187. package/src/apothem/cli/_helpers.py +857 -0
  188. package/src/apothem/cli/_json_formatter.py +21 -0
  189. package/src/apothem/cli/_materialize.py +376 -0
  190. package/src/apothem/cli/completions/apothem.bash +30 -0
  191. package/src/apothem/cli/completions/apothem.fish +19 -0
  192. package/src/apothem/cli/completions/apothem.ps1 +27 -0
  193. package/src/apothem/cli/completions/apothem.zsh +42 -0
  194. package/src/apothem/cli/reference_export.py +126 -0
  195. package/src/apothem/commands/README.md +125 -0
  196. package/src/apothem/commands/a11y-audit.md +203 -0
  197. package/src/apothem/commands/architecture-review.md +194 -0
  198. package/src/apothem/commands/audit.md +165 -0
  199. package/src/apothem/commands/code-audit.md +218 -0
  200. package/src/apothem/commands/code-review.md +193 -0
  201. package/src/apothem/commands/dependency-audit.md +209 -0
  202. package/src/apothem/commands/docs-review.md +199 -0
  203. package/src/apothem/commands/elevate.md +285 -0
  204. package/src/apothem/commands/eval.md +149 -0
  205. package/src/apothem/commands/fortress.md +172 -0
  206. package/src/apothem/commands/freshify.md +168 -0
  207. package/src/apothem/commands/github-deploy-fresh.md +178 -0
  208. package/src/apothem/commands/github-deploy-next.md +167 -0
  209. package/src/apothem/commands/perf-audit.md +198 -0
  210. package/src/apothem/commands/plan-amend.md +104 -0
  211. package/src/apothem/commands/plan-audit.md +127 -0
  212. package/src/apothem/commands/plan-design.md +257 -0
  213. package/src/apothem/commands/plan-execute.md +495 -0
  214. package/src/apothem/commands/plan-generate.md +351 -0
  215. package/src/apothem/commands/plan-review.md +555 -0
  216. package/src/apothem/commands/plan-spec.md +359 -0
  217. package/src/apothem/commands/plan-status.md +222 -0
  218. package/src/apothem/commands/plan.md +173 -0
  219. package/src/apothem/commands/projectify.md +142 -0
  220. package/src/apothem/commands/release-readiness.md +142 -0
  221. package/src/apothem/commands/research-analysis.md +241 -0
  222. package/src/apothem/commands/research-design.md +231 -0
  223. package/src/apothem/commands/research-disseminate.md +225 -0
  224. package/src/apothem/commands/research-experiment.md +232 -0
  225. package/src/apothem/commands/research-ideate.md +213 -0
  226. package/src/apothem/commands/research-paper.md +252 -0
  227. package/src/apothem/commands/research-proposal.md +220 -0
  228. package/src/apothem/commands/research-publish.md +255 -0
  229. package/src/apothem/commands/research-review.md +251 -0
  230. package/src/apothem/commands/research-sources.md +266 -0
  231. package/src/apothem/commands/research-spec.md +255 -0
  232. package/src/apothem/commands/research-synthesis.md +233 -0
  233. package/src/apothem/commands/research-theory.md +218 -0
  234. package/src/apothem/commands/research.md +181 -0
  235. package/src/apothem/commands/security-audit.md +196 -0
  236. package/src/apothem/commands/supply-chain-audit.md +192 -0
  237. package/src/apothem/commands/test-suite.md +146 -0
  238. package/src/apothem/commands/threat-model-audit.md +199 -0
  239. package/src/apothem/commands/ux-review.md +202 -0
  240. package/src/apothem/commands/workflow.md +162 -0
  241. package/src/apothem/conformity/README.md +173 -0
  242. package/src/apothem/conformity/__init__.py +1 -0
  243. package/src/apothem/conformity/_grep_base.py +93 -0
  244. package/src/apothem/conformity/agent_capability_grep.py +306 -0
  245. package/src/apothem/conformity/agents_md_coverage_grep.py +382 -0
  246. package/src/apothem/conformity/agnosticism_grep.py +311 -0
  247. package/src/apothem/conformity/always_on_budget_grep.py +318 -0
  248. package/src/apothem/conformity/bare_except_grep.py +115 -0
  249. package/src/apothem/conformity/binding_reciprocity_grep.py +151 -0
  250. package/src/apothem/conformity/brand_mark_grep.py +272 -0
  251. package/src/apothem/conformity/commented_out_code_grep.py +176 -0
  252. package/src/apothem/conformity/completion_claim_grep.py +169 -0
  253. package/src/apothem/conformity/conventional_commit_grep.py +319 -0
  254. package/src/apothem/conformity/copilot_instructions_presence_grep.py +324 -0
  255. package/src/apothem/conformity/cross_platform_matrix_grep.py +297 -0
  256. package/src/apothem/conformity/determinism_grep.py +306 -0
  257. package/src/apothem/conformity/diagram_staleness_grep.py +154 -0
  258. package/src/apothem/conformity/dynamism_grep.py +284 -0
  259. package/src/apothem/conformity/editorconfig_presence_grep.py +281 -0
  260. package/src/apothem/conformity/file_header_grep.py +502 -0
  261. package/src/apothem/conformity/freshness_token_grep.py +233 -0
  262. package/src/apothem/conformity/frontmatter_grep.py +274 -0
  263. package/src/apothem/conformity/frontmatter_value_grep.py +386 -0
  264. package/src/apothem/conformity/gate.py +1386 -0
  265. package/src/apothem/conformity/gitattributes_presence_grep.py +238 -0
  266. package/src/apothem/conformity/harden_runner_grep.py +320 -0
  267. package/src/apothem/conformity/hedging_grep.py +129 -0
  268. package/src/apothem/conformity/license_author_consistency_grep.py +204 -0
  269. package/src/apothem/conformity/link_check.py +327 -0
  270. package/src/apothem/conformity/magic_number_grep.py +182 -0
  271. package/src/apothem/conformity/multi_surface_coherence_grep.py +620 -0
  272. package/src/apothem/conformity/naming_grep.py +224 -0
  273. package/src/apothem/conformity/no_global_plans_grep.py +339 -0
  274. package/src/apothem/conformity/no_toplevel_docs_grep.py +120 -0
  275. package/src/apothem/conformity/oidc_trusted_publishing_grep.py +291 -0
  276. package/src/apothem/conformity/option_annotation_grep.py +352 -0
  277. package/src/apothem/conformity/orphan_output_grep.py +206 -0
  278. package/src/apothem/conformity/permissions_minimum_scope_grep.py +299 -0
  279. package/src/apothem/conformity/plain_language_grep.py +559 -0
  280. package/src/apothem/conformity/plan_next_step_consistency_grep.py +450 -0
  281. package/src/apothem/conformity/plan_suite_structure_grep.py +534 -0
  282. package/src/apothem/conformity/plans_discipline_language_grep.py +245 -0
  283. package/src/apothem/conformity/production_ready_pr_grep.py +200 -0
  284. package/src/apothem/conformity/recommend_next_step_grep.py +250 -0
  285. package/src/apothem/conformity/redundancy_grep.py +401 -0
  286. package/src/apothem/conformity/reference_token_grep.py +230 -0
  287. package/src/apothem/conformity/registry_capability_consistency_grep.py +368 -0
  288. package/src/apothem/conformity/secret_leak_grep.py +193 -0
  289. package/src/apothem/conformity/semver_stability_grep.py +358 -0
  290. package/src/apothem/conformity/smoke_install_grep.py +194 -0
  291. package/src/apothem/conformity/static_version_grep.py +284 -0
  292. package/src/apothem/conformity/token_efficiency_grep.py +185 -0
  293. package/src/apothem/conformity/unpinned_action_grep.py +115 -0
  294. package/src/apothem/conformity/user_confirm_grep.py +74 -0
  295. package/src/apothem/conformity/workflow_concurrency_grep.py +283 -0
  296. package/src/apothem/harnesses/README.md +63 -0
  297. package/src/apothem/harnesses/__init__.py +16 -0
  298. package/src/apothem/harnesses/_shared/README.md +36 -0
  299. package/src/apothem/harnesses/_shared/__init__.py +12 -0
  300. package/src/apothem/harnesses/_shared/install_driver.py +281 -0
  301. package/src/apothem/harnesses/_shared/install_driver_apply.py +612 -0
  302. package/src/apothem/harnesses/_shared/install_driver_backup.py +535 -0
  303. package/src/apothem/harnesses/_shared/install_driver_converters.py +310 -0
  304. package/src/apothem/harnesses/_shared/install_driver_lifecycle.py +495 -0
  305. package/src/apothem/harnesses/_shared/install_driver_materialize.py +675 -0
  306. package/src/apothem/harnesses/_shared/install_driver_merge.py +656 -0
  307. package/src/apothem/harnesses/_shared/install_driver_pathsafety.py +137 -0
  308. package/src/apothem/harnesses/_shared/install_driver_planvalidation.py +240 -0
  309. package/src/apothem/harnesses/_shared/install_driver_removal.py +366 -0
  310. package/src/apothem/harnesses/_shared/install_driver_treeops.py +248 -0
  311. package/src/apothem/harnesses/_shared/install_driver_types.py +330 -0
  312. package/src/apothem/harnesses/_shared/wrapper_factories.py +448 -0
  313. package/src/apothem/harnesses/antigravity/STANDARD-CONVENTION-PIN.md +91 -0
  314. package/src/apothem/harnesses/antigravity/__init__.py +70 -0
  315. package/src/apothem/harnesses/antigravity/capabilities.yml +40 -0
  316. package/src/apothem/harnesses/antigravity/install.py +63 -0
  317. package/src/apothem/harnesses/antigravity/templates/GEMINI.md +40 -0
  318. package/src/apothem/harnesses/antigravity/templates/plugin.json +5 -0
  319. package/src/apothem/harnesses/antigravity/uninstall.py +22 -0
  320. package/src/apothem/harnesses/antigravity/update.py +10 -0
  321. package/src/apothem/harnesses/antigravity/verify.py +11 -0
  322. package/src/apothem/harnesses/claude_code/STANDARD-CONVENTION-PIN.md +65 -0
  323. package/src/apothem/harnesses/claude_code/__init__.py +107 -0
  324. package/src/apothem/harnesses/claude_code/capabilities.yml +42 -0
  325. package/src/apothem/harnesses/claude_code/install.py +147 -0
  326. package/src/apothem/harnesses/claude_code/templates/settings.json +351 -0
  327. package/src/apothem/harnesses/claude_code/uninstall.py +23 -0
  328. package/src/apothem/harnesses/claude_code/update.py +10 -0
  329. package/src/apothem/harnesses/claude_code/verify.py +11 -0
  330. package/src/apothem/harnesses/codebuddy/STANDARD-CONVENTION-PIN.md +74 -0
  331. package/src/apothem/harnesses/codebuddy/__init__.py +49 -0
  332. package/src/apothem/harnesses/codebuddy/capabilities.yml +34 -0
  333. package/src/apothem/harnesses/codebuddy/install.py +40 -0
  334. package/src/apothem/harnesses/codebuddy/templates/apothem-rules.md +37 -0
  335. package/src/apothem/harnesses/codebuddy/uninstall.py +25 -0
  336. package/src/apothem/harnesses/codebuddy/update.py +10 -0
  337. package/src/apothem/harnesses/codebuddy/verify.py +11 -0
  338. package/src/apothem/harnesses/codex/STANDARD-CONVENTION-PIN.md +79 -0
  339. package/src/apothem/harnesses/codex/__init__.py +72 -0
  340. package/src/apothem/harnesses/codex/capabilities.yml +40 -0
  341. package/src/apothem/harnesses/codex/install.py +69 -0
  342. package/src/apothem/harnesses/codex/templates/AGENTS.md +40 -0
  343. package/src/apothem/harnesses/codex/templates/hooks.json +127 -0
  344. package/src/apothem/harnesses/codex/uninstall.py +23 -0
  345. package/src/apothem/harnesses/codex/update.py +10 -0
  346. package/src/apothem/harnesses/codex/verify.py +11 -0
  347. package/src/apothem/harnesses/cursor/STANDARD-CONVENTION-PIN.md +79 -0
  348. package/src/apothem/harnesses/cursor/__init__.py +48 -0
  349. package/src/apothem/harnesses/cursor/capabilities.yml +42 -0
  350. package/src/apothem/harnesses/cursor/install.py +38 -0
  351. package/src/apothem/harnesses/cursor/templates/apothem-rules.mdc +40 -0
  352. package/src/apothem/harnesses/cursor/uninstall.py +25 -0
  353. package/src/apothem/harnesses/cursor/update.py +10 -0
  354. package/src/apothem/harnesses/cursor/verify.py +11 -0
  355. package/src/apothem/harnesses/gemini_cli/STANDARD-CONVENTION-PIN.md +102 -0
  356. package/src/apothem/harnesses/gemini_cli/__init__.py +52 -0
  357. package/src/apothem/harnesses/gemini_cli/capabilities.yml +43 -0
  358. package/src/apothem/harnesses/gemini_cli/install.py +43 -0
  359. package/src/apothem/harnesses/gemini_cli/templates/GEMINI.md +38 -0
  360. package/src/apothem/harnesses/gemini_cli/uninstall.py +25 -0
  361. package/src/apothem/harnesses/gemini_cli/update.py +10 -0
  362. package/src/apothem/harnesses/gemini_cli/verify.py +11 -0
  363. package/src/apothem/harnesses/github_copilot/STANDARD-CONVENTION-PIN.md +84 -0
  364. package/src/apothem/harnesses/github_copilot/__init__.py +47 -0
  365. package/src/apothem/harnesses/github_copilot/capabilities.yml +42 -0
  366. package/src/apothem/harnesses/github_copilot/install.py +40 -0
  367. package/src/apothem/harnesses/github_copilot/templates/copilot-instructions.md +33 -0
  368. package/src/apothem/harnesses/github_copilot/uninstall.py +25 -0
  369. package/src/apothem/harnesses/github_copilot/update.py +10 -0
  370. package/src/apothem/harnesses/github_copilot/verify.py +11 -0
  371. package/src/apothem/harnesses/glm/STANDARD-CONVENTION-PIN.md +77 -0
  372. package/src/apothem/harnesses/glm/__init__.py +56 -0
  373. package/src/apothem/harnesses/glm/capabilities.yml +33 -0
  374. package/src/apothem/harnesses/glm/install.py +45 -0
  375. package/src/apothem/harnesses/glm/templates/glm.toml +58 -0
  376. package/src/apothem/harnesses/glm/uninstall.py +25 -0
  377. package/src/apothem/harnesses/glm/update.py +10 -0
  378. package/src/apothem/harnesses/glm/verify.py +11 -0
  379. package/src/apothem/harnesses/hermes/STANDARD-CONVENTION-PIN.md +57 -0
  380. package/src/apothem/harnesses/hermes/__init__.py +33 -0
  381. package/src/apothem/harnesses/hermes/capabilities.yml +36 -0
  382. package/src/apothem/harnesses/hermes/install.py +17 -0
  383. package/src/apothem/harnesses/hermes/materializer.py +35 -0
  384. package/src/apothem/harnesses/hermes/uninstall.py +33 -0
  385. package/src/apothem/harnesses/hermes/update.py +10 -0
  386. package/src/apothem/harnesses/hermes/verify.py +11 -0
  387. package/src/apothem/harnesses/kimi_code/STANDARD-CONVENTION-PIN.md +128 -0
  388. package/src/apothem/harnesses/kimi_code/__init__.py +59 -0
  389. package/src/apothem/harnesses/kimi_code/capabilities.yml +40 -0
  390. package/src/apothem/harnesses/kimi_code/install.py +42 -0
  391. package/src/apothem/harnesses/kimi_code/templates/AGENTS.md +43 -0
  392. package/src/apothem/harnesses/kimi_code/uninstall.py +27 -0
  393. package/src/apothem/harnesses/kimi_code/update.py +10 -0
  394. package/src/apothem/harnesses/kimi_code/verify.py +11 -0
  395. package/src/apothem/harnesses/kiro/STANDARD-CONVENTION-PIN.md +77 -0
  396. package/src/apothem/harnesses/kiro/__init__.py +49 -0
  397. package/src/apothem/harnesses/kiro/capabilities.yml +36 -0
  398. package/src/apothem/harnesses/kiro/install.py +39 -0
  399. package/src/apothem/harnesses/kiro/templates/apothem-rules.md +36 -0
  400. package/src/apothem/harnesses/kiro/uninstall.py +25 -0
  401. package/src/apothem/harnesses/kiro/update.py +10 -0
  402. package/src/apothem/harnesses/kiro/verify.py +11 -0
  403. package/src/apothem/harnesses/open_claw/STANDARD-CONVENTION-PIN.md +62 -0
  404. package/src/apothem/harnesses/open_claw/__init__.py +35 -0
  405. package/src/apothem/harnesses/open_claw/capabilities.yml +35 -0
  406. package/src/apothem/harnesses/open_claw/install.py +17 -0
  407. package/src/apothem/harnesses/open_claw/materializer.py +36 -0
  408. package/src/apothem/harnesses/open_claw/uninstall.py +32 -0
  409. package/src/apothem/harnesses/open_claw/update.py +10 -0
  410. package/src/apothem/harnesses/open_claw/verify.py +11 -0
  411. package/src/apothem/harnesses/opencode/STANDARD-CONVENTION-PIN.md +76 -0
  412. package/src/apothem/harnesses/opencode/__init__.py +35 -0
  413. package/src/apothem/harnesses/opencode/capabilities.yml +43 -0
  414. package/src/apothem/harnesses/opencode/install.py +17 -0
  415. package/src/apothem/harnesses/opencode/materializer.py +31 -0
  416. package/src/apothem/harnesses/opencode/uninstall.py +34 -0
  417. package/src/apothem/harnesses/opencode/update.py +10 -0
  418. package/src/apothem/harnesses/opencode/verify.py +11 -0
  419. package/src/apothem/harnesses/qwen_code/STANDARD-CONVENTION-PIN.md +87 -0
  420. package/src/apothem/harnesses/qwen_code/__init__.py +37 -0
  421. package/src/apothem/harnesses/qwen_code/capabilities.yml +43 -0
  422. package/src/apothem/harnesses/qwen_code/install.py +19 -0
  423. package/src/apothem/harnesses/qwen_code/materializer.py +174 -0
  424. package/src/apothem/harnesses/qwen_code/templates/QWEN.md +30 -0
  425. package/src/apothem/harnesses/qwen_code/uninstall.py +34 -0
  426. package/src/apothem/harnesses/qwen_code/update.py +10 -0
  427. package/src/apothem/harnesses/qwen_code/verify.py +11 -0
  428. package/src/apothem/harnesses/trae/STANDARD-CONVENTION-PIN.md +70 -0
  429. package/src/apothem/harnesses/trae/__init__.py +49 -0
  430. package/src/apothem/harnesses/trae/capabilities.yml +34 -0
  431. package/src/apothem/harnesses/trae/install.py +38 -0
  432. package/src/apothem/harnesses/trae/templates/apothem-rules.md +37 -0
  433. package/src/apothem/harnesses/trae/uninstall.py +25 -0
  434. package/src/apothem/harnesses/trae/update.py +10 -0
  435. package/src/apothem/harnesses/trae/verify.py +11 -0
  436. package/src/apothem/harnesses/windsurf/STANDARD-CONVENTION-PIN.md +91 -0
  437. package/src/apothem/harnesses/windsurf/__init__.py +52 -0
  438. package/src/apothem/harnesses/windsurf/capabilities.yml +40 -0
  439. package/src/apothem/harnesses/windsurf/install.py +41 -0
  440. package/src/apothem/harnesses/windsurf/templates/apothem-rules.md +37 -0
  441. package/src/apothem/harnesses/windsurf/uninstall.py +25 -0
  442. package/src/apothem/harnesses/windsurf/update.py +10 -0
  443. package/src/apothem/harnesses/windsurf/verify.py +11 -0
  444. package/src/apothem/harnesses/zed/STANDARD-CONVENTION-PIN.md +92 -0
  445. package/src/apothem/harnesses/zed/__init__.py +57 -0
  446. package/src/apothem/harnesses/zed/capabilities.yml +38 -0
  447. package/src/apothem/harnesses/zed/install.py +41 -0
  448. package/src/apothem/harnesses/zed/templates/apothem-rules.md +32 -0
  449. package/src/apothem/harnesses/zed/uninstall.py +28 -0
  450. package/src/apothem/harnesses/zed/update.py +10 -0
  451. package/src/apothem/harnesses/zed/verify.py +11 -0
  452. package/src/apothem/hooks/README.md +81 -0
  453. package/src/apothem/hooks/__init__.py +24 -0
  454. package/src/apothem/hooks/askuserquestion_validator.py +380 -0
  455. package/src/apothem/hooks/dispatch.py +296 -0
  456. package/src/apothem/hooks/emit_hook_context.py +444 -0
  457. package/src/apothem/hooks/hooks.json +318 -0
  458. package/src/apothem/hooks/lib/README.md +39 -0
  459. package/src/apothem/hooks/lib/__init__.py +18 -0
  460. package/src/apothem/hooks/lib/bootstrap.ps1 +129 -0
  461. package/src/apothem/hooks/lib/bootstrap.sh +103 -0
  462. package/src/apothem/hooks/lib/events.py +51 -0
  463. package/src/apothem/hooks/lib/find-pwsh.ps1 +78 -0
  464. package/src/apothem/hooks/lib/find-pwsh.sh +76 -0
  465. package/src/apothem/hooks/lib/find-python.ps1 +63 -0
  466. package/src/apothem/hooks/lib/find-python.sh +97 -0
  467. package/src/apothem/hooks/lib/log.py +43 -0
  468. package/src/apothem/hooks/lib/resolve_root.py +264 -0
  469. package/src/apothem/hooks/messages/postcompact.md +14 -0
  470. package/src/apothem/hooks/messages/posttooluse-proactive-compaction.md +46 -0
  471. package/src/apothem/hooks/messages/precompact.md +14 -0
  472. package/src/apothem/hooks/messages/pretooluse-askuserquestion-recommended.md +65 -0
  473. package/src/apothem/hooks/messages/pretooluse-bash-plan-guard.md +97 -0
  474. package/src/apothem/hooks/messages/pretooluse-bash.md +39 -0
  475. package/src/apothem/hooks/messages/pretooluse-conformity.md +70 -0
  476. package/src/apothem/hooks/messages/pretooluse-dependency-guard.md +21 -0
  477. package/src/apothem/hooks/messages/pretooluse-edit-header-guard.md +61 -0
  478. package/src/apothem/hooks/messages/pretooluse-edit.md +21 -0
  479. package/src/apothem/hooks/messages/pretooluse-eval-guard.md +39 -0
  480. package/src/apothem/hooks/messages/pretooluse-notebookedit.md +11 -0
  481. package/src/apothem/hooks/messages/pretooluse-write-header-guard.md +45 -0
  482. package/src/apothem/hooks/messages/pretooluse-write-plan-guard.md +72 -0
  483. package/src/apothem/hooks/messages/pretooluse-write.md +21 -0
  484. package/src/apothem/hooks/messages/sessionstart.md +15 -0
  485. package/src/apothem/hooks/messages/stop.md +27 -0
  486. package/src/apothem/hooks/proactive_compaction_tracker.py +327 -0
  487. package/src/apothem/hooks/session_start_bootstrap.py +472 -0
  488. package/src/apothem/lib/README.md +42 -0
  489. package/src/apothem/lib/__init__.py +13 -0
  490. package/src/apothem/lib/atomic_io.py +189 -0
  491. package/src/apothem/lib/auditor.py +687 -0
  492. package/src/apothem/lib/clean_slate.py +396 -0
  493. package/src/apothem/lib/contexts.py +352 -0
  494. package/src/apothem/lib/data_home.py +255 -0
  495. package/src/apothem/lib/frontmatter.py +101 -0
  496. package/src/apothem/lib/harness_materializer.py +213 -0
  497. package/src/apothem/lib/harness_protocol.py +59 -0
  498. package/src/apothem/lib/harness_registry.py +282 -0
  499. package/src/apothem/lib/harness_registry_data.py +843 -0
  500. package/src/apothem/lib/install_ledger.py +347 -0
  501. package/src/apothem/lib/learning.py +540 -0
  502. package/src/apothem/lib/memory.py +347 -0
  503. package/src/apothem/lib/parallel_sweep.py +234 -0
  504. package/src/apothem/lib/plan_tiers.py +200 -0
  505. package/src/apothem/lib/plugin_bootstrap.py +132 -0
  506. package/src/apothem/lib/plugin_tree.py +599 -0
  507. package/src/apothem/lib/profile.py +755 -0
  508. package/src/apothem/lib/profile_projection.py +198 -0
  509. package/src/apothem/lib/propagation-manifest.yaml +878 -0
  510. package/src/apothem/lib/propagation.py +220 -0
  511. package/src/apothem/lib/python_resolver.py +189 -0
  512. package/src/apothem/lib/reporter.py +62 -0
  513. package/src/apothem/lib/workspace_migration.py +323 -0
  514. package/src/apothem/output-styles/README.md +41 -0
  515. package/src/apothem/output-styles/concise-engineer.md +49 -0
  516. package/src/apothem/output-styles/default-architect.md +52 -0
  517. package/src/apothem/output-styles/default.md +113 -0
  518. package/src/apothem/output-styles/forensic-auditor.md +63 -0
  519. package/src/apothem/py.typed +0 -0
  520. package/src/apothem/rules/README.md +121 -0
  521. package/src/apothem/rules/agent-capability-discipline-matrix.md +89 -0
  522. package/src/apothem/rules/agent-capability-discipline.md +78 -0
  523. package/src/apothem/rules/agent-orchestration-patterns.md +144 -0
  524. package/src/apothem/rules/agent-orchestration.md +65 -0
  525. package/src/apothem/rules/agents-md-convention.md +86 -0
  526. package/src/apothem/rules/agile-sprints-elements.md +135 -0
  527. package/src/apothem/rules/agile-sprints.md +64 -0
  528. package/src/apothem/rules/agnostic-posture-checklist.md +47 -0
  529. package/src/apothem/rules/agnostic-posture.md +48 -0
  530. package/src/apothem/rules/authoritative-referencing-quotation.md +50 -0
  531. package/src/apothem/rules/authoritative-referencing.md +66 -0
  532. package/src/apothem/rules/authority-inquiry-categories.md +58 -0
  533. package/src/apothem/rules/authority-inquiry.md +54 -0
  534. package/src/apothem/rules/auto-memory-topic-files.md +86 -0
  535. package/src/apothem/rules/auto-memory.md +67 -0
  536. package/src/apothem/rules/bidirectional-binding.md +123 -0
  537. package/src/apothem/rules/canonical-layout-reporting-tiers.md +212 -0
  538. package/src/apothem/rules/canonical-layout.md +60 -0
  539. package/src/apothem/rules/clean-architecture-layers.md +186 -0
  540. package/src/apothem/rules/clean-room-generation-protocols.md +124 -0
  541. package/src/apothem/rules/clean-room-generation.md +59 -0
  542. package/src/apothem/rules/code-craft-conventions.md +101 -0
  543. package/src/apothem/rules/code-craft-markdown.md +138 -0
  544. package/src/apothem/rules/code-craft-python.md +154 -0
  545. package/src/apothem/rules/code-craft-shell.md +192 -0
  546. package/src/apothem/rules/cognitive-identity-techniques.md +180 -0
  547. package/src/apothem/rules/cognitive-identity.md +81 -0
  548. package/src/apothem/rules/context-management-budget.md +46 -0
  549. package/src/apothem/rules/context-management-protocol.md +161 -0
  550. package/src/apothem/rules/context-management-scratch.md +128 -0
  551. package/src/apothem/rules/context-management.md +85 -0
  552. package/src/apothem/rules/definitiveness-virtues.md +67 -0
  553. package/src/apothem/rules/definitiveness.md +58 -0
  554. package/src/apothem/rules/determinism.md +81 -0
  555. package/src/apothem/rules/disclosure-ledger-markers.md +58 -0
  556. package/src/apothem/rules/disclosure-ledger.md +52 -0
  557. package/src/apothem/rules/dynamism.md +38 -0
  558. package/src/apothem/rules/etc-extension.md +57 -0
  559. package/src/apothem/rules/expertise-posture-elements.md +68 -0
  560. package/src/apothem/rules/expertise-posture.md +54 -0
  561. package/src/apothem/rules/freshness-facade.md +64 -0
  562. package/src/apothem/rules/harness-adapter-shape-schemas.md +162 -0
  563. package/src/apothem/rules/harness-adapter-shape.md +42 -0
  564. package/src/apothem/rules/host-discovery-manifests.md +50 -0
  565. package/src/apothem/rules/host-discovery.md +56 -0
  566. package/src/apothem/rules/i18n-discipline-locale-cohorts.md +120 -0
  567. package/src/apothem/rules/i18n-discipline.md +70 -0
  568. package/src/apothem/rules/interactive-questions-canonical-shapes.md +590 -0
  569. package/src/apothem/rules/interactive-questions-detail.md +41 -0
  570. package/src/apothem/rules/interactive-questions-sweep-matchers.md +184 -0
  571. package/src/apothem/rules/interactive-questions.md +89 -0
  572. package/src/apothem/rules/large-file-generation.md +112 -0
  573. package/src/apothem/rules/large-file-reading.md +59 -0
  574. package/src/apothem/rules/living-docs.md +85 -0
  575. package/src/apothem/rules/multi-agent-workflow.md +57 -0
  576. package/src/apothem/rules/operational-mandates-expanded.md +78 -0
  577. package/src/apothem/rules/operational-mandates.md +88 -0
  578. package/src/apothem/rules/option-annotation-form.md +60 -0
  579. package/src/apothem/rules/option-annotation.md +45 -0
  580. package/src/apothem/rules/own-voice-reimplementation.md +86 -0
  581. package/src/apothem/rules/performance-discipline.md +91 -0
  582. package/src/apothem/rules/persistent-conventions-vigilance-checklist.md +54 -0
  583. package/src/apothem/rules/persistent-conventions-vigilance.md +61 -0
  584. package/src/apothem/rules/plain-language.md +56 -0
  585. package/src/apothem/rules/planning-techniques.md +130 -0
  586. package/src/apothem/rules/pre-emission-gate-bars.md +86 -0
  587. package/src/apothem/rules/pre-emission-gate.md +54 -0
  588. package/src/apothem/rules/production-ready-prs-surfaces.md +162 -0
  589. package/src/apothem/rules/production-ready-prs.md +83 -0
  590. package/src/apothem/rules/propagation.md +63 -0
  591. package/src/apothem/rules/recommend-next-step.md +106 -0
  592. package/src/apothem/rules/refactoring-discipline.md +76 -0
  593. package/src/apothem/rules/session-closure.md +44 -0
  594. package/src/apothem/rules/sota-elevation-exemplars.md +76 -0
  595. package/src/apothem/rules/sota-elevation.md +52 -0
  596. package/src/apothem/rules/source-accessibility.md +58 -0
  597. package/src/apothem/rules/surgical-manipulation.md +48 -0
  598. package/src/apothem/rules/systemic-participation-relations.md +108 -0
  599. package/src/apothem/rules/systemic-participation.md +70 -0
  600. package/src/apothem/rules/ten-dimension-check-dimensions.md +52 -0
  601. package/src/apothem/rules/ten-dimension-check.md +59 -0
  602. package/src/apothem/rules/token-budget-discipline.md +81 -0
  603. package/src/apothem/rules/token-efficiency-rewrite-protocol.md +79 -0
  604. package/src/apothem/rules/token-efficiency-rewrite.md +77 -0
  605. package/src/apothem/rules/tool-use-discipline.md +48 -0
  606. package/src/apothem/rules/visual-leverage.md +102 -0
  607. package/src/apothem/schemas/NOTICE.md +9 -0
  608. package/src/apothem/schemas/README.md +104 -0
  609. package/src/apothem/schemas/__init__.py +176 -0
  610. package/src/apothem/schemas/advisory-finding.schema.json +111 -0
  611. package/src/apothem/schemas/agent.schema.json +106 -0
  612. package/src/apothem/schemas/authorship-header.txt +1 -0
  613. package/src/apothem/schemas/cohort-manifest.yaml +248 -0
  614. package/src/apothem/schemas/cohort-metadata-vocabulary.yaml +168 -0
  615. package/src/apothem/schemas/cohort.schema.json +113 -0
  616. package/src/apothem/schemas/command.schema.json +68 -0
  617. package/src/apothem/schemas/compatibility-matrix.yaml +432 -0
  618. package/src/apothem/schemas/context-fragment.schema.json +64 -0
  619. package/src/apothem/schemas/freshness-token-denylist.txt +51 -0
  620. package/src/apothem/schemas/handoff-manifest.yaml +353 -0
  621. package/src/apothem/schemas/header-exceptions.txt +141 -0
  622. package/src/apothem/schemas/header-visibility.yaml +39 -0
  623. package/src/apothem/schemas/learning-signal.schema.json +46 -0
  624. package/src/apothem/schemas/memory-record.schema.json +61 -0
  625. package/src/apothem/schemas/output-style.schema.json +40 -0
  626. package/src/apothem/schemas/plan.schema.json +51 -0
  627. package/src/apothem/schemas/plugin.schema.json +83 -0
  628. package/src/apothem/schemas/profile.example.yaml +70 -0
  629. package/src/apothem/schemas/profile.minimal.yaml +6 -0
  630. package/src/apothem/schemas/profile.schema.json +396 -0
  631. package/src/apothem/schemas/reference-token-denylist.txt +25 -0
  632. package/src/apothem/schemas/skill.schema.json +75 -0
  633. package/src/apothem/skills/README.md +93 -0
  634. package/src/apothem/skills/dependency-upgrade/SKILL.md +105 -0
  635. package/src/apothem/skills/dev-toolkit/SKILL.md +120 -0
  636. package/src/apothem/skills/diagram-authoring/SKILL.md +113 -0
  637. package/src/apothem/skills/document-authoring/SKILL.md +118 -0
  638. package/src/apothem/skills/ecosystem-audit/SKILL.md +108 -0
  639. package/src/apothem/skills/ecosystem-audit/references/audit-fortress.md +85 -0
  640. package/src/apothem/skills/ecosystem-audit/references/procedure.md +162 -0
  641. package/src/apothem/skills/eval-harness/SKILL.md +88 -0
  642. package/src/apothem/skills/incident-runbook/SKILL.md +92 -0
  643. package/src/apothem/skills/multi-source-research/SKILL.md +90 -0
  644. package/src/apothem/skills/plan-suite/SKILL.md +118 -0
  645. package/src/apothem/skills/plan-suite/master_template.md +1324 -0
  646. package/src/apothem/skills/projectify/SKILL.md +117 -0
  647. package/src/apothem/skills/prompt-engineering/SKILL.md +122 -0
  648. package/src/apothem/skills/refactor-extract/SKILL.md +85 -0
  649. package/src/apothem/skills/research-suite/SKILL.md +170 -0
  650. package/src/apothem/skills/research-suite/references/directory-structure.md +47 -0
  651. package/src/apothem/skills/research-suite/references/lifecycle.md +67 -0
  652. package/src/apothem/skills/research-suite/references/principal-investigator-framework.md +37 -0
  653. package/src/apothem/skills/research-suite/references/rigor-mandates.md +30 -0
  654. package/src/apothem/skills/research-suite/research_template.md +476 -0
  655. package/src/apothem/skills/secret-rotation/SKILL.md +87 -0
  656. package/src/apothem/skills/source-synthesis/SKILL.md +92 -0
  657. package/src/apothem/skills/surgical-guard/SKILL.md +118 -0
  658. package/src/apothem/skills/test-authoring/SKILL.md +85 -0
  659. package/src/apothem/skills/vuln-triage/SKILL.md +91 -0
  660. package/src/apothem/skills/workflow/SKILL.md +139 -0
  661. package/src/apothem/statuslines/README.md +26 -0
  662. package/src/apothem/statuslines/__init__.py +20 -0
  663. package/src/apothem/statuslines/conformity.json +5 -0
  664. package/src/apothem/statuslines/render.py +334 -0
  665. package/src/apothem/statuslines/statusline.md +50 -0
  666. package/src/apothem/templates/README.md +43 -0
  667. package/src/apothem/templates/agents-md-template.md +80 -0
  668. package/src/apothem/templates/consideration-log.md +39 -0
  669. package/src/apothem/templates/expertise-gap-log.md +56 -0
  670. package/src/apothem/templates/master-index-template.md +93 -0
  671. package/src/apothem/templates/potency-map.md +53 -0
  672. package/src/apothem/templates/preservation-audit.md +60 -0
  673. package/src/apothem/templates/question-resolution-audit.md +52 -0
  674. package/src/apothem/templates/trace-matrix-template.md +77 -0
@@ -0,0 +1,2653 @@
1
+ [
2
+ {
3
+ "description": "Petstore",
4
+ "schema": {
5
+ "title": "A JSON Schema for Swagger 2.0 API.",
6
+ "id": "http://swagger.io/v2/schema.json#",
7
+ "$schema": "http://json-schema.org/draft-04/schema#",
8
+ "type": "object",
9
+ "required": [
10
+ "swagger",
11
+ "info",
12
+ "paths"
13
+ ],
14
+ "additionalProperties": false,
15
+ "patternProperties": {
16
+ "^x-": {
17
+ "$ref": "#/definitions/vendorExtension"
18
+ }
19
+ },
20
+ "properties": {
21
+ "swagger": {
22
+ "type": "string",
23
+ "enum": [
24
+ "2.0"
25
+ ],
26
+ "description": "The Swagger version of this document."
27
+ },
28
+ "info": {
29
+ "$ref": "#/definitions/info"
30
+ },
31
+ "host": {
32
+ "type": "string",
33
+ "pattern": "^[^{}/ :\\\\]+(?::\\d+)?$",
34
+ "description": "The host (name or ip) of the API. Example: 'swagger.io'"
35
+ },
36
+ "basePath": {
37
+ "type": "string",
38
+ "pattern": "^/",
39
+ "description": "The base path to the API. Example: '/api'."
40
+ },
41
+ "schemes": {
42
+ "$ref": "#/definitions/schemesList"
43
+ },
44
+ "consumes": {
45
+ "description": "A list of MIME types accepted by the API.",
46
+ "allOf": [
47
+ {
48
+ "$ref": "#/definitions/mediaTypeList"
49
+ }
50
+ ]
51
+ },
52
+ "produces": {
53
+ "description": "A list of MIME types the API can produce.",
54
+ "allOf": [
55
+ {
56
+ "$ref": "#/definitions/mediaTypeList"
57
+ }
58
+ ]
59
+ },
60
+ "paths": {
61
+ "$ref": "#/definitions/paths"
62
+ },
63
+ "definitions": {
64
+ "$ref": "#/definitions/definitions"
65
+ },
66
+ "parameters": {
67
+ "$ref": "#/definitions/parameterDefinitions"
68
+ },
69
+ "responses": {
70
+ "$ref": "#/definitions/responseDefinitions"
71
+ },
72
+ "security": {
73
+ "$ref": "#/definitions/security"
74
+ },
75
+ "securityDefinitions": {
76
+ "$ref": "#/definitions/securityDefinitions"
77
+ },
78
+ "tags": {
79
+ "type": "array",
80
+ "items": {
81
+ "$ref": "#/definitions/tag"
82
+ },
83
+ "uniqueItems": true
84
+ },
85
+ "externalDocs": {
86
+ "$ref": "#/definitions/externalDocs"
87
+ }
88
+ },
89
+ "definitions": {
90
+ "info": {
91
+ "type": "object",
92
+ "description": "General information about the API.",
93
+ "required": [
94
+ "version",
95
+ "title"
96
+ ],
97
+ "additionalProperties": false,
98
+ "patternProperties": {
99
+ "^x-": {
100
+ "$ref": "#/definitions/vendorExtension"
101
+ }
102
+ },
103
+ "properties": {
104
+ "title": {
105
+ "type": "string",
106
+ "description": "A unique and precise title of the API."
107
+ },
108
+ "version": {
109
+ "type": "string",
110
+ "description": "A semantic version number of the API."
111
+ },
112
+ "description": {
113
+ "type": "string",
114
+ "description": "A longer description of the API. Should be different from the title. GitHub Flavored Markdown is allowed."
115
+ },
116
+ "termsOfService": {
117
+ "type": "string",
118
+ "description": "The terms of service for the API."
119
+ },
120
+ "contact": {
121
+ "$ref": "#/definitions/contact"
122
+ },
123
+ "license": {
124
+ "$ref": "#/definitions/license"
125
+ }
126
+ }
127
+ },
128
+ "contact": {
129
+ "type": "object",
130
+ "description": "Contact information for the owners of the API.",
131
+ "additionalProperties": false,
132
+ "properties": {
133
+ "name": {
134
+ "type": "string",
135
+ "description": "The identifying name of the contact person/organization."
136
+ },
137
+ "url": {
138
+ "type": "string",
139
+ "description": "The URL pointing to the contact information.",
140
+ "format": "uri"
141
+ },
142
+ "email": {
143
+ "type": "string",
144
+ "description": "The email address of the contact person/organization.",
145
+ "format": "email"
146
+ }
147
+ },
148
+ "patternProperties": {
149
+ "^x-": {
150
+ "$ref": "#/definitions/vendorExtension"
151
+ }
152
+ }
153
+ },
154
+ "license": {
155
+ "type": "object",
156
+ "required": [
157
+ "name"
158
+ ],
159
+ "additionalProperties": false,
160
+ "properties": {
161
+ "name": {
162
+ "type": "string",
163
+ "description": "The name of the license type. It's encouraged to use an OSI compatible license."
164
+ },
165
+ "url": {
166
+ "type": "string",
167
+ "description": "The URL pointing to the license.",
168
+ "format": "uri"
169
+ }
170
+ },
171
+ "patternProperties": {
172
+ "^x-": {
173
+ "$ref": "#/definitions/vendorExtension"
174
+ }
175
+ }
176
+ },
177
+ "paths": {
178
+ "type": "object",
179
+ "description": "Relative paths to the individual endpoints. They must be relative to the 'basePath'.",
180
+ "patternProperties": {
181
+ "^x-": {
182
+ "$ref": "#/definitions/vendorExtension"
183
+ },
184
+ "^/": {
185
+ "$ref": "#/definitions/pathItem"
186
+ }
187
+ },
188
+ "additionalProperties": false
189
+ },
190
+ "definitions": {
191
+ "type": "object",
192
+ "additionalProperties": {
193
+ "$ref": "#/definitions/schema"
194
+ },
195
+ "description": "One or more JSON objects describing the schemas being consumed and produced by the API."
196
+ },
197
+ "parameterDefinitions": {
198
+ "type": "object",
199
+ "additionalProperties": {
200
+ "$ref": "#/definitions/parameter"
201
+ },
202
+ "description": "One or more JSON representations for parameters"
203
+ },
204
+ "responseDefinitions": {
205
+ "type": "object",
206
+ "additionalProperties": {
207
+ "$ref": "#/definitions/response"
208
+ },
209
+ "description": "One or more JSON representations for parameters"
210
+ },
211
+ "externalDocs": {
212
+ "type": "object",
213
+ "additionalProperties": false,
214
+ "description": "information about external documentation",
215
+ "required": [
216
+ "url"
217
+ ],
218
+ "properties": {
219
+ "description": {
220
+ "type": "string"
221
+ },
222
+ "url": {
223
+ "type": "string",
224
+ "format": "uri"
225
+ }
226
+ },
227
+ "patternProperties": {
228
+ "^x-": {
229
+ "$ref": "#/definitions/vendorExtension"
230
+ }
231
+ }
232
+ },
233
+ "examples": {
234
+ "type": "object",
235
+ "additionalProperties": true
236
+ },
237
+ "mimeType": {
238
+ "type": "string",
239
+ "description": "The MIME type of the HTTP message."
240
+ },
241
+ "operation": {
242
+ "type": "object",
243
+ "required": [
244
+ "responses"
245
+ ],
246
+ "additionalProperties": false,
247
+ "patternProperties": {
248
+ "^x-": {
249
+ "$ref": "#/definitions/vendorExtension"
250
+ }
251
+ },
252
+ "properties": {
253
+ "tags": {
254
+ "type": "array",
255
+ "items": {
256
+ "type": "string"
257
+ },
258
+ "uniqueItems": true
259
+ },
260
+ "summary": {
261
+ "type": "string",
262
+ "description": "A brief summary of the operation."
263
+ },
264
+ "description": {
265
+ "type": "string",
266
+ "description": "A longer description of the operation, GitHub Flavored Markdown is allowed."
267
+ },
268
+ "externalDocs": {
269
+ "$ref": "#/definitions/externalDocs"
270
+ },
271
+ "operationId": {
272
+ "type": "string",
273
+ "description": "A unique identifier of the operation."
274
+ },
275
+ "produces": {
276
+ "description": "A list of MIME types the API can produce.",
277
+ "allOf": [
278
+ {
279
+ "$ref": "#/definitions/mediaTypeList"
280
+ }
281
+ ]
282
+ },
283
+ "consumes": {
284
+ "description": "A list of MIME types the API can consume.",
285
+ "allOf": [
286
+ {
287
+ "$ref": "#/definitions/mediaTypeList"
288
+ }
289
+ ]
290
+ },
291
+ "parameters": {
292
+ "$ref": "#/definitions/parametersList"
293
+ },
294
+ "responses": {
295
+ "$ref": "#/definitions/responses"
296
+ },
297
+ "schemes": {
298
+ "$ref": "#/definitions/schemesList"
299
+ },
300
+ "deprecated": {
301
+ "type": "boolean",
302
+ "default": false
303
+ },
304
+ "security": {
305
+ "$ref": "#/definitions/security"
306
+ }
307
+ }
308
+ },
309
+ "pathItem": {
310
+ "type": "object",
311
+ "additionalProperties": false,
312
+ "patternProperties": {
313
+ "^x-": {
314
+ "$ref": "#/definitions/vendorExtension"
315
+ }
316
+ },
317
+ "properties": {
318
+ "$ref": {
319
+ "type": "string"
320
+ },
321
+ "get": {
322
+ "$ref": "#/definitions/operation"
323
+ },
324
+ "put": {
325
+ "$ref": "#/definitions/operation"
326
+ },
327
+ "post": {
328
+ "$ref": "#/definitions/operation"
329
+ },
330
+ "delete": {
331
+ "$ref": "#/definitions/operation"
332
+ },
333
+ "options": {
334
+ "$ref": "#/definitions/operation"
335
+ },
336
+ "head": {
337
+ "$ref": "#/definitions/operation"
338
+ },
339
+ "patch": {
340
+ "$ref": "#/definitions/operation"
341
+ },
342
+ "parameters": {
343
+ "$ref": "#/definitions/parametersList"
344
+ }
345
+ }
346
+ },
347
+ "responses": {
348
+ "type": "object",
349
+ "description": "Response objects names can either be any valid HTTP status code or 'default'.",
350
+ "minProperties": 1,
351
+ "additionalProperties": false,
352
+ "patternProperties": {
353
+ "^([0-9]{3})$|^(default)$": {
354
+ "$ref": "#/definitions/responseValue"
355
+ },
356
+ "^x-": {
357
+ "$ref": "#/definitions/vendorExtension"
358
+ }
359
+ },
360
+ "not": {
361
+ "type": "object",
362
+ "additionalProperties": false,
363
+ "patternProperties": {
364
+ "^x-": {
365
+ "$ref": "#/definitions/vendorExtension"
366
+ }
367
+ }
368
+ }
369
+ },
370
+ "responseValue": {
371
+ "oneOf": [
372
+ {
373
+ "$ref": "#/definitions/response"
374
+ },
375
+ {
376
+ "$ref": "#/definitions/jsonReference"
377
+ }
378
+ ]
379
+ },
380
+ "response": {
381
+ "type": "object",
382
+ "required": [
383
+ "description"
384
+ ],
385
+ "properties": {
386
+ "description": {
387
+ "type": "string"
388
+ },
389
+ "schema": {
390
+ "oneOf": [
391
+ {
392
+ "$ref": "#/definitions/schema"
393
+ },
394
+ {
395
+ "$ref": "#/definitions/fileSchema"
396
+ }
397
+ ]
398
+ },
399
+ "headers": {
400
+ "$ref": "#/definitions/headers"
401
+ },
402
+ "examples": {
403
+ "$ref": "#/definitions/examples"
404
+ }
405
+ },
406
+ "additionalProperties": false,
407
+ "patternProperties": {
408
+ "^x-": {
409
+ "$ref": "#/definitions/vendorExtension"
410
+ }
411
+ }
412
+ },
413
+ "headers": {
414
+ "type": "object",
415
+ "additionalProperties": {
416
+ "$ref": "#/definitions/header"
417
+ }
418
+ },
419
+ "header": {
420
+ "type": "object",
421
+ "additionalProperties": false,
422
+ "required": [
423
+ "type"
424
+ ],
425
+ "properties": {
426
+ "type": {
427
+ "type": "string",
428
+ "enum": [
429
+ "string",
430
+ "number",
431
+ "integer",
432
+ "boolean",
433
+ "array"
434
+ ]
435
+ },
436
+ "format": {
437
+ "type": "string"
438
+ },
439
+ "items": {
440
+ "$ref": "#/definitions/primitivesItems"
441
+ },
442
+ "collectionFormat": {
443
+ "$ref": "#/definitions/collectionFormat"
444
+ },
445
+ "default": {
446
+ "$ref": "#/definitions/default"
447
+ },
448
+ "maximum": {
449
+ "$ref": "#/definitions/maximum"
450
+ },
451
+ "exclusiveMaximum": {
452
+ "$ref": "#/definitions/exclusiveMaximum"
453
+ },
454
+ "minimum": {
455
+ "$ref": "#/definitions/minimum"
456
+ },
457
+ "exclusiveMinimum": {
458
+ "$ref": "#/definitions/exclusiveMinimum"
459
+ },
460
+ "maxLength": {
461
+ "$ref": "#/definitions/maxLength"
462
+ },
463
+ "minLength": {
464
+ "$ref": "#/definitions/minLength"
465
+ },
466
+ "pattern": {
467
+ "$ref": "#/definitions/pattern"
468
+ },
469
+ "maxItems": {
470
+ "$ref": "#/definitions/maxItems"
471
+ },
472
+ "minItems": {
473
+ "$ref": "#/definitions/minItems"
474
+ },
475
+ "uniqueItems": {
476
+ "$ref": "#/definitions/uniqueItems"
477
+ },
478
+ "enum": {
479
+ "$ref": "#/definitions/enum"
480
+ },
481
+ "multipleOf": {
482
+ "$ref": "#/definitions/multipleOf"
483
+ },
484
+ "description": {
485
+ "type": "string"
486
+ }
487
+ },
488
+ "patternProperties": {
489
+ "^x-": {
490
+ "$ref": "#/definitions/vendorExtension"
491
+ }
492
+ }
493
+ },
494
+ "vendorExtension": {
495
+ "description": "Any property starting with x- is valid.",
496
+ "additionalProperties": true,
497
+ "additionalItems": true
498
+ },
499
+ "bodyParameter": {
500
+ "type": "object",
501
+ "required": [
502
+ "name",
503
+ "in",
504
+ "schema"
505
+ ],
506
+ "patternProperties": {
507
+ "^x-": {
508
+ "$ref": "#/definitions/vendorExtension"
509
+ }
510
+ },
511
+ "properties": {
512
+ "description": {
513
+ "type": "string",
514
+ "description": "A brief description of the parameter. This could contain examples of use. GitHub Flavored Markdown is allowed."
515
+ },
516
+ "name": {
517
+ "type": "string",
518
+ "description": "The name of the parameter."
519
+ },
520
+ "in": {
521
+ "type": "string",
522
+ "description": "Determines the location of the parameter.",
523
+ "enum": [
524
+ "body"
525
+ ]
526
+ },
527
+ "required": {
528
+ "type": "boolean",
529
+ "description": "Determines whether or not this parameter is required or optional.",
530
+ "default": false
531
+ },
532
+ "schema": {
533
+ "$ref": "#/definitions/schema"
534
+ }
535
+ },
536
+ "additionalProperties": false
537
+ },
538
+ "headerParameterSubSchema": {
539
+ "additionalProperties": false,
540
+ "patternProperties": {
541
+ "^x-": {
542
+ "$ref": "#/definitions/vendorExtension"
543
+ }
544
+ },
545
+ "properties": {
546
+ "required": {
547
+ "type": "boolean",
548
+ "description": "Determines whether or not this parameter is required or optional.",
549
+ "default": false
550
+ },
551
+ "in": {
552
+ "type": "string",
553
+ "description": "Determines the location of the parameter.",
554
+ "enum": [
555
+ "header"
556
+ ]
557
+ },
558
+ "description": {
559
+ "type": "string",
560
+ "description": "A brief description of the parameter. This could contain examples of use. GitHub Flavored Markdown is allowed."
561
+ },
562
+ "name": {
563
+ "type": "string",
564
+ "description": "The name of the parameter."
565
+ },
566
+ "type": {
567
+ "type": "string",
568
+ "enum": [
569
+ "string",
570
+ "number",
571
+ "boolean",
572
+ "integer",
573
+ "array"
574
+ ]
575
+ },
576
+ "format": {
577
+ "type": "string"
578
+ },
579
+ "items": {
580
+ "$ref": "#/definitions/primitivesItems"
581
+ },
582
+ "collectionFormat": {
583
+ "$ref": "#/definitions/collectionFormat"
584
+ },
585
+ "default": {
586
+ "$ref": "#/definitions/default"
587
+ },
588
+ "maximum": {
589
+ "$ref": "#/definitions/maximum"
590
+ },
591
+ "exclusiveMaximum": {
592
+ "$ref": "#/definitions/exclusiveMaximum"
593
+ },
594
+ "minimum": {
595
+ "$ref": "#/definitions/minimum"
596
+ },
597
+ "exclusiveMinimum": {
598
+ "$ref": "#/definitions/exclusiveMinimum"
599
+ },
600
+ "maxLength": {
601
+ "$ref": "#/definitions/maxLength"
602
+ },
603
+ "minLength": {
604
+ "$ref": "#/definitions/minLength"
605
+ },
606
+ "pattern": {
607
+ "$ref": "#/definitions/pattern"
608
+ },
609
+ "maxItems": {
610
+ "$ref": "#/definitions/maxItems"
611
+ },
612
+ "minItems": {
613
+ "$ref": "#/definitions/minItems"
614
+ },
615
+ "uniqueItems": {
616
+ "$ref": "#/definitions/uniqueItems"
617
+ },
618
+ "enum": {
619
+ "$ref": "#/definitions/enum"
620
+ },
621
+ "multipleOf": {
622
+ "$ref": "#/definitions/multipleOf"
623
+ }
624
+ }
625
+ },
626
+ "queryParameterSubSchema": {
627
+ "additionalProperties": false,
628
+ "patternProperties": {
629
+ "^x-": {
630
+ "$ref": "#/definitions/vendorExtension"
631
+ }
632
+ },
633
+ "properties": {
634
+ "required": {
635
+ "type": "boolean",
636
+ "description": "Determines whether or not this parameter is required or optional.",
637
+ "default": false
638
+ },
639
+ "in": {
640
+ "type": "string",
641
+ "description": "Determines the location of the parameter.",
642
+ "enum": [
643
+ "query"
644
+ ]
645
+ },
646
+ "description": {
647
+ "type": "string",
648
+ "description": "A brief description of the parameter. This could contain examples of use. GitHub Flavored Markdown is allowed."
649
+ },
650
+ "name": {
651
+ "type": "string",
652
+ "description": "The name of the parameter."
653
+ },
654
+ "allowEmptyValue": {
655
+ "type": "boolean",
656
+ "default": false,
657
+ "description": "allows sending a parameter by name only or with an empty value."
658
+ },
659
+ "type": {
660
+ "type": "string",
661
+ "enum": [
662
+ "string",
663
+ "number",
664
+ "boolean",
665
+ "integer",
666
+ "array"
667
+ ]
668
+ },
669
+ "format": {
670
+ "type": "string"
671
+ },
672
+ "items": {
673
+ "$ref": "#/definitions/primitivesItems"
674
+ },
675
+ "collectionFormat": {
676
+ "$ref": "#/definitions/collectionFormatWithMulti"
677
+ },
678
+ "default": {
679
+ "$ref": "#/definitions/default"
680
+ },
681
+ "maximum": {
682
+ "$ref": "#/definitions/maximum"
683
+ },
684
+ "exclusiveMaximum": {
685
+ "$ref": "#/definitions/exclusiveMaximum"
686
+ },
687
+ "minimum": {
688
+ "$ref": "#/definitions/minimum"
689
+ },
690
+ "exclusiveMinimum": {
691
+ "$ref": "#/definitions/exclusiveMinimum"
692
+ },
693
+ "maxLength": {
694
+ "$ref": "#/definitions/maxLength"
695
+ },
696
+ "minLength": {
697
+ "$ref": "#/definitions/minLength"
698
+ },
699
+ "pattern": {
700
+ "$ref": "#/definitions/pattern"
701
+ },
702
+ "maxItems": {
703
+ "$ref": "#/definitions/maxItems"
704
+ },
705
+ "minItems": {
706
+ "$ref": "#/definitions/minItems"
707
+ },
708
+ "uniqueItems": {
709
+ "$ref": "#/definitions/uniqueItems"
710
+ },
711
+ "enum": {
712
+ "$ref": "#/definitions/enum"
713
+ },
714
+ "multipleOf": {
715
+ "$ref": "#/definitions/multipleOf"
716
+ }
717
+ }
718
+ },
719
+ "formDataParameterSubSchema": {
720
+ "additionalProperties": false,
721
+ "patternProperties": {
722
+ "^x-": {
723
+ "$ref": "#/definitions/vendorExtension"
724
+ }
725
+ },
726
+ "properties": {
727
+ "required": {
728
+ "type": "boolean",
729
+ "description": "Determines whether or not this parameter is required or optional.",
730
+ "default": false
731
+ },
732
+ "in": {
733
+ "type": "string",
734
+ "description": "Determines the location of the parameter.",
735
+ "enum": [
736
+ "formData"
737
+ ]
738
+ },
739
+ "description": {
740
+ "type": "string",
741
+ "description": "A brief description of the parameter. This could contain examples of use. GitHub Flavored Markdown is allowed."
742
+ },
743
+ "name": {
744
+ "type": "string",
745
+ "description": "The name of the parameter."
746
+ },
747
+ "allowEmptyValue": {
748
+ "type": "boolean",
749
+ "default": false,
750
+ "description": "allows sending a parameter by name only or with an empty value."
751
+ },
752
+ "type": {
753
+ "type": "string",
754
+ "enum": [
755
+ "string",
756
+ "number",
757
+ "boolean",
758
+ "integer",
759
+ "array",
760
+ "file"
761
+ ]
762
+ },
763
+ "format": {
764
+ "type": "string"
765
+ },
766
+ "items": {
767
+ "$ref": "#/definitions/primitivesItems"
768
+ },
769
+ "collectionFormat": {
770
+ "$ref": "#/definitions/collectionFormatWithMulti"
771
+ },
772
+ "default": {
773
+ "$ref": "#/definitions/default"
774
+ },
775
+ "maximum": {
776
+ "$ref": "#/definitions/maximum"
777
+ },
778
+ "exclusiveMaximum": {
779
+ "$ref": "#/definitions/exclusiveMaximum"
780
+ },
781
+ "minimum": {
782
+ "$ref": "#/definitions/minimum"
783
+ },
784
+ "exclusiveMinimum": {
785
+ "$ref": "#/definitions/exclusiveMinimum"
786
+ },
787
+ "maxLength": {
788
+ "$ref": "#/definitions/maxLength"
789
+ },
790
+ "minLength": {
791
+ "$ref": "#/definitions/minLength"
792
+ },
793
+ "pattern": {
794
+ "$ref": "#/definitions/pattern"
795
+ },
796
+ "maxItems": {
797
+ "$ref": "#/definitions/maxItems"
798
+ },
799
+ "minItems": {
800
+ "$ref": "#/definitions/minItems"
801
+ },
802
+ "uniqueItems": {
803
+ "$ref": "#/definitions/uniqueItems"
804
+ },
805
+ "enum": {
806
+ "$ref": "#/definitions/enum"
807
+ },
808
+ "multipleOf": {
809
+ "$ref": "#/definitions/multipleOf"
810
+ }
811
+ }
812
+ },
813
+ "pathParameterSubSchema": {
814
+ "additionalProperties": false,
815
+ "patternProperties": {
816
+ "^x-": {
817
+ "$ref": "#/definitions/vendorExtension"
818
+ }
819
+ },
820
+ "required": [
821
+ "required"
822
+ ],
823
+ "properties": {
824
+ "required": {
825
+ "type": "boolean",
826
+ "enum": [
827
+ true
828
+ ],
829
+ "description": "Determines whether or not this parameter is required or optional."
830
+ },
831
+ "in": {
832
+ "type": "string",
833
+ "description": "Determines the location of the parameter.",
834
+ "enum": [
835
+ "path"
836
+ ]
837
+ },
838
+ "description": {
839
+ "type": "string",
840
+ "description": "A brief description of the parameter. This could contain examples of use. GitHub Flavored Markdown is allowed."
841
+ },
842
+ "name": {
843
+ "type": "string",
844
+ "description": "The name of the parameter."
845
+ },
846
+ "type": {
847
+ "type": "string",
848
+ "enum": [
849
+ "string",
850
+ "number",
851
+ "boolean",
852
+ "integer",
853
+ "array"
854
+ ]
855
+ },
856
+ "format": {
857
+ "type": "string"
858
+ },
859
+ "items": {
860
+ "$ref": "#/definitions/primitivesItems"
861
+ },
862
+ "collectionFormat": {
863
+ "$ref": "#/definitions/collectionFormat"
864
+ },
865
+ "default": {
866
+ "$ref": "#/definitions/default"
867
+ },
868
+ "maximum": {
869
+ "$ref": "#/definitions/maximum"
870
+ },
871
+ "exclusiveMaximum": {
872
+ "$ref": "#/definitions/exclusiveMaximum"
873
+ },
874
+ "minimum": {
875
+ "$ref": "#/definitions/minimum"
876
+ },
877
+ "exclusiveMinimum": {
878
+ "$ref": "#/definitions/exclusiveMinimum"
879
+ },
880
+ "maxLength": {
881
+ "$ref": "#/definitions/maxLength"
882
+ },
883
+ "minLength": {
884
+ "$ref": "#/definitions/minLength"
885
+ },
886
+ "pattern": {
887
+ "$ref": "#/definitions/pattern"
888
+ },
889
+ "maxItems": {
890
+ "$ref": "#/definitions/maxItems"
891
+ },
892
+ "minItems": {
893
+ "$ref": "#/definitions/minItems"
894
+ },
895
+ "uniqueItems": {
896
+ "$ref": "#/definitions/uniqueItems"
897
+ },
898
+ "enum": {
899
+ "$ref": "#/definitions/enum"
900
+ },
901
+ "multipleOf": {
902
+ "$ref": "#/definitions/multipleOf"
903
+ }
904
+ }
905
+ },
906
+ "nonBodyParameter": {
907
+ "type": "object",
908
+ "required": [
909
+ "name",
910
+ "in",
911
+ "type"
912
+ ],
913
+ "oneOf": [
914
+ {
915
+ "$ref": "#/definitions/headerParameterSubSchema"
916
+ },
917
+ {
918
+ "$ref": "#/definitions/formDataParameterSubSchema"
919
+ },
920
+ {
921
+ "$ref": "#/definitions/queryParameterSubSchema"
922
+ },
923
+ {
924
+ "$ref": "#/definitions/pathParameterSubSchema"
925
+ }
926
+ ]
927
+ },
928
+ "parameter": {
929
+ "oneOf": [
930
+ {
931
+ "$ref": "#/definitions/bodyParameter"
932
+ },
933
+ {
934
+ "$ref": "#/definitions/nonBodyParameter"
935
+ }
936
+ ]
937
+ },
938
+ "schema": {
939
+ "type": "object",
940
+ "description": "A deterministic version of a JSON Schema object.",
941
+ "patternProperties": {
942
+ "^x-": {
943
+ "$ref": "#/definitions/vendorExtension"
944
+ }
945
+ },
946
+ "properties": {
947
+ "$ref": {
948
+ "type": "string"
949
+ },
950
+ "format": {
951
+ "type": "string"
952
+ },
953
+ "title": {
954
+ "$ref": "http://json-schema.org/draft-04/schema#/properties/title"
955
+ },
956
+ "description": {
957
+ "$ref": "http://json-schema.org/draft-04/schema#/properties/description"
958
+ },
959
+ "default": {
960
+ "$ref": "http://json-schema.org/draft-04/schema#/properties/default"
961
+ },
962
+ "multipleOf": {
963
+ "$ref": "http://json-schema.org/draft-04/schema#/properties/multipleOf"
964
+ },
965
+ "maximum": {
966
+ "$ref": "http://json-schema.org/draft-04/schema#/properties/maximum"
967
+ },
968
+ "exclusiveMaximum": {
969
+ "$ref": "http://json-schema.org/draft-04/schema#/properties/exclusiveMaximum"
970
+ },
971
+ "minimum": {
972
+ "$ref": "http://json-schema.org/draft-04/schema#/properties/minimum"
973
+ },
974
+ "exclusiveMinimum": {
975
+ "$ref": "http://json-schema.org/draft-04/schema#/properties/exclusiveMinimum"
976
+ },
977
+ "maxLength": {
978
+ "$ref": "http://json-schema.org/draft-04/schema#/definitions/positiveInteger"
979
+ },
980
+ "minLength": {
981
+ "$ref": "http://json-schema.org/draft-04/schema#/definitions/positiveIntegerDefault0"
982
+ },
983
+ "pattern": {
984
+ "$ref": "http://json-schema.org/draft-04/schema#/properties/pattern"
985
+ },
986
+ "maxItems": {
987
+ "$ref": "http://json-schema.org/draft-04/schema#/definitions/positiveInteger"
988
+ },
989
+ "minItems": {
990
+ "$ref": "http://json-schema.org/draft-04/schema#/definitions/positiveIntegerDefault0"
991
+ },
992
+ "uniqueItems": {
993
+ "$ref": "http://json-schema.org/draft-04/schema#/properties/uniqueItems"
994
+ },
995
+ "maxProperties": {
996
+ "$ref": "http://json-schema.org/draft-04/schema#/definitions/positiveInteger"
997
+ },
998
+ "minProperties": {
999
+ "$ref": "http://json-schema.org/draft-04/schema#/definitions/positiveIntegerDefault0"
1000
+ },
1001
+ "required": {
1002
+ "$ref": "http://json-schema.org/draft-04/schema#/definitions/stringArray"
1003
+ },
1004
+ "enum": {
1005
+ "$ref": "http://json-schema.org/draft-04/schema#/properties/enum"
1006
+ },
1007
+ "additionalProperties": {
1008
+ "anyOf": [
1009
+ {
1010
+ "$ref": "#/definitions/schema"
1011
+ },
1012
+ {
1013
+ "type": "boolean"
1014
+ }
1015
+ ],
1016
+ "default": {}
1017
+ },
1018
+ "type": {
1019
+ "$ref": "http://json-schema.org/draft-04/schema#/properties/type"
1020
+ },
1021
+ "items": {
1022
+ "anyOf": [
1023
+ {
1024
+ "$ref": "#/definitions/schema"
1025
+ },
1026
+ {
1027
+ "type": "array",
1028
+ "minItems": 1,
1029
+ "items": {
1030
+ "$ref": "#/definitions/schema"
1031
+ }
1032
+ }
1033
+ ],
1034
+ "default": {}
1035
+ },
1036
+ "allOf": {
1037
+ "type": "array",
1038
+ "minItems": 1,
1039
+ "items": {
1040
+ "$ref": "#/definitions/schema"
1041
+ }
1042
+ },
1043
+ "properties": {
1044
+ "type": "object",
1045
+ "additionalProperties": {
1046
+ "$ref": "#/definitions/schema"
1047
+ },
1048
+ "default": {}
1049
+ },
1050
+ "discriminator": {
1051
+ "type": "string"
1052
+ },
1053
+ "readOnly": {
1054
+ "type": "boolean",
1055
+ "default": false
1056
+ },
1057
+ "xml": {
1058
+ "$ref": "#/definitions/xml"
1059
+ },
1060
+ "externalDocs": {
1061
+ "$ref": "#/definitions/externalDocs"
1062
+ },
1063
+ "example": {}
1064
+ },
1065
+ "additionalProperties": false
1066
+ },
1067
+ "fileSchema": {
1068
+ "type": "object",
1069
+ "description": "A deterministic version of a JSON Schema object.",
1070
+ "patternProperties": {
1071
+ "^x-": {
1072
+ "$ref": "#/definitions/vendorExtension"
1073
+ }
1074
+ },
1075
+ "required": [
1076
+ "type"
1077
+ ],
1078
+ "properties": {
1079
+ "format": {
1080
+ "type": "string"
1081
+ },
1082
+ "title": {
1083
+ "$ref": "http://json-schema.org/draft-04/schema#/properties/title"
1084
+ },
1085
+ "description": {
1086
+ "$ref": "http://json-schema.org/draft-04/schema#/properties/description"
1087
+ },
1088
+ "default": {
1089
+ "$ref": "http://json-schema.org/draft-04/schema#/properties/default"
1090
+ },
1091
+ "required": {
1092
+ "$ref": "http://json-schema.org/draft-04/schema#/definitions/stringArray"
1093
+ },
1094
+ "type": {
1095
+ "type": "string",
1096
+ "enum": [
1097
+ "file"
1098
+ ]
1099
+ },
1100
+ "readOnly": {
1101
+ "type": "boolean",
1102
+ "default": false
1103
+ },
1104
+ "externalDocs": {
1105
+ "$ref": "#/definitions/externalDocs"
1106
+ },
1107
+ "example": {}
1108
+ },
1109
+ "additionalProperties": false
1110
+ },
1111
+ "primitivesItems": {
1112
+ "type": "object",
1113
+ "additionalProperties": false,
1114
+ "properties": {
1115
+ "type": {
1116
+ "type": "string",
1117
+ "enum": [
1118
+ "string",
1119
+ "number",
1120
+ "integer",
1121
+ "boolean",
1122
+ "array"
1123
+ ]
1124
+ },
1125
+ "format": {
1126
+ "type": "string"
1127
+ },
1128
+ "items": {
1129
+ "$ref": "#/definitions/primitivesItems"
1130
+ },
1131
+ "collectionFormat": {
1132
+ "$ref": "#/definitions/collectionFormat"
1133
+ },
1134
+ "default": {
1135
+ "$ref": "#/definitions/default"
1136
+ },
1137
+ "maximum": {
1138
+ "$ref": "#/definitions/maximum"
1139
+ },
1140
+ "exclusiveMaximum": {
1141
+ "$ref": "#/definitions/exclusiveMaximum"
1142
+ },
1143
+ "minimum": {
1144
+ "$ref": "#/definitions/minimum"
1145
+ },
1146
+ "exclusiveMinimum": {
1147
+ "$ref": "#/definitions/exclusiveMinimum"
1148
+ },
1149
+ "maxLength": {
1150
+ "$ref": "#/definitions/maxLength"
1151
+ },
1152
+ "minLength": {
1153
+ "$ref": "#/definitions/minLength"
1154
+ },
1155
+ "pattern": {
1156
+ "$ref": "#/definitions/pattern"
1157
+ },
1158
+ "maxItems": {
1159
+ "$ref": "#/definitions/maxItems"
1160
+ },
1161
+ "minItems": {
1162
+ "$ref": "#/definitions/minItems"
1163
+ },
1164
+ "uniqueItems": {
1165
+ "$ref": "#/definitions/uniqueItems"
1166
+ },
1167
+ "enum": {
1168
+ "$ref": "#/definitions/enum"
1169
+ },
1170
+ "multipleOf": {
1171
+ "$ref": "#/definitions/multipleOf"
1172
+ }
1173
+ },
1174
+ "patternProperties": {
1175
+ "^x-": {
1176
+ "$ref": "#/definitions/vendorExtension"
1177
+ }
1178
+ }
1179
+ },
1180
+ "security": {
1181
+ "type": "array",
1182
+ "items": {
1183
+ "$ref": "#/definitions/securityRequirement"
1184
+ },
1185
+ "uniqueItems": true
1186
+ },
1187
+ "securityRequirement": {
1188
+ "type": "object",
1189
+ "additionalProperties": {
1190
+ "type": "array",
1191
+ "items": {
1192
+ "type": "string"
1193
+ },
1194
+ "uniqueItems": true
1195
+ }
1196
+ },
1197
+ "xml": {
1198
+ "type": "object",
1199
+ "additionalProperties": false,
1200
+ "properties": {
1201
+ "name": {
1202
+ "type": "string"
1203
+ },
1204
+ "namespace": {
1205
+ "type": "string"
1206
+ },
1207
+ "prefix": {
1208
+ "type": "string"
1209
+ },
1210
+ "attribute": {
1211
+ "type": "boolean",
1212
+ "default": false
1213
+ },
1214
+ "wrapped": {
1215
+ "type": "boolean",
1216
+ "default": false
1217
+ }
1218
+ },
1219
+ "patternProperties": {
1220
+ "^x-": {
1221
+ "$ref": "#/definitions/vendorExtension"
1222
+ }
1223
+ }
1224
+ },
1225
+ "tag": {
1226
+ "type": "object",
1227
+ "additionalProperties": false,
1228
+ "required": [
1229
+ "name"
1230
+ ],
1231
+ "properties": {
1232
+ "name": {
1233
+ "type": "string"
1234
+ },
1235
+ "description": {
1236
+ "type": "string"
1237
+ },
1238
+ "externalDocs": {
1239
+ "$ref": "#/definitions/externalDocs"
1240
+ }
1241
+ },
1242
+ "patternProperties": {
1243
+ "^x-": {
1244
+ "$ref": "#/definitions/vendorExtension"
1245
+ }
1246
+ }
1247
+ },
1248
+ "securityDefinitions": {
1249
+ "type": "object",
1250
+ "additionalProperties": {
1251
+ "oneOf": [
1252
+ {
1253
+ "$ref": "#/definitions/basicAuthenticationSecurity"
1254
+ },
1255
+ {
1256
+ "$ref": "#/definitions/apiKeySecurity"
1257
+ },
1258
+ {
1259
+ "$ref": "#/definitions/oauth2ImplicitSecurity"
1260
+ },
1261
+ {
1262
+ "$ref": "#/definitions/oauth2PasswordSecurity"
1263
+ },
1264
+ {
1265
+ "$ref": "#/definitions/oauth2ApplicationSecurity"
1266
+ },
1267
+ {
1268
+ "$ref": "#/definitions/oauth2AccessCodeSecurity"
1269
+ }
1270
+ ]
1271
+ }
1272
+ },
1273
+ "basicAuthenticationSecurity": {
1274
+ "type": "object",
1275
+ "additionalProperties": false,
1276
+ "required": [
1277
+ "type"
1278
+ ],
1279
+ "properties": {
1280
+ "type": {
1281
+ "type": "string",
1282
+ "enum": [
1283
+ "basic"
1284
+ ]
1285
+ },
1286
+ "description": {
1287
+ "type": "string"
1288
+ }
1289
+ },
1290
+ "patternProperties": {
1291
+ "^x-": {
1292
+ "$ref": "#/definitions/vendorExtension"
1293
+ }
1294
+ }
1295
+ },
1296
+ "apiKeySecurity": {
1297
+ "type": "object",
1298
+ "additionalProperties": false,
1299
+ "required": [
1300
+ "type",
1301
+ "name",
1302
+ "in"
1303
+ ],
1304
+ "properties": {
1305
+ "type": {
1306
+ "type": "string",
1307
+ "enum": [
1308
+ "apiKey"
1309
+ ]
1310
+ },
1311
+ "name": {
1312
+ "type": "string"
1313
+ },
1314
+ "in": {
1315
+ "type": "string",
1316
+ "enum": [
1317
+ "header",
1318
+ "query"
1319
+ ]
1320
+ },
1321
+ "description": {
1322
+ "type": "string"
1323
+ }
1324
+ },
1325
+ "patternProperties": {
1326
+ "^x-": {
1327
+ "$ref": "#/definitions/vendorExtension"
1328
+ }
1329
+ }
1330
+ },
1331
+ "oauth2ImplicitSecurity": {
1332
+ "type": "object",
1333
+ "additionalProperties": false,
1334
+ "required": [
1335
+ "type",
1336
+ "flow",
1337
+ "authorizationUrl"
1338
+ ],
1339
+ "properties": {
1340
+ "type": {
1341
+ "type": "string",
1342
+ "enum": [
1343
+ "oauth2"
1344
+ ]
1345
+ },
1346
+ "flow": {
1347
+ "type": "string",
1348
+ "enum": [
1349
+ "implicit"
1350
+ ]
1351
+ },
1352
+ "scopes": {
1353
+ "$ref": "#/definitions/oauth2Scopes"
1354
+ },
1355
+ "authorizationUrl": {
1356
+ "type": "string",
1357
+ "format": "uri"
1358
+ },
1359
+ "description": {
1360
+ "type": "string"
1361
+ }
1362
+ },
1363
+ "patternProperties": {
1364
+ "^x-": {
1365
+ "$ref": "#/definitions/vendorExtension"
1366
+ }
1367
+ }
1368
+ },
1369
+ "oauth2PasswordSecurity": {
1370
+ "type": "object",
1371
+ "additionalProperties": false,
1372
+ "required": [
1373
+ "type",
1374
+ "flow",
1375
+ "tokenUrl"
1376
+ ],
1377
+ "properties": {
1378
+ "type": {
1379
+ "type": "string",
1380
+ "enum": [
1381
+ "oauth2"
1382
+ ]
1383
+ },
1384
+ "flow": {
1385
+ "type": "string",
1386
+ "enum": [
1387
+ "password"
1388
+ ]
1389
+ },
1390
+ "scopes": {
1391
+ "$ref": "#/definitions/oauth2Scopes"
1392
+ },
1393
+ "tokenUrl": {
1394
+ "type": "string",
1395
+ "format": "uri"
1396
+ },
1397
+ "description": {
1398
+ "type": "string"
1399
+ }
1400
+ },
1401
+ "patternProperties": {
1402
+ "^x-": {
1403
+ "$ref": "#/definitions/vendorExtension"
1404
+ }
1405
+ }
1406
+ },
1407
+ "oauth2ApplicationSecurity": {
1408
+ "type": "object",
1409
+ "additionalProperties": false,
1410
+ "required": [
1411
+ "type",
1412
+ "flow",
1413
+ "tokenUrl"
1414
+ ],
1415
+ "properties": {
1416
+ "type": {
1417
+ "type": "string",
1418
+ "enum": [
1419
+ "oauth2"
1420
+ ]
1421
+ },
1422
+ "flow": {
1423
+ "type": "string",
1424
+ "enum": [
1425
+ "application"
1426
+ ]
1427
+ },
1428
+ "scopes": {
1429
+ "$ref": "#/definitions/oauth2Scopes"
1430
+ },
1431
+ "tokenUrl": {
1432
+ "type": "string",
1433
+ "format": "uri"
1434
+ },
1435
+ "description": {
1436
+ "type": "string"
1437
+ }
1438
+ },
1439
+ "patternProperties": {
1440
+ "^x-": {
1441
+ "$ref": "#/definitions/vendorExtension"
1442
+ }
1443
+ }
1444
+ },
1445
+ "oauth2AccessCodeSecurity": {
1446
+ "type": "object",
1447
+ "additionalProperties": false,
1448
+ "required": [
1449
+ "type",
1450
+ "flow",
1451
+ "authorizationUrl",
1452
+ "tokenUrl"
1453
+ ],
1454
+ "properties": {
1455
+ "type": {
1456
+ "type": "string",
1457
+ "enum": [
1458
+ "oauth2"
1459
+ ]
1460
+ },
1461
+ "flow": {
1462
+ "type": "string",
1463
+ "enum": [
1464
+ "accessCode"
1465
+ ]
1466
+ },
1467
+ "scopes": {
1468
+ "$ref": "#/definitions/oauth2Scopes"
1469
+ },
1470
+ "authorizationUrl": {
1471
+ "type": "string",
1472
+ "format": "uri"
1473
+ },
1474
+ "tokenUrl": {
1475
+ "type": "string",
1476
+ "format": "uri"
1477
+ },
1478
+ "description": {
1479
+ "type": "string"
1480
+ }
1481
+ },
1482
+ "patternProperties": {
1483
+ "^x-": {
1484
+ "$ref": "#/definitions/vendorExtension"
1485
+ }
1486
+ }
1487
+ },
1488
+ "oauth2Scopes": {
1489
+ "type": "object",
1490
+ "additionalProperties": {
1491
+ "type": "string"
1492
+ }
1493
+ },
1494
+ "mediaTypeList": {
1495
+ "type": "array",
1496
+ "items": {
1497
+ "$ref": "#/definitions/mimeType"
1498
+ },
1499
+ "uniqueItems": true
1500
+ },
1501
+ "parametersList": {
1502
+ "type": "array",
1503
+ "description": "The parameters needed to send a valid API call.",
1504
+ "additionalItems": false,
1505
+ "items": {
1506
+ "oneOf": [
1507
+ {
1508
+ "$ref": "#/definitions/parameter"
1509
+ },
1510
+ {
1511
+ "$ref": "#/definitions/jsonReference"
1512
+ }
1513
+ ]
1514
+ },
1515
+ "uniqueItems": true
1516
+ },
1517
+ "schemesList": {
1518
+ "type": "array",
1519
+ "description": "The transfer protocol of the API.",
1520
+ "items": {
1521
+ "type": "string",
1522
+ "enum": [
1523
+ "http",
1524
+ "https",
1525
+ "ws",
1526
+ "wss"
1527
+ ]
1528
+ },
1529
+ "uniqueItems": true
1530
+ },
1531
+ "collectionFormat": {
1532
+ "type": "string",
1533
+ "enum": [
1534
+ "csv",
1535
+ "ssv",
1536
+ "tsv",
1537
+ "pipes"
1538
+ ],
1539
+ "default": "csv"
1540
+ },
1541
+ "collectionFormatWithMulti": {
1542
+ "type": "string",
1543
+ "enum": [
1544
+ "csv",
1545
+ "ssv",
1546
+ "tsv",
1547
+ "pipes",
1548
+ "multi"
1549
+ ],
1550
+ "default": "csv"
1551
+ },
1552
+ "title": {
1553
+ "$ref": "http://json-schema.org/draft-04/schema#/properties/title"
1554
+ },
1555
+ "description": {
1556
+ "$ref": "http://json-schema.org/draft-04/schema#/properties/description"
1557
+ },
1558
+ "default": {
1559
+ "$ref": "http://json-schema.org/draft-04/schema#/properties/default"
1560
+ },
1561
+ "multipleOf": {
1562
+ "$ref": "http://json-schema.org/draft-04/schema#/properties/multipleOf"
1563
+ },
1564
+ "maximum": {
1565
+ "$ref": "http://json-schema.org/draft-04/schema#/properties/maximum"
1566
+ },
1567
+ "exclusiveMaximum": {
1568
+ "$ref": "http://json-schema.org/draft-04/schema#/properties/exclusiveMaximum"
1569
+ },
1570
+ "minimum": {
1571
+ "$ref": "http://json-schema.org/draft-04/schema#/properties/minimum"
1572
+ },
1573
+ "exclusiveMinimum": {
1574
+ "$ref": "http://json-schema.org/draft-04/schema#/properties/exclusiveMinimum"
1575
+ },
1576
+ "maxLength": {
1577
+ "$ref": "http://json-schema.org/draft-04/schema#/definitions/positiveInteger"
1578
+ },
1579
+ "minLength": {
1580
+ "$ref": "http://json-schema.org/draft-04/schema#/definitions/positiveIntegerDefault0"
1581
+ },
1582
+ "pattern": {
1583
+ "$ref": "http://json-schema.org/draft-04/schema#/properties/pattern"
1584
+ },
1585
+ "maxItems": {
1586
+ "$ref": "http://json-schema.org/draft-04/schema#/definitions/positiveInteger"
1587
+ },
1588
+ "minItems": {
1589
+ "$ref": "http://json-schema.org/draft-04/schema#/definitions/positiveIntegerDefault0"
1590
+ },
1591
+ "uniqueItems": {
1592
+ "$ref": "http://json-schema.org/draft-04/schema#/properties/uniqueItems"
1593
+ },
1594
+ "enum": {
1595
+ "$ref": "http://json-schema.org/draft-04/schema#/properties/enum"
1596
+ },
1597
+ "jsonReference": {
1598
+ "type": "object",
1599
+ "required": [
1600
+ "$ref"
1601
+ ],
1602
+ "additionalProperties": false,
1603
+ "properties": {
1604
+ "$ref": {
1605
+ "type": "string"
1606
+ }
1607
+ }
1608
+ }
1609
+ }
1610
+ },
1611
+ "tests": [
1612
+ {
1613
+ "description": "Example petsore",
1614
+ "data": {
1615
+ "swagger": "2.0",
1616
+ "info": {
1617
+ "description": "This is a sample server Petstore server. You can find out more about Swagger at [http://swagger.io](http://swagger.io) or on [irc.freenode.net, #swagger](http://swagger.io/irc/). For this sample, you can use the api key `special-key` to test the authorization filters.",
1618
+ "version": "1.0.0",
1619
+ "title": "Swagger Petstore",
1620
+ "termsOfService": "http://swagger.io/terms/",
1621
+ "contact": {
1622
+ "email": "apiteam@swagger.io"
1623
+ },
1624
+ "license": {
1625
+ "name": "Apache 2.0",
1626
+ "url": "http://www.apache.org/licenses/LICENSE-2.0.html"
1627
+ }
1628
+ },
1629
+ "host": "petstore.swagger.io",
1630
+ "basePath": "/v2",
1631
+ "tags": [
1632
+ {
1633
+ "name": "pet",
1634
+ "description": "Everything about your Pets",
1635
+ "externalDocs": {
1636
+ "description": "Find out more",
1637
+ "url": "http://swagger.io"
1638
+ }
1639
+ },
1640
+ {
1641
+ "name": "store",
1642
+ "description": "Access to Petstore orders"
1643
+ },
1644
+ {
1645
+ "name": "user",
1646
+ "description": "Operations about user",
1647
+ "externalDocs": {
1648
+ "description": "Find out more about our store",
1649
+ "url": "http://swagger.io"
1650
+ }
1651
+ }
1652
+ ],
1653
+ "schemes": [
1654
+ "http"
1655
+ ],
1656
+ "paths": {
1657
+ "/pet": {
1658
+ "post": {
1659
+ "tags": [
1660
+ "pet"
1661
+ ],
1662
+ "summary": "Add a new pet to the store",
1663
+ "description": "",
1664
+ "operationId": "addPet",
1665
+ "consumes": [
1666
+ "application/json",
1667
+ "application/xml"
1668
+ ],
1669
+ "produces": [
1670
+ "application/xml",
1671
+ "application/json"
1672
+ ],
1673
+ "parameters": [
1674
+ {
1675
+ "in": "body",
1676
+ "name": "body",
1677
+ "description": "Pet object that needs to be added to the store",
1678
+ "required": true,
1679
+ "schema": {
1680
+ "$ref": "#/definitions/Pet"
1681
+ }
1682
+ }
1683
+ ],
1684
+ "responses": {
1685
+ "405": {
1686
+ "description": "Invalid input"
1687
+ }
1688
+ },
1689
+ "security": [
1690
+ {
1691
+ "petstore_auth": [
1692
+ "write:pets",
1693
+ "read:pets"
1694
+ ]
1695
+ }
1696
+ ]
1697
+ },
1698
+ "put": {
1699
+ "tags": [
1700
+ "pet"
1701
+ ],
1702
+ "summary": "Update an existing pet",
1703
+ "description": "",
1704
+ "operationId": "updatePet",
1705
+ "consumes": [
1706
+ "application/json",
1707
+ "application/xml"
1708
+ ],
1709
+ "produces": [
1710
+ "application/xml",
1711
+ "application/json"
1712
+ ],
1713
+ "parameters": [
1714
+ {
1715
+ "in": "body",
1716
+ "name": "body",
1717
+ "description": "Pet object that needs to be added to the store",
1718
+ "required": true,
1719
+ "schema": {
1720
+ "$ref": "#/definitions/Pet"
1721
+ }
1722
+ }
1723
+ ],
1724
+ "responses": {
1725
+ "400": {
1726
+ "description": "Invalid ID supplied"
1727
+ },
1728
+ "404": {
1729
+ "description": "Pet not found"
1730
+ },
1731
+ "405": {
1732
+ "description": "Validation exception"
1733
+ }
1734
+ },
1735
+ "security": [
1736
+ {
1737
+ "petstore_auth": [
1738
+ "write:pets",
1739
+ "read:pets"
1740
+ ]
1741
+ }
1742
+ ]
1743
+ }
1744
+ },
1745
+ "/pet/findByStatus": {
1746
+ "get": {
1747
+ "tags": [
1748
+ "pet"
1749
+ ],
1750
+ "summary": "Finds Pets by status",
1751
+ "description": "Multiple status values can be provided with comma separated strings",
1752
+ "operationId": "findPetsByStatus",
1753
+ "produces": [
1754
+ "application/xml",
1755
+ "application/json"
1756
+ ],
1757
+ "parameters": [
1758
+ {
1759
+ "name": "status",
1760
+ "in": "query",
1761
+ "description": "Status values that need to be considered for filter",
1762
+ "required": true,
1763
+ "type": "array",
1764
+ "items": {
1765
+ "type": "string",
1766
+ "enum": [
1767
+ "available",
1768
+ "pending",
1769
+ "sold"
1770
+ ],
1771
+ "default": "available"
1772
+ },
1773
+ "collectionFormat": "multi"
1774
+ }
1775
+ ],
1776
+ "responses": {
1777
+ "200": {
1778
+ "description": "successful operation",
1779
+ "schema": {
1780
+ "type": "array",
1781
+ "items": {
1782
+ "$ref": "#/definitions/Pet"
1783
+ }
1784
+ }
1785
+ },
1786
+ "400": {
1787
+ "description": "Invalid status value"
1788
+ }
1789
+ },
1790
+ "security": [
1791
+ {
1792
+ "petstore_auth": [
1793
+ "write:pets",
1794
+ "read:pets"
1795
+ ]
1796
+ }
1797
+ ]
1798
+ }
1799
+ },
1800
+ "/pet/findByTags": {
1801
+ "get": {
1802
+ "tags": [
1803
+ "pet"
1804
+ ],
1805
+ "summary": "Finds Pets by tags",
1806
+ "description": "Muliple tags can be provided with comma separated strings. Use tag1, tag2, tag3 for testing.",
1807
+ "operationId": "findPetsByTags",
1808
+ "produces": [
1809
+ "application/xml",
1810
+ "application/json"
1811
+ ],
1812
+ "parameters": [
1813
+ {
1814
+ "name": "tags",
1815
+ "in": "query",
1816
+ "description": "Tags to filter by",
1817
+ "required": true,
1818
+ "type": "array",
1819
+ "items": {
1820
+ "type": "string"
1821
+ },
1822
+ "collectionFormat": "multi"
1823
+ }
1824
+ ],
1825
+ "responses": {
1826
+ "200": {
1827
+ "description": "successful operation",
1828
+ "schema": {
1829
+ "type": "array",
1830
+ "items": {
1831
+ "$ref": "#/definitions/Pet"
1832
+ }
1833
+ }
1834
+ },
1835
+ "400": {
1836
+ "description": "Invalid tag value"
1837
+ }
1838
+ },
1839
+ "security": [
1840
+ {
1841
+ "petstore_auth": [
1842
+ "write:pets",
1843
+ "read:pets"
1844
+ ]
1845
+ }
1846
+ ],
1847
+ "deprecated": true
1848
+ }
1849
+ },
1850
+ "/pet/{petId}": {
1851
+ "get": {
1852
+ "tags": [
1853
+ "pet"
1854
+ ],
1855
+ "summary": "Find pet by ID",
1856
+ "description": "Returns a single pet",
1857
+ "operationId": "getPetById",
1858
+ "produces": [
1859
+ "application/xml",
1860
+ "application/json"
1861
+ ],
1862
+ "parameters": [
1863
+ {
1864
+ "name": "petId",
1865
+ "in": "path",
1866
+ "description": "ID of pet to return",
1867
+ "required": true,
1868
+ "type": "integer",
1869
+ "format": "int64"
1870
+ }
1871
+ ],
1872
+ "responses": {
1873
+ "200": {
1874
+ "description": "successful operation",
1875
+ "schema": {
1876
+ "$ref": "#/definitions/Pet"
1877
+ }
1878
+ },
1879
+ "400": {
1880
+ "description": "Invalid ID supplied"
1881
+ },
1882
+ "404": {
1883
+ "description": "Pet not found"
1884
+ }
1885
+ },
1886
+ "security": [
1887
+ {
1888
+ "api_key": []
1889
+ }
1890
+ ]
1891
+ },
1892
+ "post": {
1893
+ "tags": [
1894
+ "pet"
1895
+ ],
1896
+ "summary": "Updates a pet in the store with form data",
1897
+ "description": "",
1898
+ "operationId": "updatePetWithForm",
1899
+ "consumes": [
1900
+ "application/x-www-form-urlencoded"
1901
+ ],
1902
+ "produces": [
1903
+ "application/xml",
1904
+ "application/json"
1905
+ ],
1906
+ "parameters": [
1907
+ {
1908
+ "name": "petId",
1909
+ "in": "path",
1910
+ "description": "ID of pet that needs to be updated",
1911
+ "required": true,
1912
+ "type": "integer",
1913
+ "format": "int64"
1914
+ },
1915
+ {
1916
+ "name": "name",
1917
+ "in": "formData",
1918
+ "description": "Updated name of the pet",
1919
+ "required": false,
1920
+ "type": "string"
1921
+ },
1922
+ {
1923
+ "name": "status",
1924
+ "in": "formData",
1925
+ "description": "Updated status of the pet",
1926
+ "required": false,
1927
+ "type": "string"
1928
+ }
1929
+ ],
1930
+ "responses": {
1931
+ "405": {
1932
+ "description": "Invalid input"
1933
+ }
1934
+ },
1935
+ "security": [
1936
+ {
1937
+ "petstore_auth": [
1938
+ "write:pets",
1939
+ "read:pets"
1940
+ ]
1941
+ }
1942
+ ]
1943
+ },
1944
+ "delete": {
1945
+ "tags": [
1946
+ "pet"
1947
+ ],
1948
+ "summary": "Deletes a pet",
1949
+ "description": "",
1950
+ "operationId": "deletePet",
1951
+ "produces": [
1952
+ "application/xml",
1953
+ "application/json"
1954
+ ],
1955
+ "parameters": [
1956
+ {
1957
+ "name": "api_key",
1958
+ "in": "header",
1959
+ "required": false,
1960
+ "type": "string"
1961
+ },
1962
+ {
1963
+ "name": "petId",
1964
+ "in": "path",
1965
+ "description": "Pet id to delete",
1966
+ "required": true,
1967
+ "type": "integer",
1968
+ "format": "int64"
1969
+ }
1970
+ ],
1971
+ "responses": {
1972
+ "400": {
1973
+ "description": "Invalid ID supplied"
1974
+ },
1975
+ "404": {
1976
+ "description": "Pet not found"
1977
+ }
1978
+ },
1979
+ "security": [
1980
+ {
1981
+ "petstore_auth": [
1982
+ "write:pets",
1983
+ "read:pets"
1984
+ ]
1985
+ }
1986
+ ]
1987
+ }
1988
+ },
1989
+ "/pet/{petId}/uploadImage": {
1990
+ "post": {
1991
+ "tags": [
1992
+ "pet"
1993
+ ],
1994
+ "summary": "uploads an image",
1995
+ "description": "",
1996
+ "operationId": "uploadFile",
1997
+ "consumes": [
1998
+ "multipart/form-data"
1999
+ ],
2000
+ "produces": [
2001
+ "application/json"
2002
+ ],
2003
+ "parameters": [
2004
+ {
2005
+ "name": "petId",
2006
+ "in": "path",
2007
+ "description": "ID of pet to update",
2008
+ "required": true,
2009
+ "type": "integer",
2010
+ "format": "int64"
2011
+ },
2012
+ {
2013
+ "name": "additionalMetadata",
2014
+ "in": "formData",
2015
+ "description": "Additional data to pass to server",
2016
+ "required": false,
2017
+ "type": "string"
2018
+ },
2019
+ {
2020
+ "name": "file",
2021
+ "in": "formData",
2022
+ "description": "file to upload",
2023
+ "required": false,
2024
+ "type": "file"
2025
+ }
2026
+ ],
2027
+ "responses": {
2028
+ "200": {
2029
+ "description": "successful operation",
2030
+ "schema": {
2031
+ "$ref": "#/definitions/ApiResponse"
2032
+ }
2033
+ }
2034
+ },
2035
+ "security": [
2036
+ {
2037
+ "petstore_auth": [
2038
+ "write:pets",
2039
+ "read:pets"
2040
+ ]
2041
+ }
2042
+ ]
2043
+ }
2044
+ },
2045
+ "/store/inventory": {
2046
+ "get": {
2047
+ "tags": [
2048
+ "store"
2049
+ ],
2050
+ "summary": "Returns pet inventories by status",
2051
+ "description": "Returns a map of status codes to quantities",
2052
+ "operationId": "getInventory",
2053
+ "produces": [
2054
+ "application/json"
2055
+ ],
2056
+ "parameters": [],
2057
+ "responses": {
2058
+ "200": {
2059
+ "description": "successful operation",
2060
+ "schema": {
2061
+ "type": "object",
2062
+ "additionalProperties": {
2063
+ "type": "integer",
2064
+ "format": "int32"
2065
+ }
2066
+ }
2067
+ }
2068
+ },
2069
+ "security": [
2070
+ {
2071
+ "api_key": []
2072
+ }
2073
+ ]
2074
+ }
2075
+ },
2076
+ "/store/order": {
2077
+ "post": {
2078
+ "tags": [
2079
+ "store"
2080
+ ],
2081
+ "summary": "Place an order for a pet",
2082
+ "description": "",
2083
+ "operationId": "placeOrder",
2084
+ "produces": [
2085
+ "application/xml",
2086
+ "application/json"
2087
+ ],
2088
+ "parameters": [
2089
+ {
2090
+ "in": "body",
2091
+ "name": "body",
2092
+ "description": "order placed for purchasing the pet",
2093
+ "required": true,
2094
+ "schema": {
2095
+ "$ref": "#/definitions/Order"
2096
+ }
2097
+ }
2098
+ ],
2099
+ "responses": {
2100
+ "200": {
2101
+ "description": "successful operation",
2102
+ "schema": {
2103
+ "$ref": "#/definitions/Order"
2104
+ }
2105
+ },
2106
+ "400": {
2107
+ "description": "Invalid Order"
2108
+ }
2109
+ }
2110
+ }
2111
+ },
2112
+ "/store/order/{orderId}": {
2113
+ "get": {
2114
+ "tags": [
2115
+ "store"
2116
+ ],
2117
+ "summary": "Find purchase order by ID",
2118
+ "description": "For valid response try integer IDs with value >= 1 and <= 10. Other values will generated exceptions",
2119
+ "operationId": "getOrderById",
2120
+ "produces": [
2121
+ "application/xml",
2122
+ "application/json"
2123
+ ],
2124
+ "parameters": [
2125
+ {
2126
+ "name": "orderId",
2127
+ "in": "path",
2128
+ "description": "ID of pet that needs to be fetched",
2129
+ "required": true,
2130
+ "type": "integer",
2131
+ "maximum": 10.0,
2132
+ "minimum": 1.0,
2133
+ "format": "int64"
2134
+ }
2135
+ ],
2136
+ "responses": {
2137
+ "200": {
2138
+ "description": "successful operation",
2139
+ "schema": {
2140
+ "$ref": "#/definitions/Order"
2141
+ }
2142
+ },
2143
+ "400": {
2144
+ "description": "Invalid ID supplied"
2145
+ },
2146
+ "404": {
2147
+ "description": "Order not found"
2148
+ }
2149
+ }
2150
+ },
2151
+ "delete": {
2152
+ "tags": [
2153
+ "store"
2154
+ ],
2155
+ "summary": "Delete purchase order by ID",
2156
+ "description": "For valid response try integer IDs with positive integer value. Negative or non-integer values will generate API errors",
2157
+ "operationId": "deleteOrder",
2158
+ "produces": [
2159
+ "application/xml",
2160
+ "application/json"
2161
+ ],
2162
+ "parameters": [
2163
+ {
2164
+ "name": "orderId",
2165
+ "in": "path",
2166
+ "description": "ID of the order that needs to be deleted",
2167
+ "required": true,
2168
+ "type": "integer",
2169
+ "minimum": 1.0,
2170
+ "format": "int64"
2171
+ }
2172
+ ],
2173
+ "responses": {
2174
+ "400": {
2175
+ "description": "Invalid ID supplied"
2176
+ },
2177
+ "404": {
2178
+ "description": "Order not found"
2179
+ }
2180
+ }
2181
+ }
2182
+ },
2183
+ "/user": {
2184
+ "post": {
2185
+ "tags": [
2186
+ "user"
2187
+ ],
2188
+ "summary": "Create user",
2189
+ "description": "This can only be done by the logged in user.",
2190
+ "operationId": "createUser",
2191
+ "produces": [
2192
+ "application/xml",
2193
+ "application/json"
2194
+ ],
2195
+ "parameters": [
2196
+ {
2197
+ "in": "body",
2198
+ "name": "body",
2199
+ "description": "Created user object",
2200
+ "required": true,
2201
+ "schema": {
2202
+ "$ref": "#/definitions/User"
2203
+ }
2204
+ }
2205
+ ],
2206
+ "responses": {
2207
+ "default": {
2208
+ "description": "successful operation"
2209
+ }
2210
+ }
2211
+ }
2212
+ },
2213
+ "/user/createWithArray": {
2214
+ "post": {
2215
+ "tags": [
2216
+ "user"
2217
+ ],
2218
+ "summary": "Creates list of users with given input array",
2219
+ "description": "",
2220
+ "operationId": "createUsersWithArrayInput",
2221
+ "produces": [
2222
+ "application/xml",
2223
+ "application/json"
2224
+ ],
2225
+ "parameters": [
2226
+ {
2227
+ "in": "body",
2228
+ "name": "body",
2229
+ "description": "List of user object",
2230
+ "required": true,
2231
+ "schema": {
2232
+ "type": "array",
2233
+ "items": {
2234
+ "$ref": "#/definitions/User"
2235
+ }
2236
+ }
2237
+ }
2238
+ ],
2239
+ "responses": {
2240
+ "default": {
2241
+ "description": "successful operation"
2242
+ }
2243
+ }
2244
+ }
2245
+ },
2246
+ "/user/createWithList": {
2247
+ "post": {
2248
+ "tags": [
2249
+ "user"
2250
+ ],
2251
+ "summary": "Creates list of users with given input array",
2252
+ "description": "",
2253
+ "operationId": "createUsersWithListInput",
2254
+ "produces": [
2255
+ "application/xml",
2256
+ "application/json"
2257
+ ],
2258
+ "parameters": [
2259
+ {
2260
+ "in": "body",
2261
+ "name": "body",
2262
+ "description": "List of user object",
2263
+ "required": true,
2264
+ "schema": {
2265
+ "type": "array",
2266
+ "items": {
2267
+ "$ref": "#/definitions/User"
2268
+ }
2269
+ }
2270
+ }
2271
+ ],
2272
+ "responses": {
2273
+ "default": {
2274
+ "description": "successful operation"
2275
+ }
2276
+ }
2277
+ }
2278
+ },
2279
+ "/user/login": {
2280
+ "get": {
2281
+ "tags": [
2282
+ "user"
2283
+ ],
2284
+ "summary": "Logs user into the system",
2285
+ "description": "",
2286
+ "operationId": "loginUser",
2287
+ "produces": [
2288
+ "application/xml",
2289
+ "application/json"
2290
+ ],
2291
+ "parameters": [
2292
+ {
2293
+ "name": "username",
2294
+ "in": "query",
2295
+ "description": "The user name for login",
2296
+ "required": true,
2297
+ "type": "string"
2298
+ },
2299
+ {
2300
+ "name": "password",
2301
+ "in": "query",
2302
+ "description": "The password for login in clear text",
2303
+ "required": true,
2304
+ "type": "string"
2305
+ }
2306
+ ],
2307
+ "responses": {
2308
+ "200": {
2309
+ "description": "successful operation",
2310
+ "schema": {
2311
+ "type": "string"
2312
+ },
2313
+ "headers": {
2314
+ "X-Rate-Limit": {
2315
+ "type": "integer",
2316
+ "format": "int32",
2317
+ "description": "calls per hour allowed by the user"
2318
+ },
2319
+ "X-Expires-After": {
2320
+ "type": "string",
2321
+ "format": "date-time",
2322
+ "description": "date in UTC when token expires"
2323
+ }
2324
+ }
2325
+ },
2326
+ "400": {
2327
+ "description": "Invalid username/password supplied"
2328
+ }
2329
+ }
2330
+ }
2331
+ },
2332
+ "/user/logout": {
2333
+ "get": {
2334
+ "tags": [
2335
+ "user"
2336
+ ],
2337
+ "summary": "Logs out current logged in user session",
2338
+ "description": "",
2339
+ "operationId": "logoutUser",
2340
+ "produces": [
2341
+ "application/xml",
2342
+ "application/json"
2343
+ ],
2344
+ "parameters": [],
2345
+ "responses": {
2346
+ "default": {
2347
+ "description": "successful operation"
2348
+ }
2349
+ }
2350
+ }
2351
+ },
2352
+ "/user/{username}": {
2353
+ "get": {
2354
+ "tags": [
2355
+ "user"
2356
+ ],
2357
+ "summary": "Get user by user name",
2358
+ "description": "",
2359
+ "operationId": "getUserByName",
2360
+ "produces": [
2361
+ "application/xml",
2362
+ "application/json"
2363
+ ],
2364
+ "parameters": [
2365
+ {
2366
+ "name": "username",
2367
+ "in": "path",
2368
+ "description": "The name that needs to be fetched. Use user1 for testing. ",
2369
+ "required": true,
2370
+ "type": "string"
2371
+ }
2372
+ ],
2373
+ "responses": {
2374
+ "200": {
2375
+ "description": "successful operation",
2376
+ "schema": {
2377
+ "$ref": "#/definitions/User"
2378
+ }
2379
+ },
2380
+ "400": {
2381
+ "description": "Invalid username supplied"
2382
+ },
2383
+ "404": {
2384
+ "description": "User not found"
2385
+ }
2386
+ }
2387
+ },
2388
+ "put": {
2389
+ "tags": [
2390
+ "user"
2391
+ ],
2392
+ "summary": "Updated user",
2393
+ "description": "This can only be done by the logged in user.",
2394
+ "operationId": "updateUser",
2395
+ "produces": [
2396
+ "application/xml",
2397
+ "application/json"
2398
+ ],
2399
+ "parameters": [
2400
+ {
2401
+ "name": "username",
2402
+ "in": "path",
2403
+ "description": "name that need to be updated",
2404
+ "required": true,
2405
+ "type": "string"
2406
+ },
2407
+ {
2408
+ "in": "body",
2409
+ "name": "body",
2410
+ "description": "Updated user object",
2411
+ "required": true,
2412
+ "schema": {
2413
+ "$ref": "#/definitions/User"
2414
+ }
2415
+ }
2416
+ ],
2417
+ "responses": {
2418
+ "400": {
2419
+ "description": "Invalid user supplied"
2420
+ },
2421
+ "404": {
2422
+ "description": "User not found"
2423
+ }
2424
+ }
2425
+ },
2426
+ "delete": {
2427
+ "tags": [
2428
+ "user"
2429
+ ],
2430
+ "summary": "Delete user",
2431
+ "description": "This can only be done by the logged in user.",
2432
+ "operationId": "deleteUser",
2433
+ "produces": [
2434
+ "application/xml",
2435
+ "application/json"
2436
+ ],
2437
+ "parameters": [
2438
+ {
2439
+ "name": "username",
2440
+ "in": "path",
2441
+ "description": "The name that needs to be deleted",
2442
+ "required": true,
2443
+ "type": "string"
2444
+ }
2445
+ ],
2446
+ "responses": {
2447
+ "400": {
2448
+ "description": "Invalid username supplied"
2449
+ },
2450
+ "404": {
2451
+ "description": "User not found"
2452
+ }
2453
+ }
2454
+ }
2455
+ }
2456
+ },
2457
+ "securityDefinitions": {
2458
+ "petstore_auth": {
2459
+ "type": "oauth2",
2460
+ "authorizationUrl": "http://petstore.swagger.io/oauth/dialog",
2461
+ "flow": "implicit",
2462
+ "scopes": {
2463
+ "write:pets": "modify pets in your account",
2464
+ "read:pets": "read your pets"
2465
+ }
2466
+ },
2467
+ "api_key": {
2468
+ "type": "apiKey",
2469
+ "name": "api_key",
2470
+ "in": "header"
2471
+ }
2472
+ },
2473
+ "definitions": {
2474
+ "Order": {
2475
+ "type": "object",
2476
+ "properties": {
2477
+ "id": {
2478
+ "type": "integer",
2479
+ "format": "int64"
2480
+ },
2481
+ "petId": {
2482
+ "type": "integer",
2483
+ "format": "int64"
2484
+ },
2485
+ "quantity": {
2486
+ "type": "integer",
2487
+ "format": "int32"
2488
+ },
2489
+ "shipDate": {
2490
+ "type": "string",
2491
+ "format": "date-time"
2492
+ },
2493
+ "status": {
2494
+ "type": "string",
2495
+ "description": "Order Status",
2496
+ "enum": [
2497
+ "placed",
2498
+ "approved",
2499
+ "delivered"
2500
+ ]
2501
+ },
2502
+ "complete": {
2503
+ "type": "boolean",
2504
+ "default": false
2505
+ }
2506
+ },
2507
+ "xml": {
2508
+ "name": "Order"
2509
+ }
2510
+ },
2511
+ "Category": {
2512
+ "type": "object",
2513
+ "properties": {
2514
+ "id": {
2515
+ "type": "integer",
2516
+ "format": "int64"
2517
+ },
2518
+ "name": {
2519
+ "type": "string"
2520
+ }
2521
+ },
2522
+ "xml": {
2523
+ "name": "Category"
2524
+ }
2525
+ },
2526
+ "User": {
2527
+ "type": "object",
2528
+ "properties": {
2529
+ "id": {
2530
+ "type": "integer",
2531
+ "format": "int64"
2532
+ },
2533
+ "username": {
2534
+ "type": "string"
2535
+ },
2536
+ "firstName": {
2537
+ "type": "string"
2538
+ },
2539
+ "lastName": {
2540
+ "type": "string"
2541
+ },
2542
+ "email": {
2543
+ "type": "string"
2544
+ },
2545
+ "password": {
2546
+ "type": "string"
2547
+ },
2548
+ "phone": {
2549
+ "type": "string"
2550
+ },
2551
+ "userStatus": {
2552
+ "type": "integer",
2553
+ "format": "int32",
2554
+ "description": "User Status"
2555
+ }
2556
+ },
2557
+ "xml": {
2558
+ "name": "User"
2559
+ }
2560
+ },
2561
+ "Tag": {
2562
+ "type": "object",
2563
+ "properties": {
2564
+ "id": {
2565
+ "type": "integer",
2566
+ "format": "int64"
2567
+ },
2568
+ "name": {
2569
+ "type": "string"
2570
+ }
2571
+ },
2572
+ "xml": {
2573
+ "name": "Tag"
2574
+ }
2575
+ },
2576
+ "Pet": {
2577
+ "type": "object",
2578
+ "required": [
2579
+ "name",
2580
+ "photoUrls"
2581
+ ],
2582
+ "properties": {
2583
+ "id": {
2584
+ "type": "integer",
2585
+ "format": "int64"
2586
+ },
2587
+ "category": {
2588
+ "$ref": "#/definitions/Category"
2589
+ },
2590
+ "name": {
2591
+ "type": "string",
2592
+ "example": "doggie"
2593
+ },
2594
+ "photoUrls": {
2595
+ "type": "array",
2596
+ "xml": {
2597
+ "name": "photoUrl",
2598
+ "wrapped": true
2599
+ },
2600
+ "items": {
2601
+ "type": "string"
2602
+ }
2603
+ },
2604
+ "tags": {
2605
+ "type": "array",
2606
+ "xml": {
2607
+ "name": "tag",
2608
+ "wrapped": true
2609
+ },
2610
+ "items": {
2611
+ "$ref": "#/definitions/Tag"
2612
+ }
2613
+ },
2614
+ "status": {
2615
+ "type": "string",
2616
+ "description": "pet status in the store",
2617
+ "enum": [
2618
+ "available",
2619
+ "pending",
2620
+ "sold"
2621
+ ]
2622
+ }
2623
+ },
2624
+ "xml": {
2625
+ "name": "Pet"
2626
+ }
2627
+ },
2628
+ "ApiResponse": {
2629
+ "type": "object",
2630
+ "properties": {
2631
+ "code": {
2632
+ "type": "integer",
2633
+ "format": "int32"
2634
+ },
2635
+ "type": {
2636
+ "type": "string"
2637
+ },
2638
+ "message": {
2639
+ "type": "string"
2640
+ }
2641
+ }
2642
+ }
2643
+ },
2644
+ "externalDocs": {
2645
+ "description": "Find out more about Swagger",
2646
+ "url": "http://swagger.io"
2647
+ }
2648
+ },
2649
+ "valid": true
2650
+ }
2651
+ ]
2652
+ }
2653
+ ]