{
	"$schema": "http://json-schema.org/draft-04/schema#",
	"$ref": "#/definitions/hotelDownload",
	"definitions": {
		"hotelDownload": {
			"type": "object",
			"javaType": "uk.co.miki.eBiz.msi.service.json70.schema.hoteldownload.HotelDownload",
			"properties": {
				"infoLevel": {
					"type": "integer"
				},
				"language": {
					"type": "string"
				},
				"continents": {
					"type": "array",
					"items": {
						"$ref": "#/definitions/continent"
					}
				}
			},
			"additionalProperties": false
		},
		"continent": {
			"type": "object",
			"properties": {
				"isoCode": {
					"type": "string"
				},
				"countries": {
					"type": "array",
					"items": {
						"$ref": "#/definitions/country"
					}
				}
			},
			"required": [
				"isoCode",
				"countries"
			],
			"additionalProperties": false
		},
		"country": {
			"type": "object",
			"properties": {
				"isoCode": {
					"type": "string"
				},
				"cities": {
					"type": "array",
					"items": {
						"$ref": "#/definitions/city"
					}
				}
			},
			"required": [
				"isoCode"
			],
			"additionalProperties": false
		},
		"city": {
			"type": "object",
			"properties": {
				"cityNumber": {
					"type": "string"
				},
				"name": {
					"type": "string"
				},
				"isoStateCode": {
					"type": "string"
				},
				"hotels": {
					"type": "array",
					"items": {
						"$ref": "#/definitions/hotel"
					}
				}
			},
			"required": [
				"cityNumber",
				"name"
			],
			"additionalProperties": false
		},
		"hotel": {
			"type": "object",
			"properties": {
				"productCode": {
					"type": "string"
				},
				"giataCode": {
					"type": "string"
				},
				"productName": {
					"type": "string"
				},
				"geoLocation": {
					"$ref": "#/definitions/geoLocation"
				},
				"contactInfo": {
					"$ref": "#/definitions/contactInfo"
				},
				"hotelInfo": {
					"$ref": "#/definitions/hotelInfo"
				}
			},
			"required": [
				"productCode",
				"productName",
				"geoLocation"
			],
			"additionalProperties": false
		},
		"geoLocation": {
			"type": "object",
			"properties": {
				"latitude": {
					"type": "string"
				},
				"longitude": {
					"type": "string"
				}
			},
			"required": [
				"latitude",
				"longitude"
			],
			"additionalProperties": false
		},
		"address": {
			"type": "object",
			"properties": {
				"line1": {
					"type": "string"
				},
				"line2": {
					"type": "string"
				},
				"line3": {
					"type": "string"
				},
				"city": {
					"type": "string"
				},
				"country": {
					"type": "string"
				}
			},
			"required": [
				"line1",
				"line2",
				"line3",
				"city",
				"country"
			],
			"additionalProperties": false
		},
		"contactInfo": {
			"type": "object",
			"properties": {
				"address": {
					"$ref": "#/definitions/address"
				},
				"telephoneNumber": {
					"type": "string"
				},
				"faxNumber": {
					"type": "string"
				}
			},
			"required": [
				"address",
				"telephoneNumber",
				"faxNumber"
			],
			"additionalProperties": false
		},
		"image": {
			"type": "object",
			"properties": {
				"imageType": {
					"type": "string"
				},
				"imageCaption": {
					"type": "string"
				},
				"imageURL": {
					"type": "string"
				},
				"imageThumbnailURL": {
					"type": "string"
				}
			},
			"required": [
				"imageType",
				"imageCaption",
				"imageURL",
				"imageThumbnailURL"
			],
			"additionalProperties": false
		},
		"roomFacilities": {
			"type": "object",
			"properties": {
				"miniBar": {
					"type": "string"
				},
				"hairDryer": {
					"type": "string"
				},
				"trouserPress": {
					"type": "string"
				},
				"airConditioning": {
					"type": "string"
				},
				"television": {
					"type": "string"
				},
				"video": {
					"type": "string"
				},
				"radio": {
					"type": "string"
				}
			},
			"required": [
				"miniBar",
				"hairDryer",
				"trouserPress",
				"airConditioning",
				"television",
				"video",
				"radio"
			],
			"additionalProperties": false
		},
		"hotelFacilities": {
			"type": "object",
			"properties": {
				"elevators": {
					"type": "string"
				},
				"concierge": {
					"type": "string"
				},
				"safeDeposit": {
					"type": "string"
				},
				"swimmingPool": {
					"type": "string"
				},
				"sauna": {
					"type": "string"
				},
				"roomService": {
					"type": "string"
				},
				"porterage": {
					"type": "string"
				},
				"numberOfRooms": {
					"type": "string"
				},
				"nightclub": {
					"type": "string"
				},
				"coffeeShop": {
					"type": "string"
				},
				"businessFacilities": {
					"type": "string"
				},
				"petsAllowed": {
					"type": "string"
				}
			},
			"required": [
				"elevators",
				"concierge",
				"safeDeposit",
				"swimmingPool",
				"sauna",
				"roomService",
				"porterage",
				"numberOfRooms",
				"nightclub",
				"coffeeShop",
				"businessFacilities",
				"petsAllowed"
			],
			"additionalProperties": false
		},
		"location": {
			"type": "object",
			"properties": {
				"placeType": {
					"type": "string"
				},
				"placeName": {
					"type": "string"
				},
				"distanceFromHotel": {
					"type": "string"
				}
			},
			"additionalProperties": false
		},
		"hotelInfo": {
			"type": "object",
			"properties": {
				"productSummaryText": {
					"type": "string"
				},
				"productDetailText": {
					"type": "string"
				},
				"category": {
					"type": "string"
				},
				"starRating": {
					"type": "string"
				},
				"style": {
					"type": "string"
				},
				"yearBuilt": {
					"type": "string"
				},
				"location": {
					"type": "string"
				},
				"restaurantCount": {
					"type": "string"
				},
				"locationInfo": {
					"type": "array",
					"items": {
						"$ref": "#/definitions/location"
					}
				},
				"hotelFacilities": {
					"$ref": "#/definitions/hotelFacilities"
				},
				"roomFacilities": {
					"$ref": "#/definitions/roomFacilities"
				},
				"images": {
				   "type": "array",
					"items": {
						"$ref": "#/definitions/image"
					}
				}
			},
			"required": [
				"productSummaryText",
				"productDetailText",
				"category",
				"starRating",
				"style",
				"yearBuilt",
				"location",
				"restaurantCount",
				"locationInfo",
				"hotelFacilities",
				"roomFacilities"
			],
			"additionalProperties": false
		}
	}
}