-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathopenapi.json
More file actions
1 lines (1 loc) · 9.29 KB
/
openapi.json
File metadata and controls
1 lines (1 loc) · 9.29 KB
1
{"openapi":"3.1.0","info":{"title":"rusty-api","description":"","license":{"name":"GPL-3.0","identifier":"GPL-3.0"},"version":"0.1.0"},"paths":{"/.well-known/health-check":{"get":{"summary":"Get health of the API.","operationId":"health_check","responses":{"200":{"description":"Success","content":{"text/plain":{"schema":{"type":"string"}}}}}}},"/v2/invite/accept":{"post":{"tags":["invite"],"operationId":"accept_invite","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AcceptInviteBody"}}},"required":true},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AcceptInviteReturnType"}}}},"400":{"description":"Invalid public key"},"404":{"description":"Invite not found"},"409":{"description":"Invite already accepted"}},"security":[{"bearer":[]}]}},"/v2/invite/new":{"post":{"tags":["invite"],"operationId":"new_invite","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InviteBody"}}},"required":true},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InviteResponse"}}}},"400":{"description":"Invalid public key"}},"security":[{"bearer":[]}]}},"/v2/project/{project_id}":{"get":{"tags":["project"],"operationId":"get_project_info_v2","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProjectInfoV2"}}}}},"security":[{"bearer":[]}]},"put":{"tags":["project"],"operationId":"update","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateProjectV2"}}},"required":true},"responses":{"200":{"description":"Success"}},"security":[{"bearer":[]}]},"post":{"tags":["project"],"operationId":"add_user","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"array","items":{"type":"string","format":"uuid"}}}},"required":true},"responses":{"200":{"description":"Success"},"400":{"description":"Invalid public key"},"401":{"description":"Unauthorized. User not in project"}},"security":[{"bearer":[]}]},"delete":{"tags":["project"],"operationId":"remove_users","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RemoveUserBody"}}},"required":true},"responses":{"200":{"description":"Success"},"400":{"description":"Invalid public key"},"401":{"description":"Unauthorized"}},"security":[{"bearer":[]}]}},"/v2/project/{project_id}/variables":{"get":{"tags":["project"],"operationId":"variables","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Success. Returns a list of variables for the project","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/PartialKey"}}}}},"401":{"description":"Unauthorized. User not in project"}},"security":[{"bearer":[]}]}},"/v2/projects":{"get":{"tags":["projects"],"operationId":"list_projects_v2","responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ListProjectsV2"}}}}}},"security":[{"bearer":[]}]}},"/v2/projects/new":{"post":{"tags":["projects"],"operationId":"new_project_v2","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NewProjectBody"}}},"required":true},"responses":{"200":{"description":"Success","content":{"text/plain":{"schema":{"type":"string"}}}}},"security":[{"bearer":[]}]}},"/v2/user/get-many":{"get":{"tags":["user"],"operationId":"get_many_users","requestBody":{"content":{"application/json":{"schema":{"type":"array","items":{"type":"string","format":"uuid"}}}},"required":true},"responses":{"200":{"description":"Users","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/StrippedUser"}}}}}},"security":[{"bearer":[]}]}},"/v2/user/new":{"post":{"tags":["user"],"operationId":"new_user_v2","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NewUserBody"}}},"required":true},"responses":{"200":{"description":"User ID","content":{"text/plain":{"schema":{"type":"string"}}}},"400":{"description":"Invalid public key"}},"security":[{"bearer":[]}]}},"/v2/user/{user_id}":{"get":{"tags":["user"],"operationId":"get_user_v2","parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"User","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StrippedUser"}}}},"404":{"description":"User not found"}},"security":[{"bearer":[]}]}},"/v2/variables/set-many":{"post":{"tags":["variables"],"operationId":"set_many","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SetManyBody"}}},"required":true},"responses":{},"security":[{"bearer":[]}]}},"/v2/variables/update-many":{"put":{"tags":["variables"],"operationId":"update_many","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateManyBody"}}},"required":true},"responses":{"200":{"description":"Project ID","content":{"application/json":{"schema":{"type":"array","items":{"type":"string"}}}}},"400":{"description":"Invalid public key"}},"security":[{"bearer":[]}]}},"/v2/variables/{variable_id}":{"get":{"tags":["variables"],"operationId":"get","parameters":[{"name":"variable_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Variable"}}}},"404":{"description":"Variable not found"}},"security":[{"bearer":[]}]},"delete":{"tags":["variables"],"operationId":"delete","parameters":[{"name":"variable_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{},"security":[{"bearer":[]}]}}},"components":{"schemas":{"AcceptInviteBody":{"type":"object","required":["code","verifier"],"properties":{"code":{"type":"string","format":"uuid"},"verifier":{"type":"string","format":"uuid"}}},"AcceptInviteReturnType":{"type":"object","required":["project_id","invite_id","ciphertext"],"properties":{"ciphertext":{"type":"string"},"invite_id":{"type":"string"},"project_id":{"type":"string"}}},"InviteBody":{"type":"object","required":["project_id","ciphertext"],"properties":{"ciphertext":{"type":"string"},"project_id":{"type":"string","format":"uuid"}}},"InviteResponse":{"type":"object","required":["invite_code","verifier"],"properties":{"invite_code":{"type":"string","format":"uuid"},"verifier":{"type":"string","format":"uuid"}}},"ListProjectsV2":{"type":"object","required":["project_id","project_name"],"properties":{"project_id":{"type":"string"},"project_name":{"type":"string"}}},"NewProjectBody":{"type":"object","required":["name"],"properties":{"name":{"type":"string"}}},"NewUserBody":{"type":"object","required":["username","public_key"],"properties":{"public_key":{"type":"string"},"username":{"type":"string"}}},"PartialKey":{"type":"object","required":["id","value","project_id","created_at"],"properties":{"created_at":{"type":"string","format":"date-time"},"id":{"type":"string"},"project_id":{"type":"string"},"value":{"type":"string"}}},"ProjectInfoV2":{"type":"object","required":["project_id","project_name","users"],"properties":{"project_id":{"type":"string"},"project_name":{"type":"string"},"users":{"type":"array","items":{"$ref":"#/components/schemas/User"}}}},"RemoveUserBody":{"type":"object","required":["user_ids"],"properties":{"user_ids":{"type":"array","items":{"type":"string"}}}},"SetManyBody":{"type":"object","required":["project_id","variables"],"properties":{"project_id":{"type":"string","format":"uuid"},"variables":{"type":"array","items":{"$ref":"#/components/schemas/VariableInput"}}}},"StrippedUser":{"type":"object","required":["id","public_key"],"properties":{"id":{"type":"string"},"public_key":{"type":"string"}}},"UpdateManyBody":{"type":"object","required":["variables"],"properties":{"variables":{"type":"array","items":{"$ref":"#/components/schemas/Variable"}}}},"UpdateProjectV2":{"type":"object","properties":{"project_name":{"type":["string","null"]}}},"User":{"type":"object","required":["id","username","created_at","public_key"],"properties":{"created_at":{"type":"string"},"id":{"type":"string"},"public_key":{"type":"string"},"username":{"type":"string"}}},"Variable":{"type":"object","required":["id","value","project_id"],"properties":{"id":{"type":"string"},"project_id":{"type":"string"},"value":{"type":"string"}}},"VariableInput":{"type":"object","required":["value"],"properties":{"tag":{"type":["string","null"]},"value":{"type":"string"}}}},"securitySchemes":{"bearer":{"type":"http","scheme":"bearer","bearerFormat":"Custom","description":"Enter your Bearer token"}}},"tags":[{"name":"projects","description":"Project API endpoints (for projects under each user)"},{"name":"project","description":"Project API endpoints (for single project)"},{"name":"user","description":"User API endpoints (for single user)"}]}