{ "name": "questlog api", "description": "Adventure planing tool.", "base_url": "https://api.questlog.io", "info": { "contact": { "name": "Alexander Poole", "email": "alexander@poole.solutions", "url": "https://github.com/owodunni/questlog" }, "license": { "name": "MIT", "url": "http://opensource.org/licenses/MIT" } }, "enums": { "item_type": { "values": [ { "name": "Food", "description": "Required to keep going" }, { "name": "Clothes", "description": "Required to fend of nature" }, { "name": "Camp", "description": "Required for sleep" }, { "name": "Utensils", "description": "Required for eating" }, { "name": "Gear", "description": "Required to perform the given activity" } ] } }, "unions": { "person": { "discriminator": "discriminator", "interfaces": ["person"], "types": [ { "type": "guest" }, { "type": "user" } ] } }, "interfaces": { "database_record": { "fields": [ { "name": "guid", "type": "uuid", "description": "primary key" } ] }, "person": { "fields": [ { "name": "email", "type": "string", "required": false }, { "name": "name", "type": "string", "required": false } ] } }, "models": { "user": { "interfaces": ["database_record"], "fields": [ { "name": "guid", "type": "uuid" }, { "name": "email", "type": "string", "required": false }, { "name": "name", "type": "string", "required": false } ] }, "guest": { "fields": [ { "name": "email", "type": "string", "required": false }, { "name": "name", "type": "string", "required": false } ] }, "item": { "fields": [ { "name": "name", "type": "string" }, { "name": "size", "type": "double", "required": false }, { "name": "description", "type": "string", "required": false }, { "name": "type", "type": "item_type", "required": false } ] }, "participant": { "description": "Represents a adventure participant and what items they will bring.", "fields": [ { "name": "person", "type": "person" }, { "name": "items", "type": "[item]", "required": false} ] }, "adventure": { "interfaces": ["database_record"], "description": "Represents an adventure.", "fields": [ { "name": "guid", "type": "uuid" }, { "name": "name", "type": "string" }, { "name": "description", "type": "string" , "required": false }, { "name": "location", "type": "string" , "required": false }, { "name": "participants", "type": "[participant]" , "required": false }, { "name": "pack_lists", "type": "[item]" , "required": false } ] }, "error": { "description": "Represents a validation error from the application.", "fields": [ { "name": "code", "type": "string" }, { "name": "message", "type": "string" } ] } }, "resources": { "adventure": { "operations": [ { "method": "POST", "parameters": [ { "name": "adventure", "type": "adventure" } ], "responses": { "201": { "type": "adventure" }, "409": { "type": "[error]" } } }, { "method": "GET", "parameters": [ { "name": "guid", "type": "uuid", "required": false }, { "name": "name", "type": "string", "required": false } ], "responses": { "200": { "type": "[adventure]" } } }, { "path": "/:guid", "method": "GET", "responses": { "200": { "type": "adventure" } } } ] } } }