Index
FoodOrderingService(interface)MenuService(interface)AgentAudio(message)AgentEvent(message)AgentText(message)AudioInput(message)Availability(message)Availability.DaypartAvailability(message)Availability.Status(enum)BatchGetMenuEntitiesRequest(message)BatchGetMenuEntitiesResponse(message)BidiProcessOrderRequest(message)BidiProcessOrderResponse(message)Brand(message)ClientExecutionRequest(message)ClientExecutionResult(message)Config(message)CreateBrandRequest(message)CreateMenuRequest(message)CreateStoreRequest(message)DateRange(message)DeleteBrandRequest(message)DeleteMenuRequest(message)DeleteStoreRequest(message)EndSession(message)EndSession.EndType(enum)EventInput(message)EventInput.ClientEscalationEvent(message)EventInput.CrewInterjectionEvent(message)EventInput.CustomizedInputEvent(message)EventInput.DriveOffEvent(message)EventInput.OrderStateUpdateEvent(message)FinalizeOrderRequest(message)FinalizeOrderResponse(message)FulfillmentMethod(enum)GetBrandRequest(message)GetMenuRequest(message)GetStoreRequest(message)Image(message)InterruptionSignal(message)Item(message)ItemIntegrationAttributes(message)ListBrandsRequest(message)ListBrandsResponse(message)ListMenusRequest(message)ListMenusResponse(message)ListStoresRequest(message)ListStoresResponse(message)LoyaltyAmount(message)LoyaltyInfo(message)Menu(message)MenuCategory(message)MenuLabel(message)Modifier(message)ModifierAction(message)ModifierConstraints(message)ModifierGroup(message)ModifierGroupIntegrationAttributes(message)ModifierGroupReference(message)ModifierGroupReference.DefaultModifierSelection(message)ModifierIntegrationAttributes(message)Order(message)OrderFulfillment(message)OrderItem(message)OrderMetadata(message)OrderModifier(message)OrderModifierAction(message)OrderModifierGroup(message)OrderType(enum)PastOrder(message)PaymentInfo(message)RecommendedOrder(message)RecommendedOrders(message)RestartOrder(message)Schedule(message)SpeechRecognition(message)Store(message)StoreHours(message)StoreMetadata(message)StoreMetadata.Address(message)StoreMetadata.Daypart(message)StoreStatus(message)StoreStatus.State(enum)SubmitOrderRequest(message)SubmitOrderResponse(message)SuggestedItem(message)SuggestedItems(message)SuggestedModifier(message)SuggestedModifiers(message)SuggestedOptions(message)TextInput(message)TimeOfDayRange(message)TurnCompleted(message)UpdateBrandRequest(message)UpdateStoreRequest(message)UpdatedOrderState(message)UserInfo(message)
FoodOrderingService
FoodOrderingService provides an API for food ordering agents.
| BidiProcessOrder |
|---|
|
A bidirectional streaming API that processes continuous client inputs across multiple modalities (e.g., text, audio) and generates real-time multimodal output streams.
|
MenuService
MenuService provides APIs to manage brand, store and menu related resources.
| BatchGetMenuEntities |
|---|
|
Batch gets entities for a menu.
|
| CreateBrand |
|---|
|
Creates a brand.
|
| CreateMenu |
|---|
|
Creates a menu.
|
| CreateStore |
|---|
|
Creates a store.
|
| DeleteBrand |
|---|
|
Deletes the specified brand.
|
| DeleteMenu |
|---|
|
Deletes the specified menu.
|
| DeleteStore |
|---|
|
Deletes the specified store.
|
| GetBrand |
|---|
|
Gets a brand.
|
| GetMenu |
|---|
|
Gets a menu.
|
| GetStore |
|---|
|
Gets a store.
|
| ListBrands |
|---|
|
Lists brands.
|
| ListMenus |
|---|
|
Lists menus.
|
| ListStores |
|---|
|
Lists stores.
|
| UpdateBrand |
|---|
|
Updates the specified brand.
|
| UpdateStore |
|---|
|
Update the specified store.
|
AgentAudio
The audio response from the agent.
| Fields | |
|---|---|
agent_audio |
The audio data from the agent. |
AgentEvent
Special event from the agent that needs client to take action.
| Fields | |
|---|---|
Union field event. The event from the agent. event can be only one of the following: |
|
restart_order |
Customer requests to restart the order. |
AgentText
The text response from the agent.
| Fields | |
|---|---|
text |
The text response from the agent. |
AudioInput
The audio input from the client. The input audio may have multiple channels for the customer, crew, etc. These should all be synchronized and in the format specified in the config. Audio headers should not be included. By default, the audio should be using 16-bit linear PCM audio encoding and 16000 Hz sample rate. Total bytes from all channels should be less than 25600 bytes.
| Fields | |
|---|---|
customer_audio |
Required. Customer audio data. |
crew_audio |
Optional. Crew audio data. This is an optional audio channel for the crew member in the same lane as the customer, and served as the reference audio for echo cancellation. |
Availability
Defines the availability of an item or modifier.
| Fields | |
|---|---|
daypart_availability |
Optional. Daypart-level availability information for this item. If omitted, daypart-based availability is ignored. |
status |
Optional. Indicates a status leading to unavailability, or that the item is available. If omitted, the item is available by default. |
DaypartAvailability
Constrains availability of this entity to specified dayparts.
| Fields | |
|---|---|
daypart_ids[] |
Required. Dayparts during which this item is available. |
Status
Status of availability.
| Enums | |
|---|---|
STATUS_UNSPECIFIED |
Invalid status. CreateMenu will fail if any item or modifier has this status. |
STATUS_AVAILABLE |
Indicates that the item is available for purchase. |
STATUS_UNAVAILABLE |
Indicates that the item is unavailable for ambiguous reasons. |
STATUS_OUT_OF_STOCK |
Indicates that the item is currently out of stock, but may become available in the near future. |
STATUS_DISCONTINUED |
Indicates that the item is discontinued, and will remain unavailable for the foreseeable future. |
BatchGetMenuEntitiesRequest
Request message for MenuService.BatchGetMenuEntities.
| Fields | |
|---|---|
parent |
Required. The name of the menu to retrieve entities from. Format: projects/{project}/locations/{location}/menus/{menu} |
item_ids[] |
Optional. The IDs of the items to retrieve. |
modifier_ids[] |
Optional. The IDs of the modifier to retrieve. |
modifier_group_ids[] |
Optional. The IDs of the modifier groups to retrieve. |
category_ids[] |
Optional. The IDs of the categories to retrieve. |
BatchGetMenuEntitiesResponse
Response message for MenuService.BatchGetMenuEntities.
| Fields | |
|---|---|
items[] |
The items requested. |
modifiers[] |
The modifiers requested. |
modifier_groups[] |
The modifier groups requested. |
categories[] |
The categories requested. |
BidiProcessOrderRequest
The top-level message sent by the client for the FoodOrderingService.BidiProcessOrder method.
| Fields | |
|---|---|
Union field message. The message from the client. The client must send a config message first, before sending any other messages. message can be only one of the following: |
|
config |
The configuration for the session and food ordering properties. |
text_input |
The text input from the client. |
audio_input |
The audio input from the client. The client must use either text or audio input, not both. |
event_input |
The event input from the client. |
client_execution_result |
The result of a client execution request. |
BidiProcessOrderResponse
The top-level message returned from FoodOrderingService.BidiProcessOrder method.
| Fields | |
|---|---|
Union field response. The response from the agent. response can be only one of the following: |
|
agent_audio |
The audio response from the agent. |
speech_recognition |
The speech recognition result from the agent. |
legacy_order_state_response |
The legacy order state response for a session. |
interruption_signal |
Interruption signal detected from the audio input. |
agent_event |
Event from the agent. |
client_execution_request |
The request forward to the client to execute. This is used for client side execution, such as adding a code to the order. |
updated_order_state |
Indicates an update to the order state. Includes the complete state of the order. |
agent_text |
The text response from the agent. |
suggested_options |
Options to suggest to the customer. |
turn_completed |
Indicates that the agent has detected the end of the current conversation turn, and will provide no further output for this turn. |
end_session |
Indicates that the session is ending, and that this will be the last turn. The agent will finish sending any pending responses for the current turn, and then send a final turn_completed message. The agent will not start any new turns. For example, a 2 turn session will look like:
|
recommended_orders |
The recommended orders from the agent. |
Brand
A brand, which can be a restaurant chain or an individual restaurant.
| Fields | |
|---|---|
name |
Identifier. The brand name. Format: projects/{project}/locations/{location}/brands/{brand} |
display_name |
Optional. Optional, human-readable display name for this brand for user interfaces. |
create_time |
Output only. The time this brand was created. |
update_time |
Output only. The time this brand was last updated. |
ClientExecutionRequest
A request to the for client side to execute a command.
| Fields | |
|---|---|
execution_id |
Required. A unique ID for this execution request. |
Union field request. The specific request to be executed. request can be only one of the following: |
|
finalize_order_request |
A request to finalize the order. |
submit_order_request |
A request to submit the order. |
ClientExecutionResult
The result of a client execution request.
| Fields | |
|---|---|
execution_id |
Required. The ID of the execution request this is a result for. |
Union field response. The specific result of the execution. response can be only one of the following: |
|
finalize_order_response |
The result of finalizing the order. |
submit_order_response |
The result of submitting the order. |
Config
The configuration for a session and food ordering properties. At the start of each connection, the client must first send a config message. This must happen before any other requests to initiate the session. If the client disconnects, they should repeat the same config message when they reconnect.
| Fields | |
|---|---|
session |
Required. The session for the order. Format: |
store |
Required. The store the order is being placed for. Format: |
lane_id |
Optional. The id of a specifc drive through lane. |
enable_echo_cancellation |
Optional. Whether to enable echo cancellation for the session. If enabled, the client should provide the customer_audio and crew_audio in the AudioInput. |
daypart_id |
Optional. Daypart of the food menu, including breakfast, lunch, dinner, etc. This is used to determine the menu to use for the order. |
user_info |
Optional. The personal information of the end user shared with the agent. |
order_type |
Optional. Deprecated: Use initial_order.fulfillment.fulfillment_type instead. The type of order to be placed. |
initial_order |
Optional. The initial order before starting the agent session. If provided, the agent will use it as the initial order state. |
initial_utterance |
Optional. The initial utterance from the client to kick off the conversation. If provided, the agent will use this as the first user utterance, and will not start with a greeting message. |
CreateBrandRequest
Request message for MenuService.CreateBrand.
| Fields | |
|---|---|
parent |
Required. The parent, which owns this collection of brands. Format: projects/{project}/locations/{location} |
brand |
Required. The brand to create. |
brand_id |
Optional. The ID to use for the brand, which will become the final component of the brand's resource name. This value should only contain lower-case letters, numbers, and hyphen, with the first and last character a letter or a number, and a 63 character maximum. |
CreateMenuRequest
Request message for MenuService.CreateMenu.
| Fields | |
|---|---|
parent |
Required. The parent, which owns this collection of menus. Format: projects/{project}/locations/{location} |
menu_id |
Optional. The ID to use for the menu, which will become the final component of the menu's resource name. This value should only contain lower-case letters, numbers, and hyphen, with the first and last character a letter or a number, and a 63 character maximum. |
menu |
Required. The menu to create. |
CreateStoreRequest
Request message for MenuService.CreateStore.
| Fields | |
|---|---|
parent |
Required. The parent brand, which owns this collection of stores. Format: projects/{project}/locations/{location}/brands/{brand} |
store_id |
Optional. The Store Id to use for the store, which will become the final component of the store's resource name. This value should only contain lower-case letters, numbers, and hyphen, with the first and last character a letter or a number, and a 63 character maximum. |
store |
Required. The store to create. |
DateRange
Represents a date range, inclusive of both ends.
| Fields | |
|---|---|
start_date |
Required. The start date of the range, inclusive. |
end_date |
Required. The end date of the range, inclusive. |
DeleteBrandRequest
Request message for MenuService.DeleteBrand.
| Fields | |
|---|---|
name |
Required. The name of the brand to delete. Format: projects/{project}/locations/{location}/brands/{brand} |
DeleteMenuRequest
Request message for MenuService.DeleteMenu.
| Fields | |
|---|---|
name |
Required. The name of the menu to delete. Format: projects/{project}/locations/{location}/menus/{menu} |
DeleteStoreRequest
Request message for MenuService.DeleteStore.
| Fields | |
|---|---|
name |
Required. The name of the store to delete. Format: projects/{project}/locations/{location}/brands/{brand}/stores/{store} |
EndSession
Indicates the agent has terminated the session, due to either successful completion (e.g. user says "Good bye!" ) or an agent escalation.
| Fields | |
|---|---|
type |
The type of end session event. |
reason |
The reason for ending the session. |
EndType
Type of end session event.
| Enums | |
|---|---|
END_TYPE_UNSPECIFIED |
The end type is not specified. |
DRIVE_OFF |
The customer drove off. |
AGENT_ESCALATION |
The agent escalated the session to a human agent. |
CREW_INTERJECTION |
A crew member interjected in the session. |
ORDER_COMPLETED |
Order was successfully completed and no further action is needed. |
PAYMENT_FLOW_SUCCESS |
The payment flow was successful and no further action is needed. |
PAYMENT_FLOW_FAILURE |
The payment flow failed. |
CLIENT_ESCALATION |
The client escalated the session to a human agent. |
EventInput
The event input from the client. This is used to trigger specific events within the agent.
| Fields | |
|---|---|
Union field event. Next ID: 8 The event to trigger. event can be only one of the following: |
|
drive_off_event |
The drive off event. |
crew_interjection_event |
The crew interjection event. |
update_order_state_event |
A client-side update to the order state. |
client_escalation_event |
A client-side escalation event. |
customized_input_event |
A customized input event. |
ClientEscalationEvent
Indicates the client is escalating the session to a human agent.
| Fields | |
|---|---|
reason |
Optional. The reason for client escalation e.g. "payment-declined", "pos-error", "integration-error" etc. |
CrewInterjectionEvent
The crew interjection event. This indicates a crew member interjected in the session. Session will be closed after this event.
| Fields | |
|---|---|
mode |
Optional. The mode in which the crew member interjected, e.g. "headset", "pos". |
CustomizedInputEvent
This filed enables a Food AI client to send a customized event to the agent. By default, it is a no-op. Please contact the customer support to enable this feature.
| Fields | |
|---|---|
input |
Required. Input from the client to the agent. |
DriveOffEvent
The drive off event. This indicates the customer drove off. Session will be closed after this event.
| Fields | |
|---|---|
reason |
Optional. The reason for drive off e.g. "order completed", "unexpected driveoff". |
OrderStateUpdateEvent
The update order state request. This event should be sent when the order is updated on the client side, e.g. when an item is added or removed via a traditional touch interface.
| Fields | |
|---|---|
order |
Required. The updated state of the Order associated with this session. |
FinalizeOrderRequest
This type has no fields.
A request to finalize the order.
FinalizeOrderResponse
The result of finalizing the order.
| Fields | |
|---|---|
payment_flow_enabled |
Optional. Whether to enable the payment handling flow in the agent. |
payment_info |
Optional. The payment information of the customer. No-op if payment_flow_enabled is false. |
FulfillmentMethod
The fulfillment method of an order.
| Enums | |
|---|---|
FULFILLMENT_METHOD_UNSPECIFIED |
Unspecified fulfillment method. |
FULFILLMENT_METHOD_DINE_IN |
An order that will be consumed by the customer in the store. |
FULFILLMENT_METHOD_PICKUP |
An order that will be picked up by the customer at the store. |
FULFILLMENT_METHOD_DRIVE_THRU |
An order placed in a drive thru. |
FULFILLMENT_METHOD_DELIVERY |
An order that will be delivered to the customer. |
FULFILLMENT_METHOD_CURBSIDE |
A curbside pickup order. The customer will park their car in a designated spot outside of the store, and the order will be brought out to them. |
GetBrandRequest
Request message for MenuService.GetBrand.
| Fields | |
|---|---|
name |
Required. The name of the brand to retrieve. Format: projects/{project}/locations/{location}/brands/{brand} |
GetMenuRequest
Request message for MenuService.GetMenu.
| Fields | |
|---|---|
name |
Required. The name of the menu to retrieve. Format: projects/{project}/locations/{location}/menus/{menu} |
GetStoreRequest
Request message for MenuService.GetStore.
| Fields | |
|---|---|
name |
Required. The name of the store to retrieve. Format: projects/{project}/locations/{location}/brands/{brand}/stores/{store} |
Image
Image to display for a menu entity.
| Fields | |
|---|---|
source_uri |
Required. The source URI of the image. |
InterruptionSignal
This type has no fields.
Indicates the agent's audio response has been interrupted (e.g. by end user barge-in). Client should stop playback immediately.
Item
Item represents a menu entity which is valid only as a top-level item within an order. Item may represent a single food item, drink, service, promotion, or combination meal which can be modified with various choices.
| Fields | |
|---|---|
id |
Required. Identifier for this item, unique within the menu. |
semantic_name |
Optional. Concise, human-readable name which clearly & distinctly identifies this item. Should be unique among Items in the menu. |
display_name |
Required. Human-readable name for this item to be used on user interfaces. |
category_ids[] |
Optional. Category of the item. |
description |
Optional. Human-readable description. |
image |
Optional. Image to display for this item in the UI. |
availability |
Optional. Availability of the item. |
numeric_abbreviations[] |
Optional. Short, usually numeric abbreviations that users might use to refer to this item, as in, "I'd like a number 3." Must be at most 3 characters. |
base_price |
Optional. The base price of the item. This may be affected by the selected modifiers. |
integration_attributes |
Optional. Metadata associated with this entity used for downstream integrations. |
modifier_groups[] |
Optional. References to modifier groups which apply to this item. |
modifier_constraints |
Optional. Constrains what modifiers can / must be applied to this item across referenced ModifierGroups. |
ItemIntegrationAttributes
Metadata associated with an item used for downstream integrations.
| Fields | |
|---|---|
custom_integration_attributes |
Optional. Arbitrary metadata to be associated with an entity, used to build downstream integrations, i.e. identifiers or schema information for constructing an order for submission to a third-party point of sale API. |
ListBrandsRequest
Request message for MenuService.ListBrands.
| Fields | |
|---|---|
parent |
Required. The parent, which owns this collection of brands. Format: projects/{project}/locations/{location} |
page_size |
Optional. The maximum number of brands to return. The service may return fewer than this value. |
page_token |
Optional. A page token, received from a previous |
ListBrandsResponse
Response message for MenuService.ListBrands.
| Fields | |
|---|---|
brands[] |
The brands from the specified collection. |
next_page_token |
A token, which can be sent as |
ListMenusRequest
Request message for MenuService.ListMenus.
| Fields | |
|---|---|
parent |
Required. The parent, which owns this collection of menus. Format: projects/{project}/locations/{location} |
page_size |
Optional. The maximum number of menus to return. The service may return fewer than this value. |
page_token |
Optional. A page token, received from a previous |
filter |
Optional. A filter expression that filters the results. The expression syntax is documented in https://google.aip.dev/160. The following fields are supported: -
|
ListMenusResponse
Response message for MenuService.ListMenus.
| Fields | |
|---|---|
menus[] |
The menus from the specified collection. |
next_page_token |
A token, which can be sent as |
ListStoresRequest
Request message for MenuService.ListStores.
| Fields | |
|---|---|
parent |
Required. The parent brand, which owns this collection of stores. Format: projects/{project}/locations/{location}/brands/{brand} |
page_size |
Optional. The maximum number of menus to return. The service may return fewer than this value. |
page_token |
Optional. A page token, received from a previous |
ListStoresResponse
Response message for MenuService.ListStores.
| Fields | |
|---|---|
stores[] |
The stores from the specified collection. |
next_page_token |
A token, which can be sent as |
LoyaltyAmount
Represents a customer's loyalty amount.
| Fields | |
|---|---|
units |
Required. The loyalty points. |
LoyaltyInfo
Represents a customer's loyalty information.
| Fields | |
|---|---|
loyalty_amount |
Required. The loyalty amount. This can be a loyalty balance or loyalty consumed. |
Menu
Defines a menu of what can be ordered from a restaurant.
| Fields | |
|---|---|
name |
Identifier. The menu name. Format: projects/{project}/locations/{location}/menus/{menu} |
store |
Optional. The resource name of the Store this Menu is associated with. Format: projects/{project}/locations/{location}/brands/{brand}/stores/{store} |
display_name |
Optional. Optional, human-readable display name for this menu for user interfaces. |
items[] |
Optional. Items in this menu. |
modifiers[] |
Optional. Item modifiers in this menu. |
modifier_groups[] |
Optional. Modifier groups in this menu. |
categories[] |
Optional. Menu categories in this menu. |
create_time |
Output only. The time this menu was created. |
update_time |
Output only. The time this menu was last updated. |
labels[] |
Optional. Labels for this menu. |
MenuCategory
Defines a category containing items or modifiers. Categories are used to organize items in user interfaces and for semantic grouping for the agent's understanding.
| Fields | |
|---|---|
id |
Required. Identifier for this menu category, unique within the menu. |
display_name |
Optional. Human-readable name for this menu category to be used on user interfaces. |
description |
Optional. Human-readable description. |
parent_id |
Optional. The parent menu category ID. If empty, this is a top-level category. |
MenuLabel
String labels for describing a menu in UIs.
| Fields | |
|---|---|
name |
Required. Name for the label. |
Modifier
Defines modifying options made within for items or other modifiers, via relationships defined by ModifierGroup.
| Fields | |
|---|---|
id |
Required. Identifier for this modifier, unique within the menu. |
display_name |
Required. Human-readable name for this item to be used on user interfaces. |
description |
Optional. Human-readable description. |
image |
Optional. Image to display for this item in the UI. |
semantic_name |
Optional. Concise, human-readable name which clearly & distinctly identifies this modifier. Should be unique among Modifiers in ModifierGroups where this Modifier exists. |
category_ids[] |
Optional. Category of the modifier. |
availability |
Optional. Availability for this modifier. |
price_adjustment |
Optional. An additive adjustment applied to the top-level item's price when this modifier is selected. Leave empty if the modifier does not affect the price. |
integration_attributes |
Optional. Metadata associated with this entity used for downstream integrations. |
modifier_groups[] |
Optional. References to modifier groups which apply to this modifier. |
modifier_constraints |
Optional. Constrains what modifiers can / must be applied to this modifier across referenced ModifierGroups. |
ModifierAction
Defines an action that can be taken on modifiers.
| Fields | |
|---|---|
name |
Required. The modifier action name -- e.g. "NO", "SIDE", "ADD", "EXTRA". |
ModifierConstraints
Constrains what modifiers can or must be applied to an entity across referenced ModifierGroups.
| Fields | |
|---|---|
min_quantity |
Optional. The minimum number of modifiers that must be applied across directly referenced ModifierGroups. If not specified, no minimum is enforced. |
max_quantity |
Optional. The maximum number of modifiers that may be applied across directly referenced ModifierGroups. If not specified, no maximum is enforced. |
ModifierGroup
Defines a group of modifiers from which selections can be made.
| Fields | |
|---|---|
id |
Required. Identifier for this modifier group, unique within its menu. |
display_name |
Required. The modifier group name -- e.g. "Toppings (Sandwich)" or "Side for Medium Combo". |
semantic_name |
Optional. The modifier group name -- e.g. "Toppings (Sandwich)" or "Side for Combo". |
modifier_ids[] |
Required. The modifier IDs that are part of this group. |
modifier_actions[] |
Optional. The actions that can be taken on the modifiers in this group. |
min_selection_count |
Optional. The minimum count of modifiers from the referenced group that must be selected in order for the Item to be valid. If not set, there is no minimum. For a group where exactly one selection is required, this should be 1. |
max_selection_count |
Optional. The maximum count of total modifiers from the referenced group that may be selected. If not set, there is no maximum. For a group where exactly one selection is required, this should be 1. |
max_selection_count_per_modifier |
Optional. Limits the number of times each modifier can be applied within this group. If not set, the default is 1. |
integration_attributes |
Optional. Metadata associated with this entity used for downstream integrations. |
ModifierGroupIntegrationAttributes
Metadata associated with a modifier group used for downstream integrations.
| Fields | |
|---|---|
custom_integration_attributes |
Optional. Arbitrary metadata to be associated with an entity, used to build downstream integrations, i.e. identifiers or schema information for constructing an order for submission to a third-party point of sale API. |
ModifierGroupReference
A reference to a modifier group.
| Fields | |
|---|---|
id |
Required. The modifier group ID. |
default_modifiers[] |
Optional. The set of modifiers that are applied by default. |
min_selection_count |
Optional. The minimum count of modifiers from the referenced ModifierGroup which must be selected. If this value is set on both the ModifierGroupReference and the ModifierGroup, both constraints are enforced. If not set, there is no minimum. |
max_selection_count |
Optional. The maximum count of total modifiers from the referenced group that may be selected. If this value is set on both the ModifierGroupReference and the ModifierGroup, both constraints are enforced. If not set, there is no maximum. |
DefaultModifierSelection
Specifies the default selection of a modifier within a ModifierGroup.
| Fields | |
|---|---|
id |
Required. The modifier ID. |
quantity |
Optional. The quantity of this modifier to apply. If omitted, reference is treated as having a quantity of 1. |
ModifierIntegrationAttributes
Metadata associated with a modifier used for downstream integrations.
| Fields | |
|---|---|
custom_integration_attributes |
Optional. Arbitrary metadata to be associated with an entity, used to build downstream integrations, i.e. identifiers or schema information for constructing an order for submission to a third-party point of sale API. |
Order
Order represents the content of a user's in-progress or completed order.
| Fields | |
|---|---|
items[] |
Optional. The items in the order. |
metadata |
Optional. Other metadata collected or inferred during the order. |
fulfillment |
Optional. The fulfillment information for the order. |
OrderFulfillment
OrderFulfillment contains information about order fulfillment.
| Fields | |
|---|---|
fulfillment_method |
Optional. The fulfillment method of the order. |
create_time |
Output only. The time the order was created at. |
target_fulfillment_time |
Optional. The time the order is scheduled for fulfillment, used for 'order ahead'. If not provided, the order is assumed to be for 'as soon as possible'. |
OrderItem
OrderItem specifies the state of an Item which is part of an Order.
| Fields | |
|---|---|
uid |
Optional. A system-assigned unique identifier for this item. |
item_id |
Required. Identifier for an Item in the Menu, unique within its Menu. |
display_name |
Output only. Human-readable name for this line item to be shown on user interfaces. |
image |
Output only. Image to display for this item in the UI. |
base_price |
Output only. The base price of the item. This may be affected by the selected modifiers. This is the price per unit of the item. |
integration_attributes |
Output only. Metadata associated with this entity used for downstream integrations. |
modifier_groups[] |
Optional. ModifierGroups applied to this item. |
quantity |
Optional. The quantity of this item in the order. |
OrderMetadata
OrderMetadata contains other metadata collected or inferred during the order.
| Fields | |
|---|---|
collected_customer_name |
Optional. Name of the customer, collected while taking the order. Only populated when the agent is configured to collect the customer's name. This may be collected verbally and could contain spelling mistakes or mistranscriptions, so care should be taken when displaying it to users, and it shouldn't be trusted as e.g. payment information. |
OrderModifier
OrderModifier specifies the state of a Modifier which is part of an OrderModifierGroup.
| Fields | |
|---|---|
uid |
Optional. A system-assigned unique identifier for this modifier. |
modifier_id |
Required. Identifier for this modifier, unique within the menu. |
display_name |
Output only. The modifier display name to be shown on user interfaces. |
price_adjustment |
Output only. The price adjustment associated with this modifier, if any. This is the price per unit of the modifier. |
quantity |
Optional. The quantity of this modifier action applied. |
modifier_action |
Optional. The modifier action applied to this modifier. |
image |
Output only. Image to display for this modifier in the UI. |
integration_attributes |
Output only. Metadata associated with this entity used for downstream integrations. |
modifier_groups[] |
Optional. Nested modifier groups applied to this modifier. |
OrderModifierAction
OrderModifierAction specifies the ModifierAction associated with an applied OrderModifier.
| Fields | |
|---|---|
name |
Optional. The modifier action name -- e.g. "NO", "SIDE", "ADD", "EXTRA". |
OrderModifierGroup
OrderModifierGroup specifies the state of a ModifierGroup which is part of an OrderItem.
| Fields | |
|---|---|
modifier_group_id |
Required. Identifier for this modifier group, unique within its menu. |
display_name |
Output only. The modifier group name -- e.g. "Toppings (Sandwich)" or "Side for Medium Combo". |
integration_attributes |
Output only. Metadata associated with this entity used for downstream integrations. |
modifiers[] |
Optional. The modifiers applied to this modifier group. |
OrderType
The type of order to be placed.
| Enums | |
|---|---|
ORDER_TYPE_UNSPECIFIED |
The order type is not specified. |
ORDER_TYPE_DRIVE_THROUGH |
The order is for drive through. |
ORDER_TYPE_CARRY_OUT |
The order is for carry out. |
ORDER_TYPE_DELIVERY |
The order is for delivery. |
PastOrder
The past order of the user.
| Fields | |
|---|---|
order |
Required. The original Food AI order. |
PaymentInfo
Payment information of the user.
| Fields | |
|---|---|
credit_card_last_four_digits |
Optional. The last four digits of the credit card. This is used to verify the credit card number at the payment stage. |
credit_card_cvv |
Optional. CVV of the credit card. |
RecommendedOrder
An order recommended by the agent to the user.
| Fields | |
|---|---|
order |
The recommended order to be displayed to the user. |
RecommendedOrders
A list of recommended orders by the agent to the user.
| Fields | |
|---|---|
recommended_orders[] |
The recommended orders to be displayed to the user. |
RestartOrder
Customer requests to start over the order.
| Fields | |
|---|---|
confirmation_step |
The agent is asking the customer to confirm the restarting request. |
Schedule
A configurable schedule for one day of the week or specific date.
| Fields | |
|---|---|
days[] |
Optional. The days of the week to apply the schedule to. |
date_ranges[] |
Optional. The date ranges to apply the schedule to. If set, the schedule is only active on these specific date ranges. If both days and date_ranges are set, the schedule is active when both condition is met. For example, if days is [MONDAY] and date_ranges is [2026-01-01, 2026-01-31], the schedule is active on all Monday in January. |
time_ranges[] |
Optional. The time of day ranges to apply the schedule to. If set, the schedule is only active during these time ranges. |
SpeechRecognition
The speech recognition result from the agent.
| Fields | |
|---|---|
transcript |
Transcribed text from the audio input in the detected language. |
language_code |
The language code of the transcript. The language code should be in BCP-47 format, such as "en-US". |
Store
An individual store for a brand.
| Fields | |
|---|---|
name |
Identifier. The store name. Format: projects/{project}/locations/{location}/brands/{brand}/stores/{store} |
create_time |
Output only. The time this store was created. |
update_time |
Output only. The time this store was last updated. |
status |
Required. The status of the store. |
time_zone |
Required. The time zone of the store. This is used to determine which menu daypart to use for the store at a given time and for any time-based overrides. |
store_metadata |
Optional. Metadata for the store. |
StoreHours
The operating hours of the store.
| Fields | |
|---|---|
fulfillment_method |
Optional. The fulfillment method of the store hours, for instance "PICKUP", "DELIVERY", etc. If unspecified, the store hours are assumed to be applicable to all fulfillment methods. |
schedules[] |
Optional. The operating hours for the store for the specified fulfillment_method. |
StoreMetadata
Metadata for the store.
| Fields | |
|---|---|
display_name |
Optional. The display name of the store to be used in UI and customer-facing elements. |
contact_email |
Optional. The email address of the store to be provided to customers. |
address |
Optional. The address information for the store. |
store_hours[] |
Optional. The open hours of the store. |
dayparts[] |
Optional. Dayparts defined for the store. |
Address
The address information for the store.
| Fields | |
|---|---|
street_address |
Optional. The street address of the store. |
city |
Optional. The city of the store. |
state |
Optional. The state of the store. |
country |
Optional. The country of the store. |
postal_code |
Optional. The postal code of the store. |
latitude |
Optional. The latitude of the store. |
longitude |
Optional. The longitude of the store. |
google_maps_url |
Optional. The Google Maps URL for the store. |
Daypart
A daypart for the store.
| Fields | |
|---|---|
id |
Optional. The day part id, for instance "BREAKFAST", "LUNCH", etc. |
schedules[] |
Optional. Daypart active hours. |
StoreStatus
The status of the store.
| Fields | |
|---|---|
state |
Optional. The state of the store. |
State
The status of the store.
| Enums | |
|---|---|
STATE_UNSPECIFIED |
The store is in an unspecified state. |
ACTIVE |
The store is active. |
DISABLED |
The store is disabled. |
SubmitOrderRequest
A request to submit the order, with all the required payment information collected from the customer.
| Fields | |
|---|---|
payment_info |
Required. The payment information for the order. |
loyalty_info |
Optional. The loyalty consumed for the order. |
tip_amount |
Optional. The tip amount for the order. |
SubmitOrderResponse
The result of submitting the order.
| Fields | |
|---|---|
success |
Required. Whether the order was successfully submitted. |
estimated_ready_duration |
Optional. The estimated duration until the order is ready. |
SuggestedItem
An item to suggest to the customer.
| Fields | |
|---|---|
item_id |
ID of the item in the menu. |
display_name |
Human-readable name for this tem to be shown on user interfaces. |
image |
Image to display for this item in the UI. |
base_price |
The base price of the item. This may be affected by the selected modifiers. This is the price per unit of the item. |
integration_attributes |
Metadata associated with this entity used for downstream integrations. |
SuggestedItems
A list of items to suggest to the customer.
| Fields | |
|---|---|
items[] |
The items to suggest to the customer. |
SuggestedModifier
A modifier to suggest to the customer.
| Fields | |
|---|---|
modifier_id |
ID of the modifier in the menu. |
modifier_group_id |
ID of the modifier group that this modifier should be added to if the suggestion is accepted. |
display_name |
Human-readable name for this tem to be shown on user interfaces. |
image |
Image to display for this item in the UI. |
price_adjustment |
The price adjustment associated with this modifier, if any. This is the price per unit of the modifier. |
integration_attributes |
Metadata associated with this entity used for downstream integrations. |
SuggestedModifiers
A list of modifiers to suggest to the customer.
| Fields | |
|---|---|
modifiers[] |
The modifiers to suggest to the customer. |
parent_uid |
The unique identifier of the parent item/modifier to apply the modifiers to. |
SuggestedOptions
Options to suggest to the customer.
| Fields | |
|---|---|
Union field suggested_options. The suggested options. suggested_options can be only one of the following: |
|
suggested_items |
A list of items to suggest to the customer. |
suggested_modifiers |
A list of modifiers to suggest to the customer. |
TextInput
The text input from the client. Instead of audio, the client can alternatively send text input to the agent. A client must use either text or audio input, not both.
| Fields | |
|---|---|
text |
Required. The text utterance from the client. |
TimeOfDayRange
Represents a period between two times of day on an unspecified date. For example, business hours like 09:00 to 17:00.
| Fields | |
|---|---|
start_time |
Required. The start of the time range, inclusive. |
end_time |
Required. The end of the time range, exclusive. If end_time is earlier than start_time, it means the endtime is on the next day. |
TurnCompleted
This type has no fields.
Indicates that the Food AI agent has detected the end of the current conversation turn and will provide no further output for this turn.
UpdateBrandRequest
Request message for MenuService.UpdateBrand.
| Fields | |
|---|---|
brand |
Required. The brand to update. The brand's |
update_mask |
Optional. The list of fields to update |
UpdateStoreRequest
Request message for MenuService.UpdateStore.
| Fields | |
|---|---|
store |
Required. The store to update. The store's |
update_mask |
Optional. The list of fields to update |
UpdatedOrderState
Event returned by the agent representing an update to the order state.
| Fields | |
|---|---|
order |
The updated state of the Order associated with this session. |
UserInfo
Personal information of the end user shared with the Food AI agent.
| Fields | |
|---|---|
preferred_name |
Optional. The name of the user that the agent should use to address the user. Food AI client is responsible for selecting the preferred name based on the user's profile, and make sure it aligns with the brand's convention, e.g. use first name, or full name. |
payment_info |
Optional. The payment information of the user. |
delivery_address |
Optional. The saved delivery address of the user. |
past_orders[] |
Optional. The order history of the user. |
loyalty_info |
Optional. The loyalty info of the user. |