Package google.cloud.foodorderingaiagent.v1beta

Index

FoodOrderingService

FoodOrderingService provides an API for food ordering agents.

BidiProcessOrder

rpc BidiProcessOrder(BidiProcessOrderRequest) returns (BidiProcessOrderResponse)

A bidirectional streaming API that processes continuous client inputs across multiple modalities (e.g., text, audio) and generates real-time multimodal output streams.

Authorization scopes

Requires the following OAuth scope:

  • https://www.googleapis.com/auth/cloud-platform

For more information, see the Authentication Overview.

MenuService provides APIs to manage brand, store and menu related resources.

BatchGetMenuEntities

rpc BatchGetMenuEntities(BatchGetMenuEntitiesRequest) returns (BatchGetMenuEntitiesResponse)

Batch gets entities for a menu.

Authorization scopes

Requires the following OAuth scope:

  • https://www.googleapis.com/auth/cloud-platform

For more information, see the Authentication Overview.

CreateBrand

rpc CreateBrand(CreateBrandRequest) returns (Brand)

Creates a brand.

Authorization scopes

Requires the following OAuth scope:

  • https://www.googleapis.com/auth/cloud-platform

For more information, see the Authentication Overview.

CreateMenu

rpc CreateMenu(CreateMenuRequest) returns (Menu)

Creates a menu.

Authorization scopes

Requires the following OAuth scope:

  • https://www.googleapis.com/auth/cloud-platform

For more information, see the Authentication Overview.

CreateStore

rpc CreateStore(CreateStoreRequest) returns (Store)

Creates a store.

Authorization scopes

Requires the following OAuth scope:

  • https://www.googleapis.com/auth/cloud-platform

For more information, see the Authentication Overview.

DeleteBrand

rpc DeleteBrand(DeleteBrandRequest) returns (Empty)

Deletes the specified brand.

Authorization scopes

Requires the following OAuth scope:

  • https://www.googleapis.com/auth/cloud-platform

For more information, see the Authentication Overview.

DeleteMenu

rpc DeleteMenu(DeleteMenuRequest) returns (Empty)

Deletes the specified menu.

Authorization scopes

Requires the following OAuth scope:

  • https://www.googleapis.com/auth/cloud-platform

For more information, see the Authentication Overview.

DeleteStore

rpc DeleteStore(DeleteStoreRequest) returns (Empty)

Deletes the specified store.

Authorization scopes

Requires the following OAuth scope:

  • https://www.googleapis.com/auth/cloud-platform

For more information, see the Authentication Overview.

GetBrand

rpc GetBrand(GetBrandRequest) returns (Brand)

Gets a brand.

Authorization scopes

Requires the following OAuth scope:

  • https://www.googleapis.com/auth/cloud-platform

For more information, see the Authentication Overview.

GetMenu

rpc GetMenu(GetMenuRequest) returns (Menu)

Gets a menu.

Authorization scopes

Requires the following OAuth scope:

  • https://www.googleapis.com/auth/cloud-platform

For more information, see the Authentication Overview.

GetStore

rpc GetStore(GetStoreRequest) returns (Store)

Gets a store.

Authorization scopes

Requires the following OAuth scope:

  • https://www.googleapis.com/auth/cloud-platform

For more information, see the Authentication Overview.

ListBrands

rpc ListBrands(ListBrandsRequest) returns (ListBrandsResponse)

Lists brands.

Authorization scopes

Requires the following OAuth scope:

  • https://www.googleapis.com/auth/cloud-platform

For more information, see the Authentication Overview.

ListMenus

rpc ListMenus(ListMenusRequest) returns (ListMenusResponse)

Lists menus.

Authorization scopes

Requires the following OAuth scope:

  • https://www.googleapis.com/auth/cloud-platform

For more information, see the Authentication Overview.

ListStores

rpc ListStores(ListStoresRequest) returns (ListStoresResponse)

Lists stores.

Authorization scopes

Requires the following OAuth scope:

  • https://www.googleapis.com/auth/cloud-platform

For more information, see the Authentication Overview.

UpdateBrand

rpc UpdateBrand(UpdateBrandRequest) returns (Brand)

Updates the specified brand.

Authorization scopes

Requires the following OAuth scope:

  • https://www.googleapis.com/auth/cloud-platform

For more information, see the Authentication Overview.

UpdateStore

rpc UpdateStore(UpdateStoreRequest) returns (Store)

Update the specified store.

Authorization scopes

Requires the following OAuth scope:

  • https://www.googleapis.com/auth/cloud-platform

For more information, see the Authentication Overview.

AgentAudio

The audio response from the agent.

Fields
agent_audio

bytes

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

RestartOrder

Customer requests to restart the order.

AgentText

The text response from the agent.

Fields
text

string

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

bytes

Required. Customer audio data.

crew_audio

bytes

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

DaypartAvailability

Optional. Daypart-level availability information for this item. If omitted, daypart-based availability is ignored.

status

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[]

string

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

string

Required. The name of the menu to retrieve entities from. Format: projects/{project}/locations/{location}/menus/{menu}

item_ids[]

string

Optional. The IDs of the items to retrieve.

modifier_ids[]

string

Optional. The IDs of the modifier to retrieve.

modifier_group_ids[]

string

Optional. The IDs of the modifier groups to retrieve.

category_ids[]

string

Optional. The IDs of the categories to retrieve.

BatchGetMenuEntitiesResponse

Response message for MenuService.BatchGetMenuEntities.

Fields
items[]

Item

The items requested.

modifiers[]

Modifier

The modifiers requested.

modifier_groups[]

ModifierGroup

The modifier groups requested.

categories[]

MenuCategory

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

Config

The configuration for the session and food ordering properties.

text_input

TextInput

The text input from the client.

audio_input

AudioInput

The audio input from the client. The client must use either text or audio input, not both.

event_input

EventInput

The event input from the client.

client_execution_result

ClientExecutionResult

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

AgentAudio

The audio response from the agent.

speech_recognition

SpeechRecognition

The speech recognition result from the agent.

legacy_order_state_response

Struct

The legacy order state response for a session.

interruption_signal

InterruptionSignal

Interruption signal detected from the audio input.

agent_event

AgentEvent

Event from the agent.

client_execution_request

ClientExecutionRequest

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

UpdatedOrderState

Indicates an update to the order state. Includes the complete state of the order.

agent_text

AgentText

The text response from the agent.

suggested_options

SuggestedOptions

Options to suggest to the customer.

turn_completed

TurnCompleted

Indicates that the agent has detected the end of the current conversation turn, and will provide no further output for this turn.

end_session

EndSession

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:

  • Turn 1
  • customer input 1
  • ... agent response and order state messages
  • turn_completed
  • Turn 2
  • customer input 2
  • ... agent response and order state messages
  • end_session
  • ... pending agent response and order state messages
  • turn_completed
recommended_orders

RecommendedOrders

The recommended orders from the agent.

Brand

A brand, which can be a restaurant chain or an individual restaurant.

Fields
name

string

Identifier. The brand name. Format: projects/{project}/locations/{location}/brands/{brand}

display_name

string

Optional. Optional, human-readable display name for this brand for user interfaces.

create_time

Timestamp

Output only. The time this brand was created.

update_time

Timestamp

Output only. The time this brand was last updated.

ClientExecutionRequest

A request to the for client side to execute a command.

Fields
execution_id

string

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

FinalizeOrderRequest

A request to finalize the order.

submit_order_request

SubmitOrderRequest

A request to submit the order.

ClientExecutionResult

The result of a client execution request.

Fields
execution_id

string

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

FinalizeOrderResponse

The result of finalizing the order.

submit_order_response

SubmitOrderResponse

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

string

Required. The session for the order. Format: projects/{project}/locations/{location}/sessions/{session}

store

string

Required. The store the order is being placed for. Format: projects/{project}/locations/{location}/brands/{brand}/stores/{store}

lane_id

string

Optional. The id of a specifc drive through lane.

enable_echo_cancellation

bool

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

string

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

UserInfo

Optional. The personal information of the end user shared with the agent.

order_type
(deprecated)

OrderType

Optional. Deprecated: Use initial_order.fulfillment.fulfillment_type instead. The type of order to be placed.

initial_order

Order

Optional. The initial order before starting the agent session. If provided, the agent will use it as the initial order state.

initial_utterance

string

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

string

Required. The parent, which owns this collection of brands. Format: projects/{project}/locations/{location}

brand

Brand

Required. The brand to create.

brand_id

string

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

string

Required. The parent, which owns this collection of menus. Format: projects/{project}/locations/{location}

menu_id

string

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

Menu

Required. The menu to create.

CreateStoreRequest

Request message for MenuService.CreateStore.

Fields
parent

string

Required. The parent brand, which owns this collection of stores. Format: projects/{project}/locations/{location}/brands/{brand}

store_id

string

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

Store

Required. The store to create.

DateRange

Represents a date range, inclusive of both ends.

Fields
start_date

Date

Required. The start date of the range, inclusive.

end_date

Date

Required. The end date of the range, inclusive.

DeleteBrandRequest

Request message for MenuService.DeleteBrand.

Fields
name

string

Required. The name of the brand to delete. Format: projects/{project}/locations/{location}/brands/{brand}

DeleteMenuRequest

Request message for MenuService.DeleteMenu.

Fields
name

string

Required. The name of the menu to delete. Format: projects/{project}/locations/{location}/menus/{menu}

DeleteStoreRequest

Request message for MenuService.DeleteStore.

Fields
name

string

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

EndType

The type of end session event.

reason

string

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

DriveOffEvent

The drive off event.

crew_interjection_event

CrewInterjectionEvent

The crew interjection event.

update_order_state_event

OrderStateUpdateEvent

A client-side update to the order state.

client_escalation_event

ClientEscalationEvent

A client-side escalation event.

customized_input_event

CustomizedInputEvent

A customized input event.

ClientEscalationEvent

Indicates the client is escalating the session to a human agent.

Fields
reason

string

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

string

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

Struct

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

string

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

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

bool

Optional. Whether to enable the payment handling flow in the agent.

payment_info

PaymentInfo

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

string

Required. The name of the brand to retrieve. Format: projects/{project}/locations/{location}/brands/{brand}

GetMenuRequest

Request message for MenuService.GetMenu.

Fields
name

string

Required. The name of the menu to retrieve. Format: projects/{project}/locations/{location}/menus/{menu}

GetStoreRequest

Request message for MenuService.GetStore.

Fields
name

string

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

string

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

string

Required. Identifier for this item, unique within the menu.

semantic_name

string

Optional. Concise, human-readable name which clearly & distinctly identifies this item. Should be unique among Items in the menu.

display_name

string

Required. Human-readable name for this item to be used on user interfaces.

category_ids[]

string

Optional. Category of the item.

description

string

Optional. Human-readable description.

image

Image

Optional. Image to display for this item in the UI.

availability

Availability

Optional. Availability of the item.

numeric_abbreviations[]

string

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

Money

Optional. The base price of the item. This may be affected by the selected modifiers.

integration_attributes

ItemIntegrationAttributes

Optional. Metadata associated with this entity used for downstream integrations.

modifier_groups[]

ModifierGroupReference

Optional. References to modifier groups which apply to this item.

modifier_constraints

ModifierConstraints

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

Struct

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

string

Required. The parent, which owns this collection of brands. Format: projects/{project}/locations/{location}

page_size

int32

Optional. The maximum number of brands to return. The service may return fewer than this value.

page_token

string

Optional. A page token, received from a previous ListBrands call. Provide this to retrieve the subsequent page.

ListBrandsResponse

Response message for MenuService.ListBrands.

Fields
brands[]

Brand

The brands from the specified collection.

next_page_token

string

A token, which can be sent as page_token to retrieve the next page. If this field is omitted, there are no subsequent pages.

ListMenusRequest

Request message for MenuService.ListMenus.

Fields
parent

string

Required. The parent, which owns this collection of menus. Format: projects/{project}/locations/{location}

page_size

int32

Optional. The maximum number of menus to return. The service may return fewer than this value.

page_token

string

Optional. A page token, received from a previous ListMenus call. Provide this to retrieve the subsequent page.

filter

string

Optional. A filter expression that filters the results. The expression syntax is documented in https://google.aip.dev/160.

The following fields are supported: - store

store=projects/my-project/locations/us-central1/brands/my-brand/stores/my-store

ListMenusResponse

Response message for MenuService.ListMenus.

Fields
menus[]

Menu

The menus from the specified collection.

next_page_token

string

A token, which can be sent as page_token to retrieve the next page. If this field is omitted, there are no subsequent pages.

ListStoresRequest

Request message for MenuService.ListStores.

Fields
parent

string

Required. The parent brand, which owns this collection of stores. Format: projects/{project}/locations/{location}/brands/{brand}

page_size

int32

Optional. The maximum number of menus to return. The service may return fewer than this value.

page_token

string

Optional. A page token, received from a previous ListMenus call. Provide this to retrieve the subsequent page.

ListStoresResponse

Response message for MenuService.ListStores.

Fields
stores[]

Store

The stores from the specified collection.

next_page_token

string

A token, which can be sent as page_token to retrieve the next page. If this field is omitted, there are no subsequent pages.

LoyaltyAmount

Represents a customer's loyalty amount.

Fields
units

int64

Required. The loyalty points.

LoyaltyInfo

Represents a customer's loyalty information.

Fields
loyalty_amount

LoyaltyAmount

Required. The loyalty amount. This can be a loyalty balance or loyalty consumed.

Defines a menu of what can be ordered from a restaurant.

Fields
name

string

Identifier. The menu name. Format: projects/{project}/locations/{location}/menus/{menu}

store

string

Optional. The resource name of the Store this Menu is associated with. Format: projects/{project}/locations/{location}/brands/{brand}/stores/{store}

display_name

string

Optional. Optional, human-readable display name for this menu for user interfaces.

items[]

Item

Optional. Items in this menu.

modifiers[]

Modifier

Optional. Item modifiers in this menu.

modifier_groups[]

ModifierGroup

Optional. Modifier groups in this menu.

categories[]

MenuCategory

Optional. Menu categories in this menu.

create_time

Timestamp

Output only. The time this menu was created.

update_time

Timestamp

Output only. The time this menu was last updated.

labels[]

MenuLabel

Optional. Labels for this menu.

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

string

Required. Identifier for this menu category, unique within the menu.

display_name

string

Optional. Human-readable name for this menu category to be used on user interfaces.

description

string

Optional. Human-readable description.

parent_id

string

Optional. The parent menu category ID. If empty, this is a top-level category.

String labels for describing a menu in UIs.

Fields
name

string

Required. Name for the label.

Modifier

Defines modifying options made within for items or other modifiers, via relationships defined by ModifierGroup.

Fields
id

string

Required. Identifier for this modifier, unique within the menu.

display_name

string

Required. Human-readable name for this item to be used on user interfaces.

description

string

Optional. Human-readable description.

image

Image

Optional. Image to display for this item in the UI.

semantic_name

string

Optional. Concise, human-readable name which clearly & distinctly identifies this modifier. Should be unique among Modifiers in ModifierGroups where this Modifier exists.

category_ids[]

string

Optional. Category of the modifier.

availability

Availability

Optional. Availability for this modifier.

price_adjustment

Money

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

ModifierIntegrationAttributes

Optional. Metadata associated with this entity used for downstream integrations.

modifier_groups[]

ModifierGroupReference

Optional. References to modifier groups which apply to this modifier.

modifier_constraints

ModifierConstraints

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

string

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

int32

Optional. The minimum number of modifiers that must be applied across directly referenced ModifierGroups. If not specified, no minimum is enforced.

max_quantity

int32

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

string

Required. Identifier for this modifier group, unique within its menu.

display_name

string

Required. The modifier group name -- e.g. "Toppings (Sandwich)" or "Side for Medium Combo".

semantic_name

string

Optional. The modifier group name -- e.g. "Toppings (Sandwich)" or "Side for Combo".

modifier_ids[]

string

Required. The modifier IDs that are part of this group.

modifier_actions[]

ModifierAction

Optional. The actions that can be taken on the modifiers in this group.

min_selection_count

int32

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

int32

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

int32

Optional. Limits the number of times each modifier can be applied within this group. If not set, the default is 1.

integration_attributes

ModifierGroupIntegrationAttributes

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

Struct

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

string

Required. The modifier group ID.

default_modifiers[]

DefaultModifierSelection

Optional. The set of modifiers that are applied by default.

min_selection_count

int32

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

int32

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

string

Required. The modifier ID.

quantity

int32

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

Struct

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[]

OrderItem

Optional. The items in the order.

metadata

OrderMetadata

Optional. Other metadata collected or inferred during the order.

fulfillment

OrderFulfillment

Optional. The fulfillment information for the order.

OrderFulfillment

OrderFulfillment contains information about order fulfillment.

Fields
fulfillment_method

FulfillmentMethod

Optional. The fulfillment method of the order.

create_time

Timestamp

Output only. The time the order was created at.

target_fulfillment_time

Timestamp

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

string

Optional. A system-assigned unique identifier for this item.

item_id

string

Required. Identifier for an Item in the Menu, unique within its Menu.

display_name

string

Output only. Human-readable name for this line item to be shown on user interfaces.

image

Image

Output only. Image to display for this item in the UI.

base_price

Money

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

ItemIntegrationAttributes

Output only. Metadata associated with this entity used for downstream integrations.

modifier_groups[]

OrderModifierGroup

Optional. ModifierGroups applied to this item.

quantity

int32

Optional. The quantity of this item in the order.

OrderMetadata

OrderMetadata contains other metadata collected or inferred during the order.

Fields
collected_customer_name

string

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

string

Optional. A system-assigned unique identifier for this modifier.

modifier_id

string

Required. Identifier for this modifier, unique within the menu.

display_name

string

Output only. The modifier display name to be shown on user interfaces.

price_adjustment

Money

Output only. The price adjustment associated with this modifier, if any. This is the price per unit of the modifier.

quantity

int32

Optional. The quantity of this modifier action applied.

modifier_action

OrderModifierAction

Optional. The modifier action applied to this modifier.

image

Image

Output only. Image to display for this modifier in the UI.

integration_attributes

ModifierIntegrationAttributes

Output only. Metadata associated with this entity used for downstream integrations.

modifier_groups[]

OrderModifierGroup

Optional. Nested modifier groups applied to this modifier.

OrderModifierAction

OrderModifierAction specifies the ModifierAction associated with an applied OrderModifier.

Fields
name

string

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

string

Required. Identifier for this modifier group, unique within its menu.

display_name

string

Output only. The modifier group name -- e.g. "Toppings (Sandwich)" or "Side for Medium Combo".

integration_attributes

ModifierGroupIntegrationAttributes

Output only. Metadata associated with this entity used for downstream integrations.

modifiers[]

OrderModifier

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

Order

Required. The original Food AI order.

PaymentInfo

Payment information of the user.

Fields
credit_card_last_four_digits

string

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

string

Optional. CVV of the credit card.

RecommendedOrder

An order recommended by the agent to the user.

Fields
order

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[]

RecommendedOrder

The recommended orders to be displayed to the user.

RestartOrder

Customer requests to start over the order.

Fields
confirmation_step

bool

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[]

DayOfWeek

Optional. The days of the week to apply the schedule to.

date_ranges[]

DateRange

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[]

TimeOfDayRange

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

string

Transcribed text from the audio input in the detected language.

language_code

string

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

string

Identifier. The store name. Format: projects/{project}/locations/{location}/brands/{brand}/stores/{store}

create_time

Timestamp

Output only. The time this store was created.

update_time

Timestamp

Output only. The time this store was last updated.

status

StoreStatus

Required. The status of the store.

time_zone

TimeZone

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

StoreMetadata

Optional. Metadata for the store.

StoreHours

The operating hours of the store.

Fields
fulfillment_method

FulfillmentMethod

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[]

Schedule

Optional. The operating hours for the store for the specified fulfillment_method.

StoreMetadata

Metadata for the store.

Fields
display_name

string

Optional. The display name of the store to be used in UI and customer-facing elements.

contact_email

string

Optional. The email address of the store to be provided to customers.

address

Address

Optional. The address information for the store.

store_hours[]

StoreHours

Optional. The open hours of the store.

dayparts[]

Daypart

Optional. Dayparts defined for the store.

Address

The address information for the store.

Fields
street_address

string

Optional. The street address of the store.

city

string

Optional. The city of the store.

state

string

Optional. The state of the store.

country

string

Optional. The country of the store.

postal_code

string

Optional. The postal code of the store.

latitude

double

Optional. The latitude of the store.

longitude

double

Optional. The longitude of the store.

google_maps_url

string

Optional. The Google Maps URL for the store.

Daypart

A daypart for the store.

Fields
id

string

Optional. The day part id, for instance "BREAKFAST", "LUNCH", etc.

schedules[]

Schedule

Optional. Daypart active hours.

StoreStatus

The status of the store.

Fields
state

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

PaymentInfo

Required. The payment information for the order.

loyalty_info

LoyaltyInfo

Optional. The loyalty consumed for the order.

tip_amount

Money

Optional. The tip amount for the order.

SubmitOrderResponse

The result of submitting the order.

Fields
success

bool

Required. Whether the order was successfully submitted.

estimated_ready_duration

Duration

Optional. The estimated duration until the order is ready.

SuggestedItem

An item to suggest to the customer.

Fields
item_id

string

ID of the item in the menu.

display_name

string

Human-readable name for this tem to be shown on user interfaces.

image

Image

Image to display for this item in the UI.

base_price

Money

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

ItemIntegrationAttributes

Metadata associated with this entity used for downstream integrations.

SuggestedItems

A list of items to suggest to the customer.

Fields
items[]

SuggestedItem

The items to suggest to the customer.

SuggestedModifier

A modifier to suggest to the customer.

Fields
modifier_id

string

ID of the modifier in the menu.

modifier_group_id

string

ID of the modifier group that this modifier should be added to if the suggestion is accepted.

display_name

string

Human-readable name for this tem to be shown on user interfaces.

image

Image

Image to display for this item in the UI.

price_adjustment

Money

The price adjustment associated with this modifier, if any. This is the price per unit of the modifier.

integration_attributes

ModifierIntegrationAttributes

Metadata associated with this entity used for downstream integrations.

SuggestedModifiers

A list of modifiers to suggest to the customer.

Fields
modifiers[]

SuggestedModifier

The modifiers to suggest to the customer.

parent_uid

string

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

SuggestedItems

A list of items to suggest to the customer.

suggested_modifiers

SuggestedModifiers

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

string

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

TimeOfDay

Required. The start of the time range, inclusive.

end_time

TimeOfDay

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

Brand

Required. The brand to update.

The brand's name field is used to identify the brand to update. Format: projects/{project}/locations/{location}/brands/{brand}

update_mask

FieldMask

Optional. The list of fields to update

UpdateStoreRequest

Request message for MenuService.UpdateStore.

Fields
store

Store

Required. The store to update.

The store's name field is used to identify the store to update. Format: projects/{project}/locations/{location}/brands/{brand}/stores/{store}

update_mask

FieldMask

Optional. The list of fields to update

UpdatedOrderState

Event returned by the agent representing an update to the order state.

Fields
order

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

string

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

PaymentInfo

Optional. The payment information of the user.

delivery_address

string

Optional. The saved delivery address of the user.

past_orders[]

PastOrder

Optional. The order history of the user.

loyalty_info

LoyaltyInfo

Optional. The loyalty info of the user.