{"openapi":"3.0.1","info":{"title":"PurpurMC Downloads API"},"servers":[{"url":"https://api.purpurmc.org"}],"paths":{"/v2":{"get":{"tags":["project-controller"],"summary":"List all projects","operationId":"listProjects","responses":{"409":{"description":"Conflict","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"400":{"description":"Bad Request","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ProjectsResponse"}}}}}}},"/v2/{project}":{"get":{"tags":["project-controller"],"summary":"Get a project","operationId":"getProject","parameters":[{"name":"project","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"409":{"description":"Conflict","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"400":{"description":"Bad Request","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ProjectResponse"}}}}}}},"/v2/{project}/{version}":{"get":{"tags":["version-controller"],"summary":"Get a project's version","operationId":"getVersion","parameters":[{"name":"project","in":"path","required":true,"schema":{"type":"string"}},{"name":"version","in":"path","required":true,"schema":{"type":"string"}},{"name":"detailed","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"409":{"description":"Conflict","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"400":{"description":"Bad Request","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/v2/{project}/{version}/{build}":{"get":{"tags":["build-controller"],"summary":"Get a versions' build","operationId":"getBuild","parameters":[{"name":"project","in":"path","required":true,"schema":{"type":"string"}},{"name":"version","in":"path","required":true,"schema":{"type":"string"}},{"name":"build","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"409":{"description":"Conflict","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"400":{"description":"Bad Request","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/BuildResponse"}}}}}}},"/v2/{project}/{version}/{build}/download":{"get":{"tags":["build-controller"],"summary":"Download a build","operationId":"downloadBuild","parameters":[{"name":"project","in":"path","required":true,"schema":{"type":"string"}},{"name":"version","in":"path","required":true,"schema":{"type":"string"}},{"name":"build","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"409":{"description":"Conflict","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"400":{"description":"Bad Request","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"type":"string","format":"binary"}}}}}}}},"components":{"schemas":{"ErrorResponse":{"type":"object","properties":{"error":{"type":"string"}}},"ProjectsResponse":{"type":"object","properties":{"projects":{"type":"array","items":{"type":"string"}}}},"ProjectResponse":{"type":"object","properties":{"project":{"type":"string"},"metadata":{"type":"object","additionalProperties":{"type":"string"}},"versions":{"type":"array","items":{"type":"string"}}}},"BuildCommits":{"type":"object","properties":{"author":{"type":"string"},"email":{"type":"string"},"description":{"type":"string"},"hash":{"type":"string"},"timestamp":{"type":"integer","format":"int64"}}},"BuildResponse":{"type":"object","properties":{"project":{"type":"string"},"version":{"type":"string"},"build":{"type":"string"},"result":{"type":"string"},"timestamp":{"type":"integer","format":"int64"},"duration":{"type":"integer","format":"int64"},"commits":{"type":"array","items":{"$ref":"#/components/schemas/BuildCommits"}},"metadata":{"type":"object","additionalProperties":{"type":"string"}},"md5":{"type":"string"}}}}}}