This file defines the schema for the TRAVEL vertical in the Engage SDK. { "client": "com.google.android.engage.travel.service.AppEngageTravelClient", "clusterTypes": [ "TYPE_RECOMMENDATION", "TYPE_FEATURED", "TYPE_RESERVATION", "TYPE_CONTINUE_SEARCH" ], "entities": { "EventEntity": { "package": "com.google.android.engage.travel.datamodel.EventEntity", "fields": { "entityId": { "type": "String", "requirement": "Optional", "setter": "setEntityId(String)", "getter": "getEntityId()" }, "posterImages": { "type": "List", "requirement": "Required", "adder": "addPosterImage(Image)", "getter": "getPosterImages()", "adderAll": "addPosterImages(List)" }, "actionLinkUri": { "type": "Uri", "requirement": "Required", "setter": "setActionLinkUri(Uri)", "getter": "getActionLinkUri()" }, "title": { "type": "@NonNull String", "requirement": "Required", "setter": "setTitle(@NonNull String)", "getter": "getTitle()" }, "startTime": { "type": "Long", "requirement": "Required", "setter": "setStartTime(Long)", "getter": "getStartTime()" }, "localizedStartTime": { "type": "LocalizedTimestamp", "requirement": "Required", "setter": "setLocalizedStartTime(LocalizedTimestamp)", "getter": "getLocalizedStartTime()" }, "eventMode": { "type": "@EventMode int", "requirement": "Required", "setter": "setEventMode(@EventMode int)", "getter": "getEventMode()" }, "locations": { "type": "Address", "requirement": "Required" }, "endTime": { "type": "Long", "requirement": "Optional", "setter": "setEndTime(Long)", "getter": "getEndTime()" }, "localizedEndTime": { "type": "LocalizedTimestamp", "requirement": "Optional", "setter": "setLocalizedEndTime(LocalizedTimestamp)", "getter": "getLocalizedEndTime()" }, "description": { "type": "String", "requirement": "Optional", "setter": "setDescription(String)", "getter": "getDescription()" }, "subtitles": { "type": "List", "requirement": "Optional", "adder": "addSubtitle(String)", "adderAll": "addSubtitles(List)" }, "badges": { "type": "List", "requirement": "Optional", "adder": "addBadge(Badge)", "adderAll": "addBadges(List)" }, "price": { "type": "Price", "requirement": "Optional", "setter": "setPrice(Price)", "getter": "getPrice()", "requiredFor": [ "Required if strikethrough price is provided" ] }, "priceCallout": { "type": "String", "requirement": "Optional", "setter": "setPriceCallout(String)", "getter": "getPriceCallout()" }, "contentCategories": { "type": "List<@EligibleContentCategory int>", "requirement": "Optional", "adder": "addContentCategory(@EligibleContentCategory int)", "adderAll": "addContentCategories(List)" }, "displayTimeWindows": { "type": "List", "requirement": "Optional", "adder": "addDisplayTimeWindow(DisplayTimeWindow)", "getter": "getDisplayTimeWindows()" }, "allDisplayTimeWindows": { "type": "List>", "requirement": "Optional", "adder": "addAllDisplayTimeWindow(DisplayTimeWindow)", "adderAll": "addAllDisplayTimeWindow(List)" }, "location": { "requirement": "Required", "setter": "setLocation(Address)", "type": "Address", "getter": "getLocation()", "requiredFor": [ "Required if strikethrough price is provided" ] } } }, "LodgingEntity": { "package": "com.google.android.engage.travel.datamodel.LodgingEntity", "fields": { "entityId": { "type": "String", "requirement": "Optional", "setter": "setEntityId(String)", "getter": "getEntityId()" }, "posterImages": { "type": "List", "requirement": "Required", "adder": "addPosterImage(Image)", "getter": "getPosterImages()", "adderAll": "addPosterImages(List)" }, "actionLinkUri": { "type": "Uri", "requirement": "Required", "setter": "setActionLinkUri(Uri)", "getter": "getActionLinkUri()" }, "title": { "type": "String", "requirement": "Required", "setter": "setTitle(String)", "getter": "getTitle()" }, "locations": { "type": "Address", "requirement": "Required" }, "price": { "type": "Price", "requirement": "Optional", "setter": "setPrice(Price)", "getter": "getPrice()", "requiredFor": [ "Required if strikethrough price is provided" ] }, "priceCallout": { "type": "String", "requirement": "Optional", "setter": "setPriceCallout(String)", "getter": "getPriceCallout()" }, "badges": { "type": "List", "requirement": "Optional", "adder": "addBadge(Badge)", "adderAll": "addBadges(List)" }, "description": { "type": "String", "requirement": "Optional", "setter": "setDescription(String)", "getter": "getDescription()" }, "subtitles": { "type": "List", "requirement": "Optional", "adder": "addSubtitle(String)", "adderAll": "addSubtitles(List)" }, "availabilityTimeWindow": { "type": "AvailabilityTimeWindow", "requirement": "Optional", "setter": "setAvailabilityTimeWindow(AvailabilityTimeWindow)", "getter": "getAvailabilityTimeWindow()" }, "rating": { "type": "Rating", "requirement": "Optional", "setter": "setRating(Rating)", "getter": "getRating()" }, "displayTimeWindows": { "type": "List", "requirement": "Optional", "adder": "addDisplayTimeWindow(DisplayTimeWindow)", "getter": "getDisplayTimeWindows()" }, "allDisplayTimeWindows": { "type": "List>", "requirement": "Optional", "adder": "addAllDisplayTimeWindow(DisplayTimeWindow)", "adderAll": "addAllDisplayTimeWindow(List)" }, "location": { "requirement": "Required", "setter": "setLocation(Address)", "type": "Address", "getter": "getLocation()", "requiredFor": [ "Required if strikethrough price is provided" ] } } }, "PointOfInterestEntity": { "package": "com.google.android.engage.travel.datamodel.PointOfInterestEntity", "fields": { "entityId": { "type": "String", "requirement": "Optional", "setter": "setEntityId(String)", "getter": "getEntityId()" }, "posterImages": { "type": "List", "requirement": "Required", "adder": "addPosterImage(Image)", "getter": "getPosterImages()", "adderAll": "addPosterImages(List)" }, "actionLinkUri": { "type": "Uri", "requirement": "Required", "setter": "setActionLinkUri(Uri)", "getter": "getActionLinkUri()" }, "title": { "type": "String", "requirement": "Required", "setter": "setTitle(String)", "getter": "getTitle()" }, "locations": { "type": "Address", "requirement": "Required" }, "availabilityTimeWindow": { "type": "AvailabilityTimeWindow", "requirement": "Optional", "setter": "setAvailabilityTimeWindow(AvailabilityTimeWindow)", "getter": "getAvailabilityTimeWindow()" }, "badges": { "type": "List", "requirement": "Optional", "adder": "addBadge(Badge)", "adderAll": "addBadges(List)" }, "description": { "type": "String", "requirement": "Optional", "setter": "setDescription(String)", "getter": "getDescription()" }, "subtitles": { "type": "List", "requirement": "Optional", "adder": "addSubtitle(String)", "adderAll": "addSubtitles(List)" }, "rating": { "type": "Rating", "requirement": "Optional", "setter": "setRating(Rating)", "getter": "getRating()" }, "price": { "type": "Price", "requirement": "Optional", "setter": "setPrice(Price)", "getter": "getPrice()", "requiredFor": [ "Required if strikethrough price is provided" ] }, "priceCallout": { "type": "String", "requirement": "Optional", "setter": "setPriceCallout(String)", "getter": "getPriceCallout()" }, "contentCategories": { "type": "List<@EligibleContentCategory int>", "requirement": "Optional", "adder": "addContentCategory(@EligibleContentCategory int)", "adderAll": "addContentCategories(List)" }, "lastEngagementTime": { "type": "Instant", "requirement": "Optional", "setter": "setLastEngagementTime(Instant)", "getter": "getLastEngagementTime()", "requiredFor": [ "ContinueSearchCluster" ] }, "displayTimeWindows": { "type": "List", "requirement": "Optional", "adder": "addDisplayTimeWindow(DisplayTimeWindow)", "getter": "getDisplayTimeWindows()" }, "allDisplayTimeWindows": { "type": "List>", "requirement": "Optional", "adder": "addAllDisplayTimeWindow(DisplayTimeWindow)", "adderAll": "addAllDisplayTimeWindow(List)" }, "location": { "requirement": "Required", "setter": "setLocation(Address)", "type": "Address", "getter": "getLocation()", "requiredFor": [ "RecommendationCluster" ] } } }, "LodgingReservationEntity": { "package": "com.google.android.engage.travel.datamodel.LodgingReservationEntity", "fields": { "entityId": { "type": "String", "requirement": "Optional", "setter": "setEntityId(String)", "getter": "getEntityId()" }, "posterImages": { "type": "List", "requirement": "Required", "adder": "addPosterImage(Image)", "getter": "getPosterImages()", "adderAll": "addPosterImages(List)" }, "actionUri": { "type": "Uri", "requirement": "Required", "setter": "setActionUri(Uri)", "getter": "getActionUri()" }, "title": { "type": "String", "requirement": "Required", "setter": "setTitle(String)", "getter": "getTitle()" }, "description": { "type": "String", "requirement": "Optional", "setter": "setDescription(String)", "getter": "getDescription()" }, "subtitles": { "type": "List", "requirement": "Optional", "adder": "addSubtitle(String)", "adderAll": "addSubtitles(List)" }, "address": { "type": "Address", "requirement": "Required", "setter": "setAddress(Address)", "getter": "getAddress()" }, "checkInTime": { "type": "Long", "requirement": "Required", "setter": "setCheckInTime(long)", "getter": "getCheckInTime()" }, "localizedCheckInTime": { "type": "LocalizedTimestamp", "requirement": "Required", "setter": "setLocalizedCheckInTime(LocalizedTimestamp)", "getter": "getLocalizedCheckInTime()" }, "checkOutTime": { "type": "Long", "requirement": "Required", "setter": "setCheckOutTime(long)", "getter": "getCheckOutTime()" }, "localizedCheckOutTime": { "type": "LocalizedTimestamp", "requirement": "Required", "setter": "setLocalizedCheckOutTime(LocalizedTimestamp)", "getter": "getLocalizedCheckOutTime()" }, "price": { "type": "Price", "requirement": "Optional", "setter": "setPrice(Price)", "getter": "getPrice()", "requiredFor": [ "Required if strikethrough price is provided" ] }, "priceCallout": { "type": "String", "requirement": "Optional", "setter": "setPriceCallout(String)", "getter": "getPriceCallout()" }, "rating": { "type": "Rating", "requirement": "Optional", "setter": "setRating(Rating)", "getter": "getRating()", "requiredFor": [ "Required if strikethrough price is provided", "Mutually required with other rating fields" ] }, "reservationId": { "type": "String", "requirement": "Optional", "setter": "setReservationId(String)", "getter": "getReservationId()" }, "displayTimeWindows": { "type": "List", "requirement": "Optional", "adder": "addDisplayTimeWindow(DisplayTimeWindow)", "getter": "getDisplayTimeWindows()" }, "allDisplayTimeWindows": { "type": "List>", "requirement": "Optional", "adder": "addAllDisplayTimeWindow(DisplayTimeWindow)", "adderAll": "addAllDisplayTimeWindow(List)" } } }, "EventReservationEntity": { "package": "com.google.android.engage.travel.datamodel.EventReservationEntity", "fields": { "entityId": { "type": "String", "requirement": "Optional", "setter": "setEntityId(String)", "getter": "getEntityId()" }, "posterImages": { "type": "List", "requirement": "Required", "adder": "addPosterImage(Image)", "getter": "getPosterImages()", "adderAll": "addPosterImages(List)" }, "actionUri": { "type": "Uri", "requirement": "Required", "setter": "setActionUri(Uri)", "getter": "getActionUri()" }, "title": { "type": "String", "requirement": "Required", "setter": "setTitle(String)", "getter": "getTitle()" }, "description": { "type": "String", "requirement": "Optional", "setter": "setDescription(String)", "getter": "getDescription()" }, "subtitles": { "type": "List", "requirement": "Optional", "adder": "addSubtitle(String)", "adderAll": "addSubtitles(List)" }, "startTime": { "type": "Long", "requirement": "Required", "setter": "setStartTime(Long)", "getter": "getStartTime()" }, "localizedStartTime": { "type": "LocalizedTimestamp", "requirement": "Required", "setter": "setLocalizedStartTime(LocalizedTimestamp)", "getter": "getLocalizedStartTime()" }, "eventMode": { "type": "@EventMode int", "requirement": "Required", "setter": "setEventMode(@EventMode int)", "getter": "getEventMode()" }, "location": { "type": "Address", "requirement": "Required", "setter": "setLocation(Address)", "getter": "getLocation()" }, "endTime": { "type": "Long", "requirement": "Optional", "setter": "setEndTime(Long)", "getter": "getEndTime()" }, "localizedEndTime": { "type": "LocalizedTimestamp", "requirement": "Optional", "setter": "setLocalizedEndTime(LocalizedTimestamp)", "getter": "getLocalizedEndTime()" }, "serviceProvider": { "type": "ServiceProvider", "requirement": "Optional", "setter": "setServiceProvider(ServiceProvider)", "getter": "getServiceProvider()" }, "badges": { "type": "List", "requirement": "Optional", "adder": "addBadge(Badge)", "adderAll": "addBadges(List)" }, "price": { "type": "Price", "requirement": "Optional", "setter": "setPrice(Price)", "getter": "getPrice()", "requiredFor": [ "Required if strikethrough price is provided" ] }, "priceCallout": { "type": "String", "requirement": "Optional", "setter": "setPriceCallout(String)", "getter": "getPriceCallout()" }, "rating": { "type": "Rating", "requirement": "Optional", "setter": "setRating(Rating)", "getter": "getRating()", "requiredFor": [ "Required if strikethrough price is provided" ] }, "contentCategories": { "type": "List<@EligibleContentCategory int>", "requirement": "Optional", "adder": "addContentCategory(@EligibleContentCategory int)", "adderAll": "addContentCategories(List)" }, "reservationId": { "type": "String", "requirement": "Optional", "setter": "setReservationId(String)", "getter": "getReservationId()" }, "displayTimeWindows": { "type": "List", "requirement": "Optional", "adder": "addDisplayTimeWindow(DisplayTimeWindow)", "getter": "getDisplayTimeWindows()" }, "allDisplayTimeWindows": { "type": "List>", "requirement": "Optional", "adder": "addAllDisplayTimeWindow(DisplayTimeWindow)", "adderAll": "addAllDisplayTimeWindow(List)" } } }, "TransportationReservationEntity": { "package": "com.google.android.engage.travel.datamodel.TransportationReservationEntity", "fields": { "entityId": { "type": "String", "requirement": "Optional", "setter": "setEntityId(String)", "getter": "getEntityId()" }, "posterImages": { "type": "List", "requirement": "Required", "adder": "addPosterImage(Image)", "getter": "getPosterImages()", "adderAll": "addPosterImages(List)" }, "actionUri": { "type": "Uri", "requirement": "Required", "setter": "setActionUri(Uri)", "getter": "getActionUri()" }, "title": { "type": "String", "requirement": "Required", "setter": "setTitle(String)", "getter": "getTitle()" }, "description": { "type": "String", "requirement": "Optional", "setter": "setDescription(String)", "getter": "getDescription()" }, "subtitles": { "type": "List", "requirement": "Optional", "adder": "addSubtitle(String)", "adderAll": "addSubtitles(List)" }, "departureTime": { "type": "Long", "requirement": "Required", "setter": "setDepartureTime(Long)", "getter": "getDepartureTime()" }, "localizedDepartureTime": { "type": "LocalizedTimestamp", "requirement": "Required", "setter": "setLocalizedDepartureTime(LocalizedTimestamp)", "getter": "getLocalizedDepartureTime()" }, "arrivalTime": { "type": "Long", "requirement": "Required", "setter": "setArrivalTime(Long)", "getter": "getArrivalTime()" }, "localizedArrivalTime": { "type": "LocalizedTimestamp", "requirement": "Required", "setter": "setLocalizedArrivalTime(LocalizedTimestamp)", "getter": "getLocalizedArrivalTime()" }, "transportationType": { "type": "@TransportationType int", "requirement": "Required", "setter": "setTransportationType(@TransportationType int)", "getter": "getTransportationType()" }, "departureLocation": { "type": "Address", "requirement": "Optional", "setter": "setDepartureLocation(Address)", "getter": "getDepartureLocation()" }, "arrivalLocation": { "type": "Address", "requirement": "Optional", "setter": "setArrivalLocation(Address)", "getter": "getArrivalLocation()" }, "serviceProvider": { "type": "ServiceProvider", "requirement": "Optional", "setter": "setServiceProvider(ServiceProvider)", "getter": "getServiceProvider()" }, "price": { "type": "Price", "requirement": "Optional", "setter": "setPrice(Price)", "getter": "getPrice()", "requiredFor": [ "Required if strikethrough price is provided" ] }, "priceCallout": { "type": "String", "requirement": "Optional", "setter": "setPriceCallout(String)", "getter": "getPriceCallout()" }, "transportationNumber": { "type": "String", "requirement": "Optional", "setter": "setTransportationNumber(String)", "getter": "getTransportationNumber()" }, "boardingTime": { "type": "Long", "requirement": "Optional", "setter": "setBoardingTime(Long)", "getter": "getBoardingTime()" }, "localizedBoardingTime": { "type": "LocalizedTimestamp", "requirement": "Required", "setter": "setLocalizedBoardingTime(LocalizedTimestamp)", "getter": "getLocalizedBoardingTime()" }, "reservationId": { "type": "String", "requirement": "Optional", "setter": "setReservationId(String)", "getter": "getReservationId()" }, "displayTimeWindows": { "type": "List", "requirement": "Optional", "adder": "addDisplayTimeWindow(DisplayTimeWindow)", "getter": "getDisplayTimeWindows()" }, "allDisplayTimeWindows": { "type": "List>", "requirement": "Optional", "adder": "addAllDisplayTimeWindow(DisplayTimeWindow)", "adderAll": "addAllDisplayTimeWindow(List)" } } }, "VehicleRentalReservationEntity": { "package": "com.google.android.engage.travel.datamodel.VehicleRentalReservationEntity", "fields": { "entityId": { "type": "String", "requirement": "Optional", "setter": "setEntityId(String)", "getter": "getEntityId()" }, "posterImages": { "type": "List", "requirement": "Required", "adder": "addPosterImage(Image)", "getter": "getPosterImages()", "adderAll": "addPosterImages(List)" }, "actionUri": { "type": "Uri", "requirement": "Required", "setter": "setActionUri(Uri)", "getter": "getActionUri()" }, "title": { "type": "String", "requirement": "Required", "setter": "setTitle(String)", "getter": "getTitle()" }, "description": { "type": "String", "requirement": "Optional", "setter": "setDescription(String)", "getter": "getDescription()" }, "subtitles": { "type": "List", "requirement": "Optional", "adder": "addSubtitle(String)", "adderAll": "addSubtitles(List)" }, "pickupTime": { "type": "Long", "requirement": "Required", "setter": "setPickupTime(Long)", "getter": "getPickupTime()" }, "localizedPickupTime": { "type": "LocalizedTimestamp", "requirement": "Required", "setter": "setLocalizedPickupTime(LocalizedTimestamp)", "getter": "getLocalizedPickupTime()" }, "returnTime": { "type": "Long", "requirement": "Optional", "setter": "setReturnTime(Long)", "getter": "getReturnTime()" }, "localizedReturnTime": { "type": "LocalizedTimestamp", "requirement": "Optional", "setter": "setLocalizedReturnTime(LocalizedTimestamp)", "getter": "getLocalizedReturnTime()" }, "pickupAddress": { "type": "Address", "requirement": "Optional", "setter": "setPickupAddress(Address)", "getter": "getPickupAddress()" }, "returnAddress": { "type": "Address", "requirement": "Optional", "setter": "setReturnAddress(Address)", "getter": "getReturnAddress()" }, "serviceProvider": { "type": "ServiceProvider", "requirement": "Optional", "setter": "setServiceProvider(ServiceProvider)", "getter": "getServiceProvider()" }, "price": { "type": "Price", "requirement": "Optional", "setter": "setPrice(Price)", "getter": "getPrice()", "requiredFor": [ "Required if strikethrough price is provided" ] }, "priceCallout": { "type": "String", "requirement": "Optional", "setter": "setPriceCallout(String)", "getter": "getPriceCallout()" }, "confirmationId": { "type": "String", "requirement": "Optional", "setter": "setConfirmationId(String)", "getter": "getConfirmationId()" }, "displayTimeWindows": { "type": "List", "requirement": "Optional", "adder": "addDisplayTimeWindow(DisplayTimeWindow)", "getter": "getDisplayTimeWindows()" }, "allDisplayTimeWindows": { "type": "List>", "requirement": "Optional", "adder": "addAllDisplayTimeWindow(DisplayTimeWindow)", "adderAll": "addAllDisplayTimeWindow(List)" } } } }, "methods": { "isServiceAvailable": null, "publishRecommendationClusters": "PublishRecommendationClustersRequest", "publishFeaturedCluster": "PublishFeaturedClusterRequest", "publishUserAccountManagementRequest": "PublishUserAccountManagementRequest", "updatePublishStatus": "PublishStatusRequest", "publishContinueSearchCluster": "PublishContinueSearchClusterRequest", "publishReservationCluster": "PublishReservationClusterRequest", "deleteRecommendationsClusters": "DeleteClustersRequest", "deleteFeaturedCluster": "DeleteClustersRequest", "deleteUserManagementCluster": "DeleteClustersRequest", "deleteContinueSearchCluster": "DeleteClustersRequest", "deleteReservationCluster": "DeleteClustersRequest" }, "clusters": { "ContinueSearchCluster": { "package": "com.google.android.engage.travel.datamodel.ContinueSearchCluster", "fields": { "pointOfInterestEntities": { "type": "List", "requirement": "Required", "adder": "addPointOfInterestEntity(PointOfInterestEntity)" } } }, "ReservationCluster": { "package": "com.google.android.engage.travel.datamodel.ReservationCluster", "fields": { "lodgingReservationEntities": { "type": "List", "requirement": "Optional", "adder": "addLodgingReservationEntity(LodgingReservationEntity)" }, "vehicleRentalReservationEntities": { "type": "List", "requirement": "Optional", "adder": "addVehicleRentalReservationEntity(VehicleRentalReservationEntity)" }, "transportationReservationEntities": { "type": "List", "requirement": "Optional", "adder": "addTransportationReservationEntity(TransportationReservationEntity)" }, "eventReservationEntities": { "type": "List", "requirement": "Optional", "adder": "addEventReservationEntity(EventReservationEntity)" }, "restaurantReservationEntities": { "type": "List", "requirement": "Optional", "adder": "addRestaurantReservationEntity(RestaurantReservationEntity)" } } } }, "intents": { "ACTION_PUBLISH_CONTINUE_SEARCH_CLUSTER": "com.google.android.engage.action.travel.PUBLISH_CONTINUE_SEARCH", "ACTION_PUBLISH_RESERVATION_CLUSTER": "com.google.android.engage.action.travel.PUBLISH_RESERVATION" } }