{
    "definitions": {
        "BottlePayload": {
            "example": {
                "color": "sparkling",
                "country": "USA",
                "name": "Number 8",
                "region": "Napa Valley",
                "review": "Great and inexpensive",
                "sweetness": 4,
                "varietal": "Merlot",
                "vineyard": "Asti",
                "vintage": 2012
            },
            "properties": {
                "color": {
                    "enum": [
                        "red",
                        "white",
                        "rose",
                        "yellow",
                        "sparkling"
                    ],
                    "example": "sparkling",
                    "type": "string"
                },
                "country": {
                    "example": "USA",
                    "minLength": 2,
                    "type": "string"
                },
                "name": {
                    "example": "Number 8",
                    "minLength": 2,
                    "type": "string"
                },
                "region": {
                    "example": "Napa Valley",
                    "type": "string"
                },
                "review": {
                    "example": "Great and inexpensive",
                    "maxLength": 300,
                    "minLength": 3,
                    "type": "string"
                },
                "sweetness": {
                    "example": 4,
                    "maximum": 5,
                    "minimum": 1,
                    "type": "integer"
                },
                "varietal": {
                    "example": "Merlot",
                    "minLength": 4,
                    "type": "string"
                },
                "vineyard": {
                    "example": "Asti",
                    "minLength": 2,
                    "type": "string"
                },
                "vintage": {
                    "example": 2012,
                    "maximum": 2020,
                    "minimum": 1900,
                    "type": "integer"
                }
            },
            "title": "BottlePayload",
            "type": "object"
        },
        "CreateAccountPayload": {
            "example": {
                "name": "Ratione debitis."
            },
            "properties": {
                "name": {
                    "example": "Ratione debitis.",
                    "type": "string"
                }
            },
            "required": [
                "name"
            ],
            "title": "CreateAccountPayload",
            "type": "object"
        },
        "CreateBottlePayload": {
            "example": {
                "color": "sparkling",
                "country": "USA",
                "name": "Number 8",
                "region": "Napa Valley",
                "review": "Great and inexpensive",
                "sweetness": 4,
                "varietal": "Merlot",
                "vineyard": "Asti",
                "vintage": 2012
            },
            "properties": {
                "color": {
                    "enum": [
                        "red",
                        "white",
                        "rose",
                        "yellow",
                        "sparkling"
                    ],
                    "example": "sparkling",
                    "type": "string"
                },
                "country": {
                    "example": "USA",
                    "minLength": 2,
                    "type": "string"
                },
                "name": {
                    "example": "Number 8",
                    "minLength": 2,
                    "type": "string"
                },
                "region": {
                    "example": "Napa Valley",
                    "type": "string"
                },
                "review": {
                    "example": "Great and inexpensive",
                    "maxLength": 300,
                    "minLength": 3,
                    "type": "string"
                },
                "sweetness": {
                    "example": 4,
                    "maximum": 5,
                    "minimum": 1,
                    "type": "integer"
                },
                "varietal": {
                    "example": "Merlot",
                    "minLength": 4,
                    "type": "string"
                },
                "vineyard": {
                    "example": "Asti",
                    "minLength": 2,
                    "type": "string"
                },
                "vintage": {
                    "example": 2012,
                    "maximum": 2020,
                    "minimum": 1900,
                    "type": "integer"
                }
            },
            "required": [
                "name",
                "vineyard",
                "varietal",
                "vintage",
                "color"
            ],
            "title": "CreateBottlePayload",
            "type": "object"
        },
        "RateBottlePayload": {
            "example": {
                "rating": 8279792463320557696
            },
            "properties": {
                "rating": {
                    "example": 8279792463320557696,
                    "format": "int64",
                    "type": "integer"
                }
            },
            "required": [
                "rating"
            ],
            "title": "RateBottlePayload",
            "type": "object"
        },
        "UpdateAccountPayload": {
            "example": {
                "name": "Sapiente expedita sit laboriosam placeat ducimus doloribus."
            },
            "properties": {
                "name": {
                    "example": "Sapiente expedita sit laboriosam placeat ducimus doloribus.",
                    "type": "string"
                }
            },
            "required": [
                "name"
            ],
            "title": "UpdateAccountPayload",
            "type": "object"
        },
        "account": {
            "links": [
                {
                    "href": "/cellar/accounts",
                    "mediaType": "application/vnd.goa.error",
                    "method": "POST",
                    "rel": "create",
                    "schema": {
                        "$ref": "#/definitions/CreateAccountPayload",
                        "description": "create payload"
                    },
                    "targetSchema": {
                        "$ref": "#/definitions/error"
                    },
                    "title": "create"
                },
                {
                    "href": "/cellar/accounts/{accountID}",
                    "mediaType": "application/vnd.goa.error",
                    "method": "DELETE",
                    "rel": "delete",
                    "targetSchema": {
                        "$ref": "#/definitions/error"
                    },
                    "title": "delete"
                },
                {
                    "href": "/cellar/accounts",
                    "method": "GET",
                    "rel": "list",
                    "title": "list"
                },
                {
                    "href": "/cellar/accounts/{accountID}",
                    "mediaType": "application/vnd.goa.error",
                    "method": "GET",
                    "rel": "self",
                    "targetSchema": {
                        "$ref": "#/definitions/error"
                    },
                    "title": "show"
                },
                {
                    "href": "/cellar/accounts/{accountID}",
                    "mediaType": "application/vnd.goa.error",
                    "method": "PUT",
                    "rel": "update",
                    "schema": {
                        "$ref": "#/definitions/UpdateAccountPayload",
                        "description": "update payload"
                    },
                    "targetSchema": {
                        "$ref": "#/definitions/error"
                    },
                    "title": "update"
                }
            ],
            "title": "account",
            "type": "object"
        },
        "bottle": {
            "links": [
                {
                    "href": "/cellar/accounts/{accountID}/bottles",
                    "mediaType": "application/vnd.goa.error",
                    "method": "POST",
                    "rel": "create",
                    "schema": {
                        "$ref": "#/definitions/CreateBottlePayload",
                        "description": "create payload"
                    },
                    "targetSchema": {
                        "$ref": "#/definitions/error"
                    },
                    "title": "create"
                },
                {
                    "href": "/cellar/accounts/{accountID}/bottles/{bottleID}",
                    "mediaType": "application/vnd.goa.error",
                    "method": "DELETE",
                    "rel": "delete",
                    "targetSchema": {
                        "$ref": "#/definitions/error"
                    },
                    "title": "delete"
                },
                {
                    "href": "/cellar/accounts/{accountID}/bottles",
                    "mediaType": "application/vnd.goa.error",
                    "method": "GET",
                    "rel": "list",
                    "targetSchema": {
                        "$ref": "#/definitions/error"
                    },
                    "title": "list"
                },
                {
                    "href": "/cellar/accounts/{accountID}/bottles/{bottleID}/actions/rate",
                    "mediaType": "application/vnd.goa.error",
                    "method": "PUT",
                    "rel": "rate",
                    "schema": {
                        "$ref": "#/definitions/RateBottlePayload",
                        "description": "rate payload"
                    },
                    "targetSchema": {
                        "$ref": "#/definitions/error"
                    },
                    "title": "rate"
                },
                {
                    "href": "/cellar/accounts/{accountID}/bottles/{bottleID}",
                    "mediaType": "application/vnd.goa.error",
                    "method": "GET",
                    "rel": "self",
                    "targetSchema": {
                        "$ref": "#/definitions/error"
                    },
                    "title": "show"
                },
                {
                    "href": "/cellar/accounts/{accountID}/bottles/{bottleID}",
                    "mediaType": "application/vnd.goa.error",
                    "method": "PATCH",
                    "rel": "update",
                    "schema": {
                        "$ref": "#/definitions/BottlePayload",
                        "description": "update payload"
                    },
                    "targetSchema": {
                        "$ref": "#/definitions/error"
                    },
                    "title": "update"
                },
                {
                    "href": "/cellar/accounts/{accountID}/bottles/{bottleID}/watch",
                    "mediaType": "application/vnd.goa.error",
                    "method": "GET",
                    "rel": "watch",
                    "targetSchema": {
                        "$ref": "#/definitions/error"
                    },
                    "title": "watch"
                }
            ],
            "title": "bottle",
            "type": "object"
        },
        "error": {
            "description": "Error response media type (default view)",
            "example": {
                "code": "invalid_value",
                "detail": "Value of ID must be an integer",
                "id": "3F1FKVRR",
                "meta": {
                    "timestamp": 1458609066
                },
                "status": "400"
            },
            "media": {
                "type": "application/vnd.goa.error; view=default"
            },
            "properties": {
                "code": {
                    "description": "an application-specific error code, expressed as a string value.",
                    "example": "invalid_value",
                    "type": "string"
                },
                "detail": {
                    "description": "a human-readable explanation specific to this occurrence of the problem.",
                    "example": "Value of ID must be an integer",
                    "type": "string"
                },
                "id": {
                    "description": "a unique identifier for this particular occurrence of the problem.",
                    "example": "3F1FKVRR",
                    "type": "string"
                },
                "meta": {
                    "additionalProperties": true,
                    "description": "a meta object containing non-standard meta-information about the error.",
                    "example": {
                        "timestamp": 1458609066
                    },
                    "type": "object"
                },
                "status": {
                    "description": "the HTTP status code applicable to this problem, expressed as a string value.",
                    "example": "400",
                    "type": "string"
                }
            },
            "title": "Mediatype identifier: application/vnd.goa.error; view=default",
            "type": "object"
        },
        "health": {
            "links": [
                {
                    "href": "/cellar/_ah/health",
                    "method": "GET",
                    "rel": "health",
                    "title": "health"
                }
            ],
            "title": "health",
            "type": "object"
        },
        "js": {
            "title": "js",
            "type": "object"
        },
        "public": {
            "title": "public",
            "type": "object"
        },
        "swagger": {
            "title": "swagger",
            "type": "object"
        }
    },
    "description": "A basic example of a CRUD API implemented with goa",
    "links": [
        {
            "href": "http://localhost:8081",
            "rel": "self"
        },
        {
            "href": "/schema",
            "method": "GET",
            "rel": "self",
            "targetSchema": {
                "$schema": "http://json-schema.org/draft-04/schema",
                "additionalProperties": true
            }
        }
    ],
    "properties": {
        "BottlePayload": {
            "$ref": "#/definitions/BottlePayload"
        },
        "CreateAccountPayload": {
            "$ref": "#/definitions/CreateAccountPayload"
        },
        "CreateBottlePayload": {
            "$ref": "#/definitions/CreateBottlePayload"
        },
        "RateBottlePayload": {
            "$ref": "#/definitions/RateBottlePayload"
        },
        "UpdateAccountPayload": {
            "$ref": "#/definitions/UpdateAccountPayload"
        },
        "account": {
            "$ref": "#/definitions/account"
        },
        "bottle": {
            "$ref": "#/definitions/bottle"
        },
        "error": {
            "$ref": "#/definitions/error"
        },
        "health": {
            "$ref": "#/definitions/health"
        },
        "js": {
            "$ref": "#/definitions/js"
        },
        "public": {
            "$ref": "#/definitions/public"
        },
        "swagger": {
            "$ref": "#/definitions/swagger"
        }
    },
    "title": "The virtual wine cellar",
    "type": "object"
}