{"openapi":"3.1.0","info":{"title":"Flakestry API","description":"","license":{"name":"Apache-2.0","url":"https://github.com/flakestry/flakestry.dev/blob/main/LICENSE.md"},"version":"0.1.0"},"servers":[{"url":"http://localhost:8888/api"}],"paths":{"/flake":{"get":{"tags":["api"],"operationId":"get_flake","parameters":[{"name":"q","in":"query","description":"","required":false,"schema":{"type":["string","null"]}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetFlakeResponse"}}}}}}},"/flake/github/{owner}":{"get":{"tags":["api"],"operationId":"get_owner","parameters":[{"name":"owner","in":"path","description":"","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetOwnerResponse"}}}}}}},"/flake/github/{owner}/{repo}":{"get":{"tags":["api"],"operationId":"get_repo","parameters":[{"name":"owner","in":"path","description":"","required":true,"schema":{"type":"string"}},{"name":"repo","in":"path","description":"","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetRepoResponse"}}}}}}},"/flake/github/{owner}/{repo}/{version}":{"get":{"tags":["api"],"operationId":"get_version","parameters":[{"name":"owner","in":"path","description":"","required":true,"schema":{"type":"string"}},{"name":"repo","in":"path","description":"","required":true,"schema":{"type":"string"}},{"name":"version","in":"path","description":"","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Release"}}}}}}},"/publish":{"post":{"tags":["api"],"operationId":"post_publish","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Publish"}}},"required":true},"responses":{"201":{"description":"Created","content":{"application/json":{"schema":{"default":null}}}}}}}},"components":{"schemas":{"FlakeRelease":{"type":"object","required":["owner","repo","version","description","created_at"],"properties":{"commit":{"type":"string"},"created_at":{"type":"string","format":"date-time"},"description":{"type":"string"},"owner":{"type":"string"},"readme":{"type":"string"},"repo":{"type":"string"},"version":{"type":"string"}}},"GetFlakeResponse":{"type":"object","required":["releases","count"],"properties":{"count":{"type":"integer","minimum":0},"query":{"type":["string","null"]},"releases":{"type":"array","items":{"$ref":"#/components/schemas/FlakeRelease"}}}},"GetOwnerResponse":{"type":"object","required":["repos"],"properties":{"repos":{"type":"array","items":{"$ref":"#/components/schemas/FlakeRelease"}}}},"GetRepoResponse":{"type":"object","required":["releases"],"properties":{"releases":{"type":"array","items":{"$ref":"#/components/schemas/FlakeRelease"}}}},"Publish":{"type":"object","required":["owner","repository"],"properties":{"metadata":{"type":["object","null"]},"metadata_errors":{"type":["string","null"]},"outputs":{"type":["object","null"]},"outputs_errors":{"type":["string","null"]},"owner":{"type":"string"},"readme":{"type":["string","null"]},"ref_":{"type":["string","null"]},"repository":{"type":"string"},"version":{"type":["string","null"]}}},"Release":{"type":"object","required":["repo_id","version","commit","created_at"],"properties":{"commit":{"type":"string"},"created_at":{"type":"string","format":"date-time"},"description":{"type":["string","null"]},"meta_data":{"type":["object","null"]},"meta_data_errors":{"type":["array","null"],"items":{"type":"string"}},"outputs":{"type":["object","null"]},"outputs_errors":{"type":["array","null"],"items":{"type":"string"}},"readme":{"type":["string","null"]},"readme_filename":{"type":["string","null"]},"repo_id":{"type":"integer","format":"int32"},"version":{"type":"string"}}}}}}