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.

JSON representation
{
  "session": string,
  "store": string,
  "laneId": string,
  "enableEchoCancellation": boolean,
  "daypartId": string,
  "featureGate": {
    object (FeatureGate)
  },
  "clientAppInfo": {
    object (ClientAppInfo)
  },
  "mode": enum (SessionMode),
  "channelType": enum (ChannelType),
  "enableListenOnlyDualChannel": boolean,
  "testSessionStartTime": string,
  "fulfillmentMethod": enum (FulfillmentMethod),
  "clientEnv": string
}
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}

laneId

string

Optional. The id of a specifc drive through lane.

enableEchoCancellation

boolean

Optional. Whether to enable echo cancellation for the session. If enabled, the client should provide the customerAudio and crewAudio in the AudioInput.

daypartId

string

Optional. Daypart of the food menu, including breakfast, lunch, dinner, etc. This is used to determine the menu to use for the order.

featureGate

object (FeatureGate)

Optional. The feature gates for the session. This is used to enable or disable features for the session.

clientAppInfo

object (ClientAppInfo)

Optional. The information about the client application and device environment.

mode

enum (SessionMode)

Optional. The mode of the session.

channelType

enum (ChannelType)

Optional. The type of channel used for agent communication.

enableListenOnlyDualChannel

boolean

Optional. Whether to enable listen-only dual channel for the session. If enabled, the client should provide the customerAudio and crewAudio in the AudioInput.

testSessionStartTime

string (Timestamp format)

Optional. The start time of the session, used for testing or evaluation purposes.

Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" or "2014-10-02T15:01:23+05:30".

fulfillmentMethod

enum (FulfillmentMethod)

Optional. The fulfillment method for the session.

clientEnv

string

Optional. The environment on the client side (e.g., "qa", "uat", "preprod").

FeatureGate

The feature gates for the session. This is used to enable or disable features for the session.

JSON representation
{
  "menuResponseEnabled": boolean,
  "updatedOrderStateEnabled": boolean,
  "enableOrderStatusRetrieval": boolean,
  "enableClientEscalationAudio": boolean
}
Fields
menuResponseEnabled

boolean

Optional. Returns the menu data to the client in BidiProcessOrderResponse if set.

updatedOrderStateEnabled

boolean

Optional. If set, updatedOrderState is returned instead of legacyOrderStateResponse.

enableOrderStatusRetrieval

boolean

Optional. If set, the agent will support order status retrieval.

enableClientEscalationAudio

boolean

Optional. If set, client escalation audio is synthesized and streamed on ClientEscalationEvent.

ClientAppInfo

Information about the client application and device environment. This is primarily used for logging, analytics, and debugging.

JSON representation
{
  "deviceModel": string,
  "osVersion": string,
  "sdkVersion": string
}
Fields
deviceModel

string

Optional. The device model of the client (e.g., "iPhone 13", "Pixel 7", "Kiosk v2").

osVersion

string

Optional. The operating system version of the client (e.g., "iOS 16.1", "Android 13").

sdkVersion

string

Optional. The version of the client SDK or application software.

SessionMode

The mode of the session.

Enums
SESSION_MODE_UNSPECIFIED The session mode is not specified.
HYBRID The session supports both audio and text. This is the default.
TEXT The session is text-only.