Last active
December 9, 2016 14:31
-
-
Save danielmbarlow/ecbecefe7a99435f23c3d1c39dcfdfb7 to your computer and use it in GitHub Desktop.
Sample swagger file
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{"swagger":"2.0","info":{"version":"1.0.0","title":"Kakama API documentation","description":"Documentation for the API","termsOfService":"","contact":{"name":""},"license":{"name":"GPL 3.0"}},"tags":[{"name":"staff","description":"Application users and staff being rostered"},{"name":"events","description":"Occuring at venues between specific times"},{"name":"roles","description":"Assigned to users to carry out at events"},{"name":"venues","description":"Places where staff are assigned to events"}],"host":"localhost:3000","basePath":"/","consumes":["application/json"],"produces":["application/json"],"paths":{"/events":{"get":{"description":"Fetches all records","tags":["events"],"parameters":[{"name":"api_key","in":"query","required":true,"type":"string","description":"Authentication token"},{"name":"type","in":"query","required":false,"type":"string","description":"Filter by type. If not specified, returns all approved current and future events","enum":["","past","working","cancelled"]},{"name":"page","in":"query","required":false,"type":"integer","description":"Page number"}],"responses":{"200":{"description":"success","schema":{"type":"array","items":{"$ref":"#/definitions/Event"}}}}}},"/events/{id}":{"get":{"description":"Fetches a record given an id","tags":["events"],"parameters":[{"name":"api_key","in":"query","required":true,"type":"string","description":"Authentication token"},{"name":"id","in":"path","required":true,"type":"string","description":"Event ID"}],"responses":{"200":{"description":"record found","schema":{"type":"object","$ref":"#/definitions/Event"}}}},"put":{"description":"Updates a record given it's ID and attributes","parameters":[{"name":"api_key","in":"query","required":true,"type":"string","description":"Authentication token"},{"name":"id","in":"path","required":true,"type":"string","description":"Event ID"},{"name":"event","in":"body","description":"Event record to update","required":true,"schema":{"properties":{"event":{"$ref":"#/definitions/Event"}}}}],"tags":["events"],"responses":{"200":{"description":"record updated"}}}},"/events/":{"post":{"description":"Creates a record given it's attributes","parameters":[{"name":"api_key","in":"query","required":true,"type":"string","description":"Authentication token"},{"name":"event","in":"body","description":"Event record to create","required":true,"schema":{"properties":{"event":{"$ref":"#/definitions/Event"}}}}],"tags":["events"],"responses":{"200":{"description":"record created","schema":{"$ref":"#/definitions/Event"}}}}},"/staffs/{id}":{"get":{"description":"Fetches a record given an id","tags":["staff"],"parameters":[{"name":"api_key","in":"query","required":true,"type":"string","description":"Authentication token"},{"name":"id","in":"path","required":true,"type":"string","description":"Staff ID"}],"responses":{"200":{"description":"record found","schema":{"type":"object","$ref":"#/definitions/Staff"}}}},"put":{"description":"Updates a record given it's attributes","parameters":[{"name":"api_key","in":"query","required":true,"type":"string","description":"Authentication token"},{"name":"id","in":"path","required":true,"type":"string","description":"Staff ID"},{"name":"staff","in":"body","description":"Staff record to update","required":true,"schema":{"properties":{"staff":{"$ref":"#/definitions/StaffInput"}}}}],"tags":["staff"],"responses":{"200":{"description":"record updated"}}},"delete":{"description":"Deletes a record given it's id","parameters":[{"name":"api_key","in":"query","required":true,"type":"string","description":"Authentication token"},{"name":"id","in":"path","required":true,"type":"string","description":"Staff ID"}],"tags":["staff"],"responses":{"200":{"description":"record destroyed"}}}},"/roles":{"get":{"description":"Lists all records","tags":["roles"],"parameters":[{"name":"api_key","in":"query","required":true,"type":"string","description":"Authentication token"},{"name":"page","in":"query","required":false,"type":"integer","description":"Page number"}],"responses":{"200":{"description":"success","schema":{"type":"array","items":{"$ref":"#/definitions/Role"}}}}},"post":{"description":"Creates a record given it's attributes","parameters":[{"name":"api_key","in":"query","required":true,"type":"string","description":"Authentication token"},{"name":"role","in":"body","description":"Record to create","required":true,"schema":{"properties":{"record":{"$ref":"#/definitions/Role"}}}}],"tags":["roles"],"responses":{"200":{"description":"record created","schema":{"$ref":"#/definitions/Role"}}}}},"/roles/{id}":{"get":{"description":"Fetches a record given an id","tags":["roles"],"parameters":[{"name":"api_key","in":"query","required":true,"type":"string","description":"Authentication token"},{"name":"id","in":"path","required":true,"type":"string","description":"Record ID"}],"responses":{"200":{"description":"record found","schema":{"type":"object","$ref":"#/definitions/Role"}}}},"put":{"description":"Updates a record given it's attributes","parameters":[{"name":"api_key","in":"query","required":true,"type":"string","description":"Authentication token"},{"name":"id","in":"path","required":true,"type":"string","description":"Record ID"},{"name":"role","in":"body","description":"Record to update","required":true,"schema":{"properties":{"record":{"$ref":"#/definitions/Role"}}}}],"tags":["roles"],"responses":{"200":{"description":"record updated"}}},"delete":{"description":"Deletes a record given it's id","parameters":[{"name":"api_key","in":"query","required":true,"type":"string","description":"Authentication token"},{"name":"id","in":"path","required":true,"type":"string","description":"Record ID"}],"tags":["roles"],"responses":{"200":{"description":"record destroyed"}}}},"/staffs":{"get":{"description":"Fetches all records","tags":["staff"],"parameters":[{"name":"api_key","in":"query","required":true,"type":"string","description":"Authentication token"},{"name":"search_text","in":"query","required":false,"type":"string","description":"Partial search on full name"},{"name":"page","in":"query","required":false,"type":"integer","description":"Page number"}],"responses":{"200":{"description":"success","schema":{"type":"array","items":{"$ref":"#/definitions/Staff"}}}}}},"/staffs/":{"post":{"description":"Creates a record given it's attributes","parameters":[{"name":"api_key","in":"query","required":true,"type":"string","description":"Authentication token"},{"name":"staff","in":"body","description":"Staff record to create","required":true,"schema":{"properties":{"staff":{"$ref":"#/definitions/StaffInput"}}}}],"tags":["staff"],"responses":{"200":{"description":"record created","schema":{"$ref":"#/definitions/Staff"}}}}},"/venues":{"get":{"description":"Lists all records","tags":["venues"],"parameters":[{"name":"api_key","in":"query","required":true,"type":"string","description":"Authentication token"},{"name":"page","in":"query","required":false,"type":"integer","description":"Page number"}],"responses":{"200":{"description":"success","schema":{"type":"array","items":{"$ref":"#/definitions/Venue"}}}}},"post":{"description":"Creates a record given it's attributes","parameters":[{"name":"api_key","in":"query","required":true,"type":"string","description":"Authentication token"},{"name":"venue","in":"body","description":"Record to create","required":true,"schema":{"properties":{"record":{"$ref":"#/definitions/Venue"}}}}],"tags":["venues"],"responses":{"200":{"description":"record created","schema":{"$ref":"#/definitions/Venue"}}}}},"/venues/{id}":{"get":{"description":"Fetches a record given an id","tags":["venues"],"parameters":[{"name":"api_key","in":"query","required":true,"type":"string","description":"Authentication token"},{"name":"id","in":"path","required":true,"type":"string","description":"Record ID"}],"responses":{"200":{"description":"record found","schema":{"type":"object","$ref":"#/definitions/Venue"}}}},"put":{"description":"Updates a record given it's attributes","parameters":[{"name":"api_key","in":"query","required":true,"type":"string","description":"Authentication token"},{"name":"id","in":"path","required":true,"type":"string","description":"Record ID"},{"name":"venue","in":"body","description":"Record to update","required":true,"schema":{"properties":{"record":{"$ref":"#/definitions/Venue"}}}}],"tags":["venues"],"responses":{"200":{"description":"record updated"}}},"delete":{"description":"Deletes a record given it's id","parameters":[{"name":"api_key","in":"query","required":true,"type":"string","description":"Authentication token"},{"name":"id","in":"path","required":true,"type":"string","description":"Record ID"}],"tags":["venues"],"responses":{"200":{"description":"record destroyed"}}}}},"definitions":{"Event":{"required":["venue_id","name","start_datetime","end_datetime","organiser_id"],"properties":{"venue_id":{"type":"string","example":"1"},"recurring":{"type":"boolean","example":"false"},"schedule_id":{"type":"integer","example":"1","format":"int64"},"name":{"type":"string","example":"event name"},"description":{"type":"string","example":"event description"},"start_datetime":{"type":"string","example":"9999-01-30T00:00:00+01:00"},"end_datetime":{"type":"string","example":"9999-01-31T00:00:00+01:00"},"organiser_id":{"type":"integer","example":"1","format":"int64"},"state":{"type":"string","example":"approved","enum":["working,","approved,","cancelled"]},"created_at":{"type":"string","example":"2016-11-22T22:35:33+01:00"},"updated_at":{"type":"string","example":"2016-11-22T22:35:33+01:00"}}},"Role":{"required":["name"],"properties":{"description":{"type":"string","example":"description"},"name":{"type":"string","example":"role name"}}},"Staff":{"required":["username"],"properties":{"username":{"type":"string","example":"username"},"staff_type":{"type":"string","example":"admin"},"full_name":{"type":"string","example":"User Name"},"email":{"type":"string","example":"user@domain.com","format":"email"},"start_date":{"type":"string","example":"2016-11-15"},"admin_notes":{"type":"string","example":"Free text notes field"},"role_ids":{"type":"array","format":"int64","items":{"type":"integer"}}}},"StaffInput":{"allOf":[{"$ref":"#/definitions/Staff"},{"required":["username"],"properties":{"password":{"type":"string","example":"password"},"password_confirmation":{"type":"string","example":"password"}}}]},"Venue":{"required":["name"],"properties":{"description":{"type":"string","example":"description"},"name":{"type":"string","example":"venue name"}}}}} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment