{
    "definitions": {
        "Account": {
            "description": "A tenant account",
            "media": {
                "type": "application/vnd.congo.api.account+json"
            },
            "properties": {
                "created_at": {
                    "description": "Date of creation",
                    "format": "date-time",
                    "type": "string"
                },
                "created_by": {
                    "description": "Email of account owner",
                    "format": "email",
                    "type": "string"
                },
                "href": {
                    "description": "API href of account",
                    "type": "string"
                },
                "id": {
                    "description": "ID of account",
                    "type": "integer"
                },
                "name": {
                    "description": "Name of account",
                    "type": "string"
                }
            },
            "title": "Mediatype identifier: application/vnd.congo.api.account+json",
            "type": "object"
        },
        "CreateAccountPayload": {
            "properties": {
                "name": {
                    "description": "Name of account",
                    "type": "string"
                }
            },
            "required": [
                "name"
            ],
            "title": "CreateAccountPayload",
            "type": "object"
        },
        "CreateSeriesPayload": {
            "properties": {
                "name": {
                    "minLength": 2,
                    "type": "string"
                }
            },
            "required": [
                "name"
            ],
            "title": "CreateSeriesPayload",
            "type": "object"
        },
        "CreateUserPayload": {
            "properties": {
                "email": {
                    "minLength": 2,
                    "type": "string"
                },
                "first_name": {
                    "minLength": 2,
                    "type": "string"
                },
                "last_name": {
                    "minLength": 2,
                    "type": "string"
                }
            },
            "required": [
                "email"
            ],
            "title": "CreateUserPayload",
            "type": "object"
        },
        "Series": {
            "description": "A recurring event or conference",
            "links": [
                {
                    "description": "Account that owns bottle",
                    "href": "/api/accounts/{accountID}",
                    "mediaType": "application/vnd.congo.api.account+json",
                    "method": "GET",
                    "rel": "account",
                    "targetSchema": {
                        "$ref": "#/definitions/Account"
                    },
                    "title": "account"
                }
            ],
            "media": {
                "type": "application/vnd.congo.api.series+json"
            },
            "properties": {
                "account": {
                    "$ref": "#/definitions/Account",
                    "description": "Account that owns bottle"
                },
                "created_at": {
                    "description": "Date of creation",
                    "format": "date-time",
                    "type": "string"
                },
                "href": {
                    "description": "API href of series",
                    "type": "string"
                },
                "id": {
                    "description": "ID of series",
                    "type": "integer"
                },
                "name": {
                    "minLength": 2,
                    "type": "string"
                },
                "updated_at": {
                    "description": "Date of last update",
                    "format": "date-time",
                    "type": "string"
                }
            },
            "title": "Mediatype identifier: application/vnd.congo.api.series+json",
            "type": "object"
        },
        "SeriesCollection": {
            "items": {
                "$ref": "#/definitions/Series"
            },
            "media": {
                "type": "application/vnd.congo.api.series+json; type=collection"
            },
            "title": "Mediatype identifier: application/vnd.congo.api.series+json; type=collection",
            "type": "array"
        },
        "UpdateAccountPayload": {
            "properties": {
                "name": {
                    "description": "Name of account",
                    "type": "string"
                }
            },
            "required": [
                "name"
            ],
            "title": "UpdateAccountPayload",
            "type": "object"
        },
        "UpdateSeriesPayload": {
            "properties": {
                "name": {
                    "minLength": 2,
                    "type": "string"
                }
            },
            "title": "UpdateSeriesPayload",
            "type": "object"
        },
        "UpdateUserPayload": {
            "properties": {
                "email": {
                    "minLength": 2,
                    "type": "string"
                },
                "first_name": {
                    "minLength": 2,
                    "type": "string"
                },
                "last_name": {
                    "minLength": 2,
                    "type": "string"
                }
            },
            "title": "UpdateUserPayload",
            "type": "object"
        },
        "User": {
            "description": "A user belonging to a tenant account",
            "media": {
                "type": "application/vnd.congo.api.user+json"
            },
            "properties": {
                "created_at": {
                    "description": "Date of creation",
                    "format": "date-time",
                    "type": "string"
                },
                "email": {
                    "description": "Email address of user",
                    "format": "email",
                    "type": "string"
                },
                "first_name": {
                    "description": "First name of user",
                    "type": "string"
                },
                "href": {
                    "description": "API href of user",
                    "type": "string"
                },
                "id": {
                    "description": "ID of user",
                    "type": "integer"
                },
                "last_name": {
                    "description": "Last name of user",
                    "type": "string"
                }
            },
            "title": "Mediatype identifier: application/vnd.congo.api.user+json",
            "type": "object"
        },
        "UserCollection": {
            "items": {
                "$ref": "#/definitions/User"
            },
            "media": {
                "type": "application/vnd.congo.api.user+json; type=collection"
            },
            "title": "Mediatype identifier: application/vnd.congo.api.user+json; type=collection",
            "type": "array"
        },
        "account": {
            "description": "A tenant account",
            "links": [
                {
                    "href": "/api/accounts/{accountID}",
                    "mediaType": "application/vnd.congo.api.account+json",
                    "method": "GET",
                    "rel": "self",
                    "targetSchema": {
                        "$ref": "#/definitions/Account"
                    },
                    "title": "show"
                },
                {
                    "href": "/api/accounts",
                    "method": "POST",
                    "rel": "create",
                    "schema": {
                        "$ref": "#/definitions/CreateAccountPayload",
                        "description": "create payload"
                    },
                    "title": "create"
                },
                {
                    "href": "/api/accounts/{accountID}",
                    "method": "PUT",
                    "rel": "update",
                    "schema": {
                        "$ref": "#/definitions/UpdateAccountPayload",
                        "description": "update payload"
                    },
                    "title": "update"
                },
                {
                    "href": "/api/accounts/{accountID}",
                    "method": "DELETE",
                    "rel": "delete",
                    "title": "delete"
                }
            ],
            "media": {
                "type": "application/vnd.congo.api.account+json"
            },
            "properties": {
                "created_at": {
                    "description": "Date of creation",
                    "format": "date-time",
                    "type": "string"
                },
                "created_by": {
                    "description": "Email of account owner",
                    "format": "email",
                    "type": "string"
                },
                "href": {
                    "description": "API href of account",
                    "type": "string"
                },
                "id": {
                    "description": "ID of account",
                    "type": "integer"
                },
                "name": {
                    "description": "Name of account",
                    "type": "string"
                }
            },
            "title": "account",
            "type": "object"
        },
        "series": {
            "description": "A recurring event or conference",
            "links": [
                {
                    "description": "Account that owns bottle",
                    "href": "/api/accounts/{accountID}",
                    "mediaType": "application/vnd.congo.api.account+json",
                    "method": "GET",
                    "rel": "account",
                    "targetSchema": {
                        "$ref": "#/definitions/Account"
                    },
                    "title": "account"
                },
                {
                    "href": "/api/accounts/{accountID}/series",
                    "mediaType": "application/vnd.congo.api.series+json; type=collection",
                    "method": "GET",
                    "rel": "list",
                    "targetSchema": {
                        "$ref": "#/definitions/SeriesCollection"
                    },
                    "title": "list"
                },
                {
                    "href": "/api/accounts/{accountID}/series/{seriesID}",
                    "mediaType": "application/vnd.congo.api.series+json",
                    "method": "GET",
                    "rel": "self",
                    "targetSchema": {
                        "$ref": "#/definitions/Series"
                    },
                    "title": "show"
                },
                {
                    "href": "/api/accounts/{accountID}/series",
                    "method": "POST",
                    "rel": "create",
                    "schema": {
                        "$ref": "#/definitions/CreateSeriesPayload",
                        "description": "create payload"
                    },
                    "title": "create"
                },
                {
                    "href": "/api/accounts/{accountID}/series/{seriesID}",
                    "method": "PATCH",
                    "rel": "update",
                    "schema": {
                        "$ref": "#/definitions/UpdateSeriesPayload",
                        "description": "update payload"
                    },
                    "title": "update"
                }
            ],
            "media": {
                "type": "application/vnd.congo.api.series+json"
            },
            "properties": {
                "account": {
                    "$ref": "#/definitions/Account",
                    "description": "Account that owns bottle"
                },
                "created_at": {
                    "description": "Date of creation",
                    "format": "date-time",
                    "type": "string"
                },
                "href": {
                    "description": "API href of series",
                    "type": "string"
                },
                "id": {
                    "description": "ID of series",
                    "type": "integer"
                },
                "name": {
                    "minLength": 2,
                    "type": "string"
                },
                "updated_at": {
                    "description": "Date of last update",
                    "format": "date-time",
                    "type": "string"
                }
            },
            "title": "series",
            "type": "object"
        },
        "user": {
            "description": "A user belonging to a tenant account",
            "links": [
                {
                    "href": "/api/accounts/{accountID}/users/{userID}",
                    "method": "PATCH",
                    "rel": "update",
                    "schema": {
                        "$ref": "#/definitions/UpdateUserPayload",
                        "description": "update payload"
                    },
                    "title": "update"
                },
                {
                    "href": "/api/accounts/{accountID}/users",
                    "mediaType": "application/vnd.congo.api.user+json; type=collection",
                    "method": "GET",
                    "rel": "list",
                    "targetSchema": {
                        "$ref": "#/definitions/UserCollection"
                    },
                    "title": "list"
                },
                {
                    "href": "/api/accounts/{accountID}/users/{userID}",
                    "mediaType": "application/vnd.congo.api.user+json",
                    "method": "GET",
                    "rel": "self",
                    "targetSchema": {
                        "$ref": "#/definitions/User"
                    },
                    "title": "show"
                },
                {
                    "href": "/api/accounts/{accountID}/users",
                    "method": "POST",
                    "rel": "create",
                    "schema": {
                        "$ref": "#/definitions/CreateUserPayload",
                        "description": "create payload"
                    },
                    "title": "create"
                }
            ],
            "media": {
                "type": "application/vnd.congo.api.user+json"
            },
            "properties": {
                "created_at": {
                    "description": "Date of creation",
                    "format": "date-time",
                    "type": "string"
                },
                "email": {
                    "description": "Email address of user",
                    "format": "email",
                    "type": "string"
                },
                "first_name": {
                    "description": "First name of user",
                    "type": "string"
                },
                "href": {
                    "description": "API href of user",
                    "type": "string"
                },
                "id": {
                    "description": "ID of user",
                    "type": "integer"
                },
                "last_name": {
                    "description": "Last name of user",
                    "type": "string"
                }
            },
            "title": "user",
            "type": "object"
        }
    },
    "description": "Multi-tenant conference management application",
    "links": [
        {
            "href": "http://localhost",
            "rel": "self"
        },
        {
            "href": "/schema",
            "method": "GET",
            "rel": "self",
            "targetSchema": {
                "$schema": "http://json-schema.org/draft-04/schema",
                "additionalProperties": true
            }
        }
    ],
    "properties": {
        "Account": {
            "$ref": "#/definitions/Account"
        },
        "CreateAccountPayload": {
            "$ref": "#/definitions/CreateAccountPayload"
        },
        "CreateSeriesPayload": {
            "$ref": "#/definitions/CreateSeriesPayload"
        },
        "CreateUserPayload": {
            "$ref": "#/definitions/CreateUserPayload"
        },
        "Series": {
            "$ref": "#/definitions/Series"
        },
        "SeriesCollection": {
            "$ref": "#/definitions/SeriesCollection"
        },
        "UpdateAccountPayload": {
            "$ref": "#/definitions/UpdateAccountPayload"
        },
        "UpdateSeriesPayload": {
            "$ref": "#/definitions/UpdateSeriesPayload"
        },
        "UpdateUserPayload": {
            "$ref": "#/definitions/UpdateUserPayload"
        },
        "User": {
            "$ref": "#/definitions/User"
        },
        "UserCollection": {
            "$ref": "#/definitions/UserCollection"
        },
        "account": {
            "$ref": "#/definitions/account"
        },
        "series": {
            "$ref": "#/definitions/series"
        },
        "user": {
            "$ref": "#/definitions/user"
        }
    },
    "title": "Congo - Conference Management Made Easy",
    "type": "object"
}