{
    "definitions": {
        "info": {
            "$schema": "http://json-schema.org/draft-04/schema",
            "definitions": {
                "content": {
                    "description": "本文",
                    "readOnly": true,
                    "type": [
                        "string"
                    ]
                },
                "id": {
                    "description": "ID",
                    "format": "integer",
                    "readOnly": true,
                    "type": [
                        "number"
                    ]
                },
                "identity": {
                    "$ref": "#/definitions/info/definitions/id"
                },
                "published_at": {
                    "description": "公開日時",
                    "example": "2016-02-01T12:13:14Z",
                    "format": "date-time",
                    "type": [
                        "string"
                    ]
                },
                "title": {
                    "description": "タイトル",
                    "readOnly": true,
                    "type": [
                        "string"
                    ]
                }
            },
            "description": "Info",
            "links": [
                {
                    "href": "/info",
                    "method": "GET",
                    "rel": "instances",
                    "title": "お知らせ一覧"
                },
                {
                    "href": "/info/{(%23%2Fdefinitions%2Finfo%2Fdefinitions%2Fidentity)}",
                    "method": "GET",
                    "rel": "self",
                    "title": "お知らせ詳細"
                }
            ],
            "properties": {
                "content": {
                    "$ref": "#/definitions/info/definitions/content"
                },
                "id": {
                    "$ref": "#/definitions/info/definitions/id"
                },
                "publishedAt": {
                    "$ref": "#/definitions/info/definitions/published_at"
                },
                "title": {
                    "$ref": "#/definitions/info/definitions/title"
                }
            },
            "stability": "prototype",
            "strictProperties": true,
            "title": "Info",
            "type": [
                "object"
            ]
        },
        "machine": {
            "$schema": "http://json-schema.org/draft-04/schema",
            "definitions": {
                "id": {
                    "description": "ID",
                    "format": "uuid",
                    "readOnly": true,
                    "type": [
                        "string"
                    ]
                },
                "identity": {
                    "$ref": "#/definitions/machine/definitions/id"
                },
                "name": {
                    "description": "マシン名",
                    "readOnly": true,
                    "type": [
                        "string"
                    ]
                }
            },
            "description": "Machine",
            "links": [],
            "properties": {
                "id": {
                    "$ref": "#/definitions/machine/definitions/id"
                },
                "name": {
                    "$ref": "#/definitions/machine/definitions/name"
                }
            },
            "stability": "prototype",
            "strictProperties": true,
            "title": "Machine",
            "type": [
                "object"
            ]
        },
        "user": {
            "$schema": "http://json-schema.org/draft-04/schema",
            "definitions": {
                "addressCity": {
                    "description": "市区町村",
                    "example": "渋谷区",
                    "type": [
                        "string"
                    ]
                },
                "addressLine1": {
                    "description": "番地など",
                    "example": "渋谷1-2-3",
                    "type": [
                        "string"
                    ]
                },
                "addressLine2": {
                    "description": "建物名など",
                    "example": "KKビル202",
                    "type": [
                        "string"
                    ]
                },
                "addressState": {
                    "description": "都道府県",
                    "example": "東京都",
                    "type": [
                        "string"
                    ]
                },
                "addressZip": {
                    "description": "郵便番号",
                    "example": "1000001",
                    "type": [
                        "string"
                    ]
                },
                "birthday": {
                    "description": "生年月日",
                    "example": "1985-04-20",
                    "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
                    "type": [
                        "string"
                    ]
                },
                "firstName": {
                    "description": "名",
                    "example": "わかる",
                    "readOnly": true,
                    "type": [
                        "string"
                    ]
                },
                "id": {
                    "description": "ID",
                    "example": "01234567-89ab-cdef-0123-456789abcdef",
                    "format": "uuid",
                    "readOnly": true,
                    "type": [
                        "string"
                    ]
                },
                "lastName": {
                    "description": "姓",
                    "example": "わたり",
                    "readOnly": true,
                    "type": [
                        "string"
                    ]
                },
                "password": {
                    "description": "パスワード",
                    "example": "pass",
                    "type": [
                        "string"
                    ]
                },
                "registeredAt": {
                    "description": "登録日時",
                    "example": "2015-12-19T12:13:14Z",
                    "format": "date-time",
                    "type": [
                        "string"
                    ]
                },
                "tel": {
                    "description": "携帯電話番号",
                    "example": "09012345678",
                    "type": [
                        "string"
                    ]
                }
            },
            "description": "ユーザ",
            "links": [
                {
                    "description": "ユーザ登録",
                    "href": "/users",
                    "method": "POST",
                    "rel": "create",
                    "schema": {
                        "properties": {
                            "birthday": {
                                "$ref": "#/definitions/user/definitions/birthday"
                            },
                            "firstName": {
                                "$ref": "#/definitions/user/definitions/firstName"
                            },
                            "lastName": {
                                "$ref": "#/definitions/user/definitions/lastName"
                            },
                            "password": {
                                "$ref": "#/definitions/user/definitions/password"
                            }
                        },
                        "required": [
                            "firstName",
                            "lastName",
                            "email",
                            "password",
                            "birthday"
                        ],
                        "type": [
                            "object"
                        ]
                    },
                    "title": "登録"
                },
                {
                    "description": "ログイン中ユーザのアカウント情報",
                    "href": "/users/me",
                    "http_header": {
                        "Authorization": "Bearer abcdefghijklmnopqrstuvwxyzabcdefghijklmn",
                        "Content-Type": "application/json"
                    },
                    "method": "GET",
                    "rel": "self",
                    "title": "ログインアカウント情報"
                }
            ],
            "properties": {
                "addressCity": {
                    "$ref": "#/definitions/user/definitions/addressCity"
                },
                "addressLine1": {
                    "$ref": "#/definitions/user/definitions/addressLine1"
                },
                "addressLine2": {
                    "$ref": "#/definitions/user/definitions/addressLine2"
                },
                "addressState": {
                    "$ref": "#/definitions/user/definitions/addressState"
                },
                "addressZip": {
                    "$ref": "#/definitions/user/definitions/addressZip"
                },
                "birthday": {
                    "$ref": "#/definitions/user/definitions/birthday"
                },
                "firstName": {
                    "$ref": "#/definitions/user/definitions/firstName"
                },
                "id": {
                    "$ref": "#/definitions/user/definitions/id"
                },
                "infos": {
                    "description": "infos",
                    "items": {
                        "$ref": "#/definitions/info"
                    },
                    "type": [
                        "array"
                    ]
                },
                "lastName": {
                    "$ref": "#/definitions/user/definitions/lastName"
                },
                "machine": {
                    "$ref": "#/definitions/machine"
                },
                "registeredAt": {
                    "$ref": "#/definitions/user/definitions/registeredAt"
                },
                "tel": {
                    "$ref": "#/definitions/user/definitions/tel"
                }
            },
            "required": [
                "id",
                "email",
                "firstName",
                "lastName",
                "birthday",
                "registeredAt"
            ],
            "stability": "prototype",
            "strictProperties": true,
            "title": "ユーザ",
            "type": [
                "object"
            ]
        }
    },
    "description": "API",
    "links": [
        {
            "href": "https://api.example.com",
            "rel": "self"
        }
    ],
    "properties": {
        "info": {
            "$ref": "#/definitions/info"
        },
        "machine": {
            "$ref": "#/definitions/machine"
        },
        "user": {
            "$ref": "#/definitions/user"
        }
    },
    "title": "API JSON Schema",
    "type": [
        "object"
    ]
}