{ "$defs": { "item_type": { "oneOf": [ { "const": "Food" }, { "const": "Clothes" }, { "const": "Camp" }, { "const": "Utensils" }, { "const": "Gear" } ], "type": "string" }, "adventure": { "properties": { "guid": { "type": "string" }, "name": { "type": "string" }, "description": { "type": "string" }, "location": { "type": "string" }, "participants": { "items": { "$ref": "#/$defs/participant" }, "type": "array" }, "pack_lists": { "items": { "$ref": "#/$defs/item" }, "type": "array" } }, "required": [ "guid", "name" ], "type": "object" }, "error": { "properties": { "code": { "type": "string" }, "message": { "type": "string" } }, "required": [ "code", "message" ], "type": "object" }, "guest": { "properties": { "email": { "type": "string" }, "name": { "type": "string" } }, "required": [], "type": "object" }, "item": { "properties": { "name": { "type": "string" }, "size": { "type": "number" }, "description": { "type": "string" }, "type": { "$ref": "#/$defs/item_type" } }, "required": [ "name" ], "type": "object" }, "participant": { "properties": { "person": { "$ref": "#/$defs/person" }, "items": { "items": { "$ref": "#/$defs/item" }, "type": "array" } }, "required": [ "person" ], "type": "object" }, "user": { "properties": { "guid": { "type": "string" }, "email": { "type": "string" }, "name": { "type": "string" } }, "required": [ "guid" ], "type": "object" }, "person": { "anyOf": [ { "$ref": "#/$defs/guest" }, { "$ref": "#/$defs/user" } ] } }, "additionalProperties": true, "properties": { "authenticated": { "const": true, "type": "boolean" }, "body": { "type": "object" }, "rawBody": { "type": "object" }, "headers": { "type": "object" }, "method": { "const": "POST", "type": "string" }, "parameterizedUrl": { "const": "/adventures", "type": "string" }, "path": { "type": "string" }, "query": { "type": "object" }, "url": { "type": "string" } }, "required": [ "body", "rawBody", "query", "path", "url", "method" ], "type": "object" }