<html><body>
<style>

body, h1, h2, h3, div, span, p, pre, a {
  margin: 0;
  padding: 0;
  border: 0;
  font-weight: inherit;
  font-style: inherit;
  font-size: 100%;
  font-family: inherit;
  vertical-align: baseline;
}

body {
  font-size: 13px;
  padding: 1em;
}

h1 {
  font-size: 26px;
  margin-bottom: 1em;
}

h2 {
  font-size: 24px;
  margin-bottom: 1em;
}

h3 {
  font-size: 20px;
  margin-bottom: 1em;
  margin-top: 1em;
}

pre, code {
  line-height: 1.5;
  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
}

pre {
  margin-top: 0.5em;
}

h1, h2, h3, p {
  font-family: Arial, sans serif;
}

h1, h2, h3 {
  border-bottom: solid #CCC 1px;
}

.toc_element {
  margin-top: 0.5em;
}

.firstline {
  margin-left: 2 em;
}

.method  {
  margin-top: 1em;
  border: solid 1px #CCC;
  padding: 1em;
  background: #EEE;
}

.details {
  font-weight: bold;
  font-size: 14px;
}

</style>

<h1><a href="mybusinesslodging_v1.html">My Business Lodging API</a> . <a href="mybusinesslodging_v1.locations.html">locations</a> . <a href="mybusinesslodging_v1.locations.lodging.html">lodging</a></h1>
<h2>Instance Methods</h2>
<p class="toc_element">
  <code><a href="#close">close()</a></code></p>
<p class="firstline">Close httplib2 connections.</p>
<p class="toc_element">
  <code><a href="#getGoogleUpdated">getGoogleUpdated(name, readMask=None, x__xgafv=None)</a></code></p>
<p class="firstline">Returns the Google updated Lodging of a specific location.</p>
<h3>Method Details</h3>
<div class="method">
    <code class="details" id="close">close()</code>
  <pre>Close httplib2 connections.</pre>
</div>

<div class="method">
    <code class="details" id="getGoogleUpdated">getGoogleUpdated(name, readMask=None, x__xgafv=None)</code>
  <pre>Returns the Google updated Lodging of a specific location.

Args:
  name: string, Required. Google identifier for this location in the form: `accounts/{account_id}/locations/{location_id}/lodging` (required)
  readMask: string, Required. The specific fields to return. Use &quot;*&quot; to include all fields. Repeated field items cannot be individually specified.
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # Response message for LodgingService.GetGoogleUpdatedLodging
  &quot;diffMask&quot;: &quot;A String&quot;, # Required. The fields in the Lodging that have been updated by Google. Repeated field items are not individually specified.
  &quot;lodging&quot;: { # Lodging of a location that provides accomodations. # Required. The Google updated Lodging.
    &quot;accessibility&quot;: { # Physical adaptations made to the property in consideration of varying levels of human physical ability. # Physical adaptations made to the property in consideration of varying levels of human physical ability.
      &quot;mobilityAccessible&quot;: True or False, # Mobility accessible. Throughout the property there are physical adaptations to ease the stay of a person in a wheelchair, such as auto-opening doors, wide elevators, wide bathrooms or ramps.
      &quot;mobilityAccessibleElevator&quot;: True or False, # Mobility accessible elevator. A lift that transports people from one level to another and is built to accommodate a wheelchair-using passenger owing to the width of its doors and placement of call buttons.
      &quot;mobilityAccessibleElevatorException&quot;: &quot;A String&quot;, # Mobility accessible elevator exception.
      &quot;mobilityAccessibleException&quot;: &quot;A String&quot;, # Mobility accessible exception.
      &quot;mobilityAccessibleParking&quot;: True or False, # Mobility accessible parking. The presence of a marked, designated area of prescribed size in which only registered, labeled vehicles transporting a person with physical challenges may park.
      &quot;mobilityAccessibleParkingException&quot;: &quot;A String&quot;, # Mobility accessible parking exception.
      &quot;mobilityAccessiblePool&quot;: True or False, # Mobility accessible pool. A swimming pool equipped with a mechanical chair that can be lowered and raised for the purpose of moving physically challenged guests into and out of the pool. May be powered by electricity or water. Also known as pool lift.
      &quot;mobilityAccessiblePoolException&quot;: &quot;A String&quot;, # Mobility accessible pool exception.
    },
    &quot;activities&quot;: { # Amenities and features related to leisure and play. # Amenities and features related to leisure and play.
      &quot;beachAccess&quot;: True or False, # Beach access. The hotel property is in close proximity to a beach and offers a way to get to that beach. This can include a route to the beach such as stairs down if hotel is on a bluff, or a short trail. Not the same as beachfront (with beach access, the hotel&#x27;s proximity is close to but not right on the beach).
      &quot;beachAccessException&quot;: &quot;A String&quot;, # Beach access exception.
      &quot;beachFront&quot;: True or False, # Breach front. The hotel property is physically located on the beach alongside an ocean, sea, gulf, or bay. It is not on a lake, river, stream, or pond. The hotel is not separated from the beach by a public road allowing vehicular, pedestrian, or bicycle traffic.
      &quot;beachFrontException&quot;: &quot;A String&quot;, # Beach front exception.
      &quot;bicycleRental&quot;: True or False, # Bicycle rental. The hotel owns bicycles that it permits guests to borrow and use. Can be free or for a fee.
      &quot;bicycleRentalException&quot;: &quot;A String&quot;, # Bicycle rental exception.
      &quot;boutiqueStores&quot;: True or False, # Boutique stores. There are stores selling clothing, jewelry, art and decor either on hotel premises or very close by. Does not refer to the hotel gift shop or convenience store.
      &quot;boutiqueStoresException&quot;: &quot;A String&quot;, # Boutique stores exception.
      &quot;casino&quot;: True or False, # Casino. A space designated for gambling and gaming featuring croupier-run table and card games, as well as electronic slot machines. May be on hotel premises or located nearby.
      &quot;casinoException&quot;: &quot;A String&quot;, # Casino exception.
      &quot;freeBicycleRental&quot;: True or False, # Free bicycle rental. The hotel owns bicycles that it permits guests to borrow and use for free.
      &quot;freeBicycleRentalException&quot;: &quot;A String&quot;, # Free bicycle rental exception.
      &quot;freeWatercraftRental&quot;: True or False, # Free watercraft rental. The hotel owns watercraft that it permits guests to borrow and use for free.
      &quot;freeWatercraftRentalException&quot;: &quot;A String&quot;, # Free Watercraft rental exception.
      &quot;gameRoom&quot;: True or False, # Game room. There is a room at the hotel containing electronic machines for play such as pinball, prize machines, driving simulators, and other items commonly found at a family fun center or arcade. May also include non-electronic games like pool, foosball, darts, and more. May or may not be designed for children. Also known as arcade, fun room, or family fun center.
      &quot;gameRoomException&quot;: &quot;A String&quot;, # Game room exception.
      &quot;golf&quot;: True or False, # Golf. There is a golf course on hotel grounds or there is a nearby, independently run golf course that allows use by hotel guests. Can be free or for a fee.
      &quot;golfException&quot;: &quot;A String&quot;, # Golf exception.
      &quot;horsebackRiding&quot;: True or False, # Horseback riding. The hotel has a horse barn onsite or an affiliation with a nearby barn to allow for guests to sit astride a horse and direct it to walk, trot, cantor, gallop and/or jump. Can be in a riding ring, on designated paths, or in the wilderness. May or may not involve instruction.
      &quot;horsebackRidingException&quot;: &quot;A String&quot;, # Horseback riding exception.
      &quot;nightclub&quot;: True or False, # Nightclub. There is a room at the hotel with a bar, a dance floor, and seating where designated staffers play dance music. There may also be a designated area for the performance of live music, singing and comedy acts.
      &quot;nightclubException&quot;: &quot;A String&quot;, # Nightclub exception.
      &quot;privateBeach&quot;: True or False, # Private beach. The beach which is in close proximity to the hotel is open only to guests.
      &quot;privateBeachException&quot;: &quot;A String&quot;, # Private beach exception.
      &quot;scuba&quot;: True or False, # Scuba. The provision for guests to dive under naturally occurring water fitted with a self-contained underwater breathing apparatus (SCUBA) for the purpose of exploring underwater life. Apparatus consists of a tank providing oxygen to the diver through a mask. Requires certification of the diver and supervision. The hotel may have the activity at its own waterfront or have an affiliation with a nearby facility. Required equipment is most often supplied to guests. Can be free or for a fee. Not snorkeling. Not done in a swimming pool.
      &quot;scubaException&quot;: &quot;A String&quot;, # Scuba exception.
      &quot;snorkeling&quot;: True or False, # Snorkeling. The provision for guests to participate in a recreational water activity in which swimmers wear a diving mask, a simple, shaped breathing tube and flippers/swim fins for the purpose of exploring below the surface of an ocean, gulf or lake. Does not usually require user certification or professional supervision. Equipment may or may not be available for rent or purchase. Not scuba diving.
      &quot;snorkelingException&quot;: &quot;A String&quot;, # Snorkeling exception.
      &quot;tennis&quot;: True or False, # Tennis. The hotel has the requisite court(s) on site or has an affiliation with a nearby facility for the purpose of providing guests with the opportunity to play a two-sided court-based game in which players use a stringed racquet to hit a ball across a net to the side of the opposing player. The court can be indoors or outdoors. Instructors, racquets and balls may or may not be provided.
      &quot;tennisException&quot;: &quot;A String&quot;, # Tennis exception.
      &quot;waterSkiing&quot;: True or False, # Water skiing. The provision of giving guests the opportunity to be pulled across naturally occurring water while standing on skis and holding a tow rope attached to a motorboat. Can occur on hotel premises or at a nearby waterfront. Most often performed in a lake or ocean.
      &quot;waterSkiingException&quot;: &quot;A String&quot;, # Water skiing exception.
      &quot;watercraftRental&quot;: True or False, # Watercraft rental. The hotel owns water vessels that it permits guests to borrow and use. Can be free or for a fee. Watercraft may include boats, pedal boats, rowboats, sailboats, powerboats, canoes, kayaks, or personal watercraft (such as a Jet Ski).
      &quot;watercraftRentalException&quot;: &quot;A String&quot;, # Watercraft rental exception.
    },
    &quot;allUnits&quot;: { # Features and available amenities in the guest unit. # Output only. All units on the property have at least these attributes.
      &quot;bungalowOrVilla&quot;: True or False, # Bungalow or villa. An independent structure that is part of a hotel or resort that is rented to one party for a vacation stay. The hotel or resort may be completely comprised of bungalows or villas, or they may be one of several guestroom options. Guests in the bungalows or villas most often have the same, if not more, amenities and services offered to guests in other guestroom types.
      &quot;bungalowOrVillaException&quot;: &quot;A String&quot;, # Bungalow or villa exception.
      &quot;connectingUnitAvailable&quot;: True or False, # Connecting unit available. A guestroom type that features access to an adjacent guestroom for the purpose of booking both rooms. Most often used by families who need more than one room to accommodate the number of people in their group.
      &quot;connectingUnitAvailableException&quot;: &quot;A String&quot;, # Connecting unit available exception.
      &quot;executiveFloor&quot;: True or False, # Executive floor. A floor of the hotel where the guestrooms are only bookable by members of the hotel&#x27;s frequent guest membership program. Benefits of this room class include access to a designated lounge which may or may not feature free breakfast, cocktails or other perks specific to members of the program.
      &quot;executiveFloorException&quot;: &quot;A String&quot;, # Executive floor exception.
      &quot;maxAdultOccupantsCount&quot;: 42, # Max adult occupants count. The total number of adult guests allowed to stay overnight in the guestroom.
      &quot;maxAdultOccupantsCountException&quot;: &quot;A String&quot;, # Max adult occupants count exception.
      &quot;maxChildOccupantsCount&quot;: 42, # Max child occupants count. The total number of children allowed to stay overnight in the room.
      &quot;maxChildOccupantsCountException&quot;: &quot;A String&quot;, # Max child occupants count exception.
      &quot;maxOccupantsCount&quot;: 42, # Max occupants count. The total number of guests allowed to stay overnight in the guestroom.
      &quot;maxOccupantsCountException&quot;: &quot;A String&quot;, # Max occupants count exception.
      &quot;privateHome&quot;: True or False, # Private home. A privately owned home (house, townhouse, apartment, cabin, bungalow etc) that may or not serve as the owner&#x27;s residence, but is rented out in its entirety or by the room(s) to paying guest(s) for vacation stays. Not for lease-based, long-term residency.
      &quot;privateHomeException&quot;: &quot;A String&quot;, # Private home exception.
      &quot;suite&quot;: True or False, # Suite. A guestroom category that implies both a bedroom area and a separate living area. There may or may not be full walls and doors separating the two areas, but regardless, they are very distinct. Does not mean a couch or chair in a bedroom.
      &quot;suiteException&quot;: &quot;A String&quot;, # Suite exception.
      &quot;tier&quot;: &quot;A String&quot;, # Tier. Classification of the unit based on available features/amenities. A non-standard tier is only permitted if at least one other unit type falls under the standard tier.
      &quot;tierException&quot;: &quot;A String&quot;, # Tier exception.
      &quot;totalLivingAreas&quot;: { # An individual room, such as kitchen, bathroom, bedroom, within a bookable guest unit. # Features available in the living areas in the guest unit.
        &quot;accessibility&quot;: { # Accessibility features of the living area. # Accessibility features of the living area.
          &quot;adaCompliantUnit&quot;: True or False, # ADA compliant unit. A guestroom designed to accommodate the physical challenges of a guest with mobility and/or auditory and/or visual issues, as determined by legislative policy. Usually features enlarged doorways, roll-in showers with seats, bathroom grab bars, and communication equipment for the hearing and sight challenged.
          &quot;adaCompliantUnitException&quot;: &quot;A String&quot;, # ADA compliant unit exception.
          &quot;hearingAccessibleDoorbell&quot;: True or False, # Hearing-accessible doorbell. A visual indicator(s) of a knock or ring at the door.
          &quot;hearingAccessibleDoorbellException&quot;: &quot;A String&quot;, # Hearing-accessible doorbell exception.
          &quot;hearingAccessibleFireAlarm&quot;: True or False, # Hearing-accessible fire alarm. A device that gives warning of a fire through flashing lights.
          &quot;hearingAccessibleFireAlarmException&quot;: &quot;A String&quot;, # Hearing-accessible fire alarm exception.
          &quot;hearingAccessibleUnit&quot;: True or False, # Hearing-accessible unit. A guestroom designed to accommodate the physical challenges of a guest with auditory issues.
          &quot;hearingAccessibleUnitException&quot;: &quot;A String&quot;, # Hearing-accessible unit exception.
          &quot;mobilityAccessibleBathtub&quot;: True or False, # Mobility-accessible bathtub. A bathtub that accomodates the physically challenged with additional railings or hand grips, a transfer seat or lift, and/or a door to enable walking into the tub.
          &quot;mobilityAccessibleBathtubException&quot;: &quot;A String&quot;, # Mobility-accessible bathtub exception.
          &quot;mobilityAccessibleShower&quot;: True or False, # Mobility-accessible shower. A shower with an enlarged door or access point to accommodate a wheelchair or a waterproof seat for the physically challenged.
          &quot;mobilityAccessibleShowerException&quot;: &quot;A String&quot;, # Mobility-accessible shower exception.
          &quot;mobilityAccessibleToilet&quot;: True or False, # Mobility-accessible toilet. A toilet with a higher seat, grab bars, and/or a larger area around it to accommodate the physically challenged.
          &quot;mobilityAccessibleToiletException&quot;: &quot;A String&quot;, # Mobility-accessible toilet exception.
          &quot;mobilityAccessibleUnit&quot;: True or False, # Mobility-accessible unit. A guestroom designed to accommodate the physical challenges of a guest with mobility and/or auditory and/or visual issues. Usually features enlarged doorways, roll-in showers with seats, bathroom grab bars, and communication equipment for the hearing and sight challenged.
          &quot;mobilityAccessibleUnitException&quot;: &quot;A String&quot;, # Mobility-accessible unit exception.
        },
        &quot;eating&quot;: { # Information about eating features in the living area. # Information about eating features in the living area.
          &quot;coffeeMaker&quot;: True or False, # Coffee maker. An electric appliance that brews coffee by heating and forcing water through ground coffee.
          &quot;coffeeMakerException&quot;: &quot;A String&quot;, # Coffee maker exception.
          &quot;cookware&quot;: True or False, # Cookware. Kitchen pots, pans and utensils used in connection with the preparation of food.
          &quot;cookwareException&quot;: &quot;A String&quot;, # Cookware exception.
          &quot;dishwasher&quot;: True or False, # Dishwasher. A counter-height electrical cabinet containing racks for dirty dishware, cookware and cutlery, and a dispenser for soap built into the pull-down door. The cabinet is attached to the plumbing system to facilitate the automatic cleaning of its contents.
          &quot;dishwasherException&quot;: &quot;A String&quot;, # Dishwasher exception.
          &quot;indoorGrill&quot;: True or False, # Indoor grill. Metal grates built into an indoor cooktop on which food is cooked over an open flame or electric heat source.
          &quot;indoorGrillException&quot;: &quot;A String&quot;, # Indoor grill exception.
          &quot;kettle&quot;: True or False, # Kettle. A covered container with a handle and a spout used for boiling water.
          &quot;kettleException&quot;: &quot;A String&quot;, # Kettle exception.
          &quot;kitchenAvailable&quot;: True or False, # Kitchen available. An area of the guestroom designated for the preparation and storage of food via the presence of a refrigerator, cook top, oven and sink, as well as cutlery, dishes and cookware. Usually includes small appliances such a coffee maker and a microwave. May or may not include an automatic dishwasher.
          &quot;kitchenAvailableException&quot;: &quot;A String&quot;, # Kitchen available exception.
          &quot;microwave&quot;: True or False, # Microwave. An electric oven that quickly cooks and heats food by microwave energy. Smaller than a standing or wall mounted oven. Usually placed on a kitchen counter, a shelf or tabletop or mounted above a cooktop.
          &quot;microwaveException&quot;: &quot;A String&quot;, # Microwave exception.
          &quot;minibar&quot;: True or False, # Minibar. A small refrigerated cabinet in the guestroom containing bottles/cans of soft drinks, mini bottles of alcohol, and snacks. The items are most commonly available for a fee.
          &quot;minibarException&quot;: &quot;A String&quot;, # Minibar exception.
          &quot;outdoorGrill&quot;: True or False, # Outdoor grill. Metal grates on which food is cooked over an open flame or electric heat source. Part of an outdoor apparatus that supports the grates. Also known as barbecue grill or barbecue.
          &quot;outdoorGrillException&quot;: &quot;A String&quot;, # Outdoor grill exception.
          &quot;oven&quot;: True or False, # Oven. A temperature controlled, heated metal cabinet powered by gas or electricity in which food is placed for the purpose of cooking or reheating.
          &quot;ovenException&quot;: &quot;A String&quot;, # Oven exception.
          &quot;refrigerator&quot;: True or False, # Refrigerator. A large, climate-controlled electrical cabinet with vertical doors. Built for the purpose of chilling and storing perishable foods.
          &quot;refrigeratorException&quot;: &quot;A String&quot;, # Refrigerator exception.
          &quot;sink&quot;: True or False, # Sink. A basin with a faucet attached to a water source and used for the purpose of washing and rinsing.
          &quot;sinkException&quot;: &quot;A String&quot;, # Sink exception.
          &quot;snackbar&quot;: True or False, # Snackbar. A small cabinet in the guestroom containing snacks. The items are most commonly available for a fee.
          &quot;snackbarException&quot;: &quot;A String&quot;, # Snackbar exception.
          &quot;stove&quot;: True or False, # Stove. A kitchen appliance powered by gas or electricity for the purpose of creating a flame or hot surface on which pots of food can be cooked. Also known as cooktop or hob.
          &quot;stoveException&quot;: &quot;A String&quot;, # Stove exception.
          &quot;teaStation&quot;: True or False, # Tea station. A small area with the supplies needed to heat water and make tea.
          &quot;teaStationException&quot;: &quot;A String&quot;, # Tea station exception.
          &quot;toaster&quot;: True or False, # Toaster. A small, temperature controlled electric appliance with rectangular slots at the top that are lined with heated coils for the purpose of browning slices of bread products.
          &quot;toasterException&quot;: &quot;A String&quot;, # Toaster exception.
        },
        &quot;features&quot;: { # Features in the living area. # Features in the living area.
          &quot;airConditioning&quot;: True or False, # Air conditioning. An electrical machine used to cool the temperature of the guestroom.
          &quot;airConditioningException&quot;: &quot;A String&quot;, # Air conditioning exception.
          &quot;bathtub&quot;: True or False, # Bathtub. A fixed plumbing feature set on the floor and consisting of a large container that accommodates the body of an adult for the purpose of seated bathing. Includes knobs or fixtures to control the temperature of the water, a faucet through which the water flows, and a drain that can be closed for filling and opened for draining.
          &quot;bathtubException&quot;: &quot;A String&quot;, # Bathtub exception.
          &quot;bidet&quot;: True or False, # Bidet. A plumbing fixture attached to a toilet or a low, fixed sink designed for the purpose of washing after toilet use.
          &quot;bidetException&quot;: &quot;A String&quot;, # Bidet exception.
          &quot;dryer&quot;: True or False, # Dryer. An electrical machine designed to dry clothing.
          &quot;dryerException&quot;: &quot;A String&quot;, # Dryer exception.
          &quot;electronicRoomKey&quot;: True or False, # Electronic room key. A card coded by the check-in computer that is read by the lock on the hotel guestroom door to allow for entry.
          &quot;electronicRoomKeyException&quot;: &quot;A String&quot;, # Electronic room key exception.
          &quot;fireplace&quot;: True or False, # Fireplace. A framed opening (aka hearth) at the base of a chimney in which logs or an electrical fire feature are burned to provide a relaxing ambiance or to heat the room. Often made of bricks or stone.
          &quot;fireplaceException&quot;: &quot;A String&quot;, # Fireplace exception.
          &quot;hairdryer&quot;: True or False, # Hairdryer. A handheld electric appliance that blows temperature-controlled air for the purpose of drying wet hair. Can be mounted to a bathroom wall or a freestanding device stored in the guestroom&#x27;s bathroom or closet.
          &quot;hairdryerException&quot;: &quot;A String&quot;, # Hairdryer exception.
          &quot;heating&quot;: True or False, # Heating. An electrical machine used to warm the temperature of the guestroom.
          &quot;heatingException&quot;: &quot;A String&quot;, # Heating exception.
          &quot;inunitSafe&quot;: True or False, # In-unit safe. A strong fireproof cabinet with a programmable lock, used for the protected storage of valuables in a guestroom. Often built into a closet.
          &quot;inunitSafeException&quot;: &quot;A String&quot;, # In-unit safe exception.
          &quot;inunitWifiAvailable&quot;: True or False, # In-unit Wifi available. Guests can wirelessly connect to the Internet in the guestroom. Can be free or for a fee.
          &quot;inunitWifiAvailableException&quot;: &quot;A String&quot;, # In-unit Wifi available exception.
          &quot;ironingEquipment&quot;: True or False, # Ironing equipment. A device, usually with a flat metal base, that is heated to smooth, finish, or press clothes and a flat, padded, cloth-covered surface on which the clothes are worked.
          &quot;ironingEquipmentException&quot;: &quot;A String&quot;, # Ironing equipment exception.
          &quot;payPerViewMovies&quot;: True or False, # Pay per view movies. Televisions with channels that offer films that can be viewed for a fee, and have an interface to allow the viewer to accept the terms and approve payment.
          &quot;payPerViewMoviesException&quot;: &quot;A String&quot;, # Pay per view movies exception.
          &quot;privateBathroom&quot;: True or False, # Private bathroom. A bathroom designated for the express use of the guests staying in a specific guestroom.
          &quot;privateBathroomException&quot;: &quot;A String&quot;, # Private bathroom exception.
          &quot;shower&quot;: True or False, # Shower. A fixed plumbing fixture for standing bathing that features a tall spray spout or faucet through which water flows, a knob or knobs that control the water&#x27;s temperature, and a drain in the floor.
          &quot;showerException&quot;: &quot;A String&quot;, # Shower exception.
          &quot;toilet&quot;: True or False, # Toilet. A fixed bathroom feature connected to a sewer or septic system and consisting of a water-flushed bowl with a seat, as well as a device that elicites the water-flushing action. Used for the process and disposal of human waste.
          &quot;toiletException&quot;: &quot;A String&quot;, # Toilet exception.
          &quot;tv&quot;: True or False, # TV. A television is available in the guestroom.
          &quot;tvCasting&quot;: True or False, # TV casting. A television equipped with a device through which the video entertainment accessed on a personal computer, phone or tablet can be wirelessly delivered to and viewed on the guestroom&#x27;s television.
          &quot;tvCastingException&quot;: &quot;A String&quot;, # TV exception.
          &quot;tvException&quot;: &quot;A String&quot;, # TV exception.
          &quot;tvStreaming&quot;: True or False, # TV streaming. Televisions that embed a range of web-based apps to allow for watching media from those apps.
          &quot;tvStreamingException&quot;: &quot;A String&quot;, # TV streaming exception.
          &quot;universalPowerAdapters&quot;: True or False, # Universal power adapters. A power supply for electronic devices which plugs into a wall for the purpose of converting AC to a single DC voltage. Also know as AC adapter or charger.
          &quot;universalPowerAdaptersException&quot;: &quot;A String&quot;, # Universal power adapters exception.
          &quot;washer&quot;: True or False, # Washer. An electrical machine connected to a running water source designed to launder clothing.
          &quot;washerException&quot;: &quot;A String&quot;, # Washer exception.
        },
        &quot;layout&quot;: { # Information about the layout of the living area. # Information about the layout of the living area.
          &quot;balcony&quot;: True or False, # Balcony. An outdoor platform attached to a building and surrounded by a short wall, fence or other safety railing. The balcony is accessed through a door in a guestroom or suite and is for use by the guest staying in that room. May or may not include seating or outdoor furniture. Is not located on the ground floor. Also lanai.
          &quot;balconyException&quot;: &quot;A String&quot;, # Balcony exception.
          &quot;livingAreaSqMeters&quot;: 3.14, # Living area sq meters. The measurement in meters of the area of a guestroom&#x27;s living space.
          &quot;livingAreaSqMetersException&quot;: &quot;A String&quot;, # Living area sq meters exception.
          &quot;loft&quot;: True or False, # Loft. A three-walled upper area accessed by stairs or a ladder that overlooks the lower area of a room.
          &quot;loftException&quot;: &quot;A String&quot;, # Loft exception.
          &quot;nonSmoking&quot;: True or False, # Non smoking. A guestroom in which the smoking of cigarettes, cigars and pipes is prohibited.
          &quot;nonSmokingException&quot;: &quot;A String&quot;, # Non smoking exception.
          &quot;patio&quot;: True or False, # Patio. A paved, outdoor area with seating attached to and accessed through a ground-floor guestroom for use by the occupants of the guestroom.
          &quot;patioException&quot;: &quot;A String&quot;, # Patio exception.
          &quot;stairs&quot;: True or False, # Stairs. There are steps leading from one level or story to another in the unit.
          &quot;stairsException&quot;: &quot;A String&quot;, # Stairs exception.
        },
        &quot;sleeping&quot;: { # Information about sleeping features in the living area. # Information about sleeping features in the living area.
          &quot;bedsCount&quot;: 42, # Beds count. The number of permanent beds present in a guestroom. Does not include rollaway beds, cribs or sofabeds.
          &quot;bedsCountException&quot;: &quot;A String&quot;, # Beds count exception.
          &quot;bunkBedsCount&quot;: 42, # Bunk beds count. The number of furniture pieces in which one framed mattress is fixed directly above another by means of a physical frame. This allows one person(s) to sleep in the bottom bunk and one person(s) to sleep in the top bunk. Also known as double decker bed.
          &quot;bunkBedsCountException&quot;: &quot;A String&quot;, # Bunk beds count exception.
          &quot;cribsCount&quot;: 42, # Cribs count. The number of small beds for an infant or toddler that the guestroom can obtain. The bed is surrounded by a high railing to prevent the child from falling or climbing out of the bed
          &quot;cribsCountException&quot;: &quot;A String&quot;, # Cribs count exception.
          &quot;doubleBedsCount&quot;: 42, # Double beds count. The number of medium beds measuring 53&quot;W x 75&quot;L (135cm x 191cm). Also known as full size bed.
          &quot;doubleBedsCountException&quot;: &quot;A String&quot;, # Double beds count exception.
          &quot;featherPillows&quot;: True or False, # Feather pillows. The option for guests to obtain bed pillows that are stuffed with the feathers and down of ducks or geese.
          &quot;featherPillowsException&quot;: &quot;A String&quot;, # Feather pillows exception.
          &quot;hypoallergenicBedding&quot;: True or False, # Hypoallergenic bedding. Bedding such as linens, pillows, mattress covers and/or mattresses that are made of materials known to be resistant to allergens such as mold, dust and dander.
          &quot;hypoallergenicBeddingException&quot;: &quot;A String&quot;, # Hypoallergenic bedding exception.
          &quot;kingBedsCount&quot;: 42, # King beds count. The number of large beds measuring 76&quot;W x 80&quot;L (193cm x 102cm). Most often meant to accompany two people. Includes California king and super king.
          &quot;kingBedsCountException&quot;: &quot;A String&quot;, # King beds count exception.
          &quot;memoryFoamPillows&quot;: True or False, # Memory foam pillows. The option for guests to obtain bed pillows that are stuffed with a man-made foam that responds to body heat by conforming to the body closely, and then recovers its shape when the pillow cools down.
          &quot;memoryFoamPillowsException&quot;: &quot;A String&quot;, # Memory foam pillows exception.
          &quot;otherBedsCount&quot;: 42, # Other beds count. The number of beds that are not standard mattress and boxspring setups such as Japanese tatami mats, trundle beds, air mattresses and cots.
          &quot;otherBedsCountException&quot;: &quot;A String&quot;, # Other beds count exception.
          &quot;queenBedsCount&quot;: 42, # Queen beds count. The number of medium-large beds measuring 60&quot;W x 80&quot;L (152cm x 102cm).
          &quot;queenBedsCountException&quot;: &quot;A String&quot;, # Queen beds count exception.
          &quot;rollAwayBedsCount&quot;: 42, # Roll away beds count. The number of mattresses on wheeled frames that can be folded in half and rolled away for easy storage that the guestroom can obtain upon request.
          &quot;rollAwayBedsCountException&quot;: &quot;A String&quot;, # Roll away beds count exception.
          &quot;singleOrTwinBedsCount&quot;: 42, # Single or twin count beds. The number of smaller beds measuring 38&quot;W x 75&quot;L (97cm x 191cm) that can accommodate one adult.
          &quot;singleOrTwinBedsCountException&quot;: &quot;A String&quot;, # Single or twin beds count exception.
          &quot;sofaBedsCount&quot;: 42, # Sofa beds count. The number of specially designed sofas that can be made to serve as a bed by lowering its hinged upholstered back to horizontal position or by pulling out a concealed mattress.
          &quot;sofaBedsCountException&quot;: &quot;A String&quot;, # Sofa beds count exception.
          &quot;syntheticPillows&quot;: True or False, # Synthetic pillows. The option for guests to obtain bed pillows stuffed with polyester material crafted to reproduce the feel of a pillow stuffed with down and feathers.
          &quot;syntheticPillowsException&quot;: &quot;A String&quot;, # Synthetic pillows exception.
        },
      },
      &quot;views&quot;: { # Views available from the guest unit itself. # Views available from the guest unit itself.
        &quot;beachView&quot;: True or False, # Beach view. A guestroom that features a window through which guests can see the beach.
        &quot;beachViewException&quot;: &quot;A String&quot;, # Beach view exception.
        &quot;cityView&quot;: True or False, # City view. A guestroom that features a window through which guests can see the buildings, parks and/or streets of the city.
        &quot;cityViewException&quot;: &quot;A String&quot;, # City view exception.
        &quot;gardenView&quot;: True or False, # Garden view. A guestroom that features a window through which guests can see a garden.
        &quot;gardenViewException&quot;: &quot;A String&quot;, # Garden view exception.
        &quot;lakeView&quot;: True or False, # Lake view.
        &quot;lakeViewException&quot;: &quot;A String&quot;, # Lake view exception.
        &quot;landmarkView&quot;: True or False, # Landmark view. A guestroom that features a window through which guests can see a landmark such as the countryside, a golf course, the forest, a park, a rain forst, a mountain or a slope.
        &quot;landmarkViewException&quot;: &quot;A String&quot;, # Landmark view exception.
        &quot;oceanView&quot;: True or False, # Ocean view. A guestroom that features a window through which guests can see the ocean.
        &quot;oceanViewException&quot;: &quot;A String&quot;, # Ocean view exception.
        &quot;poolView&quot;: True or False, # Pool view. A guestroom that features a window through which guests can see the hotel&#x27;s swimming pool.
        &quot;poolViewException&quot;: &quot;A String&quot;, # Pool view exception.
        &quot;valleyView&quot;: True or False, # Valley view. A guestroom that features a window through which guests can see over a valley.
        &quot;valleyViewException&quot;: &quot;A String&quot;, # Valley view exception.
      },
    },
    &quot;business&quot;: { # Features of the property of specific interest to the business traveler. # Features of the property of specific interest to the business traveler.
      &quot;businessCenter&quot;: True or False, # Business center. A designated room at the hotel with one or more desks and equipped with guest-use computers, printers, fax machines and/or photocopiers. May or may not be open 24/7. May or may not require a key to access. Not a meeting room or conference room.
      &quot;businessCenterException&quot;: &quot;A String&quot;, # Business center exception.
      &quot;meetingRooms&quot;: True or False, # Meeting rooms. Rooms at the hotel designated for business-related gatherings. Rooms are usually equipped with tables or desks, office chairs and audio/visual facilities to allow for presentations and conference calls. Also known as conference rooms.
      &quot;meetingRoomsCount&quot;: 42, # Meeting rooms count. The number of meeting rooms at the property.
      &quot;meetingRoomsCountException&quot;: &quot;A String&quot;, # Meeting rooms count exception.
      &quot;meetingRoomsException&quot;: &quot;A String&quot;, # Meeting rooms exception.
    },
    &quot;commonLivingArea&quot;: { # An individual room, such as kitchen, bathroom, bedroom, within a bookable guest unit. # Features of the shared living areas available in this Lodging.
      &quot;accessibility&quot;: { # Accessibility features of the living area. # Accessibility features of the living area.
        &quot;adaCompliantUnit&quot;: True or False, # ADA compliant unit. A guestroom designed to accommodate the physical challenges of a guest with mobility and/or auditory and/or visual issues, as determined by legislative policy. Usually features enlarged doorways, roll-in showers with seats, bathroom grab bars, and communication equipment for the hearing and sight challenged.
        &quot;adaCompliantUnitException&quot;: &quot;A String&quot;, # ADA compliant unit exception.
        &quot;hearingAccessibleDoorbell&quot;: True or False, # Hearing-accessible doorbell. A visual indicator(s) of a knock or ring at the door.
        &quot;hearingAccessibleDoorbellException&quot;: &quot;A String&quot;, # Hearing-accessible doorbell exception.
        &quot;hearingAccessibleFireAlarm&quot;: True or False, # Hearing-accessible fire alarm. A device that gives warning of a fire through flashing lights.
        &quot;hearingAccessibleFireAlarmException&quot;: &quot;A String&quot;, # Hearing-accessible fire alarm exception.
        &quot;hearingAccessibleUnit&quot;: True or False, # Hearing-accessible unit. A guestroom designed to accommodate the physical challenges of a guest with auditory issues.
        &quot;hearingAccessibleUnitException&quot;: &quot;A String&quot;, # Hearing-accessible unit exception.
        &quot;mobilityAccessibleBathtub&quot;: True or False, # Mobility-accessible bathtub. A bathtub that accomodates the physically challenged with additional railings or hand grips, a transfer seat or lift, and/or a door to enable walking into the tub.
        &quot;mobilityAccessibleBathtubException&quot;: &quot;A String&quot;, # Mobility-accessible bathtub exception.
        &quot;mobilityAccessibleShower&quot;: True or False, # Mobility-accessible shower. A shower with an enlarged door or access point to accommodate a wheelchair or a waterproof seat for the physically challenged.
        &quot;mobilityAccessibleShowerException&quot;: &quot;A String&quot;, # Mobility-accessible shower exception.
        &quot;mobilityAccessibleToilet&quot;: True or False, # Mobility-accessible toilet. A toilet with a higher seat, grab bars, and/or a larger area around it to accommodate the physically challenged.
        &quot;mobilityAccessibleToiletException&quot;: &quot;A String&quot;, # Mobility-accessible toilet exception.
        &quot;mobilityAccessibleUnit&quot;: True or False, # Mobility-accessible unit. A guestroom designed to accommodate the physical challenges of a guest with mobility and/or auditory and/or visual issues. Usually features enlarged doorways, roll-in showers with seats, bathroom grab bars, and communication equipment for the hearing and sight challenged.
        &quot;mobilityAccessibleUnitException&quot;: &quot;A String&quot;, # Mobility-accessible unit exception.
      },
      &quot;eating&quot;: { # Information about eating features in the living area. # Information about eating features in the living area.
        &quot;coffeeMaker&quot;: True or False, # Coffee maker. An electric appliance that brews coffee by heating and forcing water through ground coffee.
        &quot;coffeeMakerException&quot;: &quot;A String&quot;, # Coffee maker exception.
        &quot;cookware&quot;: True or False, # Cookware. Kitchen pots, pans and utensils used in connection with the preparation of food.
        &quot;cookwareException&quot;: &quot;A String&quot;, # Cookware exception.
        &quot;dishwasher&quot;: True or False, # Dishwasher. A counter-height electrical cabinet containing racks for dirty dishware, cookware and cutlery, and a dispenser for soap built into the pull-down door. The cabinet is attached to the plumbing system to facilitate the automatic cleaning of its contents.
        &quot;dishwasherException&quot;: &quot;A String&quot;, # Dishwasher exception.
        &quot;indoorGrill&quot;: True or False, # Indoor grill. Metal grates built into an indoor cooktop on which food is cooked over an open flame or electric heat source.
        &quot;indoorGrillException&quot;: &quot;A String&quot;, # Indoor grill exception.
        &quot;kettle&quot;: True or False, # Kettle. A covered container with a handle and a spout used for boiling water.
        &quot;kettleException&quot;: &quot;A String&quot;, # Kettle exception.
        &quot;kitchenAvailable&quot;: True or False, # Kitchen available. An area of the guestroom designated for the preparation and storage of food via the presence of a refrigerator, cook top, oven and sink, as well as cutlery, dishes and cookware. Usually includes small appliances such a coffee maker and a microwave. May or may not include an automatic dishwasher.
        &quot;kitchenAvailableException&quot;: &quot;A String&quot;, # Kitchen available exception.
        &quot;microwave&quot;: True or False, # Microwave. An electric oven that quickly cooks and heats food by microwave energy. Smaller than a standing or wall mounted oven. Usually placed on a kitchen counter, a shelf or tabletop or mounted above a cooktop.
        &quot;microwaveException&quot;: &quot;A String&quot;, # Microwave exception.
        &quot;minibar&quot;: True or False, # Minibar. A small refrigerated cabinet in the guestroom containing bottles/cans of soft drinks, mini bottles of alcohol, and snacks. The items are most commonly available for a fee.
        &quot;minibarException&quot;: &quot;A String&quot;, # Minibar exception.
        &quot;outdoorGrill&quot;: True or False, # Outdoor grill. Metal grates on which food is cooked over an open flame or electric heat source. Part of an outdoor apparatus that supports the grates. Also known as barbecue grill or barbecue.
        &quot;outdoorGrillException&quot;: &quot;A String&quot;, # Outdoor grill exception.
        &quot;oven&quot;: True or False, # Oven. A temperature controlled, heated metal cabinet powered by gas or electricity in which food is placed for the purpose of cooking or reheating.
        &quot;ovenException&quot;: &quot;A String&quot;, # Oven exception.
        &quot;refrigerator&quot;: True or False, # Refrigerator. A large, climate-controlled electrical cabinet with vertical doors. Built for the purpose of chilling and storing perishable foods.
        &quot;refrigeratorException&quot;: &quot;A String&quot;, # Refrigerator exception.
        &quot;sink&quot;: True or False, # Sink. A basin with a faucet attached to a water source and used for the purpose of washing and rinsing.
        &quot;sinkException&quot;: &quot;A String&quot;, # Sink exception.
        &quot;snackbar&quot;: True or False, # Snackbar. A small cabinet in the guestroom containing snacks. The items are most commonly available for a fee.
        &quot;snackbarException&quot;: &quot;A String&quot;, # Snackbar exception.
        &quot;stove&quot;: True or False, # Stove. A kitchen appliance powered by gas or electricity for the purpose of creating a flame or hot surface on which pots of food can be cooked. Also known as cooktop or hob.
        &quot;stoveException&quot;: &quot;A String&quot;, # Stove exception.
        &quot;teaStation&quot;: True or False, # Tea station. A small area with the supplies needed to heat water and make tea.
        &quot;teaStationException&quot;: &quot;A String&quot;, # Tea station exception.
        &quot;toaster&quot;: True or False, # Toaster. A small, temperature controlled electric appliance with rectangular slots at the top that are lined with heated coils for the purpose of browning slices of bread products.
        &quot;toasterException&quot;: &quot;A String&quot;, # Toaster exception.
      },
      &quot;features&quot;: { # Features in the living area. # Features in the living area.
        &quot;airConditioning&quot;: True or False, # Air conditioning. An electrical machine used to cool the temperature of the guestroom.
        &quot;airConditioningException&quot;: &quot;A String&quot;, # Air conditioning exception.
        &quot;bathtub&quot;: True or False, # Bathtub. A fixed plumbing feature set on the floor and consisting of a large container that accommodates the body of an adult for the purpose of seated bathing. Includes knobs or fixtures to control the temperature of the water, a faucet through which the water flows, and a drain that can be closed for filling and opened for draining.
        &quot;bathtubException&quot;: &quot;A String&quot;, # Bathtub exception.
        &quot;bidet&quot;: True or False, # Bidet. A plumbing fixture attached to a toilet or a low, fixed sink designed for the purpose of washing after toilet use.
        &quot;bidetException&quot;: &quot;A String&quot;, # Bidet exception.
        &quot;dryer&quot;: True or False, # Dryer. An electrical machine designed to dry clothing.
        &quot;dryerException&quot;: &quot;A String&quot;, # Dryer exception.
        &quot;electronicRoomKey&quot;: True or False, # Electronic room key. A card coded by the check-in computer that is read by the lock on the hotel guestroom door to allow for entry.
        &quot;electronicRoomKeyException&quot;: &quot;A String&quot;, # Electronic room key exception.
        &quot;fireplace&quot;: True or False, # Fireplace. A framed opening (aka hearth) at the base of a chimney in which logs or an electrical fire feature are burned to provide a relaxing ambiance or to heat the room. Often made of bricks or stone.
        &quot;fireplaceException&quot;: &quot;A String&quot;, # Fireplace exception.
        &quot;hairdryer&quot;: True or False, # Hairdryer. A handheld electric appliance that blows temperature-controlled air for the purpose of drying wet hair. Can be mounted to a bathroom wall or a freestanding device stored in the guestroom&#x27;s bathroom or closet.
        &quot;hairdryerException&quot;: &quot;A String&quot;, # Hairdryer exception.
        &quot;heating&quot;: True or False, # Heating. An electrical machine used to warm the temperature of the guestroom.
        &quot;heatingException&quot;: &quot;A String&quot;, # Heating exception.
        &quot;inunitSafe&quot;: True or False, # In-unit safe. A strong fireproof cabinet with a programmable lock, used for the protected storage of valuables in a guestroom. Often built into a closet.
        &quot;inunitSafeException&quot;: &quot;A String&quot;, # In-unit safe exception.
        &quot;inunitWifiAvailable&quot;: True or False, # In-unit Wifi available. Guests can wirelessly connect to the Internet in the guestroom. Can be free or for a fee.
        &quot;inunitWifiAvailableException&quot;: &quot;A String&quot;, # In-unit Wifi available exception.
        &quot;ironingEquipment&quot;: True or False, # Ironing equipment. A device, usually with a flat metal base, that is heated to smooth, finish, or press clothes and a flat, padded, cloth-covered surface on which the clothes are worked.
        &quot;ironingEquipmentException&quot;: &quot;A String&quot;, # Ironing equipment exception.
        &quot;payPerViewMovies&quot;: True or False, # Pay per view movies. Televisions with channels that offer films that can be viewed for a fee, and have an interface to allow the viewer to accept the terms and approve payment.
        &quot;payPerViewMoviesException&quot;: &quot;A String&quot;, # Pay per view movies exception.
        &quot;privateBathroom&quot;: True or False, # Private bathroom. A bathroom designated for the express use of the guests staying in a specific guestroom.
        &quot;privateBathroomException&quot;: &quot;A String&quot;, # Private bathroom exception.
        &quot;shower&quot;: True or False, # Shower. A fixed plumbing fixture for standing bathing that features a tall spray spout or faucet through which water flows, a knob or knobs that control the water&#x27;s temperature, and a drain in the floor.
        &quot;showerException&quot;: &quot;A String&quot;, # Shower exception.
        &quot;toilet&quot;: True or False, # Toilet. A fixed bathroom feature connected to a sewer or septic system and consisting of a water-flushed bowl with a seat, as well as a device that elicites the water-flushing action. Used for the process and disposal of human waste.
        &quot;toiletException&quot;: &quot;A String&quot;, # Toilet exception.
        &quot;tv&quot;: True or False, # TV. A television is available in the guestroom.
        &quot;tvCasting&quot;: True or False, # TV casting. A television equipped with a device through which the video entertainment accessed on a personal computer, phone or tablet can be wirelessly delivered to and viewed on the guestroom&#x27;s television.
        &quot;tvCastingException&quot;: &quot;A String&quot;, # TV exception.
        &quot;tvException&quot;: &quot;A String&quot;, # TV exception.
        &quot;tvStreaming&quot;: True or False, # TV streaming. Televisions that embed a range of web-based apps to allow for watching media from those apps.
        &quot;tvStreamingException&quot;: &quot;A String&quot;, # TV streaming exception.
        &quot;universalPowerAdapters&quot;: True or False, # Universal power adapters. A power supply for electronic devices which plugs into a wall for the purpose of converting AC to a single DC voltage. Also know as AC adapter or charger.
        &quot;universalPowerAdaptersException&quot;: &quot;A String&quot;, # Universal power adapters exception.
        &quot;washer&quot;: True or False, # Washer. An electrical machine connected to a running water source designed to launder clothing.
        &quot;washerException&quot;: &quot;A String&quot;, # Washer exception.
      },
      &quot;layout&quot;: { # Information about the layout of the living area. # Information about the layout of the living area.
        &quot;balcony&quot;: True or False, # Balcony. An outdoor platform attached to a building and surrounded by a short wall, fence or other safety railing. The balcony is accessed through a door in a guestroom or suite and is for use by the guest staying in that room. May or may not include seating or outdoor furniture. Is not located on the ground floor. Also lanai.
        &quot;balconyException&quot;: &quot;A String&quot;, # Balcony exception.
        &quot;livingAreaSqMeters&quot;: 3.14, # Living area sq meters. The measurement in meters of the area of a guestroom&#x27;s living space.
        &quot;livingAreaSqMetersException&quot;: &quot;A String&quot;, # Living area sq meters exception.
        &quot;loft&quot;: True or False, # Loft. A three-walled upper area accessed by stairs or a ladder that overlooks the lower area of a room.
        &quot;loftException&quot;: &quot;A String&quot;, # Loft exception.
        &quot;nonSmoking&quot;: True or False, # Non smoking. A guestroom in which the smoking of cigarettes, cigars and pipes is prohibited.
        &quot;nonSmokingException&quot;: &quot;A String&quot;, # Non smoking exception.
        &quot;patio&quot;: True or False, # Patio. A paved, outdoor area with seating attached to and accessed through a ground-floor guestroom for use by the occupants of the guestroom.
        &quot;patioException&quot;: &quot;A String&quot;, # Patio exception.
        &quot;stairs&quot;: True or False, # Stairs. There are steps leading from one level or story to another in the unit.
        &quot;stairsException&quot;: &quot;A String&quot;, # Stairs exception.
      },
      &quot;sleeping&quot;: { # Information about sleeping features in the living area. # Information about sleeping features in the living area.
        &quot;bedsCount&quot;: 42, # Beds count. The number of permanent beds present in a guestroom. Does not include rollaway beds, cribs or sofabeds.
        &quot;bedsCountException&quot;: &quot;A String&quot;, # Beds count exception.
        &quot;bunkBedsCount&quot;: 42, # Bunk beds count. The number of furniture pieces in which one framed mattress is fixed directly above another by means of a physical frame. This allows one person(s) to sleep in the bottom bunk and one person(s) to sleep in the top bunk. Also known as double decker bed.
        &quot;bunkBedsCountException&quot;: &quot;A String&quot;, # Bunk beds count exception.
        &quot;cribsCount&quot;: 42, # Cribs count. The number of small beds for an infant or toddler that the guestroom can obtain. The bed is surrounded by a high railing to prevent the child from falling or climbing out of the bed
        &quot;cribsCountException&quot;: &quot;A String&quot;, # Cribs count exception.
        &quot;doubleBedsCount&quot;: 42, # Double beds count. The number of medium beds measuring 53&quot;W x 75&quot;L (135cm x 191cm). Also known as full size bed.
        &quot;doubleBedsCountException&quot;: &quot;A String&quot;, # Double beds count exception.
        &quot;featherPillows&quot;: True or False, # Feather pillows. The option for guests to obtain bed pillows that are stuffed with the feathers and down of ducks or geese.
        &quot;featherPillowsException&quot;: &quot;A String&quot;, # Feather pillows exception.
        &quot;hypoallergenicBedding&quot;: True or False, # Hypoallergenic bedding. Bedding such as linens, pillows, mattress covers and/or mattresses that are made of materials known to be resistant to allergens such as mold, dust and dander.
        &quot;hypoallergenicBeddingException&quot;: &quot;A String&quot;, # Hypoallergenic bedding exception.
        &quot;kingBedsCount&quot;: 42, # King beds count. The number of large beds measuring 76&quot;W x 80&quot;L (193cm x 102cm). Most often meant to accompany two people. Includes California king and super king.
        &quot;kingBedsCountException&quot;: &quot;A String&quot;, # King beds count exception.
        &quot;memoryFoamPillows&quot;: True or False, # Memory foam pillows. The option for guests to obtain bed pillows that are stuffed with a man-made foam that responds to body heat by conforming to the body closely, and then recovers its shape when the pillow cools down.
        &quot;memoryFoamPillowsException&quot;: &quot;A String&quot;, # Memory foam pillows exception.
        &quot;otherBedsCount&quot;: 42, # Other beds count. The number of beds that are not standard mattress and boxspring setups such as Japanese tatami mats, trundle beds, air mattresses and cots.
        &quot;otherBedsCountException&quot;: &quot;A String&quot;, # Other beds count exception.
        &quot;queenBedsCount&quot;: 42, # Queen beds count. The number of medium-large beds measuring 60&quot;W x 80&quot;L (152cm x 102cm).
        &quot;queenBedsCountException&quot;: &quot;A String&quot;, # Queen beds count exception.
        &quot;rollAwayBedsCount&quot;: 42, # Roll away beds count. The number of mattresses on wheeled frames that can be folded in half and rolled away for easy storage that the guestroom can obtain upon request.
        &quot;rollAwayBedsCountException&quot;: &quot;A String&quot;, # Roll away beds count exception.
        &quot;singleOrTwinBedsCount&quot;: 42, # Single or twin count beds. The number of smaller beds measuring 38&quot;W x 75&quot;L (97cm x 191cm) that can accommodate one adult.
        &quot;singleOrTwinBedsCountException&quot;: &quot;A String&quot;, # Single or twin beds count exception.
        &quot;sofaBedsCount&quot;: 42, # Sofa beds count. The number of specially designed sofas that can be made to serve as a bed by lowering its hinged upholstered back to horizontal position or by pulling out a concealed mattress.
        &quot;sofaBedsCountException&quot;: &quot;A String&quot;, # Sofa beds count exception.
        &quot;syntheticPillows&quot;: True or False, # Synthetic pillows. The option for guests to obtain bed pillows stuffed with polyester material crafted to reproduce the feel of a pillow stuffed with down and feathers.
        &quot;syntheticPillowsException&quot;: &quot;A String&quot;, # Synthetic pillows exception.
      },
    },
    &quot;connectivity&quot;: { # The ways in which the property provides guests with the ability to access the internet. # The ways in which the property provides guests with the ability to access the internet.
      &quot;freeWifi&quot;: True or False, # Free wifi. The hotel offers guests wifi for free.
      &quot;freeWifiException&quot;: &quot;A String&quot;, # Free wifi exception.
      &quot;publicAreaWifiAvailable&quot;: True or False, # Public area wifi available. Guests have the ability to wirelessly connect to the internet in the areas of the hotel accessible to anyone. Can be free or for a fee.
      &quot;publicAreaWifiAvailableException&quot;: &quot;A String&quot;, # Public area wifi available exception.
      &quot;publicInternetTerminal&quot;: True or False, # Public internet terminal. An area of the hotel supplied with computers and designated for the purpose of providing guests with the ability to access the internet.
      &quot;publicInternetTerminalException&quot;: &quot;A String&quot;, # Public internet terminal exception.
      &quot;wifiAvailable&quot;: True or False, # Wifi available. The hotel provides the ability for guests to wirelessly connect to the internet. Can be in the public areas of the hotel and/or in the guest rooms. Can be free or for a fee.
      &quot;wifiAvailableException&quot;: &quot;A String&quot;, # Wifi available exception.
    },
    &quot;families&quot;: { # Services and amenities for families and young guests. # Services and amenities for families and young guests.
      &quot;babysitting&quot;: True or False, # Babysitting. Child care that is offered by hotel staffers or coordinated by hotel staffers with local child care professionals. Can be free or for a fee.
      &quot;babysittingException&quot;: &quot;A String&quot;, # Babysitting exception.
      &quot;kidsActivities&quot;: True or False, # Kids activities. Recreational options such as sports, films, crafts and games designed for the enjoyment of children and offered at the hotel. May or may not be supervised. May or may not be at a designated time or place. Cab be free or for a fee.
      &quot;kidsActivitiesException&quot;: &quot;A String&quot;, # Kids activities exception.
      &quot;kidsClub&quot;: True or False, # Kids club. An organized program of group activities held at the hotel and designed for the enjoyment of children. Facilitated by hotel staff (or staff procured by the hotel) in an area(s) designated for the purpose of entertaining children without their parents. May include games, outings, water sports, team sports, arts and crafts, and films. Usually has set hours. Can be free or for a fee. Also known as Kids Camp or Kids program.
      &quot;kidsClubException&quot;: &quot;A String&quot;, # Kids club exception.
    },
    &quot;foodAndDrink&quot;: { # Meals, snacks, and beverages available at the property. # Meals, snacks, and beverages available at the property.
      &quot;bar&quot;: True or False, # Bar. A designated room, lounge or area of an on-site restaurant with seating at a counter behind which a hotel staffer takes the guest&#x27;s order and provides the requested alcoholic drink. Can be indoors or outdoors. Also known as Pub.
      &quot;barException&quot;: &quot;A String&quot;, # Bar exception.
      &quot;breakfastAvailable&quot;: True or False, # Breakfast available. The morning meal is offered to all guests. Can be free or for a fee.
      &quot;breakfastAvailableException&quot;: &quot;A String&quot;, # Breakfast available exception.
      &quot;breakfastBuffet&quot;: True or False, # Breakfast buffet. Breakfast meal service where guests serve themselves from a variety of dishes/foods that are put out on a table.
      &quot;breakfastBuffetException&quot;: &quot;A String&quot;, # Breakfast buffet exception.
      &quot;buffet&quot;: True or False, # Buffet. A type of meal where guests serve themselves from a variety of dishes/foods that are put out on a table. Includes lunch and/or dinner meals. A breakfast-only buffet is not sufficient.
      &quot;buffetException&quot;: &quot;A String&quot;, # Buffet exception.
      &quot;dinnerBuffet&quot;: True or False, # Dinner buffet. Dinner meal service where guests serve themselves from a variety of dishes/foods that are put out on a table.
      &quot;dinnerBuffetException&quot;: &quot;A String&quot;, # Dinner buffet exception.
      &quot;freeBreakfast&quot;: True or False, # Free breakfast. Breakfast is offered for free to all guests. Does not apply if limited to certain room packages.
      &quot;freeBreakfastException&quot;: &quot;A String&quot;, # Free breakfast exception.
      &quot;restaurant&quot;: True or False, # Restaurant. A business onsite at the hotel that is open to the public as well as guests, and offers meals and beverages to consume at tables or counters. May or may not include table service. Also known as cafe, buffet, eatery. A &quot;breakfast room&quot; where the hotel serves breakfast only to guests (not the general public) does not count as a restaurant.
      &quot;restaurantException&quot;: &quot;A String&quot;, # Restaurant exception.
      &quot;restaurantsCount&quot;: 42, # Restaurants count. The number of restaurants at the hotel.
      &quot;restaurantsCountException&quot;: &quot;A String&quot;, # Restaurants count exception.
      &quot;roomService&quot;: True or False, # Room service. A hotel staffer delivers meals prepared onsite to a guest&#x27;s room as per their request. May or may not be available during specific hours. Services should be available to all guests (not based on rate/room booked/reward program, etc).
      &quot;roomServiceException&quot;: &quot;A String&quot;, # Room service exception.
      &quot;tableService&quot;: True or False, # Table service. A restaurant in which a staff member is assigned to a guest&#x27;s table to take their order, deliver and clear away food, and deliver the bill, if applicable. Also known as sit-down restaurant.
      &quot;tableServiceException&quot;: &quot;A String&quot;, # Table service exception.
      &quot;twentyFourHourRoomService&quot;: True or False, # 24hr room service. Room service is available 24 hours a day.
      &quot;twentyFourHourRoomServiceException&quot;: &quot;A String&quot;, # 24hr room service exception.
      &quot;vendingMachine&quot;: True or False, # Vending machine. A glass-fronted mechanized cabinet displaying and dispensing snacks and beverages for purchase by coins, paper money and/or credit cards.
      &quot;vendingMachineException&quot;: &quot;A String&quot;, # Vending machine exception.
    },
    &quot;guestUnits&quot;: [ # Individual GuestUnitTypes that are available in this Lodging.
      { # A specific type of unit primarily defined by its features.
        &quot;codes&quot;: [ # Required. Unit or room code identifiers for a single GuestUnitType. Each code must be unique within a Lodging instance.
          &quot;A String&quot;,
        ],
        &quot;features&quot;: { # Features and available amenities in the guest unit. # Features and available amenities of the GuestUnitType.
          &quot;bungalowOrVilla&quot;: True or False, # Bungalow or villa. An independent structure that is part of a hotel or resort that is rented to one party for a vacation stay. The hotel or resort may be completely comprised of bungalows or villas, or they may be one of several guestroom options. Guests in the bungalows or villas most often have the same, if not more, amenities and services offered to guests in other guestroom types.
          &quot;bungalowOrVillaException&quot;: &quot;A String&quot;, # Bungalow or villa exception.
          &quot;connectingUnitAvailable&quot;: True or False, # Connecting unit available. A guestroom type that features access to an adjacent guestroom for the purpose of booking both rooms. Most often used by families who need more than one room to accommodate the number of people in their group.
          &quot;connectingUnitAvailableException&quot;: &quot;A String&quot;, # Connecting unit available exception.
          &quot;executiveFloor&quot;: True or False, # Executive floor. A floor of the hotel where the guestrooms are only bookable by members of the hotel&#x27;s frequent guest membership program. Benefits of this room class include access to a designated lounge which may or may not feature free breakfast, cocktails or other perks specific to members of the program.
          &quot;executiveFloorException&quot;: &quot;A String&quot;, # Executive floor exception.
          &quot;maxAdultOccupantsCount&quot;: 42, # Max adult occupants count. The total number of adult guests allowed to stay overnight in the guestroom.
          &quot;maxAdultOccupantsCountException&quot;: &quot;A String&quot;, # Max adult occupants count exception.
          &quot;maxChildOccupantsCount&quot;: 42, # Max child occupants count. The total number of children allowed to stay overnight in the room.
          &quot;maxChildOccupantsCountException&quot;: &quot;A String&quot;, # Max child occupants count exception.
          &quot;maxOccupantsCount&quot;: 42, # Max occupants count. The total number of guests allowed to stay overnight in the guestroom.
          &quot;maxOccupantsCountException&quot;: &quot;A String&quot;, # Max occupants count exception.
          &quot;privateHome&quot;: True or False, # Private home. A privately owned home (house, townhouse, apartment, cabin, bungalow etc) that may or not serve as the owner&#x27;s residence, but is rented out in its entirety or by the room(s) to paying guest(s) for vacation stays. Not for lease-based, long-term residency.
          &quot;privateHomeException&quot;: &quot;A String&quot;, # Private home exception.
          &quot;suite&quot;: True or False, # Suite. A guestroom category that implies both a bedroom area and a separate living area. There may or may not be full walls and doors separating the two areas, but regardless, they are very distinct. Does not mean a couch or chair in a bedroom.
          &quot;suiteException&quot;: &quot;A String&quot;, # Suite exception.
          &quot;tier&quot;: &quot;A String&quot;, # Tier. Classification of the unit based on available features/amenities. A non-standard tier is only permitted if at least one other unit type falls under the standard tier.
          &quot;tierException&quot;: &quot;A String&quot;, # Tier exception.
          &quot;totalLivingAreas&quot;: { # An individual room, such as kitchen, bathroom, bedroom, within a bookable guest unit. # Features available in the living areas in the guest unit.
            &quot;accessibility&quot;: { # Accessibility features of the living area. # Accessibility features of the living area.
              &quot;adaCompliantUnit&quot;: True or False, # ADA compliant unit. A guestroom designed to accommodate the physical challenges of a guest with mobility and/or auditory and/or visual issues, as determined by legislative policy. Usually features enlarged doorways, roll-in showers with seats, bathroom grab bars, and communication equipment for the hearing and sight challenged.
              &quot;adaCompliantUnitException&quot;: &quot;A String&quot;, # ADA compliant unit exception.
              &quot;hearingAccessibleDoorbell&quot;: True or False, # Hearing-accessible doorbell. A visual indicator(s) of a knock or ring at the door.
              &quot;hearingAccessibleDoorbellException&quot;: &quot;A String&quot;, # Hearing-accessible doorbell exception.
              &quot;hearingAccessibleFireAlarm&quot;: True or False, # Hearing-accessible fire alarm. A device that gives warning of a fire through flashing lights.
              &quot;hearingAccessibleFireAlarmException&quot;: &quot;A String&quot;, # Hearing-accessible fire alarm exception.
              &quot;hearingAccessibleUnit&quot;: True or False, # Hearing-accessible unit. A guestroom designed to accommodate the physical challenges of a guest with auditory issues.
              &quot;hearingAccessibleUnitException&quot;: &quot;A String&quot;, # Hearing-accessible unit exception.
              &quot;mobilityAccessibleBathtub&quot;: True or False, # Mobility-accessible bathtub. A bathtub that accomodates the physically challenged with additional railings or hand grips, a transfer seat or lift, and/or a door to enable walking into the tub.
              &quot;mobilityAccessibleBathtubException&quot;: &quot;A String&quot;, # Mobility-accessible bathtub exception.
              &quot;mobilityAccessibleShower&quot;: True or False, # Mobility-accessible shower. A shower with an enlarged door or access point to accommodate a wheelchair or a waterproof seat for the physically challenged.
              &quot;mobilityAccessibleShowerException&quot;: &quot;A String&quot;, # Mobility-accessible shower exception.
              &quot;mobilityAccessibleToilet&quot;: True or False, # Mobility-accessible toilet. A toilet with a higher seat, grab bars, and/or a larger area around it to accommodate the physically challenged.
              &quot;mobilityAccessibleToiletException&quot;: &quot;A String&quot;, # Mobility-accessible toilet exception.
              &quot;mobilityAccessibleUnit&quot;: True or False, # Mobility-accessible unit. A guestroom designed to accommodate the physical challenges of a guest with mobility and/or auditory and/or visual issues. Usually features enlarged doorways, roll-in showers with seats, bathroom grab bars, and communication equipment for the hearing and sight challenged.
              &quot;mobilityAccessibleUnitException&quot;: &quot;A String&quot;, # Mobility-accessible unit exception.
            },
            &quot;eating&quot;: { # Information about eating features in the living area. # Information about eating features in the living area.
              &quot;coffeeMaker&quot;: True or False, # Coffee maker. An electric appliance that brews coffee by heating and forcing water through ground coffee.
              &quot;coffeeMakerException&quot;: &quot;A String&quot;, # Coffee maker exception.
              &quot;cookware&quot;: True or False, # Cookware. Kitchen pots, pans and utensils used in connection with the preparation of food.
              &quot;cookwareException&quot;: &quot;A String&quot;, # Cookware exception.
              &quot;dishwasher&quot;: True or False, # Dishwasher. A counter-height electrical cabinet containing racks for dirty dishware, cookware and cutlery, and a dispenser for soap built into the pull-down door. The cabinet is attached to the plumbing system to facilitate the automatic cleaning of its contents.
              &quot;dishwasherException&quot;: &quot;A String&quot;, # Dishwasher exception.
              &quot;indoorGrill&quot;: True or False, # Indoor grill. Metal grates built into an indoor cooktop on which food is cooked over an open flame or electric heat source.
              &quot;indoorGrillException&quot;: &quot;A String&quot;, # Indoor grill exception.
              &quot;kettle&quot;: True or False, # Kettle. A covered container with a handle and a spout used for boiling water.
              &quot;kettleException&quot;: &quot;A String&quot;, # Kettle exception.
              &quot;kitchenAvailable&quot;: True or False, # Kitchen available. An area of the guestroom designated for the preparation and storage of food via the presence of a refrigerator, cook top, oven and sink, as well as cutlery, dishes and cookware. Usually includes small appliances such a coffee maker and a microwave. May or may not include an automatic dishwasher.
              &quot;kitchenAvailableException&quot;: &quot;A String&quot;, # Kitchen available exception.
              &quot;microwave&quot;: True or False, # Microwave. An electric oven that quickly cooks and heats food by microwave energy. Smaller than a standing or wall mounted oven. Usually placed on a kitchen counter, a shelf or tabletop or mounted above a cooktop.
              &quot;microwaveException&quot;: &quot;A String&quot;, # Microwave exception.
              &quot;minibar&quot;: True or False, # Minibar. A small refrigerated cabinet in the guestroom containing bottles/cans of soft drinks, mini bottles of alcohol, and snacks. The items are most commonly available for a fee.
              &quot;minibarException&quot;: &quot;A String&quot;, # Minibar exception.
              &quot;outdoorGrill&quot;: True or False, # Outdoor grill. Metal grates on which food is cooked over an open flame or electric heat source. Part of an outdoor apparatus that supports the grates. Also known as barbecue grill or barbecue.
              &quot;outdoorGrillException&quot;: &quot;A String&quot;, # Outdoor grill exception.
              &quot;oven&quot;: True or False, # Oven. A temperature controlled, heated metal cabinet powered by gas or electricity in which food is placed for the purpose of cooking or reheating.
              &quot;ovenException&quot;: &quot;A String&quot;, # Oven exception.
              &quot;refrigerator&quot;: True or False, # Refrigerator. A large, climate-controlled electrical cabinet with vertical doors. Built for the purpose of chilling and storing perishable foods.
              &quot;refrigeratorException&quot;: &quot;A String&quot;, # Refrigerator exception.
              &quot;sink&quot;: True or False, # Sink. A basin with a faucet attached to a water source and used for the purpose of washing and rinsing.
              &quot;sinkException&quot;: &quot;A String&quot;, # Sink exception.
              &quot;snackbar&quot;: True or False, # Snackbar. A small cabinet in the guestroom containing snacks. The items are most commonly available for a fee.
              &quot;snackbarException&quot;: &quot;A String&quot;, # Snackbar exception.
              &quot;stove&quot;: True or False, # Stove. A kitchen appliance powered by gas or electricity for the purpose of creating a flame or hot surface on which pots of food can be cooked. Also known as cooktop or hob.
              &quot;stoveException&quot;: &quot;A String&quot;, # Stove exception.
              &quot;teaStation&quot;: True or False, # Tea station. A small area with the supplies needed to heat water and make tea.
              &quot;teaStationException&quot;: &quot;A String&quot;, # Tea station exception.
              &quot;toaster&quot;: True or False, # Toaster. A small, temperature controlled electric appliance with rectangular slots at the top that are lined with heated coils for the purpose of browning slices of bread products.
              &quot;toasterException&quot;: &quot;A String&quot;, # Toaster exception.
            },
            &quot;features&quot;: { # Features in the living area. # Features in the living area.
              &quot;airConditioning&quot;: True or False, # Air conditioning. An electrical machine used to cool the temperature of the guestroom.
              &quot;airConditioningException&quot;: &quot;A String&quot;, # Air conditioning exception.
              &quot;bathtub&quot;: True or False, # Bathtub. A fixed plumbing feature set on the floor and consisting of a large container that accommodates the body of an adult for the purpose of seated bathing. Includes knobs or fixtures to control the temperature of the water, a faucet through which the water flows, and a drain that can be closed for filling and opened for draining.
              &quot;bathtubException&quot;: &quot;A String&quot;, # Bathtub exception.
              &quot;bidet&quot;: True or False, # Bidet. A plumbing fixture attached to a toilet or a low, fixed sink designed for the purpose of washing after toilet use.
              &quot;bidetException&quot;: &quot;A String&quot;, # Bidet exception.
              &quot;dryer&quot;: True or False, # Dryer. An electrical machine designed to dry clothing.
              &quot;dryerException&quot;: &quot;A String&quot;, # Dryer exception.
              &quot;electronicRoomKey&quot;: True or False, # Electronic room key. A card coded by the check-in computer that is read by the lock on the hotel guestroom door to allow for entry.
              &quot;electronicRoomKeyException&quot;: &quot;A String&quot;, # Electronic room key exception.
              &quot;fireplace&quot;: True or False, # Fireplace. A framed opening (aka hearth) at the base of a chimney in which logs or an electrical fire feature are burned to provide a relaxing ambiance or to heat the room. Often made of bricks or stone.
              &quot;fireplaceException&quot;: &quot;A String&quot;, # Fireplace exception.
              &quot;hairdryer&quot;: True or False, # Hairdryer. A handheld electric appliance that blows temperature-controlled air for the purpose of drying wet hair. Can be mounted to a bathroom wall or a freestanding device stored in the guestroom&#x27;s bathroom or closet.
              &quot;hairdryerException&quot;: &quot;A String&quot;, # Hairdryer exception.
              &quot;heating&quot;: True or False, # Heating. An electrical machine used to warm the temperature of the guestroom.
              &quot;heatingException&quot;: &quot;A String&quot;, # Heating exception.
              &quot;inunitSafe&quot;: True or False, # In-unit safe. A strong fireproof cabinet with a programmable lock, used for the protected storage of valuables in a guestroom. Often built into a closet.
              &quot;inunitSafeException&quot;: &quot;A String&quot;, # In-unit safe exception.
              &quot;inunitWifiAvailable&quot;: True or False, # In-unit Wifi available. Guests can wirelessly connect to the Internet in the guestroom. Can be free or for a fee.
              &quot;inunitWifiAvailableException&quot;: &quot;A String&quot;, # In-unit Wifi available exception.
              &quot;ironingEquipment&quot;: True or False, # Ironing equipment. A device, usually with a flat metal base, that is heated to smooth, finish, or press clothes and a flat, padded, cloth-covered surface on which the clothes are worked.
              &quot;ironingEquipmentException&quot;: &quot;A String&quot;, # Ironing equipment exception.
              &quot;payPerViewMovies&quot;: True or False, # Pay per view movies. Televisions with channels that offer films that can be viewed for a fee, and have an interface to allow the viewer to accept the terms and approve payment.
              &quot;payPerViewMoviesException&quot;: &quot;A String&quot;, # Pay per view movies exception.
              &quot;privateBathroom&quot;: True or False, # Private bathroom. A bathroom designated for the express use of the guests staying in a specific guestroom.
              &quot;privateBathroomException&quot;: &quot;A String&quot;, # Private bathroom exception.
              &quot;shower&quot;: True or False, # Shower. A fixed plumbing fixture for standing bathing that features a tall spray spout or faucet through which water flows, a knob or knobs that control the water&#x27;s temperature, and a drain in the floor.
              &quot;showerException&quot;: &quot;A String&quot;, # Shower exception.
              &quot;toilet&quot;: True or False, # Toilet. A fixed bathroom feature connected to a sewer or septic system and consisting of a water-flushed bowl with a seat, as well as a device that elicites the water-flushing action. Used for the process and disposal of human waste.
              &quot;toiletException&quot;: &quot;A String&quot;, # Toilet exception.
              &quot;tv&quot;: True or False, # TV. A television is available in the guestroom.
              &quot;tvCasting&quot;: True or False, # TV casting. A television equipped with a device through which the video entertainment accessed on a personal computer, phone or tablet can be wirelessly delivered to and viewed on the guestroom&#x27;s television.
              &quot;tvCastingException&quot;: &quot;A String&quot;, # TV exception.
              &quot;tvException&quot;: &quot;A String&quot;, # TV exception.
              &quot;tvStreaming&quot;: True or False, # TV streaming. Televisions that embed a range of web-based apps to allow for watching media from those apps.
              &quot;tvStreamingException&quot;: &quot;A String&quot;, # TV streaming exception.
              &quot;universalPowerAdapters&quot;: True or False, # Universal power adapters. A power supply for electronic devices which plugs into a wall for the purpose of converting AC to a single DC voltage. Also know as AC adapter or charger.
              &quot;universalPowerAdaptersException&quot;: &quot;A String&quot;, # Universal power adapters exception.
              &quot;washer&quot;: True or False, # Washer. An electrical machine connected to a running water source designed to launder clothing.
              &quot;washerException&quot;: &quot;A String&quot;, # Washer exception.
            },
            &quot;layout&quot;: { # Information about the layout of the living area. # Information about the layout of the living area.
              &quot;balcony&quot;: True or False, # Balcony. An outdoor platform attached to a building and surrounded by a short wall, fence or other safety railing. The balcony is accessed through a door in a guestroom or suite and is for use by the guest staying in that room. May or may not include seating or outdoor furniture. Is not located on the ground floor. Also lanai.
              &quot;balconyException&quot;: &quot;A String&quot;, # Balcony exception.
              &quot;livingAreaSqMeters&quot;: 3.14, # Living area sq meters. The measurement in meters of the area of a guestroom&#x27;s living space.
              &quot;livingAreaSqMetersException&quot;: &quot;A String&quot;, # Living area sq meters exception.
              &quot;loft&quot;: True or False, # Loft. A three-walled upper area accessed by stairs or a ladder that overlooks the lower area of a room.
              &quot;loftException&quot;: &quot;A String&quot;, # Loft exception.
              &quot;nonSmoking&quot;: True or False, # Non smoking. A guestroom in which the smoking of cigarettes, cigars and pipes is prohibited.
              &quot;nonSmokingException&quot;: &quot;A String&quot;, # Non smoking exception.
              &quot;patio&quot;: True or False, # Patio. A paved, outdoor area with seating attached to and accessed through a ground-floor guestroom for use by the occupants of the guestroom.
              &quot;patioException&quot;: &quot;A String&quot;, # Patio exception.
              &quot;stairs&quot;: True or False, # Stairs. There are steps leading from one level or story to another in the unit.
              &quot;stairsException&quot;: &quot;A String&quot;, # Stairs exception.
            },
            &quot;sleeping&quot;: { # Information about sleeping features in the living area. # Information about sleeping features in the living area.
              &quot;bedsCount&quot;: 42, # Beds count. The number of permanent beds present in a guestroom. Does not include rollaway beds, cribs or sofabeds.
              &quot;bedsCountException&quot;: &quot;A String&quot;, # Beds count exception.
              &quot;bunkBedsCount&quot;: 42, # Bunk beds count. The number of furniture pieces in which one framed mattress is fixed directly above another by means of a physical frame. This allows one person(s) to sleep in the bottom bunk and one person(s) to sleep in the top bunk. Also known as double decker bed.
              &quot;bunkBedsCountException&quot;: &quot;A String&quot;, # Bunk beds count exception.
              &quot;cribsCount&quot;: 42, # Cribs count. The number of small beds for an infant or toddler that the guestroom can obtain. The bed is surrounded by a high railing to prevent the child from falling or climbing out of the bed
              &quot;cribsCountException&quot;: &quot;A String&quot;, # Cribs count exception.
              &quot;doubleBedsCount&quot;: 42, # Double beds count. The number of medium beds measuring 53&quot;W x 75&quot;L (135cm x 191cm). Also known as full size bed.
              &quot;doubleBedsCountException&quot;: &quot;A String&quot;, # Double beds count exception.
              &quot;featherPillows&quot;: True or False, # Feather pillows. The option for guests to obtain bed pillows that are stuffed with the feathers and down of ducks or geese.
              &quot;featherPillowsException&quot;: &quot;A String&quot;, # Feather pillows exception.
              &quot;hypoallergenicBedding&quot;: True or False, # Hypoallergenic bedding. Bedding such as linens, pillows, mattress covers and/or mattresses that are made of materials known to be resistant to allergens such as mold, dust and dander.
              &quot;hypoallergenicBeddingException&quot;: &quot;A String&quot;, # Hypoallergenic bedding exception.
              &quot;kingBedsCount&quot;: 42, # King beds count. The number of large beds measuring 76&quot;W x 80&quot;L (193cm x 102cm). Most often meant to accompany two people. Includes California king and super king.
              &quot;kingBedsCountException&quot;: &quot;A String&quot;, # King beds count exception.
              &quot;memoryFoamPillows&quot;: True or False, # Memory foam pillows. The option for guests to obtain bed pillows that are stuffed with a man-made foam that responds to body heat by conforming to the body closely, and then recovers its shape when the pillow cools down.
              &quot;memoryFoamPillowsException&quot;: &quot;A String&quot;, # Memory foam pillows exception.
              &quot;otherBedsCount&quot;: 42, # Other beds count. The number of beds that are not standard mattress and boxspring setups such as Japanese tatami mats, trundle beds, air mattresses and cots.
              &quot;otherBedsCountException&quot;: &quot;A String&quot;, # Other beds count exception.
              &quot;queenBedsCount&quot;: 42, # Queen beds count. The number of medium-large beds measuring 60&quot;W x 80&quot;L (152cm x 102cm).
              &quot;queenBedsCountException&quot;: &quot;A String&quot;, # Queen beds count exception.
              &quot;rollAwayBedsCount&quot;: 42, # Roll away beds count. The number of mattresses on wheeled frames that can be folded in half and rolled away for easy storage that the guestroom can obtain upon request.
              &quot;rollAwayBedsCountException&quot;: &quot;A String&quot;, # Roll away beds count exception.
              &quot;singleOrTwinBedsCount&quot;: 42, # Single or twin count beds. The number of smaller beds measuring 38&quot;W x 75&quot;L (97cm x 191cm) that can accommodate one adult.
              &quot;singleOrTwinBedsCountException&quot;: &quot;A String&quot;, # Single or twin beds count exception.
              &quot;sofaBedsCount&quot;: 42, # Sofa beds count. The number of specially designed sofas that can be made to serve as a bed by lowering its hinged upholstered back to horizontal position or by pulling out a concealed mattress.
              &quot;sofaBedsCountException&quot;: &quot;A String&quot;, # Sofa beds count exception.
              &quot;syntheticPillows&quot;: True or False, # Synthetic pillows. The option for guests to obtain bed pillows stuffed with polyester material crafted to reproduce the feel of a pillow stuffed with down and feathers.
              &quot;syntheticPillowsException&quot;: &quot;A String&quot;, # Synthetic pillows exception.
            },
          },
          &quot;views&quot;: { # Views available from the guest unit itself. # Views available from the guest unit itself.
            &quot;beachView&quot;: True or False, # Beach view. A guestroom that features a window through which guests can see the beach.
            &quot;beachViewException&quot;: &quot;A String&quot;, # Beach view exception.
            &quot;cityView&quot;: True or False, # City view. A guestroom that features a window through which guests can see the buildings, parks and/or streets of the city.
            &quot;cityViewException&quot;: &quot;A String&quot;, # City view exception.
            &quot;gardenView&quot;: True or False, # Garden view. A guestroom that features a window through which guests can see a garden.
            &quot;gardenViewException&quot;: &quot;A String&quot;, # Garden view exception.
            &quot;lakeView&quot;: True or False, # Lake view.
            &quot;lakeViewException&quot;: &quot;A String&quot;, # Lake view exception.
            &quot;landmarkView&quot;: True or False, # Landmark view. A guestroom that features a window through which guests can see a landmark such as the countryside, a golf course, the forest, a park, a rain forst, a mountain or a slope.
            &quot;landmarkViewException&quot;: &quot;A String&quot;, # Landmark view exception.
            &quot;oceanView&quot;: True or False, # Ocean view. A guestroom that features a window through which guests can see the ocean.
            &quot;oceanViewException&quot;: &quot;A String&quot;, # Ocean view exception.
            &quot;poolView&quot;: True or False, # Pool view. A guestroom that features a window through which guests can see the hotel&#x27;s swimming pool.
            &quot;poolViewException&quot;: &quot;A String&quot;, # Pool view exception.
            &quot;valleyView&quot;: True or False, # Valley view. A guestroom that features a window through which guests can see over a valley.
            &quot;valleyViewException&quot;: &quot;A String&quot;, # Valley view exception.
          },
        },
        &quot;label&quot;: &quot;A String&quot;, # Required. Short, English label or name of the GuestUnitType. Target &lt;50 chars.
      },
    ],
    &quot;healthAndSafety&quot;: { # Health and safety measures implemented by the hotel during COVID-19. # Health and safety measures implemented by the hotel during COVID-19.
      &quot;enhancedCleaning&quot;: { # Enhanced cleaning measures implemented by the hotel during COVID-19. # Enhanced cleaning measures implemented by the hotel during COVID-19.
        &quot;commercialGradeDisinfectantCleaning&quot;: True or False, # Commercial-grade disinfectant used to clean the property.
        &quot;commercialGradeDisinfectantCleaningException&quot;: &quot;A String&quot;, # Commercial grade disinfectant cleaning exception.
        &quot;commonAreasEnhancedCleaning&quot;: True or False, # Enhanced cleaning of common areas.
        &quot;commonAreasEnhancedCleaningException&quot;: &quot;A String&quot;, # Common areas enhanced cleaning exception.
        &quot;employeesTrainedCleaningProcedures&quot;: True or False, # Employees trained in COVID-19 cleaning procedures.
        &quot;employeesTrainedCleaningProceduresException&quot;: &quot;A String&quot;, # Employees trained cleaning procedures exception.
        &quot;employeesTrainedThoroughHandWashing&quot;: True or False, # Employees trained in thorough hand-washing.
        &quot;employeesTrainedThoroughHandWashingException&quot;: &quot;A String&quot;, # Employees trained thorough hand washing exception.
        &quot;employeesWearProtectiveEquipment&quot;: True or False, # Employees wear masks, face shields, and/or gloves.
        &quot;employeesWearProtectiveEquipmentException&quot;: &quot;A String&quot;, # Employees wear protective equipment exception.
        &quot;guestRoomsEnhancedCleaning&quot;: True or False, # Enhanced cleaning of guest rooms.
        &quot;guestRoomsEnhancedCleaningException&quot;: &quot;A String&quot;, # Guest rooms enhanced cleaning exception.
      },
      &quot;increasedFoodSafety&quot;: { # Increased food safety measures implemented by the hotel during COVID-19. # Increased food safety measures implemented by the hotel during COVID-19.
        &quot;diningAreasAdditionalSanitation&quot;: True or False, # Additional sanitation in dining areas.
        &quot;diningAreasAdditionalSanitationException&quot;: &quot;A String&quot;, # Dining areas additional sanitation exception.
        &quot;disposableFlatware&quot;: True or False, # Disposable flatware.
        &quot;disposableFlatwareException&quot;: &quot;A String&quot;, # Disposable flatware exception.
        &quot;foodPreparationAndServingAdditionalSafety&quot;: True or False, # Additional safety measures during food prep and serving.
        &quot;foodPreparationAndServingAdditionalSafetyException&quot;: &quot;A String&quot;, # Food preparation and serving additional safety exception.
        &quot;individualPackagedMeals&quot;: True or False, # Individually-packaged meals.
        &quot;individualPackagedMealsException&quot;: &quot;A String&quot;, # Individual packaged meals exception.
        &quot;singleUseFoodMenus&quot;: True or False, # Single-use menus.
        &quot;singleUseFoodMenusException&quot;: &quot;A String&quot;, # Single use food menus exception.
      },
      &quot;minimizedContact&quot;: { # Minimized contact measures implemented by the hotel during COVID-19. # Minimized contact measures implemented by the hotel during COVID-19.
        &quot;contactlessCheckinCheckout&quot;: True or False, # No-contact check-in and check-out.
        &quot;contactlessCheckinCheckoutException&quot;: &quot;A String&quot;, # Contactless check-in check-out exception.
        &quot;digitalGuestRoomKeys&quot;: True or False, # Keyless mobile entry to guest rooms.
        &quot;digitalGuestRoomKeysException&quot;: &quot;A String&quot;, # Digital guest room keys exception.
        &quot;housekeepingScheduledRequestOnly&quot;: True or False, # Housekeeping scheduled by request only.
        &quot;housekeepingScheduledRequestOnlyException&quot;: &quot;A String&quot;, # Housekeeping scheduled request only exception.
        &quot;noHighTouchItemsCommonAreas&quot;: True or False, # High-touch items, such as magazines, removed from common areas.
        &quot;noHighTouchItemsCommonAreasException&quot;: &quot;A String&quot;, # No high touch items common areas exception.
        &quot;noHighTouchItemsGuestRooms&quot;: True or False, # High-touch items, such as decorative pillows, removed from guest rooms.
        &quot;noHighTouchItemsGuestRoomsException&quot;: &quot;A String&quot;, # No high touch items guest rooms exception.
        &quot;plasticKeycardsDisinfected&quot;: True or False, # Plastic key cards are disinfected or discarded.
        &quot;plasticKeycardsDisinfectedException&quot;: &quot;A String&quot;, # Plastic keycards disinfected exception.
        &quot;roomBookingsBuffer&quot;: True or False, # Buffer maintained between room bookings.
        &quot;roomBookingsBufferException&quot;: &quot;A String&quot;, # Room bookings buffer exception.
      },
      &quot;personalProtection&quot;: { # Personal protection measures implemented by the hotel during COVID-19. # Personal protection measures implemented by the hotel during COVID-19.
        &quot;commonAreasOfferSanitizingItems&quot;: True or False, # Hand-sanitizer and/or sanitizing wipes are offered in common areas.
        &quot;commonAreasOfferSanitizingItemsException&quot;: &quot;A String&quot;, # Common areas offer sanitizing items exception.
        &quot;faceMaskRequired&quot;: True or False, # Masks required on the property.
        &quot;faceMaskRequiredException&quot;: &quot;A String&quot;, # Face mask required exception.
        &quot;guestRoomHygieneKitsAvailable&quot;: True or False, # In-room hygiene kits with masks, hand sanitizer, and/or antibacterial wipes.
        &quot;guestRoomHygieneKitsAvailableException&quot;: &quot;A String&quot;, # Guest room hygiene kits available exception.
        &quot;protectiveEquipmentAvailable&quot;: True or False, # Masks and/or gloves available for guests.
        &quot;protectiveEquipmentAvailableException&quot;: &quot;A String&quot;, # Protective equipment available exception.
      },
      &quot;physicalDistancing&quot;: { # Physical distancing measures implemented by the hotel during COVID-19. # Physical distancing measures implemented by the hotel during COVID-19.
        &quot;commonAreasPhysicalDistancingArranged&quot;: True or False, # Common areas arranged to maintain physical distancing.
        &quot;commonAreasPhysicalDistancingArrangedException&quot;: &quot;A String&quot;, # Common areas physical distancing arranged exception.
        &quot;physicalDistancingRequired&quot;: True or False, # Physical distancing required.
        &quot;physicalDistancingRequiredException&quot;: &quot;A String&quot;, # Physical distancing required exception.
        &quot;safetyDividers&quot;: True or False, # Safety dividers at front desk and other locations.
        &quot;safetyDividersException&quot;: &quot;A String&quot;, # Safety dividers exception.
        &quot;sharedAreasLimitedOccupancy&quot;: True or False, # Guest occupancy limited within shared facilities.
        &quot;sharedAreasLimitedOccupancyException&quot;: &quot;A String&quot;, # Shared areas limited occupancy exception.
        &quot;wellnessAreasHavePrivateSpaces&quot;: True or False, # Private spaces designated in spa and wellness areas.
        &quot;wellnessAreasHavePrivateSpacesException&quot;: &quot;A String&quot;, # Wellness areas have private spaces exception.
      },
    },
    &quot;housekeeping&quot;: { # Conveniences provided in guest units to facilitate an easier, more comfortable stay. # Conveniences provided in guest units to facilitate an easier, more comfortable stay.
      &quot;dailyHousekeeping&quot;: True or False, # Daily housekeeping. Guest units are cleaned by hotel staff daily during guest&#x27;s stay.
      &quot;dailyHousekeepingException&quot;: &quot;A String&quot;, # Daily housekeeping exception.
      &quot;housekeepingAvailable&quot;: True or False, # Housekeeping available. Guest units are cleaned by hotel staff during guest&#x27;s stay. Schedule may vary from daily, weekly, or specific days of the week.
      &quot;housekeepingAvailableException&quot;: &quot;A String&quot;, # Housekeeping available exception.
      &quot;turndownService&quot;: True or False, # Turndown service. Hotel staff enters guest units to prepare the bed for sleep use. May or may not include some light housekeeping. May or may not include an evening snack or candy. Also known as evening service.
      &quot;turndownServiceException&quot;: &quot;A String&quot;, # Turndown service exception.
    },
    &quot;metadata&quot;: { # Metadata for the Lodging. # Required. Metadata for the lodging.
      &quot;updateTime&quot;: &quot;A String&quot;, # Required. The latest time at which the Lodging data is asserted to be true in the real world. This is not necessarily the time at which the request is made.
    },
    &quot;name&quot;: &quot;A String&quot;, # Required. Google identifier for this location in the form: `locations/{location_id}/lodging`
    &quot;parking&quot;: { # Parking options at the property. # Parking options at the property.
      &quot;electricCarChargingStations&quot;: True or False, # Electric car charging stations. Electric power stations, usually located outdoors, into which guests plug their electric cars to receive a charge.
      &quot;electricCarChargingStationsException&quot;: &quot;A String&quot;, # Electric car charging stations exception.
      &quot;freeParking&quot;: True or False, # Free parking. The hotel allows the cars of guests to be parked for free. Parking facility may be an outdoor lot or an indoor garage, but must be onsite. Nearby parking does not apply. Parking may be performed by the guest or by hotel staff. Free parking must be available to all guests (limited conditions does not apply).
      &quot;freeParkingException&quot;: &quot;A String&quot;, # Free parking exception.
      &quot;freeSelfParking&quot;: True or False, # Free self parking. Guests park their own cars for free. Parking facility may be an outdoor lot or an indoor garage, but must be onsite. Nearby parking does not apply.
      &quot;freeSelfParkingException&quot;: &quot;A String&quot;, # Free self parking exception.
      &quot;freeValetParking&quot;: True or False, # Free valet parking. Hotel staff member parks the cars of guests. Parking with this service is free.
      &quot;freeValetParkingException&quot;: &quot;A String&quot;, # Free valet parking exception.
      &quot;parkingAvailable&quot;: True or False, # Parking available. The hotel allows the cars of guests to be parked. Can be free or for a fee. Parking facility may be an outdoor lot or an indoor garage, but must be onsite. Nearby parking does not apply. Parking may be performed by the guest or by hotel staff.
      &quot;parkingAvailableException&quot;: &quot;A String&quot;, # Parking available exception.
      &quot;selfParkingAvailable&quot;: True or False, # Self parking available. Guests park their own cars. Parking facility may be an outdoor lot or an indoor garage, but must be onsite. Nearby parking does not apply. Can be free or for a fee.
      &quot;selfParkingAvailableException&quot;: &quot;A String&quot;, # Self parking available exception.
      &quot;valetParkingAvailable&quot;: True or False, # Valet parking available. Hotel staff member parks the cars of guests. Parking with this service can be free or for a fee.
      &quot;valetParkingAvailableException&quot;: &quot;A String&quot;, # Valet parking available exception.
    },
    &quot;pets&quot;: { # Policies regarding guest-owned animals. # Policies regarding guest-owned animals.
      &quot;catsAllowed&quot;: True or False, # Cats allowed. Domesticated felines are permitted at the property and allowed to stay in the guest room of their owner. May or may not require a fee.
      &quot;catsAllowedException&quot;: &quot;A String&quot;, # Cats allowed exception.
      &quot;dogsAllowed&quot;: True or False, # Dogs allowed. Domesticated canines are permitted at the property and allowed to stay in the guest room of their owner. May or may not require a fee.
      &quot;dogsAllowedException&quot;: &quot;A String&quot;, # Dogs allowed exception.
      &quot;petsAllowed&quot;: True or False, # Pets allowed. Household animals are allowed at the property and in the specific guest room of their owner. May or may not include dogs, cats, reptiles and/or fish. May or may not require a fee. Service animals are not considered to be pets, so not governed by this policy.
      &quot;petsAllowedException&quot;: &quot;A String&quot;, # Pets allowed exception.
      &quot;petsAllowedFree&quot;: True or False, # Pets allowed free. Household animals are allowed at the property and in the specific guest room of their owner for free. May or may not include dogs, cats, reptiles, and/or fish.
      &quot;petsAllowedFreeException&quot;: &quot;A String&quot;, # Pets allowed free exception.
    },
    &quot;policies&quot;: { # Property rules that impact guests. # Property rules that impact guests.
      &quot;allInclusiveAvailable&quot;: True or False, # All inclusive available. The hotel offers a rate option that includes the cost of the room, meals, activities, and other amenities that might otherwise be charged separately.
      &quot;allInclusiveAvailableException&quot;: &quot;A String&quot;, # All inclusive available exception.
      &quot;allInclusiveOnly&quot;: True or False, # All inclusive only. The only rate option offered by the hotel is a rate that includes the cost of the room, meals, activities and other amenities that might otherwise be charged separately.
      &quot;allInclusiveOnlyException&quot;: &quot;A String&quot;, # All inclusive only exception.
      &quot;checkinTime&quot;: { # Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`. # Check-in time. The time of the day at which the hotel begins providing guests access to their unit at the beginning of their stay.
        &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
        &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
        &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
        &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.
      },
      &quot;checkinTimeException&quot;: &quot;A String&quot;, # Check-in time exception.
      &quot;checkoutTime&quot;: { # Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`. # Check-out time. The time of the day on the last day of a guest&#x27;s reserved stay at which the guest must vacate their room and settle their bill. Some hotels may offer late or early check out for a fee.
        &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
        &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
        &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
        &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.
      },
      &quot;checkoutTimeException&quot;: &quot;A String&quot;, # Check-out time exception.
      &quot;kidsStayFree&quot;: True or False, # Kids stay free. The children of guests are allowed to stay in the room/suite of a parent or adult without an additional fee. The policy may or may not stipulate a limit of the child&#x27;s age or the overall number of children allowed.
      &quot;kidsStayFreeException&quot;: &quot;A String&quot;, # Kids stay free exception.
      &quot;maxChildAge&quot;: 42, # Max child age. The hotel allows children up to a certain age to stay in the room/suite of a parent or adult without an additional fee.
      &quot;maxChildAgeException&quot;: &quot;A String&quot;, # Max child age exception.
      &quot;maxKidsStayFreeCount&quot;: 42, # Max kids stay free count. The hotel allows a specific, defined number of children to stay in the room/suite of a parent or adult without an additional fee.
      &quot;maxKidsStayFreeCountException&quot;: &quot;A String&quot;, # Max kids stay free count exception.
      &quot;paymentOptions&quot;: { # Forms of payment accepted at the property. # Forms of payment accepted at the property.
        &quot;cash&quot;: True or False, # Cash. The hotel accepts payment by paper/coin currency.
        &quot;cashException&quot;: &quot;A String&quot;, # Cash exception.
        &quot;cheque&quot;: True or False, # Cheque. The hotel accepts a printed document issued by the guest&#x27;s bank in the guest&#x27;s name as a form of payment.
        &quot;chequeException&quot;: &quot;A String&quot;, # Cheque exception.
        &quot;creditCard&quot;: True or False, # Credit card. The hotel accepts payment by a card issued by a bank or credit card company. Also known as charge card, debit card, bank card, or charge plate.
        &quot;creditCardException&quot;: &quot;A String&quot;, # Credit card exception.
        &quot;debitCard&quot;: True or False, # Debit card. The hotel accepts a bank-issued card that immediately deducts the charged funds from the guest&#x27;s bank account upon processing.
        &quot;debitCardException&quot;: &quot;A String&quot;, # Debit card exception.
        &quot;mobileNfc&quot;: True or False, # Mobile nfc. The hotel has the compatible computer hardware terminal that reads and charges a payment app on the guest&#x27;s smartphone without requiring the two devices to make physical contact. Also known as Apple Pay, Google Pay, Samsung Pay.
        &quot;mobileNfcException&quot;: &quot;A String&quot;, # Mobile nfc exception.
      },
      &quot;smokeFreeProperty&quot;: True or False, # Smoke free property. Smoking is not allowed inside the building, on balconies, or in outside spaces. Hotels that offer a designated area for guests to smoke are not considered smoke-free properties.
      &quot;smokeFreePropertyException&quot;: &quot;A String&quot;, # Smoke free property exception.
    },
    &quot;pools&quot;: { # Swimming pool or recreational water facilities available at the hotel. # Swimming pool or recreational water facilities available at the hotel.
      &quot;adultPool&quot;: True or False, # Adult pool. A pool restricted for use by adults only. Can be indoors or outdoors.
      &quot;adultPoolException&quot;: &quot;A String&quot;, # Adult pool exception.
      &quot;hotTub&quot;: True or False, # Hot tub. A man-made pool containing bubbling water maintained at a higher temperature and circulated by aerating jets for the purpose of soaking, relaxation and hydrotherapy. Can be indoors or outdoors. Not used for active swimming. Also known as Jacuzzi. Hot tub must be in a common area where all guests can access it. Does not apply to room-specific hot tubs that are only accessible to guest occupying that room.
      &quot;hotTubException&quot;: &quot;A String&quot;, # Hot tub exception.
      &quot;indoorPool&quot;: True or False, # Indoor pool. A pool located inside the hotel and available for guests to use for swimming and/or soaking. Use may or may not be restricted to adults and/or children.
      &quot;indoorPoolException&quot;: &quot;A String&quot;, # Indoor pool exception.
      &quot;indoorPoolsCount&quot;: 42, # Indoor pools count. The sum of all indoor pools at the hotel.
      &quot;indoorPoolsCountException&quot;: &quot;A String&quot;, # Indoor pools count exception.
      &quot;lazyRiver&quot;: True or False, # Lazy river. A man-made pool or several interconnected recreational pools built to mimic the shape and current of a winding river where guests float in the water on inflated rubber tubes. Can be indoors or outdoors.
      &quot;lazyRiverException&quot;: &quot;A String&quot;, # Lazy river exception.
      &quot;lifeguard&quot;: True or False, # Lifeguard. A trained member of the hotel staff stationed by the hotel&#x27;s indoor or outdoor swimming area and responsible for the safety of swimming guests.
      &quot;lifeguardException&quot;: &quot;A String&quot;, # Lifeguard exception.
      &quot;outdoorPool&quot;: True or False, # Outdoor pool. A pool located outside on the grounds of the hotel and available for guests to use for swimming, soaking or recreation. Use may or may not be restricted to adults and/or children.
      &quot;outdoorPoolException&quot;: &quot;A String&quot;, # Outdoor pool exception.
      &quot;outdoorPoolsCount&quot;: 42, # Outdoor pools count. The sum of all outdoor pools at the hotel.
      &quot;outdoorPoolsCountException&quot;: &quot;A String&quot;, # Outdoor pools count exception.
      &quot;pool&quot;: True or False, # Pool. The presence of a pool, either indoors or outdoors, for guests to use for swimming and/or soaking. Use may or may not be restricted to adults and/or children.
      &quot;poolException&quot;: &quot;A String&quot;, # Pool exception.
      &quot;poolsCount&quot;: 42, # Pools count. The sum of all pools at the hotel.
      &quot;poolsCountException&quot;: &quot;A String&quot;, # Pools count exception.
      &quot;wadingPool&quot;: True or False, # Wading pool. A shallow pool designed for small children to play in. Can be indoors or outdoors. Also known as kiddie pool.
      &quot;wadingPoolException&quot;: &quot;A String&quot;, # Wading pool exception.
      &quot;waterPark&quot;: True or False, # Water park. An aquatic recreation area with a large pool or series of pools that has features such as a water slide or tube, wavepool, fountains, rope swings, and/or obstacle course. Can be indoors or outdoors. Also known as adventure pool.
      &quot;waterParkException&quot;: &quot;A String&quot;, # Water park exception.
      &quot;waterslide&quot;: True or False, # Waterslide. A continuously wetted chute positioned by an indoor or outdoor pool which people slide down into the water.
      &quot;waterslideException&quot;: &quot;A String&quot;, # Waterslide exception.
      &quot;wavePool&quot;: True or False, # Wave pool. A large indoor or outdoor pool with a machine that produces water currents to mimic the ocean&#x27;s crests.
      &quot;wavePoolException&quot;: &quot;A String&quot;, # Wave pool exception.
    },
    &quot;property&quot;: { # General factual information about the property&#x27;s physical structure and important dates. # General factual information about the property&#x27;s physical structure and important dates.
      &quot;builtYear&quot;: 42, # Built year. The year that construction of the property was completed.
      &quot;builtYearException&quot;: &quot;A String&quot;, # Built year exception.
      &quot;floorsCount&quot;: 42, # Floors count. The number of stories the building has from the ground floor to the top floor that are accessible to guests.
      &quot;floorsCountException&quot;: &quot;A String&quot;, # Floors count exception.
      &quot;lastRenovatedYear&quot;: 42, # Last renovated year. The year when the most recent renovation of the property was completed. Renovation may include all or any combination of the following: the units, the public spaces, the exterior, or the interior.
      &quot;lastRenovatedYearException&quot;: &quot;A String&quot;, # Last renovated year exception.
      &quot;roomsCount&quot;: 42, # Rooms count. The total number of rooms and suites bookable by guests for an overnight stay. Does not include event space, public spaces, conference rooms, fitness rooms, business centers, spa, salon, restaurants/bars, or shops.
      &quot;roomsCountException&quot;: &quot;A String&quot;, # Rooms count exception.
    },
    &quot;services&quot;: { # Conveniences or help provided by the property to facilitate an easier, more comfortable stay. # Conveniences or help provided by the property to facilitate an easier, more comfortable stay.
      &quot;baggageStorage&quot;: True or False, # Baggage storage. A provision for guests to leave their bags at the hotel when they arrive for their stay before the official check-in time. May or may not apply for guests who wish to leave their bags after check-out and before departing the locale. Also known as bag dropoff.
      &quot;baggageStorageException&quot;: &quot;A String&quot;, # Baggage storage exception.
      &quot;concierge&quot;: True or False, # Concierge. Hotel staff member(s) responsible for facilitating an easy, comfortable stay through making reservations for meals, sourcing theater tickets, arranging tours, finding a doctor, making recommendations, and answering questions.
      &quot;conciergeException&quot;: &quot;A String&quot;, # Concierge exception.
      &quot;convenienceStore&quot;: True or False, # Convenience store. A shop at the hotel primarily selling snacks, drinks, non-prescription medicines, health and beauty aids, magazines and newspapers.
      &quot;convenienceStoreException&quot;: &quot;A String&quot;, # Convenience store exception.
      &quot;currencyExchange&quot;: True or False, # Currency exchange. A staff member or automated machine tasked with the transaction of providing the native currency of the hotel&#x27;s locale in exchange for the foreign currency provided by a guest.
      &quot;currencyExchangeException&quot;: &quot;A String&quot;, # Currency exchange exception.
      &quot;elevator&quot;: True or False, # Elevator. A passenger elevator that transports guests from one story to another. Also known as lift.
      &quot;elevatorException&quot;: &quot;A String&quot;, # Elevator exception.
      &quot;frontDesk&quot;: True or False, # Front desk. A counter or desk in the lobby or the immediate interior of the hotel where a member of the staff greets guests and processes the information related to their stay (including check-in and check-out). May or may not be manned and open 24/7.
      &quot;frontDeskException&quot;: &quot;A String&quot;, # Front desk exception.
      &quot;fullServiceLaundry&quot;: True or False, # Full service laundry. Laundry and dry cleaning facilitated and handled by the hotel on behalf of the guest. Does not include the provision for guests to do their own laundry in on-site machines.
      &quot;fullServiceLaundryException&quot;: &quot;A String&quot;, # Full service laundry exception.
      &quot;giftShop&quot;: True or False, # Gift shop. An on-site store primarily selling souvenirs, mementos and other gift items. May or may not also sell sundries, magazines and newspapers, clothing, or snacks.
      &quot;giftShopException&quot;: &quot;A String&quot;, # Gift shop exception.
      &quot;languagesSpoken&quot;: [ # Languages spoken by at least one staff member.
        { # Language spoken by at least one staff member.
          &quot;languageCode&quot;: &quot;A String&quot;, # Required. The BCP-47 language code for the spoken language. Currently accepted codes: ar, de, en, es, fil, fr, hi, id, it, ja, ko, nl, pt, ru, vi, yue, zh.
          &quot;spoken&quot;: True or False, # At least one member of the staff can speak the language.
          &quot;spokenException&quot;: &quot;A String&quot;, # Spoken exception.
        },
      ],
      &quot;selfServiceLaundry&quot;: True or False, # Self service laundry. On-site clothes washers and dryers accessible to guests for the purpose of washing and drying their own clothes. May or may not require payment to use the machines.
      &quot;selfServiceLaundryException&quot;: &quot;A String&quot;, # Self service laundry exception.
      &quot;socialHour&quot;: True or False, # Social hour. A reception with complimentary soft drinks, tea, coffee, wine and/or cocktails in the afternoon or evening. Can be hosted by hotel staff or guests may serve themselves. Also known as wine hour. The availability of coffee/tea in the lobby throughout the day does not constitute a social or wine hour.
      &quot;socialHourException&quot;: &quot;A String&quot;, # Social hour exception.
      &quot;twentyFourHourFrontDesk&quot;: True or False, # 24hr front desk. Front desk is staffed 24 hours a day.
      &quot;twentyFourHourFrontDeskException&quot;: &quot;A String&quot;, # 24hr front desk exception.
      &quot;wakeUpCalls&quot;: True or False, # Wake up calls. By direction of the guest, a hotel staff member will phone the guest unit at the requested hour. Also known as morning call.
      &quot;wakeUpCallsException&quot;: &quot;A String&quot;, # Wake up calls exception.
    },
    &quot;someUnits&quot;: { # Features and available amenities in the guest unit. # Output only. Some units on the property have as much as these attributes.
      &quot;bungalowOrVilla&quot;: True or False, # Bungalow or villa. An independent structure that is part of a hotel or resort that is rented to one party for a vacation stay. The hotel or resort may be completely comprised of bungalows or villas, or they may be one of several guestroom options. Guests in the bungalows or villas most often have the same, if not more, amenities and services offered to guests in other guestroom types.
      &quot;bungalowOrVillaException&quot;: &quot;A String&quot;, # Bungalow or villa exception.
      &quot;connectingUnitAvailable&quot;: True or False, # Connecting unit available. A guestroom type that features access to an adjacent guestroom for the purpose of booking both rooms. Most often used by families who need more than one room to accommodate the number of people in their group.
      &quot;connectingUnitAvailableException&quot;: &quot;A String&quot;, # Connecting unit available exception.
      &quot;executiveFloor&quot;: True or False, # Executive floor. A floor of the hotel where the guestrooms are only bookable by members of the hotel&#x27;s frequent guest membership program. Benefits of this room class include access to a designated lounge which may or may not feature free breakfast, cocktails or other perks specific to members of the program.
      &quot;executiveFloorException&quot;: &quot;A String&quot;, # Executive floor exception.
      &quot;maxAdultOccupantsCount&quot;: 42, # Max adult occupants count. The total number of adult guests allowed to stay overnight in the guestroom.
      &quot;maxAdultOccupantsCountException&quot;: &quot;A String&quot;, # Max adult occupants count exception.
      &quot;maxChildOccupantsCount&quot;: 42, # Max child occupants count. The total number of children allowed to stay overnight in the room.
      &quot;maxChildOccupantsCountException&quot;: &quot;A String&quot;, # Max child occupants count exception.
      &quot;maxOccupantsCount&quot;: 42, # Max occupants count. The total number of guests allowed to stay overnight in the guestroom.
      &quot;maxOccupantsCountException&quot;: &quot;A String&quot;, # Max occupants count exception.
      &quot;privateHome&quot;: True or False, # Private home. A privately owned home (house, townhouse, apartment, cabin, bungalow etc) that may or not serve as the owner&#x27;s residence, but is rented out in its entirety or by the room(s) to paying guest(s) for vacation stays. Not for lease-based, long-term residency.
      &quot;privateHomeException&quot;: &quot;A String&quot;, # Private home exception.
      &quot;suite&quot;: True or False, # Suite. A guestroom category that implies both a bedroom area and a separate living area. There may or may not be full walls and doors separating the two areas, but regardless, they are very distinct. Does not mean a couch or chair in a bedroom.
      &quot;suiteException&quot;: &quot;A String&quot;, # Suite exception.
      &quot;tier&quot;: &quot;A String&quot;, # Tier. Classification of the unit based on available features/amenities. A non-standard tier is only permitted if at least one other unit type falls under the standard tier.
      &quot;tierException&quot;: &quot;A String&quot;, # Tier exception.
      &quot;totalLivingAreas&quot;: { # An individual room, such as kitchen, bathroom, bedroom, within a bookable guest unit. # Features available in the living areas in the guest unit.
        &quot;accessibility&quot;: { # Accessibility features of the living area. # Accessibility features of the living area.
          &quot;adaCompliantUnit&quot;: True or False, # ADA compliant unit. A guestroom designed to accommodate the physical challenges of a guest with mobility and/or auditory and/or visual issues, as determined by legislative policy. Usually features enlarged doorways, roll-in showers with seats, bathroom grab bars, and communication equipment for the hearing and sight challenged.
          &quot;adaCompliantUnitException&quot;: &quot;A String&quot;, # ADA compliant unit exception.
          &quot;hearingAccessibleDoorbell&quot;: True or False, # Hearing-accessible doorbell. A visual indicator(s) of a knock or ring at the door.
          &quot;hearingAccessibleDoorbellException&quot;: &quot;A String&quot;, # Hearing-accessible doorbell exception.
          &quot;hearingAccessibleFireAlarm&quot;: True or False, # Hearing-accessible fire alarm. A device that gives warning of a fire through flashing lights.
          &quot;hearingAccessibleFireAlarmException&quot;: &quot;A String&quot;, # Hearing-accessible fire alarm exception.
          &quot;hearingAccessibleUnit&quot;: True or False, # Hearing-accessible unit. A guestroom designed to accommodate the physical challenges of a guest with auditory issues.
          &quot;hearingAccessibleUnitException&quot;: &quot;A String&quot;, # Hearing-accessible unit exception.
          &quot;mobilityAccessibleBathtub&quot;: True or False, # Mobility-accessible bathtub. A bathtub that accomodates the physically challenged with additional railings or hand grips, a transfer seat or lift, and/or a door to enable walking into the tub.
          &quot;mobilityAccessibleBathtubException&quot;: &quot;A String&quot;, # Mobility-accessible bathtub exception.
          &quot;mobilityAccessibleShower&quot;: True or False, # Mobility-accessible shower. A shower with an enlarged door or access point to accommodate a wheelchair or a waterproof seat for the physically challenged.
          &quot;mobilityAccessibleShowerException&quot;: &quot;A String&quot;, # Mobility-accessible shower exception.
          &quot;mobilityAccessibleToilet&quot;: True or False, # Mobility-accessible toilet. A toilet with a higher seat, grab bars, and/or a larger area around it to accommodate the physically challenged.
          &quot;mobilityAccessibleToiletException&quot;: &quot;A String&quot;, # Mobility-accessible toilet exception.
          &quot;mobilityAccessibleUnit&quot;: True or False, # Mobility-accessible unit. A guestroom designed to accommodate the physical challenges of a guest with mobility and/or auditory and/or visual issues. Usually features enlarged doorways, roll-in showers with seats, bathroom grab bars, and communication equipment for the hearing and sight challenged.
          &quot;mobilityAccessibleUnitException&quot;: &quot;A String&quot;, # Mobility-accessible unit exception.
        },
        &quot;eating&quot;: { # Information about eating features in the living area. # Information about eating features in the living area.
          &quot;coffeeMaker&quot;: True or False, # Coffee maker. An electric appliance that brews coffee by heating and forcing water through ground coffee.
          &quot;coffeeMakerException&quot;: &quot;A String&quot;, # Coffee maker exception.
          &quot;cookware&quot;: True or False, # Cookware. Kitchen pots, pans and utensils used in connection with the preparation of food.
          &quot;cookwareException&quot;: &quot;A String&quot;, # Cookware exception.
          &quot;dishwasher&quot;: True or False, # Dishwasher. A counter-height electrical cabinet containing racks for dirty dishware, cookware and cutlery, and a dispenser for soap built into the pull-down door. The cabinet is attached to the plumbing system to facilitate the automatic cleaning of its contents.
          &quot;dishwasherException&quot;: &quot;A String&quot;, # Dishwasher exception.
          &quot;indoorGrill&quot;: True or False, # Indoor grill. Metal grates built into an indoor cooktop on which food is cooked over an open flame or electric heat source.
          &quot;indoorGrillException&quot;: &quot;A String&quot;, # Indoor grill exception.
          &quot;kettle&quot;: True or False, # Kettle. A covered container with a handle and a spout used for boiling water.
          &quot;kettleException&quot;: &quot;A String&quot;, # Kettle exception.
          &quot;kitchenAvailable&quot;: True or False, # Kitchen available. An area of the guestroom designated for the preparation and storage of food via the presence of a refrigerator, cook top, oven and sink, as well as cutlery, dishes and cookware. Usually includes small appliances such a coffee maker and a microwave. May or may not include an automatic dishwasher.
          &quot;kitchenAvailableException&quot;: &quot;A String&quot;, # Kitchen available exception.
          &quot;microwave&quot;: True or False, # Microwave. An electric oven that quickly cooks and heats food by microwave energy. Smaller than a standing or wall mounted oven. Usually placed on a kitchen counter, a shelf or tabletop or mounted above a cooktop.
          &quot;microwaveException&quot;: &quot;A String&quot;, # Microwave exception.
          &quot;minibar&quot;: True or False, # Minibar. A small refrigerated cabinet in the guestroom containing bottles/cans of soft drinks, mini bottles of alcohol, and snacks. The items are most commonly available for a fee.
          &quot;minibarException&quot;: &quot;A String&quot;, # Minibar exception.
          &quot;outdoorGrill&quot;: True or False, # Outdoor grill. Metal grates on which food is cooked over an open flame or electric heat source. Part of an outdoor apparatus that supports the grates. Also known as barbecue grill or barbecue.
          &quot;outdoorGrillException&quot;: &quot;A String&quot;, # Outdoor grill exception.
          &quot;oven&quot;: True or False, # Oven. A temperature controlled, heated metal cabinet powered by gas or electricity in which food is placed for the purpose of cooking or reheating.
          &quot;ovenException&quot;: &quot;A String&quot;, # Oven exception.
          &quot;refrigerator&quot;: True or False, # Refrigerator. A large, climate-controlled electrical cabinet with vertical doors. Built for the purpose of chilling and storing perishable foods.
          &quot;refrigeratorException&quot;: &quot;A String&quot;, # Refrigerator exception.
          &quot;sink&quot;: True or False, # Sink. A basin with a faucet attached to a water source and used for the purpose of washing and rinsing.
          &quot;sinkException&quot;: &quot;A String&quot;, # Sink exception.
          &quot;snackbar&quot;: True or False, # Snackbar. A small cabinet in the guestroom containing snacks. The items are most commonly available for a fee.
          &quot;snackbarException&quot;: &quot;A String&quot;, # Snackbar exception.
          &quot;stove&quot;: True or False, # Stove. A kitchen appliance powered by gas or electricity for the purpose of creating a flame or hot surface on which pots of food can be cooked. Also known as cooktop or hob.
          &quot;stoveException&quot;: &quot;A String&quot;, # Stove exception.
          &quot;teaStation&quot;: True or False, # Tea station. A small area with the supplies needed to heat water and make tea.
          &quot;teaStationException&quot;: &quot;A String&quot;, # Tea station exception.
          &quot;toaster&quot;: True or False, # Toaster. A small, temperature controlled electric appliance with rectangular slots at the top that are lined with heated coils for the purpose of browning slices of bread products.
          &quot;toasterException&quot;: &quot;A String&quot;, # Toaster exception.
        },
        &quot;features&quot;: { # Features in the living area. # Features in the living area.
          &quot;airConditioning&quot;: True or False, # Air conditioning. An electrical machine used to cool the temperature of the guestroom.
          &quot;airConditioningException&quot;: &quot;A String&quot;, # Air conditioning exception.
          &quot;bathtub&quot;: True or False, # Bathtub. A fixed plumbing feature set on the floor and consisting of a large container that accommodates the body of an adult for the purpose of seated bathing. Includes knobs or fixtures to control the temperature of the water, a faucet through which the water flows, and a drain that can be closed for filling and opened for draining.
          &quot;bathtubException&quot;: &quot;A String&quot;, # Bathtub exception.
          &quot;bidet&quot;: True or False, # Bidet. A plumbing fixture attached to a toilet or a low, fixed sink designed for the purpose of washing after toilet use.
          &quot;bidetException&quot;: &quot;A String&quot;, # Bidet exception.
          &quot;dryer&quot;: True or False, # Dryer. An electrical machine designed to dry clothing.
          &quot;dryerException&quot;: &quot;A String&quot;, # Dryer exception.
          &quot;electronicRoomKey&quot;: True or False, # Electronic room key. A card coded by the check-in computer that is read by the lock on the hotel guestroom door to allow for entry.
          &quot;electronicRoomKeyException&quot;: &quot;A String&quot;, # Electronic room key exception.
          &quot;fireplace&quot;: True or False, # Fireplace. A framed opening (aka hearth) at the base of a chimney in which logs or an electrical fire feature are burned to provide a relaxing ambiance or to heat the room. Often made of bricks or stone.
          &quot;fireplaceException&quot;: &quot;A String&quot;, # Fireplace exception.
          &quot;hairdryer&quot;: True or False, # Hairdryer. A handheld electric appliance that blows temperature-controlled air for the purpose of drying wet hair. Can be mounted to a bathroom wall or a freestanding device stored in the guestroom&#x27;s bathroom or closet.
          &quot;hairdryerException&quot;: &quot;A String&quot;, # Hairdryer exception.
          &quot;heating&quot;: True or False, # Heating. An electrical machine used to warm the temperature of the guestroom.
          &quot;heatingException&quot;: &quot;A String&quot;, # Heating exception.
          &quot;inunitSafe&quot;: True or False, # In-unit safe. A strong fireproof cabinet with a programmable lock, used for the protected storage of valuables in a guestroom. Often built into a closet.
          &quot;inunitSafeException&quot;: &quot;A String&quot;, # In-unit safe exception.
          &quot;inunitWifiAvailable&quot;: True or False, # In-unit Wifi available. Guests can wirelessly connect to the Internet in the guestroom. Can be free or for a fee.
          &quot;inunitWifiAvailableException&quot;: &quot;A String&quot;, # In-unit Wifi available exception.
          &quot;ironingEquipment&quot;: True or False, # Ironing equipment. A device, usually with a flat metal base, that is heated to smooth, finish, or press clothes and a flat, padded, cloth-covered surface on which the clothes are worked.
          &quot;ironingEquipmentException&quot;: &quot;A String&quot;, # Ironing equipment exception.
          &quot;payPerViewMovies&quot;: True or False, # Pay per view movies. Televisions with channels that offer films that can be viewed for a fee, and have an interface to allow the viewer to accept the terms and approve payment.
          &quot;payPerViewMoviesException&quot;: &quot;A String&quot;, # Pay per view movies exception.
          &quot;privateBathroom&quot;: True or False, # Private bathroom. A bathroom designated for the express use of the guests staying in a specific guestroom.
          &quot;privateBathroomException&quot;: &quot;A String&quot;, # Private bathroom exception.
          &quot;shower&quot;: True or False, # Shower. A fixed plumbing fixture for standing bathing that features a tall spray spout or faucet through which water flows, a knob or knobs that control the water&#x27;s temperature, and a drain in the floor.
          &quot;showerException&quot;: &quot;A String&quot;, # Shower exception.
          &quot;toilet&quot;: True or False, # Toilet. A fixed bathroom feature connected to a sewer or septic system and consisting of a water-flushed bowl with a seat, as well as a device that elicites the water-flushing action. Used for the process and disposal of human waste.
          &quot;toiletException&quot;: &quot;A String&quot;, # Toilet exception.
          &quot;tv&quot;: True or False, # TV. A television is available in the guestroom.
          &quot;tvCasting&quot;: True or False, # TV casting. A television equipped with a device through which the video entertainment accessed on a personal computer, phone or tablet can be wirelessly delivered to and viewed on the guestroom&#x27;s television.
          &quot;tvCastingException&quot;: &quot;A String&quot;, # TV exception.
          &quot;tvException&quot;: &quot;A String&quot;, # TV exception.
          &quot;tvStreaming&quot;: True or False, # TV streaming. Televisions that embed a range of web-based apps to allow for watching media from those apps.
          &quot;tvStreamingException&quot;: &quot;A String&quot;, # TV streaming exception.
          &quot;universalPowerAdapters&quot;: True or False, # Universal power adapters. A power supply for electronic devices which plugs into a wall for the purpose of converting AC to a single DC voltage. Also know as AC adapter or charger.
          &quot;universalPowerAdaptersException&quot;: &quot;A String&quot;, # Universal power adapters exception.
          &quot;washer&quot;: True or False, # Washer. An electrical machine connected to a running water source designed to launder clothing.
          &quot;washerException&quot;: &quot;A String&quot;, # Washer exception.
        },
        &quot;layout&quot;: { # Information about the layout of the living area. # Information about the layout of the living area.
          &quot;balcony&quot;: True or False, # Balcony. An outdoor platform attached to a building and surrounded by a short wall, fence or other safety railing. The balcony is accessed through a door in a guestroom or suite and is for use by the guest staying in that room. May or may not include seating or outdoor furniture. Is not located on the ground floor. Also lanai.
          &quot;balconyException&quot;: &quot;A String&quot;, # Balcony exception.
          &quot;livingAreaSqMeters&quot;: 3.14, # Living area sq meters. The measurement in meters of the area of a guestroom&#x27;s living space.
          &quot;livingAreaSqMetersException&quot;: &quot;A String&quot;, # Living area sq meters exception.
          &quot;loft&quot;: True or False, # Loft. A three-walled upper area accessed by stairs or a ladder that overlooks the lower area of a room.
          &quot;loftException&quot;: &quot;A String&quot;, # Loft exception.
          &quot;nonSmoking&quot;: True or False, # Non smoking. A guestroom in which the smoking of cigarettes, cigars and pipes is prohibited.
          &quot;nonSmokingException&quot;: &quot;A String&quot;, # Non smoking exception.
          &quot;patio&quot;: True or False, # Patio. A paved, outdoor area with seating attached to and accessed through a ground-floor guestroom for use by the occupants of the guestroom.
          &quot;patioException&quot;: &quot;A String&quot;, # Patio exception.
          &quot;stairs&quot;: True or False, # Stairs. There are steps leading from one level or story to another in the unit.
          &quot;stairsException&quot;: &quot;A String&quot;, # Stairs exception.
        },
        &quot;sleeping&quot;: { # Information about sleeping features in the living area. # Information about sleeping features in the living area.
          &quot;bedsCount&quot;: 42, # Beds count. The number of permanent beds present in a guestroom. Does not include rollaway beds, cribs or sofabeds.
          &quot;bedsCountException&quot;: &quot;A String&quot;, # Beds count exception.
          &quot;bunkBedsCount&quot;: 42, # Bunk beds count. The number of furniture pieces in which one framed mattress is fixed directly above another by means of a physical frame. This allows one person(s) to sleep in the bottom bunk and one person(s) to sleep in the top bunk. Also known as double decker bed.
          &quot;bunkBedsCountException&quot;: &quot;A String&quot;, # Bunk beds count exception.
          &quot;cribsCount&quot;: 42, # Cribs count. The number of small beds for an infant or toddler that the guestroom can obtain. The bed is surrounded by a high railing to prevent the child from falling or climbing out of the bed
          &quot;cribsCountException&quot;: &quot;A String&quot;, # Cribs count exception.
          &quot;doubleBedsCount&quot;: 42, # Double beds count. The number of medium beds measuring 53&quot;W x 75&quot;L (135cm x 191cm). Also known as full size bed.
          &quot;doubleBedsCountException&quot;: &quot;A String&quot;, # Double beds count exception.
          &quot;featherPillows&quot;: True or False, # Feather pillows. The option for guests to obtain bed pillows that are stuffed with the feathers and down of ducks or geese.
          &quot;featherPillowsException&quot;: &quot;A String&quot;, # Feather pillows exception.
          &quot;hypoallergenicBedding&quot;: True or False, # Hypoallergenic bedding. Bedding such as linens, pillows, mattress covers and/or mattresses that are made of materials known to be resistant to allergens such as mold, dust and dander.
          &quot;hypoallergenicBeddingException&quot;: &quot;A String&quot;, # Hypoallergenic bedding exception.
          &quot;kingBedsCount&quot;: 42, # King beds count. The number of large beds measuring 76&quot;W x 80&quot;L (193cm x 102cm). Most often meant to accompany two people. Includes California king and super king.
          &quot;kingBedsCountException&quot;: &quot;A String&quot;, # King beds count exception.
          &quot;memoryFoamPillows&quot;: True or False, # Memory foam pillows. The option for guests to obtain bed pillows that are stuffed with a man-made foam that responds to body heat by conforming to the body closely, and then recovers its shape when the pillow cools down.
          &quot;memoryFoamPillowsException&quot;: &quot;A String&quot;, # Memory foam pillows exception.
          &quot;otherBedsCount&quot;: 42, # Other beds count. The number of beds that are not standard mattress and boxspring setups such as Japanese tatami mats, trundle beds, air mattresses and cots.
          &quot;otherBedsCountException&quot;: &quot;A String&quot;, # Other beds count exception.
          &quot;queenBedsCount&quot;: 42, # Queen beds count. The number of medium-large beds measuring 60&quot;W x 80&quot;L (152cm x 102cm).
          &quot;queenBedsCountException&quot;: &quot;A String&quot;, # Queen beds count exception.
          &quot;rollAwayBedsCount&quot;: 42, # Roll away beds count. The number of mattresses on wheeled frames that can be folded in half and rolled away for easy storage that the guestroom can obtain upon request.
          &quot;rollAwayBedsCountException&quot;: &quot;A String&quot;, # Roll away beds count exception.
          &quot;singleOrTwinBedsCount&quot;: 42, # Single or twin count beds. The number of smaller beds measuring 38&quot;W x 75&quot;L (97cm x 191cm) that can accommodate one adult.
          &quot;singleOrTwinBedsCountException&quot;: &quot;A String&quot;, # Single or twin beds count exception.
          &quot;sofaBedsCount&quot;: 42, # Sofa beds count. The number of specially designed sofas that can be made to serve as a bed by lowering its hinged upholstered back to horizontal position or by pulling out a concealed mattress.
          &quot;sofaBedsCountException&quot;: &quot;A String&quot;, # Sofa beds count exception.
          &quot;syntheticPillows&quot;: True or False, # Synthetic pillows. The option for guests to obtain bed pillows stuffed with polyester material crafted to reproduce the feel of a pillow stuffed with down and feathers.
          &quot;syntheticPillowsException&quot;: &quot;A String&quot;, # Synthetic pillows exception.
        },
      },
      &quot;views&quot;: { # Views available from the guest unit itself. # Views available from the guest unit itself.
        &quot;beachView&quot;: True or False, # Beach view. A guestroom that features a window through which guests can see the beach.
        &quot;beachViewException&quot;: &quot;A String&quot;, # Beach view exception.
        &quot;cityView&quot;: True or False, # City view. A guestroom that features a window through which guests can see the buildings, parks and/or streets of the city.
        &quot;cityViewException&quot;: &quot;A String&quot;, # City view exception.
        &quot;gardenView&quot;: True or False, # Garden view. A guestroom that features a window through which guests can see a garden.
        &quot;gardenViewException&quot;: &quot;A String&quot;, # Garden view exception.
        &quot;lakeView&quot;: True or False, # Lake view.
        &quot;lakeViewException&quot;: &quot;A String&quot;, # Lake view exception.
        &quot;landmarkView&quot;: True or False, # Landmark view. A guestroom that features a window through which guests can see a landmark such as the countryside, a golf course, the forest, a park, a rain forst, a mountain or a slope.
        &quot;landmarkViewException&quot;: &quot;A String&quot;, # Landmark view exception.
        &quot;oceanView&quot;: True or False, # Ocean view. A guestroom that features a window through which guests can see the ocean.
        &quot;oceanViewException&quot;: &quot;A String&quot;, # Ocean view exception.
        &quot;poolView&quot;: True or False, # Pool view. A guestroom that features a window through which guests can see the hotel&#x27;s swimming pool.
        &quot;poolViewException&quot;: &quot;A String&quot;, # Pool view exception.
        &quot;valleyView&quot;: True or False, # Valley view. A guestroom that features a window through which guests can see over a valley.
        &quot;valleyViewException&quot;: &quot;A String&quot;, # Valley view exception.
      },
    },
    &quot;sustainability&quot;: { # Sustainability practices implemented at the hotel. # Sustainability practices implemented at the hotel.
      &quot;energyEfficiency&quot;: { # Energy efficiency practices implemented at the hotel. # Energy efficiency practices implemented at the hotel.
        &quot;carbonFreeEnergySources&quot;: True or False, # Carbon free energy sources. Property sources carbon-free electricity via at least one of the following methods: on-site clean energy generation, power purchase agreement(s) with clean energy generators, green power provided by electricity supplier, or purchases of Energy Attribute Certificates (such as Renewable Energy Certificates or Guarantees of Origin).
        &quot;carbonFreeEnergySourcesException&quot;: &quot;A String&quot;, # Carbon free energy sources exception.
        &quot;energyConservationProgram&quot;: True or False, # Energy conservation program. The property tracks corporate-level Scope 1 and 2 GHG emissions, and Scope 3 emissions if available. The property has a commitment to implement initiatives that reduce GHG emissions year over year. The property has shown an absolute reduction in emissions for at least 2 years. Emissions are either verfied by a third-party and/or published in external communications.
        &quot;energyConservationProgramException&quot;: &quot;A String&quot;, # Energy conservation program exception.
        &quot;energyEfficientHeatingAndCoolingSystems&quot;: True or False, # Energy efficient heating and cooling systems. The property doesn&#x27;t use chlorofluorocarbon (CFC)-based refrigerants in heating, ventilating, and air-conditioning systems unless a third-party audit shows it&#x27;s not economically feasible. The CFC-based refrigerants which are used should have a Global Warming Potential (GWP) ≤ 10. The property uses occupancy sensors on HVAC systems in back-of-house spaces, meeting rooms, and other low-traffic areas.
        &quot;energyEfficientHeatingAndCoolingSystemsException&quot;: &quot;A String&quot;, # Energy efficient heating and cooling systems exception.
        &quot;energyEfficientLighting&quot;: True or False, # Energy efficient lighting. At least 75% of the property&#x27;s lighting is energy efficient, using lighting that is more than 45 lumens per watt – typically LED or CFL lightbulbs.
        &quot;energyEfficientLightingException&quot;: &quot;A String&quot;, # Energy efficient lighting exception.
        &quot;energySavingThermostats&quot;: True or False, # Energy saving thermostats. The property installed energy-saving thermostats throughout the building to conserve energy when rooms or areas are not in use. Energy-saving thermostats are devices that control heating/cooling in the building by learning temperature preferences and automatically adjusting to energy-saving temperatures as the default. The thermostats are automatically set to a temperature between 68-78 degrees F (20-26 °C), depending on seasonality. In the winter, set the thermostat to 68°F (20°C) when the room is occupied, lowering room temperature when unoccupied. In the summer, set the thermostat to 78°F (26°C) when the room is occupied.
        &quot;energySavingThermostatsException&quot;: &quot;A String&quot;, # Energy saving thermostats exception.
        &quot;greenBuildingDesign&quot;: True or False, # Output only. Green building design. True if BREEAM-* or LEED-* certified.
        &quot;greenBuildingDesignException&quot;: &quot;A String&quot;, # Output only. Green building design exception.
        &quot;independentOrganizationAuditsEnergyUse&quot;: True or False, # Independent organization audits energy use. The property conducts an energy audit at least every 5 years, the results of which are either verified by a third-party and/or published in external communications. An energy audit is a detailed assessment of the facility which provides recommendations to existing operations and procedures to improve energy efficiency, available incentives or rebates,and opportunities for improvements through renovations or upgrades. Examples of organizations that conduct credible third party audits include: Engie Impact, DNV GL (EU), Dexma, and local utility providers (they often provide energy and water audits).
        &quot;independentOrganizationAuditsEnergyUseException&quot;: &quot;A String&quot;, # Independent organization audits energy use exception.
      },
      &quot;sustainabilityCertifications&quot;: { # Sustainability certifications the hotel has been awarded. # Sustainability certifications the hotel has been awarded.
        &quot;breeamCertification&quot;: &quot;A String&quot;, # BREEAM certification.
        &quot;breeamCertificationException&quot;: &quot;A String&quot;, # BREEAM certification exception.
        &quot;ecoCertifications&quot;: [ # The eco certificates awarded to the hotel.
          { # An eco certificate awarded to the hotel.
            &quot;awarded&quot;: True or False, # Whether the eco certificate was awarded or not.
            &quot;awardedException&quot;: &quot;A String&quot;, # Awarded exception.
            &quot;ecoCertificate&quot;: &quot;A String&quot;, # Required. The eco certificate.
          },
        ],
        &quot;leedCertification&quot;: &quot;A String&quot;, # LEED certification.
        &quot;leedCertificationException&quot;: &quot;A String&quot;, # LEED certification exception.
      },
      &quot;sustainableSourcing&quot;: { # Sustainable sourcing practices implemented at the hotel. # Sustainable sourcing practices implemented at the hotel.
        &quot;ecoFriendlyToiletries&quot;: True or False, # Eco friendly toiletries. Soap, shampoo, lotion, and other toiletries provided for guests have a nationally or internationally recognized sustainability certification, such as USDA Organic, EU Organic, or cruelty-free.
        &quot;ecoFriendlyToiletriesException&quot;: &quot;A String&quot;, # Eco friendly toiletries exception.
        &quot;locallySourcedFoodAndBeverages&quot;: True or False, # Locally sourced food and beverages. Property sources locally in order to lower the environmental footprint from reduced transportation and to stimulate the local economy. Products produced less than 62 miles from the establishment are normally considered as locally produced.
        &quot;locallySourcedFoodAndBeveragesException&quot;: &quot;A String&quot;, # Locally sourced food and beverages exception.
        &quot;organicCageFreeEggs&quot;: True or False, # Organic cage free eggs. The property sources 100% certified organic and cage-free eggs (shell, liquid, and egg products). Cage-free means hens are able to walk, spread their wings and lay their eggs in nests).
        &quot;organicCageFreeEggsException&quot;: &quot;A String&quot;, # Organic cage free eggs exception.
        &quot;organicFoodAndBeverages&quot;: True or False, # Organic food and beverages. At least 25% of food and beverages, by spend, are certified organic. Organic means products that are certified to one of the organic standard listed in the IFOAM family of standards. Qualifying certifications include USDA Organic and EU Organic, among others.
        &quot;organicFoodAndBeveragesException&quot;: &quot;A String&quot;, # Organic food and beverages exception.
        &quot;responsiblePurchasingPolicy&quot;: True or False, # Responsible purchasing policy. The property has a responsible procurement policy in place. Responsible means integration of social, ethical, and/or environmental performance factors into the procurement process when selecting suppliers.
        &quot;responsiblePurchasingPolicyException&quot;: &quot;A String&quot;, # Responsible purchasing policy exception.
        &quot;responsiblySourcesSeafood&quot;: True or False, # Responsibly sources seafood. The property does not source seafood from the Monterey Bay Aquarium Seafood Watch &quot;avoid&quot; list, and must sustainably source seafood listed as &quot;good alternative,&quot; &quot;eco-certified,&quot; and &quot;best choice&quot;. The property has a policy outlining a commitment to source Marine Stewardship Council (MSC) and/or Aquaculture Stewardship Council (ASC) Chain of Custody certified seafood.
        &quot;responsiblySourcesSeafoodException&quot;: &quot;A String&quot;, # Responsibly sources seafood exception.
        &quot;veganMeals&quot;: True or False, # Vegan meals. The property provides vegan menu options for guests. Vegan food does not contain animal products or byproducts.
        &quot;veganMealsException&quot;: &quot;A String&quot;, # Vegan meals exception.
        &quot;vegetarianMeals&quot;: True or False, # Vegetarian meals. The property provides vegetarian menu options for guests. Vegetarian food does not contain animal products.
        &quot;vegetarianMealsException&quot;: &quot;A String&quot;, # Vegetarian meals exception.
      },
      &quot;wasteReduction&quot;: { # Waste reduction practices implemented at the hotel. # Waste reduction practices implemented at the hotel.
        &quot;compostableFoodContainersAndCutlery&quot;: True or False, # Compostable food containers and cutlery. 100% of food service containers and to-go cutlery are compostable, and reusable utensils are offered wherever possible. Compostable materials are capable of undergoing biological decomposition in a compost site, such that material is not visually distinguishable and breaks down into carbon dioxide, water, inorganic compounds, and biomass.
        &quot;compostableFoodContainersAndCutleryException&quot;: &quot;A String&quot;, # Compostable food containers and cutlery exception.
        &quot;compostsExcessFood&quot;: True or False, # Composts excess food. The property has a program and/or policy for diverting waste from landfill by composting food and yard waste, either through compost collection and off-site processing or on-site compost processing.
        &quot;compostsExcessFoodException&quot;: &quot;A String&quot;, # Composts excess food exception.
        &quot;donatesExcessFood&quot;: True or False, # Donates excess food. The property has a program and/or policy for diverting waste from landfill that may include efforts to donate for human consumption or divert food for animal feed.
        &quot;donatesExcessFoodException&quot;: &quot;A String&quot;, # Donates excess food exception.
        &quot;foodWasteReductionProgram&quot;: True or False, # Food waste reduction program. The property has established a food waste reduction and donation program, aiming to reduce food waste by half. These programs typically use tools such as the Hotel Kitchen Toolkit and others to track waste and measure progress.
        &quot;foodWasteReductionProgramException&quot;: &quot;A String&quot;, # Food waste reduction program exception.
        &quot;noSingleUsePlasticStraws&quot;: True or False, # No single use plastic straws. The property bans single-use plastic straws.
        &quot;noSingleUsePlasticStrawsException&quot;: &quot;A String&quot;, # No single use plastic straws exception.
        &quot;noSingleUsePlasticWaterBottles&quot;: True or False, # No single use plastic water bottles. The property bans single-use plastic water bottles.
        &quot;noSingleUsePlasticWaterBottlesException&quot;: &quot;A String&quot;, # No single use plastic water bottles exception.
        &quot;noStyrofoamFoodContainers&quot;: True or False, # No styrofoam food containers. The property eliminates the use of Styrofoam in disposable food service items.
        &quot;noStyrofoamFoodContainersException&quot;: &quot;A String&quot;, # No styrofoam food containers exception.
        &quot;recyclingProgram&quot;: True or False, # Recycling program. The property has a recycling program, aligned with LEED waste requirements, and a policy outlining efforts to send less than 50% of waste to landfill. The recycling program includes storage locations for recyclable materials, including mixed paper, corrugated cardboard, glass, plastics, and metals.
        &quot;recyclingProgramException&quot;: &quot;A String&quot;, # Recycling program exception.
        &quot;refillableToiletryContainers&quot;: True or False, # Refillable toiletry containers. The property has replaced miniature individual containers with refillable amenity dispensers for shampoo, conditioner, soap, and lotion.
        &quot;refillableToiletryContainersException&quot;: &quot;A String&quot;, # Refillable toiletry containers exception.
        &quot;safelyDisposesBatteries&quot;: True or False, # Safely disposes batteries. The property safely stores and disposes batteries.
        &quot;safelyDisposesBatteriesException&quot;: &quot;A String&quot;, # Safely disposes batteries exception.
        &quot;safelyDisposesElectronics&quot;: True or False, # Safely disposes electronics. The property has a reputable recycling program that keeps hazardous electronic parts and chemical compounds out of landfills, dumps and other unauthorized abandonment sites, and recycles/reuses applicable materials. (e.g. certified electronics recyclers).
        &quot;safelyDisposesElectronicsException&quot;: &quot;A String&quot;, # Safely disposes electronics exception.
        &quot;safelyDisposesLightbulbs&quot;: True or False, # Safely disposes lightbulbs. The property safely stores and disposes lightbulbs.
        &quot;safelyDisposesLightbulbsException&quot;: &quot;A String&quot;, # Safely disposes lightbulbs exception.
        &quot;safelyHandlesHazardousSubstances&quot;: True or False, # Safely handles hazardous substances. The property has a hazardous waste management program aligned wit GreenSeal and LEED requirements, and meets all regulatory requirements for hazardous waste disposal and recycling. Hazardous means substances that are classified as &quot;hazardous&quot; by an authoritative body (such as OSHA or DOT), are labeled with signal words such as &quot;Danger,&quot; &quot;Caution,&quot; &quot;Warning,&quot; or are flammable, corrosive, or ignitable. Requirements include: - The property shall maintain records of the efforts it has made to replace the hazardous substances it uses with less hazardous alternatives. - An inventory of the hazardous materials stored on-site. - Products intended for cleaning, dishwashing, laundry, and pool maintenance shall be stored in clearly labeled containers. These containers shall be checked regularly for leaks, and replaced a necessary. - Spill containment devices shall be installed to collect spills, drips, or leaching of chemicals.
        &quot;safelyHandlesHazardousSubstancesException&quot;: &quot;A String&quot;, # Safely handles hazardous substances exception.
        &quot;soapDonationProgram&quot;: True or False, # Soap donation program. The property participates in a soap donation program such as Clean the World or something similar.
        &quot;soapDonationProgramException&quot;: &quot;A String&quot;, # Soap donation program exception.
        &quot;toiletryDonationProgram&quot;: True or False, # Toiletry donation program. The property participates in a toiletry donation program such as Clean the World or something similar.
        &quot;toiletryDonationProgramException&quot;: &quot;A String&quot;, # Toiletry donation program exception.
        &quot;waterBottleFillingStations&quot;: True or False, # Water bottle filling stations. The property offers water stations throughout the building for guest use.
        &quot;waterBottleFillingStationsException&quot;: &quot;A String&quot;, # Water bottle filling stations exception.
      },
      &quot;waterConservation&quot;: { # Water conservation practices implemented at the hotel. # Water conservation practices implemented at the hotel.
        &quot;independentOrganizationAuditsWaterUse&quot;: True or False, # Independent organization audits water use. The property conducts a water conservation audit every 5 years, the results of which are either verified by a third-party and/or published in external communications. A water conservation audit is a detailed assessment of the facility, providing recommendations to existing operations and procedures to improve water efficiency, available incentives or rebates, and opportunities for improvements through renovations or upgrades. Examples of organizations who conduct credible third party audits include: Engie Impact, and local utility providers (they often provide energy and water audits).
        &quot;independentOrganizationAuditsWaterUseException&quot;: &quot;A String&quot;, # Independent organization audits water use exception.
        &quot;linenReuseProgram&quot;: True or False, # Linen reuse program. The property offers a linen reuse program.
        &quot;linenReuseProgramException&quot;: &quot;A String&quot;, # Linen reuse program exception.
        &quot;towelReuseProgram&quot;: True or False, # Towel reuse program. The property offers a towel reuse program.
        &quot;towelReuseProgramException&quot;: &quot;A String&quot;, # Towel reuse program exception.
        &quot;waterSavingShowers&quot;: True or False, # Water saving showers. All of the property&#x27;s guest rooms have shower heads that use no more than 2.0 gallons per minute (gpm).
        &quot;waterSavingShowersException&quot;: &quot;A String&quot;, # Water saving showers exception.
        &quot;waterSavingSinks&quot;: True or False, # Water saving sinks. All of the property&#x27;s guest rooms have bathroom faucets that use a maximum of 1.5 gallons per minute (gpm), public restroom faucets do not exceed 0.5 gpm, and kitchen faucets (excluding faucets used exclusively for filling operations) do not exceed 2.2 gpm.
        &quot;waterSavingSinksException&quot;: &quot;A String&quot;, # Water saving sinks exception.
        &quot;waterSavingToilets&quot;: True or False, # Water saving toilets. All of the property&#x27;s toilets use 1.6 gallons per flush, or less.
        &quot;waterSavingToiletsException&quot;: &quot;A String&quot;, # Water saving toilets exception.
      },
    },
    &quot;transportation&quot;: { # Vehicles or vehicular services facilitated or owned by the property. # Vehicles or vehicular services facilitated or owned by the property.
      &quot;airportShuttle&quot;: True or False, # Airport shuttle. The hotel provides guests with a chauffeured van or bus to and from the airport. Can be free or for a fee. Guests may share the vehicle with other guests unknown to them. Applies if the hotel has a third-party shuttle service (office/desk etc.) within the hotel. As long as hotel provides this service, it doesn&#x27;t matter if it&#x27;s directly with them or a third party they work with. Does not apply if guest has to coordinate with an entity outside/other than the hotel.
      &quot;airportShuttleException&quot;: &quot;A String&quot;, # Airport shuttle exception.
      &quot;carRentalOnProperty&quot;: True or False, # Car rental on property. A branch of a rental car company with a processing desk in the hotel. Available cars for rent may be awaiting at the hotel or in a nearby lot.
      &quot;carRentalOnPropertyException&quot;: &quot;A String&quot;, # Car rental on property exception.
      &quot;freeAirportShuttle&quot;: True or False, # Free airport shuttle. Airport shuttle is free to guests. Must be free to all guests without any conditions.
      &quot;freeAirportShuttleException&quot;: &quot;A String&quot;, # Free airport shuttle exception.
      &quot;freePrivateCarService&quot;: True or False, # Free private car service. Private chauffeured car service is free to guests.
      &quot;freePrivateCarServiceException&quot;: &quot;A String&quot;, # Free private car service exception.
      &quot;localShuttle&quot;: True or False, # Local shuttle. A car, van or bus provided by the hotel to transport guests to destinations within a specified range of distance around the hotel. Usually shopping and/or convention centers, downtown districts, or beaches. Can be free or for a fee.
      &quot;localShuttleException&quot;: &quot;A String&quot;, # Local shuttle exception.
      &quot;privateCarService&quot;: True or False, # Private car service. Hotel provides a private chauffeured car to transport guests to destinations. Passengers in the car are either alone or are known to one another and have requested the car together. Service can be free or for a fee and travel distance is usually limited to a specific range. Not a taxi.
      &quot;privateCarServiceException&quot;: &quot;A String&quot;, # Private car service exception.
      &quot;transfer&quot;: True or False, # Transfer. Hotel provides a shuttle service or car service to take guests to and from the nearest airport or train station. Can be free or for a fee. Guests may share the vehicle with other guests unknown to them.
      &quot;transferException&quot;: &quot;A String&quot;, # Transfer exception.
    },
    &quot;wellness&quot;: { # Guest facilities at the property to promote or maintain health, beauty, and fitness. # Guest facilities at the property to promote or maintain health, beauty, and fitness.
      &quot;doctorOnCall&quot;: True or False, # Doctor on call. The hotel has a contract with a medical professional who provides services to hotel guests should they fall ill during their stay. The doctor may or may not have an on-site office or be at the hotel at all times.
      &quot;doctorOnCallException&quot;: &quot;A String&quot;, # Doctor on call exception.
      &quot;ellipticalMachine&quot;: True or False, # Elliptical machine. An electric, stationary fitness machine with pedals that simulates climbing, walking or running and provides a user-controlled range of speeds and tensions. May not have arm-controlled levers to work out the upper body as well. Commonly found in a gym, fitness room, health center, or health club.
      &quot;ellipticalMachineException&quot;: &quot;A String&quot;, # Elliptical machine exception.
      &quot;fitnessCenter&quot;: True or False, # Fitness center. A room or building at the hotel containing equipment to promote physical activity, such as treadmills, elliptical machines, stationary bikes, weight machines, free weights, and/or stretching mats. Use of the fitness center can be free or for a fee. May or may not be staffed. May or may not offer instructor-led classes in various styles of physical conditioning. May or may not be open 24/7. May or may not include locker rooms and showers. Also known as health club, gym, fitness room, health center.
      &quot;fitnessCenterException&quot;: &quot;A String&quot;, # Fitness center exception.
      &quot;freeFitnessCenter&quot;: True or False, # Free fitness center. Guests may use the fitness center for free.
      &quot;freeFitnessCenterException&quot;: &quot;A String&quot;, # Free fitness center exception.
      &quot;freeWeights&quot;: True or False, # Free weights. Individual handheld fitness equipment of varied weights used for upper body strength training or bodybuilding. Also known as barbells, dumbbells, or kettlebells. Often stored on a rack with the weights arranged from light to heavy. Commonly found in a gym, fitness room, health center, or health club.
      &quot;freeWeightsException&quot;: &quot;A String&quot;, # Free weights exception.
      &quot;massage&quot;: True or False, # Massage. A service provided by a trained massage therapist involving the physical manipulation of a guest&#x27;s muscles in order to achieve relaxation or pain relief.
      &quot;massageException&quot;: &quot;A String&quot;, # Massage exception.
      &quot;salon&quot;: True or False, # Salon. A room at the hotel where professionals provide hair styling services such as shampooing, blow drying, hair dos, hair cutting and hair coloring. Also known as hairdresser or beauty salon.
      &quot;salonException&quot;: &quot;A String&quot;, # Salon exception.
      &quot;sauna&quot;: True or False, # Sauna. A wood-paneled room heated to a high temperature where guests sit on built-in wood benches for the purpose of perspiring and relaxing their muscles. Can be dry or slightly wet heat. Not a steam room.
      &quot;saunaException&quot;: &quot;A String&quot;, # Sauna exception.
      &quot;spa&quot;: True or False, # Spa. A designated area, room or building at the hotel offering health and beauty treatment through such means as steam baths, exercise equipment, and massage. May also offer facials, nail care, and hair care. Services are usually available by appointment and for an additional fee. Does not apply if hotel only offers a steam room; must offer other beauty and/or health treatments as well.
      &quot;spaException&quot;: &quot;A String&quot;, # Spa exception.
      &quot;treadmill&quot;: True or False, # Treadmill. An electric stationary fitness machine that simulates a moving path to promote walking or running within a range of user-controlled speeds and inclines. Also known as running machine. Commonly found in a gym, fitness room, health center, or health club.
      &quot;treadmillException&quot;: &quot;A String&quot;, # Treadmill exception.
      &quot;weightMachine&quot;: True or False, # Weight machine. Non-electronic fitness equipment designed for the user to target the exertion of different muscles. Usually incorporates a padded seat, a stack of flat weights and various bars and pulleys. May be designed for toning a specific part of the body or may involve different user-controlled settings, hardware and pulleys so as to provide an overall workout in one machine. Commonly found in a gym, fitness center, fitness room, or health club.
      &quot;weightMachineException&quot;: &quot;A String&quot;, # Weight machine exception.
    },
  },
}</pre>
</div>

</body></html>