Protocol Buffers
This file documents the reverse-engineered Protocol Buffers used by the
Hangouts chat protocol. hangups and other projects may these Protocol Buffers
to serialize and deserialize data for communicating with Google’s servers.
Some of the most important Protocol Buffer messages include:
DoNotDisturbSetting
The state of do-not-disturb mode. Not to be confused with DndSetting, which
is used to change the state of do-not-disturb mode.
| Field |
Number |
Type |
Label |
Description |
do_not_disturb |
1 |
bool |
optional |
Whether do-not-disturb mode is enabled. |
expiration_timestamp |
2 |
uint64 |
optional |
Timestamp when do-not-disturb mode expires. |
version |
3 |
uint64 |
optional |
Timestamp when this setting was applied. Not present when this message comes from a notification. |
ConversationId
Identifies a conversation.
| Field |
Number |
Type |
Label |
Description |
id |
1 |
string |
optional |
Unique identifier for a conversation. |
ParticipantId
Identifies a user.
| Field |
Number |
Type |
Label |
Description |
gaia_id |
1 |
string |
optional |
Unique identifier for a user’s Google account. |
chat_id |
2 |
string |
optional |
Seems to always be the same as gaia_id. |
DeviceStatus
Indicates whether Hangouts is active (running in the foreground) on
different types of devices.
| Field |
Number |
Type |
Label |
Description |
mobile |
1 |
bool |
optional |
True if a mobile phone is active. |
desktop |
2 |
bool |
optional |
True if a desktop or laptop is active. |
tablet |
3 |
bool |
optional |
True if a tablet is active. |
LastSeen
| Field |
Number |
Type |
Label |
Description |
last_seen_timestamp_usec |
1 |
uint64 |
optional |
|
usec_since_last_seen |
2 |
uint64 |
optional |
|
Presence
| Field |
Number |
Type |
Label |
Description |
reachable |
1 |
bool |
optional |
|
available |
2 |
bool |
optional |
|
device_status |
6 |
DeviceStatus |
optional |
|
status_message |
9 |
StatusMessageState |
optional |
|
last_seen |
10 |
LastSeen |
optional |
|
StatusMessageState
| Field |
Number |
Type |
Label |
Description |
status_message |
1 |
MessageContent |
repeated |
|
ClientIdentifier
| Field |
Number |
Type |
Label |
Description |
resource |
1 |
string |
optional |
(client_id in hangups). |
header_id |
2 |
string |
optional |
unknown (header_id in hangups). |
UserEventState
| Field |
Number |
Type |
Label |
Description |
user_id |
1 |
ParticipantId |
optional |
|
client_generated_id |
2 |
string |
optional |
|
notification_level |
3 |
NotificationLevel |
optional |
|
LinkData
| Field |
Number |
Type |
Label |
Description |
link_target |
1 |
string |
optional |
|
Segment
A segment of a message. Message are broken into segments that may be of
different types and have different formatting.
| Field |
Number |
Type |
Label |
Description |
type |
1 |
SegmentType |
required |
Note: This field is required because Hangouts for Chrome misbehaves if it isn’t serialized. |
text |
2 |
string |
optional |
The segment text. For line breaks, may either be empty or contain new line character. |
formatting |
3 |
Formatting |
optional |
Formatting for this segment. |
link_data |
4 |
LinkData |
optional |
Link data for this segment, if it is a link. |
PlusPhoto
Google Plus photo that can be embedded in a chat message.
| Field |
Number |
Type |
Label |
Description |
thumbnail |
1 |
PlusPhoto.Thumbnail |
optional |
Thumbnail. |
owner_obfuscated_id |
2 |
string |
optional |
Owner obfuscated ID. |
album_id |
3 |
string |
optional |
Album ID. |
photo_id |
4 |
string |
optional |
Photo ID. |
url |
6 |
string |
optional |
URL of full-sized image. |
original_content_url |
10 |
string |
optional |
URL of image thumbnail. |
media_type |
13 |
PlusPhoto.MediaType |
optional |
The media type. |
stream_id |
14 |
string |
repeated |
List of stream ID parameters. |
PlusPhoto.Thumbnail
Metadata for displaying an image thumbnail.
| Field |
Number |
Type |
Label |
Description |
url |
1 |
string |
optional |
URL to navigate to when thumbnail is selected (a Google Plus album page). |
image_url |
4 |
string |
optional |
URL of thumbnail image. |
width_px |
10 |
uint64 |
optional |
Image width in pixels. |
height_px |
11 |
uint64 |
optional |
Image height in pixels. |
Place
Place that can be embedded in a chat message via Google Maps.
| Field |
Number |
Type |
Label |
Description |
url |
1 |
string |
optional |
Google Maps URL pointing to the place coordinates. |
name |
3 |
string |
optional |
Name of the place. |
address |
24 |
EmbedItem |
optional |
Address of the place. |
geo |
25 |
EmbedItem |
optional |
Geographic location of the place. |
representative_image |
185 |
EmbedItem |
optional |
Representative image of the place (map with pin). |
EmbedItem
An item of some type embedded in a chat message.
| Field |
Number |
Type |
Label |
Description |
type |
1 |
ItemType |
repeated |
List of embedded item types in this message. |
id |
2 |
string |
optional |
For photos this is not given, for maps, it’s the URL of the map. |
plus_photo |
27639957 |
PlusPhoto |
optional |
Embedded Google Plus photo. |
place |
35825640 |
Place |
optional |
Embedded Google Map of a place. |
postal_address |
36003298 |
EmbedItem.PostalAddress |
optional |
Embedded postal address. |
geo_coordinates |
36736749 |
EmbedItem.GeoCoordinates |
optional |
Embedded geographical coordinates. |
image |
40265033 |
EmbedItem.Image |
optional |
Embedded image. |
EmbedItem.PostalAddress
| Field |
Number |
Type |
Label |
Description |
street_address |
35 |
string |
optional |
|
EmbedItem.GeoCoordinates
| Field |
Number |
Type |
Label |
Description |
latitude |
36 |
double |
optional |
|
longitude |
37 |
double |
optional |
|
EmbedItem.Image
| Field |
Number |
Type |
Label |
Description |
url |
1 |
string |
optional |
|
Attachment
An attachment for a chat message.
| Field |
Number |
Type |
Label |
Description |
embed_item |
1 |
EmbedItem |
optional |
|
MessageContent
Chat message content.
| Field |
Number |
Type |
Label |
Description |
segment |
1 |
Segment |
repeated |
|
attachment |
2 |
Attachment |
repeated |
|
EventAnnotation
Annotation that can be applied to a chat message event. The only known use
for this is “me” actions supported by the Chrome client (type 4).
| Field |
Number |
Type |
Label |
Description |
type |
1 |
int32 |
optional |
Annotation type. |
value |
2 |
string |
optional |
Optional annotation string value. |
ChatMessage
A chat message in a conversation.
| Field |
Number |
Type |
Label |
Description |
annotation |
2 |
EventAnnotation |
repeated |
Optional annotation to attach to message. |
message_content |
3 |
MessageContent |
optional |
The message’s content. |
ConversationRename
| Field |
Number |
Type |
Label |
Description |
new_name |
1 |
string |
optional |
|
old_name |
2 |
string |
optional |
|
HashModifier
| Field |
Number |
Type |
Label |
Description |
update_id |
1 |
string |
optional |
|
hash_diff |
2 |
uint64 |
optional |
|
version |
4 |
uint64 |
optional |
|
Event
Event that becomes part of a conversation’s history.
UserReadState
| Field |
Number |
Type |
Label |
Description |
participant_id |
1 |
ParticipantId |
optional |
|
latest_read_timestamp |
2 |
uint64 |
optional |
Timestamp of the user’s last read message in the conversation. |
DeliveryMedium
| Field |
Number |
Type |
Label |
Description |
medium_type |
1 |
DeliveryMediumType |
optional |
|
phone_number |
2 |
PhoneNumber |
optional |
Phone number to use for sending Google Voice messages. |
DeliveryMediumOption
| Field |
Number |
Type |
Label |
Description |
delivery_medium |
1 |
DeliveryMedium |
optional |
|
current_default |
2 |
bool |
optional |
|
ConversationParticipantData
Conversation
A conversation between two or more users.
EasterEgg
| Field |
Number |
Type |
Label |
Description |
message |
1 |
string |
optional |
|
Photo
| Field |
Number |
Type |
Label |
Description |
photo_id |
1 |
string |
optional |
Picasa photo ID. |
delete_albumless_source_photo |
2 |
bool |
optional |
|
user_id |
3 |
string |
optional |
Optional Picasa user ID needed for photos from other accounts (eg. stickers). |
is_custom_user_id |
4 |
bool |
optional |
Must be true if user_id is specified. |
ClientVersion
The client and device version.
| Field |
Number |
Type |
Label |
Description |
client_id |
1 |
ClientId |
optional |
Identifies the client. |
build_type |
2 |
ClientBuildType |
optional |
The client build type. |
major_version |
3 |
string |
optional |
Client version. |
version_timestamp |
4 |
uint64 |
optional |
Client version timestamp. |
device_os_version |
5 |
string |
optional |
OS version string (for native apps). |
device_hardware |
6 |
string |
optional |
Device hardware name (for native apps). |
Entity
A user that can participate in conversations.
Entity.PastHangoutState
| Name |
Number |
Description |
PAST_HANGOUT_STATE_UNKNOWN |
0 |
|
PAST_HANGOUT_STATE_HAD_PAST_HANGOUT |
1 |
|
PAST_HANGOUT_STATE_NO_PAST_HANGOUT |
2 |
|
EntityProperties
| Field |
Number |
Type |
Label |
Description |
type |
1 |
ProfileType |
optional |
|
display_name |
2 |
string |
optional |
|
first_name |
3 |
string |
optional |
|
photo_url |
4 |
string |
optional |
Photo URL with protocol scheme omitted (eg. “//lh.googleusercontent.com/…”). |
email |
5 |
string |
repeated |
|
phone |
6 |
string |
repeated |
|
in_users_domain |
10 |
bool |
optional |
|
gender |
11 |
Gender |
optional |
|
photo_url_status |
12 |
PhotoUrlStatus |
optional |
|
canonical_email |
15 |
string |
optional |
|
ConversationState
State of a conversation and recent events.
EventContinuationToken
Token that allows retrieving more events from a position in a conversation.
Specifying event_timestamp is sufficient.
| Field |
Number |
Type |
Label |
Description |
event_id |
1 |
string |
optional |
|
storage_continuation_token |
2 |
bytes |
optional |
|
event_timestamp |
3 |
uint64 |
optional |
|
EntityLookupSpec
Specifies an entity to lookup by one of its properties.
| Field |
Number |
Type |
Label |
Description |
gaia_id |
1 |
string |
optional |
|
email |
3 |
string |
optional |
|
phone |
4 |
string |
optional |
Phone number as string (eg. “+15551234567”). |
create_offnetwork_gaia |
6 |
bool |
optional |
Whether create a gaia_id for off-network contacts (eg. Google Voice contacts). |
ConfigurationBit
| Field |
Number |
Type |
Label |
Description |
configuration_bit_type |
1 |
ConfigurationBitType |
optional |
|
value |
2 |
bool |
optional |
|
RichPresenceEnabledState
| Field |
Number |
Type |
Label |
Description |
type |
1 |
RichPresenceType |
optional |
|
enabled |
2 |
bool |
optional |
|
DesktopOffSetting
| Field |
Number |
Type |
Label |
Description |
desktop_off |
1 |
bool |
optional |
State of “desktop off” setting. |
DesktopOffState
| Field |
Number |
Type |
Label |
Description |
desktop_off |
1 |
bool |
optional |
Whether Hangouts desktop is signed off or on. |
version |
2 |
uint64 |
optional |
|
DndSetting
Enable or disable do-not-disturb mode. Not to be confused with
DoNotDisturbSetting, which is used to indicate the state of do-not-disturb
mode.
| Field |
Number |
Type |
Label |
Description |
do_not_disturb |
1 |
bool |
optional |
Whether to enable or disable do-not-disturb mode. |
timeout_secs |
2 |
uint64 |
optional |
Do not disturb expiration in seconds. |
DeleteAction
| Field |
Number |
Type |
Label |
Description |
delete_action_timestamp |
1 |
uint64 |
optional |
|
delete_upper_bound_timestamp |
2 |
uint64 |
optional |
|
delete_type |
3 |
DeleteType |
optional |
|
InviteeID
| Field |
Number |
Type |
Label |
Description |
gaia_id |
1 |
string |
optional |
|
fallback_name |
4 |
string |
optional |
|
Country
Describes a user’s country.
| Field |
Number |
Type |
Label |
Description |
region_code |
1 |
string |
optional |
Abbreviated region code (eg. “CA”). |
country_code |
2 |
uint64 |
optional |
Country’s calling code (eg. “1”). |
DesktopSoundSetting
Sound settings in the desktop Hangouts client.
| Field |
Number |
Type |
Label |
Description |
desktop_sound_state |
1 |
SoundState |
optional |
Whether to play sound for incoming messages. |
desktop_ring_sound_state |
2 |
SoundState |
optional |
Whether to ring for incoming calls. |
I18nData
| Field |
Number |
Type |
Label |
Description |
national_number |
1 |
string |
optional |
|
international_number |
2 |
string |
optional |
|
country_code |
3 |
uint64 |
optional |
|
region_code |
4 |
string |
optional |
|
is_valid |
5 |
bool |
optional |
|
validation_result |
6 |
PhoneValidationResult |
optional |
|
PhoneNumber
| Field |
Number |
Type |
Label |
Description |
e164 |
1 |
string |
optional |
Phone number as string (eg. “+15551234567”). |
i18n_data |
2 |
I18nData |
optional |
|
GroupLinkSharingModification
StateUpdate
Pushed from the server to the client to notify it of state changes. Includes
exactly one type of notification, and optionally updates the attributes of a
conversation.
BatchUpdate
List of StateUpdate messages to allow pushing multiple notifications from
the server to the client simultaneously.
| Field |
Number |
Type |
Label |
Description |
state_update |
1 |
StateUpdate |
repeated |
|
ConversationNotification
| Field |
Number |
Type |
Label |
Description |
conversation |
1 |
Conversation |
optional |
|
EventNotification
| Field |
Number |
Type |
Label |
Description |
event |
1 |
Event |
optional |
|
SetConversationNotificationLevelNotification
ReplyToInviteNotification
WatermarkNotification
| Field |
Number |
Type |
Label |
Description |
sender_id |
1 |
ParticipantId |
optional |
|
conversation_id |
2 |
ConversationId |
optional |
|
latest_read_timestamp |
3 |
uint64 |
optional |
|
ConversationViewModification
SelfPresenceNotification
Notifies the status of other clients and status message.
PresenceNotification
| Field |
Number |
Type |
Label |
Description |
presence |
1 |
PresenceResult |
repeated |
|
BlockNotification
| Field |
Number |
Type |
Label |
Description |
block_state_change |
1 |
BlockStateChange |
repeated |
|
SetNotificationSettingNotification
RichPresenceEnabledStateNotification
ConversationSpec
| Field |
Number |
Type |
Label |
Description |
conversation_id |
1 |
ConversationId |
optional |
|
AddUserResponse
| Field |
Number |
Type |
Label |
Description |
response_header |
1 |
ResponseHeader |
optional |
|
created_event |
5 |
Event |
optional |
|
CreateConversationRequest
| Field |
Number |
Type |
Label |
Description |
request_header |
1 |
RequestHeader |
optional |
|
type |
2 |
ConversationType |
optional |
|
client_generated_id |
3 |
uint64 |
optional |
|
name |
4 |
string |
optional |
|
invitee_id |
5 |
InviteeID |
repeated |
|
CreateConversationResponse
| Field |
Number |
Type |
Label |
Description |
response_header |
1 |
ResponseHeader |
optional |
|
conversation |
2 |
Conversation |
optional |
|
new_conversation_created |
7 |
bool |
optional |
|
DeleteConversationRequest
| Field |
Number |
Type |
Label |
Description |
request_header |
1 |
RequestHeader |
optional |
|
conversation_id |
2 |
ConversationId |
optional |
|
delete_upper_bound_timestamp |
3 |
uint64 |
optional |
|
DeleteConversationResponse
EasterEggResponse
| Field |
Number |
Type |
Label |
Description |
response_header |
1 |
ResponseHeader |
optional |
|
timestamp |
2 |
uint64 |
optional |
|
GetConversationRequest
| Field |
Number |
Type |
Label |
Description |
request_header |
1 |
RequestHeader |
optional |
|
conversation_spec |
2 |
ConversationSpec |
optional |
|
include_conversation_metadata |
3 |
bool |
optional |
Whether the ConversationState in the response should include metadata other than the conversation ID (default true). |
include_event |
4 |
bool |
optional |
Whether to include list of events in the response (default true). |
max_events_per_conversation |
6 |
uint64 |
optional |
|
event_continuation_token |
7 |
EventContinuationToken |
optional |
|
GetEntityByIdResponse
| Field |
Number |
Type |
Label |
Description |
response_header |
1 |
ResponseHeader |
optional |
|
entity |
2 |
Entity |
repeated |
Resulting entities of PARTICIPANT_TYPE_GAIA only. |
entity_result |
3 |
EntityResult |
repeated |
All resulting entities. |
GetGroupConversationUrlRequest
| Field |
Number |
Type |
Label |
Description |
request_header |
1 |
RequestHeader |
optional |
|
conversation_id |
2 |
ConversationId |
optional |
Conversation to retrieve URL for. |
GetGroupConversationUrlResponse
| Field |
Number |
Type |
Label |
Description |
response_header |
1 |
ResponseHeader |
optional |
|
group_conversation_url |
2 |
string |
optional |
URL for others to join conversation. |
GetSuggestedEntitiesRequest
GetSuggestedEntitiesResponse
GetSelfInfoRequest
| Field |
Number |
Type |
Label |
Description |
request_header |
1 |
RequestHeader |
optional |
|
RemoveUserRequest
| Field |
Number |
Type |
Label |
Description |
request_header |
1 |
RequestHeader |
optional |
|
participant_id |
3 |
ParticipantId |
optional |
Optional participant to remove from conversation, yourself if not given. |
event_request_header |
5 |
EventRequestHeader |
optional |
|
RemoveUserResponse
| Field |
Number |
Type |
Label |
Description |
response_header |
1 |
ResponseHeader |
optional |
|
created_event |
4 |
Event |
optional |
|
RenameConversationRequest
RenameConversationResponse
| Field |
Number |
Type |
Label |
Description |
response_header |
1 |
ResponseHeader |
optional |
|
created_event |
4 |
Event |
optional |
|
SearchEntitiesRequest
| Field |
Number |
Type |
Label |
Description |
request_header |
1 |
RequestHeader |
optional |
|
query |
3 |
string |
optional |
|
max_count |
4 |
uint64 |
optional |
|
SearchEntitiesResponse
| Field |
Number |
Type |
Label |
Description |
response_header |
1 |
ResponseHeader |
optional |
|
entity |
2 |
Entity |
repeated |
|
Location
| Field |
Number |
Type |
Label |
Description |
place |
1 |
Place |
optional |
|
ChatMessageSpec
| Field |
Number |
Type |
Label |
Description |
segment |
1 |
Segment |
repeated |
|
SendChatMessageResponse
| Field |
Number |
Type |
Label |
Description |
response_header |
1 |
ResponseHeader |
optional |
|
created_event |
6 |
Event |
optional |
|
ModifyOTRStatusResponse
| Field |
Number |
Type |
Label |
Description |
response_header |
1 |
ResponseHeader |
optional |
|
created_event |
4 |
Event |
optional |
|
SendOffnetworkInvitationRequest
SendOffnetworkInvitationResponse
| Field |
Number |
Type |
Label |
Description |
response_header |
1 |
ResponseHeader |
optional |
|
SetActiveClientRequest
| Field |
Number |
Type |
Label |
Description |
request_header |
1 |
RequestHeader |
optional |
|
is_active |
2 |
bool |
optional |
Whether to set the client as active or inactive. |
full_jid |
3 |
string |
optional |
‘email/resource’. |
timeout_secs |
4 |
uint64 |
optional |
Timeout in seconds for client to remain active. |
SetActiveClientResponse
| Field |
Number |
Type |
Label |
Description |
response_header |
1 |
ResponseHeader |
optional |
|
SetConversationLevelRequest
| Field |
Number |
Type |
Label |
Description |
request_header |
1 |
RequestHeader |
optional |
|
SetConversationLevelResponse
| Field |
Number |
Type |
Label |
Description |
response_header |
1 |
ResponseHeader |
optional |
|
SetConversationNotificationLevelRequest
SetConversationNotificationLevelResponse
| Field |
Number |
Type |
Label |
Description |
response_header |
1 |
ResponseHeader |
optional |
|
timestamp |
2 |
uint64 |
optional |
|
SetFocusResponse
| Field |
Number |
Type |
Label |
Description |
response_header |
1 |
ResponseHeader |
optional |
|
timestamp |
2 |
uint64 |
optional |
|
SetGroupLinkSharingEnabledRequest
SetGroupLinkSharingEnabledResponse
| Field |
Number |
Type |
Label |
Description |
response_header |
1 |
ResponseHeader |
optional |
|
created_event |
2 |
Event |
optional |
Created event of type EVENT_TYPE_GROUP_LINK_SHARING_MODIFICATION. |
updated_conversation |
3 |
Conversation |
optional |
Updated conversation. |
SetPresenceRequest
Allows setting one or more of the included presence-related settings.
StatusMessageSetting
| Field |
Number |
Type |
Label |
Description |
status_message |
1 |
ChatMessageSpec |
repeated |
|
SetPresenceResponse
| Field |
Number |
Type |
Label |
Description |
response_header |
1 |
ResponseHeader |
optional |
|
SetTypingResponse
| Field |
Number |
Type |
Label |
Description |
response_header |
1 |
ResponseHeader |
optional |
|
timestamp |
2 |
uint64 |
optional |
|
SyncAllNewEventsRequest
| Field |
Number |
Type |
Label |
Description |
request_header |
1 |
RequestHeader |
optional |
|
last_sync_timestamp |
2 |
uint64 |
optional |
Timestamp after which to return all new events. |
max_response_size_bytes |
8 |
uint64 |
optional |
|
SyncAllNewEventsResponse
| Field |
Number |
Type |
Label |
Description |
response_header |
1 |
ResponseHeader |
optional |
|
sync_timestamp |
2 |
uint64 |
optional |
|
conversation_state |
3 |
ConversationState |
repeated |
|
SyncRecentConversationsRequest
| Field |
Number |
Type |
Label |
Description |
request_header |
1 |
RequestHeader |
optional |
|
last_event_timestamp |
2 |
uint64 |
optional |
Timestamp used for pagination, returns most recent conversations if not given. |
max_conversations |
3 |
uint64 |
optional |
|
max_events_per_conversation |
4 |
uint64 |
optional |
|
sync_filter |
5 |
SyncFilter |
repeated |
|
SyncRecentConversationsResponse
| Field |
Number |
Type |
Label |
Description |
response_header |
1 |
ResponseHeader |
optional |
|
sync_timestamp |
2 |
uint64 |
optional |
|
conversation_state |
3 |
ConversationState |
repeated |
|
continuation_end_timestamp |
4 |
uint64 |
optional |
|
UpdateWatermarkRequest
| Field |
Number |
Type |
Label |
Description |
request_header |
1 |
RequestHeader |
optional |
|
conversation_id |
2 |
ConversationId |
optional |
|
last_read_timestamp |
3 |
uint64 |
optional |
|
UpdateWatermarkResponse
| Field |
Number |
Type |
Label |
Description |
response_header |
1 |
ResponseHeader |
optional |
|
ActiveClientState
Describes which Hangouts client is active.
| Name |
Number |
Description |
ACTIVE_CLIENT_STATE_NO_ACTIVE |
0 |
No client is active. |
ACTIVE_CLIENT_STATE_IS_ACTIVE |
1 |
This is the active client. |
ACTIVE_CLIENT_STATE_OTHER_ACTIVE |
2 |
Other client is active. |
FocusType
| Name |
Number |
Description |
FOCUS_TYPE_UNKNOWN |
0 |
|
FOCUS_TYPE_FOCUSED |
1 |
|
FOCUS_TYPE_UNFOCUSED |
2 |
|
FocusDevice
| Name |
Number |
Description |
FOCUS_DEVICE_UNSPECIFIED |
0 |
|
FOCUS_DEVICE_DESKTOP |
20 |
|
FOCUS_DEVICE_MOBILE |
300 |
|
TypingType
| Name |
Number |
Description |
TYPING_TYPE_UNKNOWN |
0 |
|
TYPING_TYPE_STARTED |
1 |
Started typing. |
TYPING_TYPE_PAUSED |
2 |
Stopped typing with inputted text. |
TYPING_TYPE_STOPPED |
3 |
Stopped typing with no inputted text. |
ClientPresenceStateType
| Name |
Number |
Description |
CLIENT_PRESENCE_STATE_UNKNOWN |
0 |
|
CLIENT_PRESENCE_STATE_NONE |
1 |
|
CLIENT_PRESENCE_STATE_DESKTOP_IDLE |
30 |
|
CLIENT_PRESENCE_STATE_DESKTOP_ACTIVE |
40 |
|
NotificationLevel
| Name |
Number |
Description |
NOTIFICATION_LEVEL_UNKNOWN |
0 |
|
NOTIFICATION_LEVEL_QUIET |
10 |
Notifications are disabled. |
NOTIFICATION_LEVEL_RING |
30 |
Notifications are enabled. |
SegmentType
| Name |
Number |
Description |
SEGMENT_TYPE_TEXT |
0 |
Segment is text. |
SEGMENT_TYPE_LINE_BREAK |
1 |
Segment is a line break. |
SEGMENT_TYPE_LINK |
2 |
Segment is hyperlinked text. |
ItemType
A type of embedded item.
| Name |
Number |
Description |
ITEM_TYPE_THING |
0 |
|
ITEM_TYPE_PLUS_PHOTO |
249 |
Google Plus photo. |
ITEM_TYPE_PLACE |
335 |
|
ITEM_TYPE_PLACE_V2 |
340 |
Google Map place. |
MembershipChangeType
| Name |
Number |
Description |
MEMBERSHIP_CHANGE_TYPE_JOIN |
1 |
|
MEMBERSHIP_CHANGE_TYPE_LEAVE |
2 |
|
HangoutEventType
| Name |
Number |
Description |
HANGOUT_EVENT_TYPE_UNKNOWN |
0 |
|
HANGOUT_EVENT_TYPE_START |
1 |
|
HANGOUT_EVENT_TYPE_END |
2 |
|
HANGOUT_EVENT_TYPE_JOIN |
3 |
|
HANGOUT_EVENT_TYPE_LEAVE |
4 |
|
HANGOUT_EVENT_TYPE_COMING_SOON |
5 |
|
HANGOUT_EVENT_TYPE_ONGOING |
6 |
|
OffTheRecordToggle
Whether the OTR toggle is available to the user.
| Name |
Number |
Description |
OFF_THE_RECORD_TOGGLE_UNKNOWN |
0 |
|
OFF_THE_RECORD_TOGGLE_ENABLED |
1 |
|
OFF_THE_RECORD_TOGGLE_DISABLED |
2 |
|
OffTheRecordStatus
| Name |
Number |
Description |
OFF_THE_RECORD_STATUS_UNKNOWN |
0 |
|
OFF_THE_RECORD_STATUS_OFF_THE_RECORD |
1 |
Conversation is off-the-record (history disabled). |
OFF_THE_RECORD_STATUS_ON_THE_RECORD |
2 |
Conversation is on-the-record (history enabled). |
SourceType
| Name |
Number |
Description |
SOURCE_TYPE_UNKNOWN |
0 |
|
EventType
| Name |
Number |
Description |
EVENT_TYPE_UNKNOWN |
0 |
|
EVENT_TYPE_REGULAR_CHAT_MESSAGE |
1 |
|
EVENT_TYPE_SMS |
2 |
|
EVENT_TYPE_VOICEMAIL |
3 |
|
EVENT_TYPE_ADD_USER |
4 |
|
EVENT_TYPE_REMOVE_USER |
5 |
|
EVENT_TYPE_CONVERSATION_RENAME |
6 |
|
EVENT_TYPE_HANGOUT |
7 |
|
EVENT_TYPE_PHONE_CALL |
8 |
|
EVENT_TYPE_OTR_MODIFICATION |
9 |
|
EVENT_TYPE_PLAN_MUTATION |
10 |
|
EVENT_TYPE_MMS |
11 |
|
EVENT_TYPE_DEPRECATED_12 |
12 |
|
EVENT_TYPE_OBSERVED_EVENT |
13 |
|
EVENT_TYPE_GROUP_LINK_SHARING_MODIFICATION |
14 |
|
ConversationType
| Name |
Number |
Description |
CONVERSATION_TYPE_UNKNOWN |
0 |
|
CONVERSATION_TYPE_ONE_TO_ONE |
1 |
Conversation is one-to-one (only 2 participants). |
CONVERSATION_TYPE_GROUP |
2 |
Conversation is group (any number of participants). |
ConversationStatus
| Name |
Number |
Description |
CONVERSATION_STATUS_UNKNOWN |
0 |
|
CONVERSATION_STATUS_INVITED |
1 |
User is invited to conversation. |
CONVERSATION_STATUS_ACTIVE |
2 |
User is participating in conversation. |
CONVERSATION_STATUS_LEFT |
3 |
User has left conversation. |
ConversationView
| Name |
Number |
Description |
CONVERSATION_VIEW_UNKNOWN |
0 |
|
CONVERSATION_VIEW_INBOX |
1 |
Conversation is in inbox. |
CONVERSATION_VIEW_ARCHIVED |
2 |
Conversation has been archived. |
DeliveryMediumType
| Name |
Number |
Description |
DELIVERY_MEDIUM_UNKNOWN |
0 |
|
DELIVERY_MEDIUM_BABEL |
1 |
|
DELIVERY_MEDIUM_GOOGLE_VOICE |
2 |
|
DELIVERY_MEDIUM_LOCAL_SMS |
3 |
|
InvitationAffinity
| Name |
Number |
Description |
INVITE_AFFINITY_UNKNOWN |
0 |
|
INVITE_AFFINITY_HIGH |
1 |
|
INVITE_AFFINITY_LOW |
2 |
|
ParticipantType
| Name |
Number |
Description |
PARTICIPANT_TYPE_UNKNOWN |
0 |
|
PARTICIPANT_TYPE_GAIA |
2 |
|
PARTICIPANT_TYPE_GOOGLE_VOICE |
3 |
|
InvitationStatus
| Name |
Number |
Description |
INVITATION_STATUS_UNKNOWN |
0 |
|
INVITATION_STATUS_PENDING |
1 |
|
INVITATION_STATUS_ACCEPTED |
2 |
|
ForceHistory
| Name |
Number |
Description |
FORCE_HISTORY_UNKNOWN |
0 |
|
FORCE_HISTORY_NO |
1 |
|
FORCE_HISTORY_ON |
2 |
|
FORCE_HISTORY_OFF |
3 |
|
NetworkType
| Name |
Number |
Description |
NETWORK_TYPE_UNKNOWN |
0 |
|
NETWORK_TYPE_BABEL |
1 |
|
NETWORK_TYPE_GOOGLE_VOICE |
2 |
|
BlockState
| Name |
Number |
Description |
BLOCK_STATE_UNKNOWN |
0 |
|
BLOCK_STATE_BLOCK |
1 |
|
BLOCK_STATE_UNBLOCK |
2 |
|
ReplyToInviteType
| Name |
Number |
Description |
REPLY_TO_INVITE_TYPE_UNKNOWN |
0 |
|
REPLY_TO_INVITE_TYPE_ACCEPT |
1 |
|
REPLY_TO_INVITE_TYPE_DECLINE |
2 |
|
ClientId
Identifies the client.
| Name |
Number |
Description |
CLIENT_ID_UNKNOWN |
0 |
|
CLIENT_ID_ANDROID |
1 |
Hangouts app for Android. |
CLIENT_ID_IOS |
2 |
Hangouts app for iOS. |
CLIENT_ID_CHROME |
3 |
Hangouts Chrome extension. |
CLIENT_ID_WEB_GPLUS |
5 |
Hangouts web interface in Google Plus. |
CLIENT_ID_WEB_GMAIL |
6 |
Hangouts web interface in Gmail. |
CLIENT_ID_ULTRAVIOLET |
13 |
Hangouts Chrome app (“ultraviolet”). |
CLIENT_ID_WEB_HANGOUTS |
44 |
Hangouts web app (https://hangouts.google.com). |
ClientBuildType
Build type of the client.
| Name |
Number |
Description |
BUILD_TYPE_UNKNOWN |
0 |
|
BUILD_TYPE_PRODUCTION_WEB |
1 |
Web app (not used anymore?). |
BUILD_TYPE_PRODUCTION_APP |
3 |
Native app. |
ResponseStatus
Status of the response from the server to the client.
| Name |
Number |
Description |
RESPONSE_STATUS_UNKNOWN |
0 |
|
RESPONSE_STATUS_OK |
1 |
|
RESPONSE_STATUS_UNEXPECTED_ERROR |
3 |
|
RESPONSE_STATUS_INVALID_REQUEST |
4 |
|
PhotoUrlStatus
Status of EntityProperties.photo_url.
| Name |
Number |
Description |
PHOTO_URL_STATUS_UNKNOWN |
0 |
|
PHOTO_URL_STATUS_PLACEHOLDER |
1 |
URL is a placeholder. |
PHOTO_URL_STATUS_USER_PHOTO |
2 |
URL is a photo set by the user. |
Gender
| Name |
Number |
Description |
GENDER_UNKNOWN |
0 |
|
GENDER_MALE |
1 |
|
GENDER_FEMALE |
2 |
|
ProfileType
| Name |
Number |
Description |
PROFILE_TYPE_NONE |
0 |
|
PROFILE_TYPE_ES_USER |
1 |
|
ConfigurationBitType
A type of binary configuration option.
| Name |
Number |
Description |
CONFIGURATION_BIT_TYPE_UNKNOWN |
0 |
|
CONFIGURATION_BIT_TYPE_UNKNOWN_1 |
1 |
|
CONFIGURATION_BIT_TYPE_UNKNOWN_2 |
2 |
|
CONFIGURATION_BIT_TYPE_UNKNOWN_3 |
3 |
|
CONFIGURATION_BIT_TYPE_UNKNOWN_4 |
4 |
|
CONFIGURATION_BIT_TYPE_UNKNOWN_5 |
5 |
|
CONFIGURATION_BIT_TYPE_UNKNOWN_6 |
6 |
|
CONFIGURATION_BIT_TYPE_UNKNOWN_7 |
7 |
|
CONFIGURATION_BIT_TYPE_UNKNOWN_8 |
8 |
|
CONFIGURATION_BIT_TYPE_UNKNOWN_9 |
9 |
|
CONFIGURATION_BIT_TYPE_UNKNOWN_10 |
10 |
|
CONFIGURATION_BIT_TYPE_UNKNOWN_11 |
11 |
|
CONFIGURATION_BIT_TYPE_UNKNOWN_12 |
12 |
|
CONFIGURATION_BIT_TYPE_UNKNOWN_13 |
13 |
|
CONFIGURATION_BIT_TYPE_UNKNOWN_14 |
14 |
|
CONFIGURATION_BIT_TYPE_UNKNOWN_15 |
15 |
|
CONFIGURATION_BIT_TYPE_UNKNOWN_16 |
16 |
|
CONFIGURATION_BIT_TYPE_UNKNOWN_17 |
17 |
|
CONFIGURATION_BIT_TYPE_UNKNOWN_18 |
18 |
|
CONFIGURATION_BIT_TYPE_UNKNOWN_19 |
19 |
|
CONFIGURATION_BIT_TYPE_UNKNOWN_20 |
20 |
|
CONFIGURATION_BIT_TYPE_UNKNOWN_21 |
21 |
|
CONFIGURATION_BIT_TYPE_UNKNOWN_22 |
22 |
|
CONFIGURATION_BIT_TYPE_UNKNOWN_23 |
23 |
|
CONFIGURATION_BIT_TYPE_UNKNOWN_24 |
24 |
|
CONFIGURATION_BIT_TYPE_UNKNOWN_25 |
25 |
|
CONFIGURATION_BIT_TYPE_UNKNOWN_26 |
26 |
|
CONFIGURATION_BIT_TYPE_UNKNOWN_27 |
27 |
|
CONFIGURATION_BIT_TYPE_UNKNOWN_28 |
28 |
|
CONFIGURATION_BIT_TYPE_UNKNOWN_29 |
29 |
|
CONFIGURATION_BIT_TYPE_UNKNOWN_30 |
30 |
|
CONFIGURATION_BIT_TYPE_UNKNOWN_31 |
31 |
|
CONFIGURATION_BIT_TYPE_UNKNOWN_32 |
32 |
|
CONFIGURATION_BIT_TYPE_UNKNOWN_33 |
33 |
|
CONFIGURATION_BIT_TYPE_DESKTOP_AUTO_EMOJI_CONVERSION_ENABLED |
34 |
|
CONFIGURATION_BIT_TYPE_UNKNOWN_35 |
35 |
|
CONFIGURATION_BIT_TYPE_UNKNOWN_36 |
36 |
|
CONFIGURATION_BIT_TYPE_DESKTOP_COMPACT_MODE_ENABLED |
38 |
|
RichPresenceType
| Name |
Number |
Description |
RICH_PRESENCE_TYPE_UNKNOWN |
0 |
|
RICH_PRESENCE_TYPE_IN_CALL_STATE |
1 |
|
RICH_PRESENCE_TYPE_UNKNOWN_3 |
3 |
|
RICH_PRESENCE_TYPE_UNKNOWN_4 |
4 |
|
RICH_PRESENCE_TYPE_UNKNOWN_5 |
5 |
|
RICH_PRESENCE_TYPE_DEVICE |
2 |
|
RICH_PRESENCE_TYPE_LAST_SEEN |
6 |
|
FieldMask
| Name |
Number |
Description |
FIELD_MASK_REACHABLE |
1 |
|
FIELD_MASK_AVAILABLE |
2 |
|
FIELD_MASK_MOOD |
3 |
|
FIELD_MASK_IN_CALL |
6 |
|
FIELD_MASK_DEVICE |
7 |
|
FIELD_MASK_LAST_SEEN |
10 |
|
DeleteType
| Name |
Number |
Description |
DELETE_TYPE_UNKNOWN |
0 |
|
DELETE_TYPE_UPPER_BOUND |
1 |
|
SyncFilter
| Name |
Number |
Description |
SYNC_FILTER_UNKNOWN |
0 |
|
SYNC_FILTER_INBOX |
1 |
|
SYNC_FILTER_ARCHIVED |
2 |
|
SoundState
| Name |
Number |
Description |
SOUND_STATE_UNKNOWN |
0 |
|
SOUND_STATE_ON |
1 |
|
SOUND_STATE_OFF |
2 |
|
CallerIdSettingsMask
| Name |
Number |
Description |
CALLER_ID_SETTINGS_MASK_UNKNOWN |
0 |
|
CALLER_ID_SETTINGS_MASK_PROVIDED |
1 |
|
PhoneVerificationStatus
| Name |
Number |
Description |
PHONE_VERIFICATION_STATUS_UNKNOWN |
0 |
|
PHONE_VERIFICATION_STATUS_VERIFIED |
1 |
|
PhoneDiscoverabilityStatus
| Name |
Number |
Description |
PHONE_DISCOVERABILITY_STATUS_UNKNOWN |
0 |
|
PHONE_DISCOVERABILITY_STATUS_OPTED_IN_BUT_NOT_DISCOVERABLE |
2 |
|
PhoneValidationResult
| Name |
Number |
Description |
PHONE_VALIDATION_RESULT_IS_POSSIBLE |
0 |
|
OffnetworkAddressType
| Name |
Number |
Description |
OFFNETWORK_ADDRESS_TYPE_UNKNOWN |
0 |
|
OFFNETWORK_ADDRESS_TYPE_EMAIL |
1 |
|
GroupLinkSharingStatus
| Name |
Number |
Description |
GROUP_LINK_SHARING_STATUS_UNKNOWN |
0 |
|
GROUP_LINK_SHARING_STATUS_ON |
1 |
|
GROUP_LINK_SHARING_STATUS_OFF |
2 |
|