// // Copyright 2025 HotelEngine, Inc., d/b/a Engine // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at: // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. // syntax = "proto3"; package engine.book.lodging.v1; import "protoc-gen-openapiv2/options/annotations.proto"; import "engine/common/v1/loyalty.proto"; option go_package = "engine.com/engine-partner-api/v1/book/lodging"; option java_package = "com.engine.book.v1.lodging"; option java_multiple_files = true; // Details of the guests staying within a single room during the stay. message RoomGuests { option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_schema) = { json_schema: { title: "Book_Lodging_RoomGuests_v1" } }; // The primary guest of a room .engine.book.lodging.v1.GuestWithLoyalty primary_guest = 1; // Any additional names you wish to be able to check-in to the room without the [RoomGuests.primary_guest] present. // Not all Properties allow additional guests to check-in. // The primary guest should not be included in the `additional_guests` field. repeated .engine.book.lodging.v1.Guest additional_guests = 2; } // A traveler who may be awarded Loyalty Rewards for the stay. message GuestWithLoyalty { option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_schema) = { json_schema: { title: "Book_Lodging_GuestWithLoyalty_v1" } }; // The traveler details. .engine.book.lodging.v1.Guest guest = 1; // The identifier to provide to the Property during Booking. // Invalid identifiers may result in Booking failures with some Properties. // Not all Offers include loyalty rewards. .engine.common.v1.LodgingLoyaltyProgramIdentifier loyalty_program_identifier = 2; } // A traveler for the stay. message Guest { option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_schema) = { json_schema: { title: "Book_Lodging_Guest_v1" } }; // The guest's family name or last name. string family_name = 1; // The guest's given name or first name. string given_name = 2; // True if the guest is an adult. bool is_adult = 3; }