{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/amadeus/refs/heads/main/json-schema/hotel-list-hotel-search-response-schema.json",
  "title": "HotelSearchResponse",
  "description": "HotelSearchResponse schema from Hotel List",
  "type": "object",
  "properties": {
    "data": {
      "type": "array",
      "items": {
        "title": "Hotel",
        "description": "Hotel location information",
        "allOf": [
          {
            "title": "Location_Hotel",
            "description": "Hotel, inheriting from Location",
            "allOf": [
              {
                "type": "object",
                "description": "Description of a particular point or place in physical space",
                "title": "Location",
                "properties": {
                  "subtype": {
                    "type": "string",
                    "description": "Location sub-type (e.g. airport, port, rail-station, restaurant, atm...)"
                  },
                  "name": {
                    "type": "string",
                    "description": "Label associated to the location (e.g. Eiffel Tower, Madison Square)",
                    "example": "Eiffel Tower"
                  },
                  "timeZoneName": {
                    "type": "string",
                    "description": "Olson format name (TZ) of the location time zone (https://en.wikipedia.org/wiki/List_of_tz_database_time_zones)",
                    "example": "Europe/Paris"
                  },
                  "iataCode": {
                    "type": "string",
                    "description": "IATA location code",
                    "example": "PAR"
                  },
                  "address": {
                    "type": "object",
                    "description": "Address information",
                    "title": "Address",
                    "properties": {
                      "countryCode": {
                        "type": "string",
                        "description": "ISO 3166-1 country code",
                        "pattern": "[a-zA-Z]{2}"
                      }
                    }
                  },
                  "geoCode": {
                    "type": "object",
                    "description": "Geographic coordinates describing the position of any location on the surface of Earth",
                    "properties": {
                      "latitude": {
                        "type": "number",
                        "format": "float",
                        "description": "Latitude of the position expressed in decimal degrees (WSG 84), e.g. 6.244203. A positive value denotes northern hemisphere or the equator, and a negative value denotes southern hemisphere. The number of digits to represent the precision of the coordinate.",
                        "minimum": -90,
                        "exclusiveMinimum": false,
                        "maximum": 90,
                        "exclusiveMaximum": false,
                        "example": 48.85837
                      },
                      "longitude": {
                        "type": "number",
                        "format": "float",
                        "description": "Longitude of the position expressed in decimal degrees (WSG 84), e.g. -75.581211. A positive value denotes east longitude or the prime meridian, and a negative value denotes west longitude.  The number of digits to represent the precision of the coordinate.",
                        "minimum": -180,
                        "exclusiveMinimum": false,
                        "maximum": 180,
                        "exclusiveMaximum": false,
                        "example": 2.294481
                      }
                    },
                    "title": "GeoCode"
                  }
                }
              },
              {
                "type": "object",
                "description": "Hotel Content",
                "title": "Hotel",
                "properties": {
                  "hotelId": {
                    "type": "string",
                    "pattern": "^[A-Z0-9]{8}$",
                    "example": "ADPAR001",
                    "description": "Amadeus Property Code (8 chars)\n"
                  },
                  "chainCode": {
                    "type": "string",
                    "pattern": "^[A-Z]{2}$",
                    "example": "AD",
                    "description": "Brand (RT...) or Merchant (AD...) (Amadeus 2 chars Code)\n"
                  },
                  "name": {
                    "type": "string",
                    "example": "Hotel de Paris",
                    "description": "Hotel Name"
                  }
                }
              },
              {
                "type": "object"
              }
            ]
          },
          {
            "type": "object",
            "properties": {
              "distance": {
                "title": "Distance",
                "type": "object",
                "description": "Distance is designed to express a distance reprensentation with its value unit and state unlimited or not.",
                "properties": {
                  "unit": {
                    "type": "string",
                    "title": "Unit",
                    "description": "Unit type.",
                    "enum": [
                      "NIGHT",
                      "PIXELS",
                      "KILOGRAMS",
                      "POUNDS",
                      "CENTIMETERS",
                      "INCHES",
                      "BITS_PER_PIXEL",
                      "KILOMETERS",
                      "MILES",
                      "BYTES",
                      "KILOBYTES"
                    ]
                  },
                  "value": {
                    "type": "number",
                    "description": "Decimal distance value"
                  },
                  "displayValue": {
                    "type": "string"
                  },
                  "isUnlimited": {
                    "type": "string",
                    "description": "Conveys whether the distance is limited or not, if unlimited all the other properties should not be provided."
                  }
                }
              },
              "last_update": {
                "type": "string",
                "description": "Last time the content was updated by a provider.",
                "format": "date-time"
              }
            }
          }
        ]
      }
    },
    "meta": {
      "type": "object",
      "description": "Meta information about the returned object(s) in \"data\"",
      "title": "Meta",
      "properties": {
        "count": {
          "type": "integer",
          "format": "int64",
          "description": "Total number of object(s) retrieved",
          "minimum": 0,
          "exclusiveMinimum": false,
          "example": 1
        },
        "sort": {
          "type": "array",
          "description": "Sorting fields criteria and their associated priority and direction. Sorting priority is indicated by the order of the strings within the array. E.g. sort=title,size means that items are ordered by title and then, as a second ordering by size. A '-' sign before the search criteria indicates a descending ordering direction (Z to A), whereas no sign indicates a ascending direction (A to Z). E.g. sort=-title mean that the objects are ordered by title in reverse order (Z to A).",
          "items": {
            "type": "string"
          }
        },
        "links": {
          "type": "object",
          "title": "Links",
          "description": "Links related to the returned object(s)",
          "properties": {
            "self": {
              "type": "string",
              "format": "url",
              "description": "Link to the same page.",
              "example": "https://example.com/resource"
            },
            "first": {
              "type": "string",
              "format": "url",
              "description": "Link to the first page.",
              "example": "https://example.com/resource"
            },
            "prev": {
              "type": "string",
              "format": "url",
              "description": "Link to the previous page.",
              "example": "https://example.com/resource"
            },
            "next": {
              "type": "string",
              "format": "url",
              "description": "Link to the next page.",
              "example": "https://example.com/resource"
            },
            "last": {
              "type": "string",
              "format": "url",
              "description": "Link to the last page.",
              "example": "https://example.com/resource"
            }
          }
        }
      }
    }
  }
}