json_schema: {
      "additionalProperties": {
          "image_gallery": {
              "items": {
                  "$ref": "#/definitions/image"
              },
              "type": "array"
          }
      },
      "definitions": {
          "available_qty": {
              "default": 0,
              "description": "The quantity of the product available for purchasing",
              "example": 10,
              "type": "number"
          },
          "currency": {
              "description": "The currency of the price",
              "enum": [
                  "USD"
              ]
          },
          "description": {
              "description": "Product's description",
              "maxLength": 2000,
              "type": "string"
          },
          "identifier": {
              "description": "Product SKU",
              "example": "ABC-123",
              "type": "string"
          },
          "image": {
              "description": "URL for the product image",
              "example": "http://static.example.com/images/product.jpg",
              "type": "string"
          },
          "in_stock": {
              "default": false,
              "description": "Whether the product is in stock or not",
              "example": true,
              "type": "boolean"
          },
          "name": {
              "description": "Product's name",
              "maxLength": 100,
              "type": "string"
          },
          "price": {
              "description": "The price of the product",
              "example": 49.99,
              "type": "number"
          }
      },
      "description": "A product available for sale in a store",
      "links": [
          {
              "description": "Get all available product for the store",
              "href": "/products",
              "method": "GET",
              "rel": "instances",
              "schema": {
                  "properties": {
                      "order": {
                          "description": "Attribute to order the results by",
                          "enum": [
                              "name",
                              "price",
                              "available_qty"
                          ],
                          "example": "price"
                      },
                      "page": {
                          "default": 1,
                          "description": "Current page of products",
                          "example": 1,
                          "type": "integer"
                      },
                      "per_page": {
                          "default": 20,
                          "description": "How many products to retrieve at once",
                          "max": 200,
                          "min": 1,
                          "type": "integer"
                      }
                  },
                  "type": "object"
              },
              "targetSchema": {
                  "items": {
                      "rel": "self"
                  },
                  "type": "array"
              },
              "title": "Available products"
          },
          {
              "description": "Get a single product",
              "href": "/products/{#/definitions/identifier}",
              "method": "GET",
              "rel": "self",
              "targetSchema": {
                  "rel": "self"
              },
              "title": "Product info"
          }
      ],
      "properties": {
          "ID": {
              "$ref": "#/definitions/identifier"
          },
          "available_qty": {
              "$ref": "#/definitions/available_qty"
          },
          "currency": {
              "$ref": "#/definitions/currency"
          },
          "description": {
              "$ref": "#/definitions/description"
          },
          "image": {
              "$ref": "#/definitions/image"
          },
          "in_stock": {
              "$ref": "#/definitions/in_stock"
          },
          "name": {
              "$ref": "#/definitions/name"
          },
          "price": {
              "$ref": "#/definitions/price"
          }
      },
      "required": [
          "ID",
          "name",
          "description",
          "price",
          "currency",
          "in_stock",
          "available_qty"
      ],
      "title": "Product",
      "type": "object"
  }