View Source GoogleApi.ContentWarehouse.V1.Model.AssistantApiCoreTypesDeviceId (google_api_content_warehouse v0.4.0)

LINT.IfChange(DeviceId) Specifies identifier of a device AKA surface. Note there may be multiple device ids for the same physical device E.g. Allo app and Assistant app on Nexus. Note: DeviceId usage is complicated. Please do not depend on it for surface specific logic. Please use google3/assistant/api/capabilities.proto instead. IMPORTANT: When checking for equality between two DeviceIds, you should always use an isSameDevice{As} function to check for equality, as deep equality between DeviceId's is not guaranteed. C++: http://google3/assistant/assistant_server/util/device_id_util.cc;l=23;rcl=421295740 Dart: http://google3/assistant/context/util/lib/device_id.dart;l=26;rcl=442126145 * Java: http://google3/java/com/google/assistant/assistantserver/utils/DeviceIdHelper.java;l=9;rcl=390378522 See http://go/deviceid-equality for more details. Next ID: 14

Attributes

  • agsaClientInstanceId (type: String.t, default: nil) - The client_instance_id on devices with GSA. See 'client_instance_field' in go/androidids.
  • alloDeviceId (type: String.t, default: nil) - Allo Id. Corresponds to the GBotRequest.Sender.sender. NOTE(dychen): This may change to standard android/ios physical device ids in order to enable shared data (e.g. installed app on physical device shared between Allo and Opa apps on Nexus).
  • canonicalDeviceId (type: String.t, default: nil) - A unique device ID for Assistant devices as proposed by go/ocelot-team to solve the device id fragmentation problem. The value of this id is the HomeGraph id of the device. See go/ocelot-track-0-registry-design. New surfaces should use the canonical_device_id instead of using other ids, and the registration should utilize the DeviceDataLayer (go/ddl-v0). Please contact the assistant-state-management@ team for guidance. Note: We didn't reuse |home_graph_device_id| because in Assistant code base |home_graph_device_id| is common to associate it with 3P devices. See go/project-yellowstone for more context.
  • castDeviceId (type: String.t, default: nil) - If set, indicates that the device is a cast device, and contains the UUID of the cast device. Corresponds to the device_id field of the CastDevice proto.
  • clientInstanceId (type: String.t, default: nil) - DUSI (go/dusi) is used as the identifier here. This identifier is unique to the user and device. This will help identify which device or application the user's request originated from. This is not to be confused with the client_instance_id that android devices provide. This is currently used by surfaces that use the assistant-legacy-nexus and assistant-legacy-clockwork pipelines. DUSI is created and set in S3. This field is only filled for GAIA requests.
  • connectedDockId (type: String.t, default: nil) - A device ID produced by a connected dock, which is registered in HomeGraph.
  • deviceConfig (type: GoogleApi.ContentWarehouse.V1.Model.AssistantApiCoreTypesDeviceConfig.t, default: nil) - The unique DeviceConfig to the specific third party device. It is also used by Android Auto Embedded first party device. See go/opa-ids.
  • deviceType (type: String.t, default: nil) - DEPRECATED. assistant.api.core_types.governed.SurfaceIdentity.surface_type field should be used instead. The device's surface type. This is the string version of surface_type. The server should use the SurfaceType value derived from this string. If the device_type isn't supported within the SurfaceType enum, it will be set as UNKNOWN. Developers should use the enum in ServerParams instead of this string. WARNING: Clients are not actually setting this field. This field will be removed once references to it within the code base have been removed.
  • homeGraphDeviceId (type: String.t, default: nil) - The unique device ID for HomeGraph devices. This is the HomeGraph ID, created when the device is registered into HomeGraph. It is immutable for the same device unless it is completely deleted and recreated. See go/home-graph for details.
  • libassistantDeviceId (type: String.t, default: nil) - The unique ID for libassistant based devices. See go/libassistant-id for details.
  • multiHotwordArbitrationDeviceId (type: String.t, default: nil) - If set, indicates that the device is participating the multi-hotword arbitration and the id is an UUID to distinguish it from other devices. It should also be consistent between requests from a single device within a session (or short duration).
  • opaIosDeviceId (type: String.t, default: nil) - The unique device ID for the Assistant App on iOS. See go/opa-ios-design for details.
  • quartzDeviceId (type: String.t, default: nil) - The unique ID of a Quartz device. See go/quartz-design-doc for more details. Quartz ID is a hash of (android_id + gaia).

Summary

Functions

Unwrap a decoded JSON object into its complex fields.

Types

@type t() :: %GoogleApi.ContentWarehouse.V1.Model.AssistantApiCoreTypesDeviceId{
  agsaClientInstanceId: String.t() | nil,
  alloDeviceId: String.t() | nil,
  canonicalDeviceId: String.t() | nil,
  castDeviceId: String.t() | nil,
  clientInstanceId: String.t() | nil,
  connectedDockId: String.t() | nil,
  deviceConfig:
    GoogleApi.ContentWarehouse.V1.Model.AssistantApiCoreTypesDeviceConfig.t()
    | nil,
  deviceType: String.t() | nil,
  homeGraphDeviceId: String.t() | nil,
  libassistantDeviceId: String.t() | nil,
  multiHotwordArbitrationDeviceId: String.t() | nil,
  opaIosDeviceId: String.t() | nil,
  quartzDeviceId: String.t() | nil
}

Functions

@spec decode(struct(), keyword()) :: struct()

Unwrap a decoded JSON object into its complex fields.