openapi: 3.0.1 info: title: Facilities API description: > Manage facilities at both the property- and room-level.\n Booking.com supports adding or assigning a variety of different facilities at the property- or room-level. Specify the facility ID along with any required parameters to assign a facility.\n\nFacilities are of the following types: contact: name: Connectivity Team url: https://connect.booking.com email: connectivity@booking.com version: '1.0' servers: - url: https://supply-xml.booking.com/facilities-api/ tags: - name: Manage property facilities description: > Use the GET and the PUT endpoints to: - name: Meta data endpoint description: >- Retrieve the latest facility definitions. - name: Manage room facilities description: > Use the GET and the PUT endpoints to: paths: /properties/{propertyId}: get: tags: - Manage property facilities summary: Retrieve property-level facilities description: >- Retrieve facility instance IDs along with the facility details for all the facility instances added to the property. operationId: getFacilities parameters: - name: propertyId in: path required: true schema: type: integer format: int32 - name: debugInfo in: query required: false schema: type: string default: 'false' responses: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ApiResponseListPropertyFacility' put: tags: - Manage property facilities summary: Add, update or remove property-level facilities description: > Add or update single or multi-instances facilities using this endpoint. Try any of the three request examples in the specification. To delete a facility or all instances of a multi-instance facility (for example: all parking facility), you can change the facility state to `MISSING`. operationId: setFacilities parameters: - name: propertyId in: path required: true schema: type: integer format: int32 requestBody: content: application/json: schema: type: array items: $ref: '#/components/schemas/PropertyFacility' examples: Add single-instance facilities: description: Add/update single-instance facilities value: - facility_id: 418 state: PRESENT - facility_id: 419 state: MISSING Add single-instance facilities with additional details: description: >- Add/update multiple single-instance facilities with surcharge details value: - facility_id: 70 instances: - on_site_details: onsite_type: OFFSITE surcharge_details: surcharge_type: FREE state: PRESENT Add multi-instance facilities: description: Add/update facility with multiple parking details value: - facility_id: 2 instances: - parking_details: name: Diamond Parking parking_location: NEARBY parking_access: ONLY_GUESTS parking_reservation: NEEDED payment_details: charge_mode: FREE - parking_details: name: Q-Park parking_location: ON_SITE parking_access: GENERAL_PUBLIC parking_reservation: NOT_NEEDED payment_details: charge_mode: FREE state: PRESENT required: true responses: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ApiResponseSuccessObject' /properties/{propertyId}/rooms/{roomId}: get: tags: - Manage room facilities summary: Retrieve room facilities set for a property. description: >- Retrieve the facility details for all the facility instances added to the rooms operationId: getRoomFacilities parameters: - name: roomId in: path required: true schema: type: integer format: int64 - name: debugInfo in: query required: false schema: type: string default: 'false' responses: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ApiResponseListRoomFacility' put: tags: - Manage room facilities summary: Manage room-level facilities description: Add, modify or delete room-level facilities details for a property operationId: setRoomFacilities parameters: - name: propertyId in: path required: true schema: type: integer format: int32 - name: roomId in: path required: true schema: type: integer format: int64 requestBody: content: application/json: schema: type: array items: $ref: '#/components/schemas/RoomFacility' examples: example1: description: Room Facilities without additional details value: data: - room_facility_id: 1 state: PRESENT - room_facility_id: 3 state: MISSING example2: description: Room Facilities with additional details value: data: - room_facility_id: 175 state: PRESENT room_facility_instances: - crib_details: is_foldable: true is_standalone: false required: true responses: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ApiResponseSuccessObject' /properties/{propertyId}/rooms/{roomId}/bathrooms: get: tags: - Manage bathrooms summary: Retrieve room bathroom configuration description: Retrieve room bathroom configuration. Bathroom attached to rooms. operationId: getBathroomDetails parameters: - name: propertyId in: path required: true schema: type: integer format: int32 - name: roomId in: path required: true schema: type: integer format: int64 responses: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ApiResponseBathroomDetails' put: tags: - Manage bathrooms summary: Manage bathrooms description: Add, modify or delete room-level bathroom information operationId: setBathroomDetails parameters: - name: propertyId in: path required: true schema: type: integer format: int32 - name: roomId in: path required: true schema: type: integer format: int64 requestBody: content: application/json: schema: $ref: '#/components/schemas/BathroomDetails' examples: Enable hotel group bathrooms: description: Enable hotel group bathrooms value: hotel_bathroom_details: shared_bathroom_state: PRESENT private_bathroom_state: PRESENT number_of_bathrooms: 3 Add hotel group bathroom details: description: Add hotel group bathroom details value: hotel_bathroom_details: shared_bathroom_state: MISSING private_bathroom_state: PRESENT private_bathroom_details: type: EXTERNAL_BATHROOM location_type: OTHER location_other: outside of the room number_of_bathrooms: 2 Add homes group bathroom details: description: Add homes group bathroom details value: property_bathroom_details: bathrooms: - bathroom_type: PRIVATE - bathroom_type: SHARED Add homes group bathroom details with location: description: Add homes group bathroom details with location value: property_bathroom_details: bathrooms: - bathroom_type: PRIVATE bathroom_location: ENSUITE - bathroom_type: SHARED bathroom_location: OPPOSITE_THE_ROOM Add hostel bathroom details: description: Add hostel bathroom details value: property_bathroom_details: bathrooms: - bathroom_type: PRIVATE bathroom_location: DOWN_THE_HALL hostel_bathroom_details: bathroom_facilities: - type: SHOWER count: 98 - type: TOILET count: 21 - type: SINK count: 68 - type: BATH count: 16 - type: TOILET_PAPER - type: HAIR_DRYER - type: SLIPPERS is_paid: true - type: BIDET - type: TOOTHBRUSH is_paid: true - type: SHAMPOO is_paid: false - type: CONDITIONER is_paid: false - type: BODY_SOAP is_paid: true - type: TOWEL is_paid: false - type: HOT_WATER - bathroom_type: SHARED bathroom_location: DOWN_THE_HALL hostel_bathroom_details: gender: MIXED num_guests_with_access_type: NUMBER_LESS_THAN_5 bathroom_facilities: - type: SHOWER count: 98 - type: TOILET count: 21 - type: SINK count: 68 - type: BATH count: 16 - type: TOILET_PAPER - type: HAIR_DRYER - type: SLIPPERS is_paid: true - type: BIDET - type: TOOTHBRUSH is_paid: true - type: SHAMPOO is_paid: false - type: CONDITIONER is_paid: false - type: BODY_SOAP is_paid: true - type: TOWEL is_paid: true - type: HOT_WATER Disable hotel group bathroom details: description: Disable hotel group bathroom details value: hotel_bathroom_details: shared_bathroom_state: MISSING private_bathroom_state: MISSING number_of_bathrooms: 0 Remove bathroom details for homes and hostel group: description: Remove bathroom details for homes and hostel group value: property_bathroom_details: bathrooms: [] required: true responses: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ApiResponseSuccessObject' /meta: get: tags: - Meta data endpoint summary: Retrieving facilities metadata description: Explore available facilities, facility IDs and applicable details. operationId: meta responses: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ApiResponseFacilityMeta' components: schemas: AgeLimitDetails: type: object properties: age_limit: type: string description: Minimum age allowed enum: - AGE_1 - AGE_2 - AGE_3 - AGE_4 - AGE_5 - AGE_6 - AGE_7 - AGE_8 - AGE_9 - AGE_10 - AGE_11 - AGE_12 - NO_RESTRICTION ChargeDetails: type: object properties: price: type: number description: Price, in property's currency format: double frequency: type: string description: Charging frequency enum: - UNKNOWN_FREQUENCY - PER_STAY - PER_MINUTE - PER_HALF_HOUR - PER_HOUR - PER_DAY - PER_WEEK description: Charge details Daytime: type: object properties: hours: maximum: 23 minimum: 0 type: integer description: Hours, in 24h format format: int32 minutes: maximum: 59 minimum: 0 type: integer description: Minutes format: int32 description: Definition of a time in the day Instance: type: object properties: instance_id: type: integer description: Instance ID format: int32 restaurant_details: $ref: '#/components/schemas/RestaurantDetails' parking_details: $ref: '#/components/schemas/ParkingDetails' payment_details: $ref: '#/components/schemas/PaymentDetails' swimming_pool_details: $ref: '#/components/schemas/SwimmingPoolDetails' internet_details: $ref: '#/components/schemas/InternetDetails' kids_pool_details: $ref: '#/components/schemas/KidsPoolDetails' on_site_details: $ref: '#/components/schemas/OnSiteDetails' age_limit_details: $ref: '#/components/schemas/AgeLimitDetails' schedule_details: $ref: '#/components/schemas/ScheduleDetails' temporarily_closed_details: $ref: '#/components/schemas/TemporarilyClosedDetails' surcharge_details: $ref: '#/components/schemas/SurchargeDetails' meal_details: $ref: '#/components/schemas/MealDetails' description: Property Facility Instance InternetDetails: required: - area - type type: object properties: area: type: string description: Connection location default: PUBLIC_AREAS enum: - UNKNOWN_COVERAGE - ALL_ROOMS - SOME_ROOMS - PUBLIC_AREAS - BUSINESS_CENTER - ENTIRE_PROPERTY type: type: string description: Connection type default: WIFI enum: - NONE - WIRED - WIFI wifi_info: $ref: '#/components/schemas/WifiInfo' description: Defines details of the Internet connection KidsPoolDetails: type: object properties: swimming_pool_dimensions: $ref: '#/components/schemas/SwimmingPoolDimensions' has_shallow_end: type: boolean description: Is there a shallow end? default: false MealDetails: required: - price type: object properties: breakfast_types: type: array items: type: string enum: - CONTINENTAL - ITALIAN - FULL_ENGLISH - VEGETARIAN - VEGAN - HALAL - GLUTEN_FREE - KOSHER - ASIAN - AMERICAN - BUFFET - A_LA_CARTE - BREAKFAST_TO_GO breakfast_food_item_types: type: array items: type: string enum: - BREAD - PASTRIES - PANCAKES - BUTTER - CHEESE - COLD_MEAT - EGGS - YOGURT - FRUITS - COFFEE - TEA - HOT_CHOCOLATE - CHAMPAGNE - A_LA_CARTE - LOCAL_SPECIALITY - COOKED_MEAL - JUICE - JAM - CEREAL price: maximum: 99999999999999.98 exclusiveMaximum: false minimum: 0.1 exclusiveMinimum: false type: number OnSiteDetails: type: object properties: onsite_type: type: string description: Facility location enum: - DEFAULT - ONSITE - OFFSITE description: Facility location details ParkingDetails: required: - name - parking_access - parking_location - parking_reservation type: object properties: name: type: string description: Name parking_type: type: string description: >- Type of parking. Corresponding legacy object in HDCN: ParkingFeePolicy/@ParkingType default: UNKNOWN_PARKING_TYPE enum: - UNKNOWN_PARKING_TYPE - PARKING_GARAGE - PARKING_LOT - STREET_PARKING parking_location: type: string description: Where is this parking located? enum: - UNKNOWN_LOCATION - ON_SITE - NEARBY parking_access: type: string description: >- Who can park here? Corresponding legacy object in HDCN: ParkingFeePolicy/@ParkingProperty enum: - UNKNOWN_PARKING_ACCESS - ONLY_GUESTS - GENERAL_PUBLIC parking_reservation: type: string description: Is reservation possible/required? enum: - UNKNOWN_RESERVATION - NEEDED - NOT_NEEDED - NOT_POSSIBLE max_height_m: maximum: 200 exclusiveMaximum: false minimum: 0 exclusiveMinimum: false type: number description: >- Height limit for cars. Corresponding legacy object in HDCN: ParkingFeePolicy/@ParkingReservation format: double has_valet_service: type: string description: Valet service available default: NOT_SPECIFIED enum: - NOT_SPECIFIED - PRESENT - MISSING has_onsite_staff: type: string description: Staff at the parking area default: NOT_SPECIFIED enum: - NOT_SPECIFIED - PRESENT - MISSING has_gated_parking: type: string description: Gate at the entrance / exit default: NOT_SPECIFIED enum: - NOT_SPECIFIED - PRESENT - MISSING has_security_cameras: type: string description: Security camera default: NOT_SPECIFIED enum: - NOT_SPECIFIED - PRESENT - MISSING has_ev_charging_station: type: string description: Electric vehicle charging station default: NOT_SPECIFIED enum: - NOT_SPECIFIED - PRESENT - MISSING has_accessible_parking_spots: type: string description: Accessible parking default: NOT_SPECIFIED enum: - NOT_SPECIFIED - PRESENT - MISSING description: Parking Details PaymentDetails: required: - charge_mode type: object properties: charge_mode: type: string description: Charge mode enum: - UNKNOWN_CHARGE_MODE - FREE - PAID - CHARGES_MAY_APPLY charge_details: $ref: '#/components/schemas/ChargeDetails' description: Payment Details PropertyFacility: required: - facility_id - state type: object properties: facility_id: type: integer description: Property Facility ID format: int32 instances: type: array description: Array of instances items: $ref: '#/components/schemas/Instance' state: type: string description: Is facility Present/Missing? enum: - MISSING - PRESENT property_facility_meta: $ref: '#/components/schemas/PropertyFacilityMeta' facilityMetaType: $ref: '#/components/schemas/PropertyFacilityMeta' description: Property Facility object PropertyFacilityMeta: type: object properties: facility_id: type: integer description: Booking.com Facility ID format: int32 ota_hotel_amenity_type: type: integer description: OTA HAC (HotelAmenityCode) format: int32 booking_extended_legacy_code: type: integer description: '[Legacy] Booking.com Extended HAC Facility Code' format: int32 facility_name: type: string description: Name allowed_details_list: type: array description: List of applicable Details objects items: type: object description: List of applicable Details objects anyOf: - $ref: '#/components/schemas/AgeLimitDetails' - $ref: '#/components/schemas/ChargeDetails' - $ref: '#/components/schemas/InternetDetails' - $ref: '#/components/schemas/KidsPoolDetails' - $ref: '#/components/schemas/OnSiteDetails' - $ref: '#/components/schemas/ParkingDetails' - $ref: '#/components/schemas/PaymentDetails' - $ref: '#/components/schemas/RestaurantDetails' - $ref: '#/components/schemas/ScheduleDetails' - $ref: '#/components/schemas/SurchargeDetails' - $ref: '#/components/schemas/SwimmingPoolDetails' - $ref: '#/components/schemas/TemporarilyClosedDetails' required_details_list: type: array description: List of required Details objects items: type: object description: List of required Details objects anyOf: - $ref: '#/components/schemas/ParkingDetails' - $ref: '#/components/schemas/PaymentDetails' - $ref: '#/components/schemas/RestaurantDetails' - $ref: '#/components/schemas/SwimmingPoolDetails' description: DEBUG ONLY. Contains Property Facility meta RestaurantDetails: required: - name type: object properties: name: type: string description: Name guests_only: type: boolean description: Open only to guests staying at the property accept_reservations: type: boolean description: Reservations welcomed outdoor_seating: type: boolean description: Outdoor seating meal_types_list: type: string description: >- Dietary options. Corresponding legacy object in HDCN: Restaurant/TPA_Extensions/@DietaryOption enum: - UNKNOWN_MEAL_TYPE - HALAL - KOSHER - VEGETARIAN - VEGAN - GLUTEN_FREE - DAIRY_FREE ambiances_list: type: string description: >- Ambiance types. Corresponding legacy object in HDCN: Restaurant/TPA_Extensions/@Ambiance enum: - UNKNOWN_AMBIANCE - FAMILY_KIDS_FRIENDLY - TRADITIONAL - MODERN - ROMANTIC open_for_meals_list: type: string description: >- Open for which meals? Corresponding legacy object in HDCN: Restaurant/ @OfferBreakfast, @OfferBrunch, @OfferLunch, @OfferDinner enum: - UNKNOWN_OPEN_FOR_MEALS - BREAKFAST - BRUNCH - LUNCH - DINNER - HIGH_TEA - COCKTAIL_HOUR cuisines_list: type: string description: >- Cuisine. Corresponding legacy object in HDCN: Restaurant/CuisineCodes enum: - UNKNOWN_CUISINE - AFRICAN - AMERICAN - ARGENTINIAN - BELGIAN - BRAZILIAN - CAJUN_CREOLE - CAMBODIAN - CANTONESE - CARIBBEAN - CATALAN - CHINESE - DUTCH - BRITISH - ETHIOPIAN - FRENCH - GREEK - INDIAN - INDONESIAN - IRISH - ITALIAN - JAPANESE - KOREAN - MALAYSIAN - MEDITERRANEAN - MEXICAN - MIDDLE_EASTERN - MOROCCAN - NEPALESE - PERUVIAN - PIZZA - POLISH - PORTUGUESE - SCOTTISH - SEAFOOD - SICHUAN - SINGAPOREAN - SPANISH - STEAKHOUSE - SUSHI - TEXMEX - THAI - TURKISH - VIETNAMESE - AUSTRIAN - AUSTRALIAN - GERMAN - RUSSIAN - LOCAL - ASIAN - INTERNATIONAL - LATIN_AMERICAN - EUROPEAN - CROATIAN - HUNGARIAN - GRILL_BBQ - SOUTH_AFRICAN is_buffet: type: boolean description: Buffet menu is_alacarte: type: boolean description: A la carte menu ScheduleDetails: type: object properties: schedule: type: array items: $ref: '#/components/schemas/WeekTimeEntry' description: >- Defines a schedule for a Facility. Corresponding legacy object in HDCN: OperationTimes SurchargeDetails: type: object properties: surcharge_type: type: string description: Surcharge type (free/paid) enum: - DEFAULT - FREE - PAID description: Surcharge Details SwimmingPoolDetails: required: - name - swimming_pool_type type: object properties: name: type: string swimming_pool_type: type: string description: Swimming Pool Type default: UNKNOWN_AVAILABILITY enum: - UNKNOWN_POOL_TYPE - INDOOR - OUTDOOR - INDOOR_AND_OUTDOOR availability_type: type: string description: Availability default: UNKNOWN_AVAILABILITY enum: - UNKNOWN_AVAILABILITY - ALL_SEASON - SEASONABLE allowed_age_type: type: string description: Age restrictions default: UNKNOWN_AGE_TYPE enum: - UNKNOWN_AGE_TYPE - ADULTS_ONLY - KIDS_ONLY - ALL_AGES has_loungers: type: boolean description: Loungers available has_water_slide: type: boolean description: Water slide has_pool_bar: type: boolean description: Pool bar has_pool_cover: type: boolean description: Pool cover has_free_towels: type: boolean description: Free towels has_pool_toys: type: boolean description: Pool toys has_sun_umbrellas: type: boolean description: Sun umbrellas has_fence_around_pool: type: boolean description: Safety fence has_snake_trap: type: boolean description: Has a snake trap is_shared: type: boolean description: Is the swimming pool shared? is_rooftop: type: boolean description: Is a rooftop pool? is_shallow_end: type: boolean description: Is there a shallow end? is_infinity: type: boolean description: Is an infinity pool? is_heated: type: boolean description: Is a heated pool? is_salt_water: type: boolean description: Is a salt water pool? is_pool_with_view: type: boolean description: Scenic view is_plunge_pool: type: boolean description: Is a plunge pool? SwimmingPoolDimensions: type: object properties: length: type: number description: Pool length format: double width: type: number description: Pool width format: double depth_min: type: number description: Pool minimal depth format: double depth_max: type: number description: Pool maximal depth format: double unit: type: string description: Measurement unit enum: - METER TemporarilyClosedDetails: type: object properties: closed: type: array items: $ref: '#/components/schemas/TemporarilyClosedEntry' description: Temporarily Closed Facility Details TemporarilyClosedEntry: type: object properties: start_date: $ref: '#/components/schemas/Timestamp' end_date: $ref: '#/components/schemas/Timestamp' description: A range of dates Timestamp: type: object properties: epochSeconds: type: integer format: int64 description: End date WeekTimeEntry: required: - day_of_week - from - to type: object properties: from: $ref: '#/components/schemas/Daytime' to: $ref: '#/components/schemas/Daytime' day_of_week: type: string description: >- Day of the week. Corresponding legacy object in HDCN: OperationTimes/OperationTime/ enum: - UNKNOWN_DAY - MONDAY - TUESDAY - WEDNESDAY - THURSDAY - FRIDAY - SATURDAY - SUNDAY description: Describes opening times on a certain day of week WifiInfo: type: object properties: network_name: type: string description: Wi-fi network name (SSID) speed_download: type: number description: Download speed, mbps format: double speed_upload: type: number description: Upload speed, mbps format: double description: Provides information about Wi-Fi connection ApiError: type: object properties: message: type: string code: type: string details: type: object ApiResponseSuccessObject: type: object properties: ruid: type: string writeOnly: true data: $ref: '#/components/schemas/SuccessObject' warnings: type: array items: $ref: '#/components/schemas/ApiError' errors: type: array items: $ref: '#/components/schemas/ApiError' meta: $ref: '#/components/schemas/ResponseMeta' ResponseMeta: type: object properties: ruid: type: string SuccessObject: type: object properties: success: type: boolean CribDetails: type: object properties: is_foldable: type: boolean description: Foldable default: false is_standalone: type: boolean description: Standalone default: false description: Crib Details LinenDetails: type: object properties: has_crib_linen: type: boolean description: Crib (cot) linen default: false has_fitted_sheet: type: boolean description: Fitted sheet default: false has_top_sheet: type: boolean description: Top sheet default: false has_blanket: type: boolean description: Blanket default: false has_extra_blankets: type: boolean description: Extra blankets default: false has_pillow: type: boolean description: Pillow default: false has_mattress_protector: type: boolean description: Mattress protector default: false description: Linen Details RoomFacility: required: - room_facility_id - state type: object properties: room_facility_id: type: integer description: Room Facility ID format: int32 state: type: string description: Is facility Present/Missing? enum: - MISSING - PRESENT room_facility_instances: type: array description: List of Room Facility Instances items: $ref: '#/components/schemas/RoomFacilityInstance' room_facility_meta: $ref: '#/components/schemas/RoomFacilityMeta' facilityMetaType: $ref: '#/components/schemas/RoomFacilityMeta' RoomFacilityInstance: type: object properties: linen_details: $ref: '#/components/schemas/LinenDetails' crib_details: $ref: '#/components/schemas/CribDetails' description: List of Room Facility Instances RoomFacilityMeta: type: object properties: room_facility_id: type: integer description: Booking.com Room Facility ID format: int32 ota_room_amenity_type: type: integer description: OTA RMA (Room Amenity Type Code) format: int32 booking_extended_legacy_code: type: integer description: '[Legacy] Booking.com Extended RMA Room Facility Code' format: int32 room_facility_name: type: string description: Name allowed_details_list: type: array description: List of applicable Details Objects items: type: object description: List of applicable Details Objects anyOf: - $ref: '#/components/schemas/CribDetails' - $ref: '#/components/schemas/LinenDetails' description: DEBUG ONLY. Contains Room Facility meta Bathroom: required: - bathroom_type type: object properties: id: type: integer format: int32 bathroom_type: type: string enum: - PRIVATE - SHARED bathroom_location: type: string enum: - ENSUITE - NEXT_DOOR - DOWN_THE_HALL - OPPOSITE_THE_ROOM - IN_THE_HALLWAY - OTHER - INSIDE_THE_APARTMENT - INSIDE_OR_ATTACHED_TO_BEDROOM - INSIDE_THE_ROOM hostel_bathroom_details: $ref: '#/components/schemas/HostelBathroomDetails' BathroomDetails: type: object properties: property_bathroom_details: $ref: '#/components/schemas/PropertyBathroomDetails' hotel_bathroom_details: $ref: '#/components/schemas/HotelBathroomDetails' HostelBathroomDetails: required: - bathroom_facilities type: object properties: gender: type: string enum: - FEMALE - MALE - MIXED num_guests_with_access_type: type: string enum: - NUMBER_LESS_THAN_5 - NUMBER_5_TO_10 - NUMBER_11_TO_20 - NUMBER_21_TO_30 - NUMBER_31_TO_40 - NUMBER_41_TO_50 - NUMBER_MORE_THAN_50 bathroom_facilities: type: array items: $ref: '#/components/schemas/HostelBathroomFacility' HostelBathroomFacility: required: - type type: object properties: type: type: string enum: - SHOWER - TOILET - SINK - BATH - TOILET_PAPER - HAIR_DRYER - SLIPPERS - BIDET - TOOTHBRUSH - SHAMPOO - CONDITIONER - BODY_SOAP - TOWEL - HOT_WATER count: maximum: 100 minimum: 1 type: integer format: int32 is_paid: type: boolean HotelBathroomDetails: required: - number_of_bathrooms - private_bathroom_state - shared_bathroom_state type: object properties: shared_bathroom_state: type: string enum: - MISSING - PRESENT private_bathroom_state: type: string enum: - MISSING - PRESENT private_bathroom_details: $ref: '#/components/schemas/PrivateBathroomDetails' number_of_bathrooms: maximum: 20 minimum: 0 type: integer format: int32 PrivateBathroomDetails: type: object properties: type: type: string enum: - DEFAULT - EXTERNAL_BATHROOM - ATTACHED_BATHROOM location_type: type: string enum: - DEFAULT - NEXT_DOOR - DOWN_THE_HALL - ACROSS_FROM_THE_ROOM - IN_THE_LOBBY - OTHER location_other: type: string PropertyBathroomDetails: required: - bathrooms type: object properties: bathrooms: maxItems: 20 minItems: 0 type: array items: $ref: '#/components/schemas/Bathroom' ApiResponseListPropertyFacility: type: object properties: ruid: type: string writeOnly: true data: type: array items: $ref: '#/components/schemas/PropertyFacility' warnings: type: array items: $ref: '#/components/schemas/ApiError' errors: type: array items: $ref: '#/components/schemas/ApiError' meta: $ref: '#/components/schemas/ResponseMeta' ApiResponseListRoomFacility: type: object properties: ruid: type: string writeOnly: true data: type: array items: $ref: '#/components/schemas/RoomFacility' warnings: type: array items: $ref: '#/components/schemas/ApiError' errors: type: array items: $ref: '#/components/schemas/ApiError' meta: $ref: '#/components/schemas/ResponseMeta' ApiResponseBathroomDetails: type: object properties: ruid: type: string writeOnly: true data: $ref: '#/components/schemas/BathroomDetails' warnings: type: array items: $ref: '#/components/schemas/ApiError' errors: type: array items: $ref: '#/components/schemas/ApiError' meta: $ref: '#/components/schemas/ResponseMeta' ApiResponseFacilityMeta: type: object properties: ruid: type: string writeOnly: true data: $ref: '#/components/schemas/FacilityMeta' warnings: type: array items: $ref: '#/components/schemas/ApiError' errors: type: array items: $ref: '#/components/schemas/ApiError' meta: $ref: '#/components/schemas/ResponseMeta' FacilityMeta: type: object properties: property_facility_metas: type: array items: $ref: '#/components/schemas/PropertyFacilityMeta' room_facility_metas: type: array items: $ref: '#/components/schemas/RoomFacilityMeta' description: Contains meta data about property & room facilities