{ "$schema": "http://json-schema.org/draft-07/schema#", "id": "http://services.sabre.com/car/avail/v2/GetVehAvailRQ#", "description": "JSON Schema generated by XMLSpy v2018 rel. 2 sp1 (x64) (http://www.altova.com)", "type": "object", "properties": { "xmlns:msg": { "default": "http://services.sabre.com/STL_MessageCommon/v02_02" }, "xmlns:n1": { "default": "http://services.sabre.com/car/avail/v1" }, "xmlns:xs": { "default": "http://www.w3.org/2001/XMLSchema" }, "GetVehAvailRQ": { "title": "GetVehAvailRQ", "type": "object", "properties": { "version": { "type": "string", "minLength": 1, "maxLength": 255 }, "POS": { "$ref": "#/definitions/POS", "title": "POS" }, "SearchCriteria": { "$ref": "#/definitions/SearchCriteria", "title": "SearchCriteria" } }, "required": [ "SearchCriteria" ], "additionalProperties": false } }, "additionalProperties": false, "definitions": { "StringLength0to50.1": { "type": "object", "properties": { "$": { "$ref": "#/definitions/StringLength0to50" }, "CityCode": { "$ref": "#/definitions/xs:string" } }, "additionalProperties": false }, "msg:CompletionCodes": { "type": "string", "enum": [ "Complete", "Incomplete", "NotProcessed", "Unknown" ] }, "msg:ErrorType": { "type": "string", "pattern": "^([\\d\\--\\.\\:A-Z_a-z]+)$", "enum": [ "Transport", "Validation", "Application", "BusinessLogic" ] }, "msg:Identifier": { "type": "string", "minLength": 1, "maxLength": 255 }, "msg:Text.Long": { "description": "Same as STL Text.Long - A field text characters and no other constraints.", "type": "string", "minLength": 0, "maxLength": 4096 }, "msg:Text.Short": { "description": "Same as STL Text.Short - A field of text characters and no other constraints.", "type": "string", "minLength": 1, "maxLength": 128 }, "Address": { "description": "Address details for the Car Rental Location.", "type": "object", "properties": { "AddressLine1": { "$ref": "#/definitions/StringLength0to255", "description": "Address Line1" }, "AddressLine2": { "$ref": "#/definitions/StringLength0to255", "description": "Address Line2" }, "AddressLine3": { "$ref": "#/definitions/StringLength0to255", "description": "Address Line3" }, "CityName": { "$ref": "#/definitions/StringLength0to50.1", "description": "City Name" }, "CountryName": { "$ref": "#/definitions/CountryName", "description": "CountryName of the Car Rental Location" }, "PostalCode": { "$ref": "#/definitions/StringLength0to10", "description": "PostalCode of the Car Rental Location" }, "StateProv": { "$ref": "#/definitions/StateProv", "description": "State or Province of the Car Rental Location" } }, "additionalProperties": false }, "AirportRef": { "description": "Vehicle Rental Airport Location", "type": "object", "properties": { "PickUpLocation": { "description": "Vehicle Pickup Location", "type": "object", "properties": { "LocationCode": { "$ref": "#/definitions/StringLength3to4" } }, "required": [ "LocationCode" ], "additionalProperties": false }, "ReturnLocation": { "description": "Vehicle Drop Off Location", "type": "object", "properties": { "LocationCode": { "$ref": "#/definitions/StringLength3to4" } }, "required": [ "LocationCode" ], "additionalProperties": false } }, "required": [ "PickUpLocation" ], "additionalProperties": false }, "BagsInfoReq": { "description": "BagsInfo is used to request Car Types based on Baggage count Luggage", "type": "object", "properties": { "Bags": { "description": "Bags specifies baggage related information like quantity and size", "type": "object", "properties": { "Quantity": { "type": "integer", "minimum": 1, "maximum": 99 }, "Size": { "type": "string", "enum": [ "Small", "Large" ] } }, "required": [ "Quantity", "Size" ], "additionalProperties": false } }, "required": [ "Bags" ], "additionalProperties": false }, "Contact": { "description": "Contact information for a car", "type": "object", "properties": { "Fax": { "$ref": "#/definitions/StringLength0to20" }, "Phone": { "$ref": "#/definitions/StringLength0to20" } }, "additionalProperties": false }, "CountryName": { "description": " Country Name of Car Rental Location ", "type": "object", "properties": { "$": { "$ref": "#/definitions/xs:string" }, "Code": { "$ref": "#/definitions/StringLength0to2" } }, "additionalProperties": false }, "CurrencyInfo": { "description": "CurrencyInfo is used to specify a currency code if applicable along with decimal points", "type": "object", "properties": { "Code": { "type": "string", "pattern": "^([A-Z]{3,3})$" } }, "required": [ "Code" ], "additionalProperties": false }, "DateOrTimeOrDateTimeType": { "description": "A construct to validate either a date or a time or adateTime value.", "anyOf": [ { "type": "string" }, { "type": "string" }, { "type": "string" } ] }, "Direction": { "description": "direction is used to specify direction of location - Applicable only for CLF", "type": "string", "enum": [ "E", "N", "S", "W", "NE", "NW", "SW", "SE" ] }, "GeoLocRef": { "type": "object", "properties": { "AddressRef": { "description": " Geo Search based on address reference ", "type": "object", "properties": { "City": { "$ref": "#/definitions/StringLength3to50" }, "CountryCode": { "$ref": "#/definitions/StringLength2" }, "County": { "$ref": "#/definitions/StringLength3to50" }, "PostalCode": { "$ref": "#/definitions/StringLength3to20" }, "StateProv": { "$ref": "#/definitions/StringLength2" }, "Street": { "$ref": "#/definitions/StringLength3to50" } }, "required": [ "CountryCode" ], "additionalProperties": false }, "GeoCode": { "description": "GeoCode is used to specify latitude and longitude values of a location", "type": "object", "properties": { "Latitude": { "type": "number", "minimum": -90, "maximum": 90 }, "Longitude": { "type": "number", "minimum": -180, "maximum": 180 } }, "required": [ "Latitude", "Longitude" ], "additionalProperties": false }, "RefPoint": { "description": "The Reference Point element allows for a search by proximity to a designated reference point by name.Supported reference points Airport Code Hotel Code Point Of Interest Rail Station ", "type": "object", "properties": { "CityName": { "$ref": "#/definitions/StringLength2to50" }, "CountryCode": { "$ref": "#/definitions/StringLength2to50" }, "PostalCode": { "$ref": "#/definitions/StringLength2to50" }, "RefPointType": { "$ref": "#/definitions/RefPointType" }, "StateProv": { "$ref": "#/definitions/StringLength2to50" }, "Value": { "$ref": "#/definitions/StringLength3to50" }, "ValueContext": { "$ref": "#/definitions/Type" } }, "required": [ "RefPointType", "Value", "ValueContext" ], "additionalProperties": false } }, "additionalProperties": false }, "GeoRef": { "description": "Specifies geo based location reference", "type": "object", "properties": { "Direction": { "$ref": "#/definitions/Direction" }, "MaxLocations": { "$ref": "#/definitions/MaxLocations" }, "Radius": { "type": "integer", "minimum": 1, "maximum": 200 }, "UOM": { "$ref": "#/definitions/UnitOfMeasureType" }, "PickUpLocRef": { "$ref": "#/definitions/GeoLocRef" }, "ReturnLocRef": { "$ref": "#/definitions/GeoLocRef" } }, "required": [ "PickUpLocRef" ], "additionalProperties": false }, "Image": { "description": "Image attributes description", "type": "object", "properties": { "Height": { "$ref": "#/definitions/xs:positiveInteger" }, "Type": { "$ref": "#/definitions/ImageTypes" }, "Url": { "$ref": "#/definitions/xs:anyURI" }, "Width": { "$ref": "#/definitions/xs:positiveInteger" } }, "required": [ "Height", "Type", "Url", "Width" ], "additionalProperties": false }, "ImageTypes": { "description": "Image types", "type": "string", "enum": [ "ORIGINAL", "THUMBNAIL", "SMALL", "MEDIUM", "LARGE" ] }, "Images": { "description": "Contains image elements", "type": "object", "properties": { "Image": { "anyOf": [ { "$ref": "#/definitions/Image", "description": " Specifies image details " }, { "type": "array", "items": { "$ref": "#/definitions/Image", "description": " Specifies image details " } } ] } }, "additionalProperties": false }, "ImagesRef": { "description": "Specifies the reference of the images", "type": "object", "properties": { "Image": { "anyOf": [ { "type": "object", "properties": { "Type": { "$ref": "#/definitions/ImageTypes" } }, "additionalProperties": false }, { "type": "array", "minItems": 1, "items": { "type": "object", "properties": { "Type": { "$ref": "#/definitions/ImageTypes" } }, "additionalProperties": false } } ] } }, "required": [ "Image" ], "additionalProperties": false }, "LocType": { "description": "Rental Location Type Indicator", "type": "string", "enum": [ "PickUp", "DropOff" ] }, "LocationInfo": { "description": "Location and Address details for the Car Property.", "type": "object", "properties": { "Latitude": { "$ref": "#/definitions/StringLength0to20" }, "Longitude": { "$ref": "#/definitions/StringLength0to20" }, "Address": { "$ref": "#/definitions/Address", "description": "Address details for the Car Rental Location" }, "Contact": { "$ref": "#/definitions/Contact", "description": "Contact details for the Car Rental Location" } }, "additionalProperties": false }, "LocationInfos": { "description": "Similar Name List response will allow Geo to return information about thelocation requested to assist the customer, if there are multiple addresses matches the request", "type": "object", "properties": { "LocationInfo": { "anyOf": [ { "$ref": "#/definitions/LocationInfo", "description": "Detailed information of specific vehicle rental location requested to assist the customer. This information includes address, phone number. " }, { "type": "array", "minItems": 1, "items": { "$ref": "#/definitions/LocationInfo", "description": "Detailed information of specific vehicle rental location requested to assist the customer. This information includes address, phone number. " } } ] } }, "required": [ "LocationInfo" ], "additionalProperties": false }, "MaxLocations": { "description": "MaxLocations is used to specify number of rental locations per vendor", "type": "integer", "minimum": 1, "maximum": 99 }, "PickUpLocation": { "description": "PickUpLocation is used to specify the vehicle pick up location", "type": "object", "properties": { "ExtendedLocationCode": { "$ref": "#/definitions/StringLength2to4" }, "LocationCode": { "$ref": "#/definitions/StringLength3" } }, "required": [ "LocationCode" ], "additionalProperties": false }, "PickUpLocationRS": { "description": "PickUpLocationRS is used to represent pick-up location in the response", "type": "object", "properties": { "Direction": { "$ref": "#/definitions/xs:string" }, "Distance": { "$ref": "#/definitions/xs:double" }, "ExtendedLocationCode": { "$ref": "#/definitions/StringLength3to4" }, "Latitude": { "$ref": "#/definitions/xs:string" }, "LocationCode": { "$ref": "#/definitions/StringLength3to4" }, "Longitude": { "$ref": "#/definitions/xs:string" }, "PolicyRef": { "$ref": "#/definitions/StringLength2to10" }, "UOM": { "$ref": "#/definitions/xs:string" } }, "required": [ "LocationCode" ], "additionalProperties": false }, "RatePrefs": { "type": "object", "properties": { "Commission": { "$ref": "#/definitions/xs:boolean" }, "RateAssured": { "$ref": "#/definitions/xs:boolean" }, "CurrencyCode": { "$ref": "#/definitions/StringLength3" }, "ConvertedRateInfoOnly": { "$ref": "#/definitions/xs:boolean" }, "SupplierCurrencyOnly": { "$ref": "#/definitions/xs:boolean" }, "RateCategory": { "type": "string", "minLength": 1, "maxLength": 3, "pattern": "^([A-Z]{1,3})$" }, "RatePlan": { "$ref": "#/definitions/xs:string" }, "CustLoyalty": { "anyOf": [ { "type": "object", "properties": { "MembershipCode": { "$ref": "#/definitions/xs:string" }, "MembershipId": { "type": "string", "minLength": 2, "maxLength": 27, "pattern": "^([A-Z]{0,2}[0-9A-Za-z]{1,25})$" }, "MembershipType": { "type": "string", "enum": [ "PC", "CD", "ID", "IT", "FT" ] } }, "required": [ "MembershipId", "MembershipType" ], "additionalProperties": false }, { "type": "array", "items": { "type": "object", "properties": { "MembershipCode": { "$ref": "#/definitions/xs:string" }, "MembershipId": { "type": "string", "minLength": 2, "maxLength": 27, "pattern": "^([A-Z]{0,2}[0-9A-Za-z]{1,25})$" }, "MembershipType": { "type": "string", "enum": [ "PC", "CD", "ID", "IT", "FT" ] } }, "required": [ "MembershipId", "MembershipType" ], "additionalProperties": false } } ] }, "GuaranteePrepaid": { "type": "object", "properties": { "Type": { "type": "string", "enum": [ "G", "P", "R", "GP", "GR", "PR", "PG", "RG", "RP", "GPR", "GRP", "PGR", "PRG", "RPG", "RGP" ] } }, "additionalProperties": false }, "RateRule": { "type": "array", "items": { "type": "object", "properties": { "RateCode": { "$ref": "#/definitions/StringLength2to6" }, "VendorCode": { "type": "string", "pattern": "^([A-Z]{2,2})$" } }, "additionalProperties": false } } }, "required": [ "ConvertedRateInfoOnly", "SupplierCurrencyOnly" ], "additionalProperties": false }, "RefPointType": { "description": "OTA Codes for RefRefPointType.", "type": "string", "pattern": "^([\\d\\--\\.\\:A-Z_a-z]+)$", "enum": [ "5", "6", "7", "11", "16", "18" ] }, "RentalLocRef": { "description": "Vehicle Rental Location", "type": "object", "properties": { "PickUpLocation": { "anyOf": [ { "description": "Vehicle Pickup Location", "type": "object", "properties": { "ExtendedLocationCode": { "$ref": "#/definitions/StringLength2to4" }, "LocationCode": { "$ref": "#/definitions/StringLength3to4" } }, "required": [ "LocationCode" ], "additionalProperties": false }, { "type": "array", "minItems": 1, "items": { "description": "Vehicle Pickup Location", "type": "object", "properties": { "ExtendedLocationCode": { "$ref": "#/definitions/StringLength2to4" }, "LocationCode": { "$ref": "#/definitions/StringLength3to4" } }, "required": [ "LocationCode" ], "additionalProperties": false } } ] }, "ReturnLocation": { "description": "Vehicle Drop Off Location", "type": "object", "properties": { "ExtendedLocationCode": { "$ref": "#/definitions/StringLength2to4" }, "LocationCode": { "$ref": "#/definitions/StringLength3to4" } }, "required": [ "LocationCode" ], "additionalProperties": false } }, "required": [ "PickUpLocation" ], "additionalProperties": false }, "ReturnLocation": { "description": "ReturnLocation is used to specify return rental location if applicable", "type": "object", "properties": { "ExtendedLocationCode": { "$ref": "#/definitions/StringLength2to4" }, "LocationCode": { "$ref": "#/definitions/StringLength3" } }, "required": [ "LocationCode" ], "additionalProperties": false }, "ReturnLocationRS": { "description": "ReturnLocationRS is used to represent drop-off location in the response", "type": "object", "properties": { "Direction": { "$ref": "#/definitions/xs:string" }, "Distance": { "$ref": "#/definitions/xs:double" }, "ExtendedLocationCode": { "$ref": "#/definitions/StringLength3to4" }, "Latitude": { "$ref": "#/definitions/xs:string" }, "LocationCode": { "$ref": "#/definitions/StringLength3to4" }, "Longitude": { "$ref": "#/definitions/xs:string" }, "PolicyRef": { "$ref": "#/definitions/StringLength2to10" }, "UOM": { "$ref": "#/definitions/xs:string" } }, "required": [ "LocationCode" ], "additionalProperties": false }, "POS": { "Source": { "additionalProperties": false, "properties": { "PseudoCityCode": { "$ref": "#/definitions/StringLengthPOS" } } } }, "SearchCriteria": { "type": "object", "properties": { "PickUpDate": { "$ref": "#/definitions/xs:date" }, "PickUpTime": { "$ref": "#/definitions/time" }, "ReturnDate": { "$ref": "#/definitions/xs:date" }, "ReturnTime": { "$ref": "#/definitions/time" }, "SortBy": { "$ref": "#/definitions/SortByType" }, "SortOrder": { "$ref": "#/definitions/SortOrderType" }, "AirportRef": { "$ref": "#/definitions/AirportRef" }, "GeoRef": { "$ref": "#/definitions/GeoRef" }, "ImageRef": { "$ref": "#/definitions/ImagesRef" }, "LocPolicyRef": { "type": "object", "properties": { "Include": { "$ref": "#/definitions/xs:boolean" } }, "required": [ "Include" ], "additionalProperties": false }, "RatePrefs": { "$ref": "#/definitions/RatePrefs" }, "RentalLocRef": { "anyOf": [ { "$ref": "#/definitions/RentalLocRef" }, { "type": "array", "items": { "$ref": "#/definitions/RentalLocRef" } } ] }, "CarExtrasPrefs": { "$ref": "#/definitions/CarExtrasPrefs" }, "VehPrefs": { "$ref": "#/definitions/VehPrefs" }, "VendorPrefs": { "$ref": "#/definitions/VendorPrefs" } }, "required": [ "PickUpDate", "PickUpTime", "ReturnDate", "ReturnTime", "LocPolicyRef", "RatePrefs" ], "additionalProperties": false }, "SeatBelts": { "description": "SeatBelts is used to represent number of SeatBelts(Passengers)", "type": "object", "properties": { "Quantity": { "type": "integer", "minimum": 1, "maximum": 99 } }, "required": [ "Quantity" ], "additionalProperties": false }, "SortByType": { "description": "Used for specifing SortType", "type": "string", "pattern": "^([\\d\\--\\.\\:A-Z_a-z]+)$", "enum": [ "Preferred", "Distance", "Price", "Vendor", "CarType" ] }, "SortOrderType": { "description": "Used for specifing SortOrder", "type": "string", "pattern": "^([\\d\\--\\.\\:A-Z_a-z]+)$", "enum": [ "ASC", "DESC" ] }, "CarExtrasPrefs": { "type": "object", "properties": { "CarExtrasPref": { "type": "array", "items": { "type": "object", "properties": { "Type": { "type": "string", "minLength": 3, "maxLength": 3, "pattern": "^([0-9A-Z]{3,3})$" } }, "required": [ "Type" ], "additionalProperties": false } } }, "additionalProperties": false }, "StateProv": { "description": "State or Province of the Car Rental Location", "type": "object", "properties": { "$": { "$ref": "#/definitions/xs:string" }, "StateCode": { "$ref": "#/definitions/StringLength0to2" } }, "additionalProperties": false }, "StringLength0to10": { "description": "Used for Character Strings, length 0to 10", "type": "string", "minLength": 0, "maxLength": 10 }, "StringLength0to2": { "description": "Used for Character String length 0 to 2.", "type": "string", "pattern": "^([0-9A-Z]{2,2})$" }, "StringLength0to20": { "description": "Used for Character Strings, length 0to 20.", "type": "string", "minLength": 0, "maxLength": 20 }, "StringLength0to255": { "description": "Used for Character Strings, length 0to 255", "type": "string", "minLength": 0, "maxLength": 255 }, "StringLength0to50": { "description": "Used for Character Strings, length 0to 50.", "type": "string", "minLength": 0, "maxLength": 50 }, "StringLength0to55": { "description": "Used for Character Strings, length 0 to 55.", "type": "string", "minLength": 0, "maxLength": 55 }, "StringLength1to1": { "description": "Used for Character Strings, length 1 to 1.", "type": "string", "minLength": 1, "maxLength": 1 }, "StringLength1to2": { "description": "Used for Character Strings, length 1 to 2.", "type": "string", "minLength": 1, "maxLength": 2 }, "StringLength2": { "description": "Used for Character Strings, length 3to 4.", "type": "string", "pattern": "^([A-Z]{2,2})$" }, "StringLength2or4": { "description": "Used for Character Strings, length 3to 4.", "type": "string", "anyOf": [ { "pattern": "^([A-Z]{2,2})$" }, { "pattern": "^([A-Z]{4,4})$" } ] }, "StringLength2to10": { "description": "Used for Character Strings, length 2to 10.", "type": "string", "pattern": "^([0-9A-Z]{2,10})$" }, "StringLengthPOS": { "description": "Used for Character Strings, length 4 for POS.", "type": "string", "pattern": "^([a-zA-Z0-9]{4})$" }, "StringLength2to4": { "description": "Used for Character Strings, length 3to 4.", "type": "string", "pattern": "^([0-9A-Z]{2,4})$" }, "StringLength2to50": { "description": "Used for Character Strings, length 2to 50.", "type": "string", "minLength": 2, "maxLength": 50 }, "StringLength3": { "description": "Used for Character Strings, length 3to 4.", "type": "string", "pattern": "^([A-Z]{3,3})$" }, "StringLength3to20": { "description": "Used for Character Strings, length 3to 20.", "type": "string", "minLength": 3, "maxLength": 20 }, "StringLength3to4": { "description": "Used for Character Strings, length 3to 4.", "type": "string", "pattern": "^([0-9A-Z]{3,4})$" }, "StringLength3to50": { "description": "Used for Character Strings, length 3to 50.", "type": "string", "minLength": 3, "maxLength": 50 }, "StringLength2to6": { "description": "Used for Character Strings, length 2 to 6.", "type": "string", "pattern": "^([0-9A-Z]{2,6})$" }, "Type": { "description": "Used for specifing what line of business will be returned.", "type": "string", "pattern": "^([\\d\\--\\.\\:A-Z_a-z]+)$", "enum": [ "NAME", "CODE" ] }, "UnitOfMeasureType": { "description": "Used for specifying what unit will be used for search radius distance.", "type": "string", "enum": [ "MI", "KM" ] }, "VehAvailInfos": { "description": "Vehicle Availability Core Response Type", "type": "object", "properties": { "PickUpDate": { "$ref": "#/definitions/xs:date" }, "PickUpTime": { "$ref": "#/definitions/time" }, "RentalDays": { "$ref": "#/definitions/xs:string" }, "RentalHours": { "$ref": "#/definitions/xs:string" }, "ReturnDate": { "$ref": "#/definitions/xs:date" }, "ReturnTime": { "$ref": "#/definitions/time" }, "VehAvailInfo": { "anyOf": [ { "description": "VehAvailInfo", "type": "object", "properties": { "PickUpLocation": { "$ref": "#/definitions/PickUpLocationRS", "description": "PickUpLocation is used to represent PickupLocation" }, "ReturnLocation": { "$ref": "#/definitions/ReturnLocationRS", "description": "ReturnLocation is used to represent Return/DropOff Location" }, "VehRentalRate": { "description": "VehRentalRate is used to return rental rates", "type": "object", "properties": { "AvailabilityStatus": { "$ref": "#/definitions/xs:string" }, "Category": { "$ref": "#/definitions/xs:string" }, "GuaranteeInd": { "$ref": "#/definitions/xs:string" }, "Ordinal": { "$ref": "#/definitions/xs:double" }, "PrepayDeposit": { "$ref": "#/definitions/xs:string" }, "PriceChangeIndicator": { "$ref": "#/definitions/xs:string" }, "RateAssured": { "$ref": "#/definitions/xs:string" }, "RateCode": { "$ref": "#/definitions/xs:string" }, "RateKey": { "$ref": "#/definitions/xs:string" }, "RatePlanRequested": { "$ref": "#/definitions/xs:string" }, "RatePlanReturned": { "$ref": "#/definitions/xs:string" }, "SellGuaranteeReq": { "$ref": "#/definitions/xs:string" }, "Commission": { "description": "Commission related Information if applicable", "type": "object", "properties": { "Amount": { "$ref": "#/definitions/xs:string" }, "Percent": { "$ref": "#/definitions/xs:string" } }, "additionalProperties": false }, "EquipCharges": { "description": "List of Special Equipments rates related information", "type": "object", "properties": { "TotalAmount": { "$ref": "#/definitions/xs:string" }, "SpecialEquipment": { "anyOf": [ { "description": "Used to return rate and other information for a particular Special Equipment ", "type": "object", "properties": { "BaseAmount": { "$ref": "#/definitions/xs:string" }, "Code": { "$ref": "#/definitions/xs:string" }, "Plan": { "$ref": "#/definitions/xs:string" }, "Status": { "$ref": "#/definitions/xs:string" } }, "additionalProperties": false }, { "type": "array", "items": { "description": "Used to return rate and other information for a particular Special Equipment ", "type": "object", "properties": { "BaseAmount": { "$ref": "#/definitions/xs:string" }, "Code": { "$ref": "#/definitions/xs:string" }, "Plan": { "$ref": "#/definitions/xs:string" }, "Status": { "$ref": "#/definitions/xs:string" } }, "additionalProperties": false } } ] } }, "additionalProperties": false }, "GuaranteePrepaid": { "description": "Guarantee Prepaid Information", "type": "object", "properties": { "Amount": { "$ref": "#/definitions/xs:string" }, "AmountPercentage": { "$ref": "#/definitions/xs:string" }, "CurrencyCode": { "$ref": "#/definitions/xs:string" }, "Ind": { "$ref": "#/definitions/xs:string" }, "CancellationRefundAmount": { "anyOf": [ { "description": "Cancellation Refund Amount", "type": "object", "properties": { "Amount": { "$ref": "#/definitions/xs:string" }, "DaysPrior": { "$ref": "#/definitions/xs:string" } }, "additionalProperties": false }, { "type": "array", "items": { "description": "Cancellation Refund Amount", "type": "object", "properties": { "Amount": { "$ref": "#/definitions/xs:string" }, "DaysPrior": { "$ref": "#/definitions/xs:string" } }, "additionalProperties": false } } ] } }, "additionalProperties": false }, "Vehicle": { "description": "Vehicle holds all the elements and attributes required for vehicle information ", "type": "object", "properties": { "VehType": { "$ref": "#/definitions/xs:string" }, "BagsInfo": { "$ref": "#/definitions/BagsInfoRes", "description": "Number of bags that can fit in a car" }, "Images": { "$ref": "#/definitions/Images", "description": "Contains images" }, "SeatBelts": { "$ref": "#/definitions/SeatBelts", "description": "Number of passengers that a car can accommodate." } }, "required": [ "VehType", "Images" ], "additionalProperties": false }, "VehicleCharges": { "description": "VehicleCharges is used to return the list of applicable vehicle charges ", "type": "object", "properties": { "VehicleCharge": { "anyOf": [ { "description": "VehicleCharges is used to return the applicable vehicle charge ", "type": "object", "properties": { "Amount": { "$ref": "#/definitions/xs:string" }, "ChargeType": { "type": "string", "enum": [ "DropOffCharge", "ExtraDay", "ExtraHour", "BaseRateTotal", "SubtotalExcludingMandatoryCharges", "DailyChargesTotal", "HourlyChargesTotal", "MandatoryCharges", "MandatoryChargesTotal", "ApproximateTotalPrice", "CarExtraTotalCharge" ] }, "CurrencyCode": { "$ref": "#/definitions/xs:string" }, "ExtraMileageCharge": { "$ref": "#/definitions/xs:string" }, "MileageAllowance": { "$ref": "#/definitions/xs:string" }, "UOM": { "$ref": "#/definitions/xs:string" } }, "required": [ "Amount", "ChargeType", "CurrencyCode" ], "additionalProperties": false }, { "type": "array", "items": { "description": "VehicleCharges is used to return the applicable vehicle charge ", "type": "object", "properties": { "Amount": { "$ref": "#/definitions/xs:string" }, "ChargeType": { "type": "string", "enum": [ "DropOffCharge", "ExtraDay", "ExtraHour", "BaseRateTotal", "SubtotalExcludingMandatoryCharges", "DailyChargesTotal", "HourlyChargesTotal", "MandatoryCharges", "MandatoryChargesTotal", "ApproximateTotalPrice", "SpecialEquipTotalCharge" ] }, "CurrencyCode": { "$ref": "#/definitions/xs:string" }, "ExtraMileageCharge": { "$ref": "#/definitions/xs:string" }, "MileageAllowance": { "$ref": "#/definitions/xs:string" }, "UOM": { "$ref": "#/definitions/xs:string" } }, "required": [ "Amount", "ChargeType", "CurrencyCode" ], "additionalProperties": false } } ] } }, "additionalProperties": false } }, "required": [ "Vehicle" ], "additionalProperties": false }, "Vendor": { "description": "'Vendor' element provides all the information of Car Vendor ", "type": "object", "properties": { "Code": { "$ref": "#/definitions/xs:string" }, "Logo": { "$ref": "#/definitions/xs:string" }, "Name": { "$ref": "#/definitions/xs:string" } }, "additionalProperties": false } }, "required": [ "PickUpLocation", "VehRentalRate" ], "additionalProperties": false }, { "type": "array", "items": { "description": "VehAvailInfo", "type": "object", "properties": { "PickUpLocation": { "$ref": "#/definitions/PickUpLocationRS", "description": "PickUpLocation is used to represent PickupLocation" }, "ReturnLocation": { "$ref": "#/definitions/ReturnLocationRS", "description": "ReturnLocation is used to represent Return/DropOff Location" }, "VehRentalRate": { "description": "VehRentalRate is used to return rental rates", "type": "object", "properties": { "AvailabilityStatus": { "$ref": "#/definitions/xs:string" }, "Category": { "$ref": "#/definitions/xs:string" }, "GuaranteeInd": { "$ref": "#/definitions/xs:string" }, "Ordinal": { "$ref": "#/definitions/xs:double" }, "PrepayDeposit": { "$ref": "#/definitions/xs:string" }, "PriceChangeIndicator": { "$ref": "#/definitions/xs:string" }, "RateAssured": { "$ref": "#/definitions/xs:string" }, "RateCode": { "$ref": "#/definitions/xs:string" }, "RateKey": { "$ref": "#/definitions/xs:string" }, "RatePlanRequested": { "$ref": "#/definitions/xs:string" }, "RatePlanReturned": { "$ref": "#/definitions/xs:string" }, "SellGuaranteeReq": { "$ref": "#/definitions/xs:string" }, "Commission": { "description": "Commission related Information if applicable", "type": "object", "properties": { "Amount": { "$ref": "#/definitions/xs:string" }, "Percent": { "$ref": "#/definitions/xs:string" } }, "additionalProperties": false }, "EquipCharges": { "description": "List of Special Equipments rates related information", "type": "object", "properties": { "TotalAmount": { "$ref": "#/definitions/xs:string" }, "SpecialEquipment": { "anyOf": [ { "description": "Used to return rate and other information for a particular Special Equipment ", "type": "object", "properties": { "BaseAmount": { "$ref": "#/definitions/xs:string" }, "Code": { "$ref": "#/definitions/xs:string" }, "Plan": { "$ref": "#/definitions/xs:string" }, "Status": { "$ref": "#/definitions/xs:string" } }, "additionalProperties": false }, { "type": "array", "items": { "description": "Used to return rate and other information for a particular Special Equipment ", "type": "object", "properties": { "BaseAmount": { "$ref": "#/definitions/xs:string" }, "Code": { "$ref": "#/definitions/xs:string" }, "Plan": { "$ref": "#/definitions/xs:string" }, "Status": { "$ref": "#/definitions/xs:string" } }, "additionalProperties": false } } ] } }, "additionalProperties": false }, "GuaranteePrepaid": { "description": "Guarantee Prepaid Information", "type": "object", "properties": { "Amount": { "$ref": "#/definitions/xs:string" }, "AmountPercentage": { "$ref": "#/definitions/xs:string" }, "CurrencyCode": { "$ref": "#/definitions/xs:string" }, "Ind": { "$ref": "#/definitions/xs:string" }, "CancellationRefundAmount": { "anyOf": [ { "description": "Cancellation Refund Amount", "type": "object", "properties": { "Amount": { "$ref": "#/definitions/xs:string" }, "DaysPrior": { "$ref": "#/definitions/xs:string" } }, "additionalProperties": false }, { "type": "array", "items": { "description": "Cancellation Refund Amount", "type": "object", "properties": { "Amount": { "$ref": "#/definitions/xs:string" }, "DaysPrior": { "$ref": "#/definitions/xs:string" } }, "additionalProperties": false } } ] } }, "additionalProperties": false }, "Vehicle": { "description": "Vehicle holds all the elements and attributes required for vehicle information ", "type": "object", "properties": { "VehType": { "$ref": "#/definitions/xs:string" }, "BagsInfo": { "$ref": "#/definitions/BagsInfoRes", "description": "Number of bags that can fit in a car" }, "Images": { "$ref": "#/definitions/Images", "description": "Contains images" }, "SeatBelts": { "$ref": "#/definitions/SeatBelts", "description": "Number of passengers that a car can accommodate." } }, "required": [ "VehType", "Images" ], "additionalProperties": false }, "VehicleCharges": { "description": "VehicleCharges is used to return the list of applicable vehicle charges ", "type": "object", "properties": { "VehicleCharge": { "anyOf": [ { "description": "VehicleCharges is used to return the applicable vehicle charge ", "type": "object", "properties": { "Amount": { "$ref": "#/definitions/xs:string" }, "ChargeType": { "type": "string", "enum": [ "DropOffCharge", "ExtraDay", "ExtraHour", "BaseRateTotal", "SubtotalExcludingMandatoryCharges", "DailyChargesTotal", "HourlyChargesTotal", "MandatoryCharges", "MandatoryChargesTotal", "ApproximateTotalPrice", "SpecialEquipTotalCharge" ] }, "CurrencyCode": { "$ref": "#/definitions/xs:string" }, "ExtraMileageCharge": { "$ref": "#/definitions/xs:string" }, "MileageAllowance": { "$ref": "#/definitions/xs:string" }, "UOM": { "$ref": "#/definitions/xs:string" } }, "required": [ "Amount", "ChargeType", "CurrencyCode" ], "additionalProperties": false }, { "type": "array", "items": { "description": "VehicleCharges is used to return the applicable vehicle charge ", "type": "object", "properties": { "Amount": { "$ref": "#/definitions/xs:string" }, "ChargeType": { "type": "string", "enum": [ "DropOffCharge", "ExtraDay", "ExtraHour", "BaseRateTotal", "SubtotalExcludingMandatoryCharges", "DailyChargesTotal", "HourlyChargesTotal", "MandatoryCharges", "MandatoryChargesTotal", "ApproximateTotalPrice", "SpecialEquipTotalCharge" ] }, "CurrencyCode": { "$ref": "#/definitions/xs:string" }, "ExtraMileageCharge": { "$ref": "#/definitions/xs:string" }, "MileageAllowance": { "$ref": "#/definitions/xs:string" }, "UOM": { "$ref": "#/definitions/xs:string" } }, "required": [ "Amount", "ChargeType", "CurrencyCode" ], "additionalProperties": false } } ] } }, "additionalProperties": false } }, "required": [ "Vehicle" ], "additionalProperties": false }, "Vendor": { "description": "'Vendor' element provides all the information of Car Vendor ", "type": "object", "properties": { "Code": { "$ref": "#/definitions/xs:string" }, "Logo": { "$ref": "#/definitions/xs:string" }, "Name": { "$ref": "#/definitions/xs:string" } }, "additionalProperties": false } }, "required": [ "PickUpLocation", "VehRentalRate" ], "additionalProperties": false } } ] } }, "additionalProperties": false }, "VehLocPolicyInfo": { "description": "Detailed information of specificvehicle rental location requested to assist thecustomer. This information includes address,phone number, informational messages, parking and counter location, services, andoperatingschedule ofthe location requested.", "type": "object", "properties": { "CounterLocation": { "$ref": "#/definitions/xs:string" }, "ExtendedLocationCode": { "$ref": "#/definitions/xs:string" }, "LocationCode": { "$ref": "#/definitions/xs:string" }, "LocationName": { "$ref": "#/definitions/StringLength0to55" }, "LocationOwner": { "$ref": "#/definitions/StringLength1to1" }, "LocationType": { "$ref": "#/definitions/xs:string" }, "PolicyRef": { "$ref": "#/definitions/StringLength2to10" }, "CurrencyInfo": { "description": "Currency Information", "type": "object", "properties": { "Code": { "$ref": "#/definitions/xs:string" }, "DecimalPlace": { "$ref": "#/definitions/xs:string" } }, "additionalProperties": false }, "LocationInfo": { "$ref": "#/definitions/LocationInfo", "description": "Location and Address details for the Car Property." }, "OperationSchedule": { "description": "A collection of operation schedule information", "type": "object", "properties": { "StartDate": { "$ref": "#/definitions/xs:date" }, "OperationTimes": { "description": "A collection of OperationTimes.", "type": "object", "properties": { "OperationTime": { "anyOf": [ { "description": "Provides operating times of a facility.", "type": "object", "properties": { "dayOftheWeek": { "$ref": "#/definitions/StringLength1to1" }, "end": { "$ref": "#/definitions/DateOrTimeOrDateTimeType" }, "start": { "$ref": "#/definitions/DateOrTimeOrDateTimeType" } }, "additionalProperties": false }, { "type": "array", "minItems": 1, "items": { "description": "Provides operating times of a facility.", "type": "object", "properties": { "dayOftheWeek": { "$ref": "#/definitions/StringLength1to1" }, "end": { "$ref": "#/definitions/DateOrTimeOrDateTimeType" }, "start": { "$ref": "#/definitions/DateOrTimeOrDateTimeType" } }, "additionalProperties": false } } ] } }, "required": [ "OperationTime" ], "additionalProperties": false } }, "required": [ "OperationTimes" ], "additionalProperties": false }, "VendorDetails": { "$ref": "#/definitions/VendorDetails", "description": "Vendor Details " } }, "required": [ "CounterLocation", "LocationOwner", "OperationSchedule" ], "additionalProperties": false }, "VehLocPolicyInfos": { "description": "Vehicle Location Policy response will allow carrental providers to return information about the location requested to assist the customer.This information includes address, phone number, informational messages, parking and counterlocation,services, and operating schedule of the location requested.", "type": "object", "properties": { "VehLocPolicyinfo": { "anyOf": [ { "$ref": "#/definitions/VehLocPolicyInfo", "description": "Detailed information of specific vehicle rental location requested to assist the customer. This information includes address, phone number, informational messages, parking, counter location, services and operating schedule of the location requested." }, { "type": "array", "minItems": 1, "items": { "$ref": "#/definitions/VehLocPolicyInfo", "description": "Detailed information of specific vehicle rental location requested to assist the customer. This information includes address, phone number, informational messages, parking, counter location, services and operating schedule of the location requested. " } } ] } }, "required": [ "VehLocPolicyinfo" ], "additionalProperties": false }, "VehPrefs": { "type": "object", "properties": { "SeatBeltsAndBagsInfo": { "type": "object", "properties": { "BagsInfo": { "$ref": "#/definitions/BagsInfoReq" }, "SeatBelts": { "$ref": "#/definitions/SeatBelts" } }, "additionalProperties": false }, "VehPref": { "type": "object", "properties": { "VehType": { "type": "array", "minItems": 1, "items": { "$ref": "#/definitions/xs:string" } } }, "required": [ "VehType" ], "additionalProperties": false } }, "additionalProperties": false }, "VendorDetails": { "description": "Vendor Details", "type": "object", "properties": { "Code": { "$ref": "#/definitions/xs:string" }, "Name": { "$ref": "#/definitions/xs:string" } }, "additionalProperties": false }, "VendorPrefs": { "description": "Car Supplier/Vendor Information", "type": "object", "properties": { "VendorPref": { "anyOf": [ { "description": "Information on the vendor associated with this rental location", "type": "object", "properties": { "Code": { "type": "string", "minLength": 2, "maxLength": 2, "pattern": "^([A-Z]{2,2})$" } }, "required": [ "Code" ], "additionalProperties": false }, { "type": "array", "minItems": 1, "items": { "description": "Information on the vendor associated with this rental location", "type": "object", "properties": { "Code": { "type": "string", "minLength": 2, "maxLength": 2, "pattern": "^([A-Z]{2,2})$" } }, "required": [ "Code" ], "additionalProperties": false } } ] } }, "required": [ "VendorPref" ], "additionalProperties": false }, "time": { "description": "A simple time type. Seconds can be omitted, since those values are not propagated to the Sabre backend systems. Accepted formats: hh:mm:ss or hh:mm", "type": "string", "pattern": "^([0-1][0-9]|[2][0-3])(:([0-5][0-9])){1,1}$" }, "xs:IDREF": { "type": "string", "pattern": "^([A-Z_a-z][\\d\\--\\.A-Z_a-z]*)$" }, "xs:anyURI": { "type": "string" }, "xs:boolean": { "type": "boolean" }, "xs:date": { "type": "string", "pattern": "^([12]\\d{3}-(0[1-9]|1[0-2])-(0[1-9]|[12]\\d|3[01]))$" }, "xs:dateTime": { "type": "string" }, "xs:double": { "type": "number" }, "xs:positiveInteger": { "type": "integer", "minimum": 1 }, "xs:string": { "type": "string" } } }