eion/purple-hangouts
Merge
draft
2019-05-24, Eion Robb
// proto2 is required because we need to be able to serialize default values: message AnonymousDevice { optional string user_name = 1; message AnonymousDeviceAddRequest { optional RequestHeader request_header = 1; repeated AnonymousDevice device = 2; message AnonymousDeviceAddResponse { optional ResponseHeader response_header = 1; optional SyncMetadata sync_metadata = 2; repeated AnonymousDevice device = 3; message CommonAnnouncement { optional string hangout_id = 1; optional string announcement_id = 2; optional AnnouncementType announcement_type = 3; optional string sender_id = 4; optional string subject_id = 5; repeated string recipient_id = 6; optional string locale = 7; optional CommonAnnouncementAction action = 8; optional string title = 9; optional string body = 10; optional LifeTime life_time = 11 [default = FIRE_AND_FORGET]; enum CommonAnnouncementAction { message CommonAnnouncementAddRequest { optional RequestHeader request_header = 1; optional CommonAnnouncement announcement = 2; optional SyncMetadata sync_metadata = 3; repeated CommonAnnouncement resource = 4; message CommonAnnouncementAddResponse { optional ResponseHeader response_header = 1; optional CommonAnnouncement announcement = 2; optional SyncMetadata sync_metadata = 3; repeated CommonAnnouncement resource = 4; message CommonAnnouncementSearchRequest { optional RequestHeader request_header = 1; optional string hangout_id = 2; optional SyncMetadata sync_metadata = 3; optional string locale = 4; message CommonAnnouncementSearchResponse { optional ResponseHeader response_header = 1; repeated CommonAnnouncement announcement = 2; optional SyncMetadata sync_metadata = 3; message CommonAnnouncementRemoveRequest { optional RequestHeader request_header = 1; optional string hangout_id = 2; optional string announcement_id = 3; optional SyncMetadata sync_metadata = 4; repeated string resource_id = 5; message CommonAnnouncementRemoveResponse { optional ResponseHeader response_header = 1; optional SyncMetadata sync_metadata = 2; message HangoutBulkRequestEntry { optional HangoutParticipantAddRequest hangout_participant_add_request = 1; optional MediaSessionAddRequest media_session_add_request = 2; optional MediaStreamAddRequest media_stream_add_request = 3; optional MediaStreamSearchRequest media_stream_search_request = 4; optional MediaSourceAddRequest media_source_add_request = 5; optional MediaSourceSearchRequest media_source_search_request = 6; optional HangoutParticipantSearchRequest hangout_participant_search_request = 7; optional HangoutQueryRequest hangout_query_request = 8; optional HangoutAddRequest hangout_add_request = 9; optional HangoutResolveRequest hangout_resolve_request = 10; optional HangoutInvitationAddRequest hangout_invitation_add_request = 11; optional HangoutInvitationAddPhoneRequest hangout_invitation_add_phone_request = 12; optional MediaSessionQueryRequest media_session_query_request = 13; message HangoutBulkResponseEntry { optional HangoutParticipantAddResponse hangout_participant_add_response = 1; optional MediaSessionAddResponse media_session_add_response = 2; optional MediaStreamAddResponse media_stream_add_response = 3; optional MediaStreamSearchResponse media_stream_search_response = 4; optional MediaSourceAddResponse media_source_add_response = 5; optional MediaSourceSearchResponse media_source_search_response = 6; optional HangoutParticipantSearchResponse hangout_participant_search_response = 7; optional HangoutQueryResponse hangout_query_response = 8; optional HangoutAddResponse hangout_add_response = 9; optional HangoutResolveResponse hangout_resolve_response = 10; optional HangoutInvitationAddResponse hangout_invitation_add_response = 11; optional HangoutInvitationAddPhoneResponse hangout_invitation_add_phone_response = 12; optional MediaSessionQueryResponse media_session_query_response = 13; message HangoutBulkRequest { optional RequestHeader request_header = 1; repeated HangoutBulkRequestEntry entry = 2; optional SyncMetadata sync_metadata = 3; message HangoutBulkResponse { optional ResponseHeader response_header = 1; repeated HangoutBulkResponseEntry entry = 2; optional SyncMetadata sync_metadata = 3; optional string service = 1; optional string value = 2; optional string presenter_participant_id = 1; optional string by_participant_id = 2; optional string hangout_id = 1; optional HangoutType type = 2; optional ExternalKey external_key = 3; optional bool active = 4; optional bool is_public = 5; optional int64 created_ms = 6; optional int64 last_activity_ms = 7; optional string topic = 8; optional ConversationId conversation_id = 9; optional bool by_invitation_only = 10; optional int64 start_time_ms = 11; optional int64 duration_ms = 12; optional string organizer_id = 13; optional HangoutMediaType media_type = 14; optional bool allows_minors = 16; //repeated string tag = 15; ? optional Presenter presenter = 17; optional bool knockable = 18; //repeated {true/false, en-US} locale = 19; optional Tristate external_invited = 21; optional Tristate knocking_enabled = 25; repeated RecordingType active_recording = 26; optional string company_title = 27; optional string meeting_room_name = 28; optional string meeting_domain = 29; optional string url = 30; HANGOUT_TYPE_CONSUMER = 1; HANGOUT_TYPE_BUSINESS = 2; HANGOUT_TYPE_BROADCAST = 3; HANGOUT_TYPE_SINGLE_PARTICIPANT_BROADCAST = 5; HANGOUT_TYPE_SPEAKEASY = 6; HANGOUT_TYPE_EXPRESS_LANE = 7; HANGOUT_TYPE_HOT_LANE = 8; RECORDING_TYPE_UNKNOWN = 0; RECORDING_TYPE_CONSUMER = 1; optional PhoneNumber from_number = 1; optional PhoneNumber to_number = 2; message HangoutParticipant { optional string hangout_id = 1; optional string participant_id = 2; optional string user_id = 3; optional string display_name = 4; optional string avatar_url = 5; optional bool recording = 6; optional bool presenting = 7; //repeated string blocked_user_ids = 8; optional bool in_circles = 9; optional string given_name = 10; optional string family_name = 11; optional MediaRole role = 12; optional ClientType client_type = 13 [default = OTHER]; optional PhoneCallId phone_call_id = 16; optional ParticipantState participant_state = 17 [default = PARTICIPANT_STATE_UNKNOWN]; repeated HangoutParticipantPrivilege privilege = 19; repeated HangoutParticipantBlockedUser blocked_user = 20; optional bool accepted_tos = 21 [default = false]; optional E911UserLocationInfo e911_user_location_info = 22; optional int64 invitation_id = 23; optional string user_message = 25; message HangoutParticipantBlockedUser { optional string user_id = 1; optional BlockType block_type = 2 [default = HANGOUT_IGNORE]; PARTICIPANT_STATE_UNKNOWN = 0; PARTICIPANT_STATE_JOINED = 1; PARTICIPANT_STATE_RINGING = 2; PARTICIPANT_STATE_KNOCKING = 10; PARTICIPANT_STATE_KNOCKING_DENIED = 11; PARTICIPANT_STATE_KNOCKING_ACCEPTED = 12; PARTICIPANT_STATE_RINGING_CONNECTING = 20; PARTICIPANT_STATE_RINGING_NOEARLYMEDIA = 21; PARTICIPANT_STATE_RINGING_EARLYMEDIA = 22; enum HangoutParticipantPrivilege { PARTICIPANT_PRIVILEGE_UNKNOWN = 0; PARTICIPANT_PRIVILEGE_MAY_ACCEPT_KNOCK = 1; PARTICIPANT_PRIVILEGE_MAY_SET_PRESENTER = 2; PARTICIPANT_PRIVILEGE_MAY_INVITE = 3; PARTICIPANT_PRIVILEGE_MAY_KICK = 4; optional string name = 1; optional string domain = 2; optional string calendar_id = 3; optional string event_id = 4; message HangoutSearchResult { optional Hangout hangout = 1; repeated HangoutParticipant participant = 2; repeated Broadcast broadcast = 3; message HangoutSearchRequest { optional RequestHeader request_header = 1; optional bool active_only = 2; optional bool is_public = 3; optional int32 limit = 4 [default = 10]; optional int64 oldest_timestamp = 6; message HangoutSearchResponse { optional ResponseHeader response_header = 1; repeated HangoutSearchResult result = 2; message HangoutAddRequest { optional RequestHeader request_header = 1; optional Hangout hangout = 2; optional SyncMetadata sync_metadata = 3; repeated Hangout resource = 4; message HangoutAddResponse { optional ResponseHeader response_header = 1; optional Hangout hangout = 2; optional SyncMetadata sync_metadata = 3; optional string sharing_url = 4; repeated Hangout resource = 5; message HangoutQueryRequest { optional RequestHeader request_header = 1; optional string hangout_id = 2; optional SyncMetadata sync_metadata = 3; message HangoutQueryResponse { optional ResponseHeader response_header = 1; optional Hangout hangout = 2; optional SyncMetadata sync_metadata = 3; message HangoutResolveRequest { optional RequestHeader request_header = 1; optional ExternalKey external_key = 2; optional NamedHangout named_hangout = 4; optional bool is_joining = 5 [default = false]; optional HangoutMediaType media_type = 6[default = HANGOUT_MEDIA_TYPE_AUDIO_VIDEO]; optional string sharing_url = 7; optional SyncMetadata sync_metadata = 8; message HangoutResolveResponse { optional ResponseHeader response_header = 1; optional string hangout_id = 2; optional HangoutResolveError error_code = 3; optional string sharing_url = 4; optional SyncMetadata sync_metadata = 5; enum HangoutResolveError { message HangoutModifyRequest { optional RequestHeader request_header = 1; optional Hangout hangout = 2; optional SyncMetadata sync_metadata = 3; repeated Hangout resource = 4; message HangoutModifyResponse { optional ResponseHeader response_header = 1; optional Hangout hangout = 2; optional SyncMetadata sync_metadata = 3; repeated Hangout resource = 4; message HangoutRemoveRequest { optional RequestHeader request_header = 1; optional string hangout_id = 2; optional SyncMetadata sync_metadata = 3; repeated string resource_id = 4 ; message HangoutRemoveResponse { optional ResponseHeader response_header = 1; optional SyncMetadata sync_metadata = 2; message HangoutParticipantSearchRequest { optional RequestHeader request_header = 1; optional string hangout_id = 2; optional SyncMetadata sync_metadata = 3; message RemovedParticipant { optional string participant_id = 1; optional RemovalReason removal_reason = 2 [default = UNKNOWN_REASON]; message HangoutParticipantSearchResponse { optional ResponseHeader response_header = 1; repeated HangoutParticipant participant = 2; optional SyncMetadata sync_metadata = 3; repeated RemovedParticipant removed = 4; message HangoutParticipantAddPrerequisite { optional Hangout hangout = 1; repeated ParticipantId participant = 2; optional bool hoa_tos_accepted = 3 [default = false]; optional bool customer_recording_tos_accepted = 4 [default = false]; message HangoutParticipantAddRequest { optional RequestHeader request_header = 1; optional HangoutParticipant participant = 2; optional HangoutParticipantAddPrerequisite prerequisite = 3; optional SyncMetadata sync_metadata = 5; repeated HangoutParticipant resource = 6; message HangoutParticipantAddResponse { optional ResponseHeader response_header = 1; optional HangoutParticipant participant = 2; optional SyncMetadata sync_metadata = 3; optional HangoutParticipantAddErrorCode error_code = 4; repeated HangoutParticipant resource = 5; message HangoutParticipantQueryRequest { optional RequestHeader request_header = 1; optional string hangout_id = 2; optional string participant_id = 3; optional SyncMetadata sync_metadata = 4; message HangoutParticipantQueryResponse { optional ResponseHeader response_header = 1; optional HangoutParticipant participant = 2; optional SyncMetadata sync_metadata = 3; message HangoutParticipantModifyRequest { optional RequestHeader request_header = 1; optional HangoutParticipant participant = 2; optional SyncMetadata sync_metadata = 3; repeated HangoutParticipant resource = 4; message HangoutParticipantModifyResponse { optional ResponseHeader response_header = 1; optional HangoutParticipant participant = 2; optional SyncMetadata sync_metadata = 3; repeated HangoutParticipant resource = 4; message HangoutParticipantRemoveRequest { optional RequestHeader request_header = 1; optional string hangout_id = 2; optional string participant_id = 3 ; optional EndCause end_cause = 5; optional SyncMetadata sync_metadata = 4; repeated string resource_id = 6; repeated HangoutParticipantIdentifier resource = 7; message HangoutParticipantRemoveResponse { optional ResponseHeader response_header = 1; optional SyncMetadata sync_metadata = 2; optional int64 version = 1; optional string changed_by = 2; optional HangoutCookie hangout_cookie = 3; optional string cookie = 1; optional int64 timestamp = 2; message HangoutParticipantIdentifier { optional string hangout_id = 1; optional string participant_id = 2; message MediaSourceIdentifier { optional string hangout_id = 1; optional string participant_id = 2; optional string source_id = 3; message BroadcastIdentifier { optional string hangout_id = 1; optional string broadcast_id = 2; optional DTMFCode code = 1; message HangoutPushEvent { optional string hangout_id = 1; optional string sender_participant_id = 2; repeated string receiver_participant_id = 3; optional PushEventType event_type = 4; optional DTMFEvent dtmf_event = 5; optional bool should_ack = 6; message HangoutPushEventAddRequest { optional RequestHeader request_header = 1; optional HangoutPushEvent event = 2; repeated HangoutPushEvent resource = 3; message HangoutPushEventAddResponse { optional ResponseHeader response_header = 1; optional HangoutPushEvent event = 2; optional SyncMetadata sync_metadata = 3; repeated HangoutPushEvent resource = 4; message HangoutPushEventAckRequest { optional RequestHeader request_header = 1; optional string hangout_id = 2; optional SyncMetadata sync_metadata = 3; message HangoutPushEventAckResponse { optional ResponseHeader response_header = 1; message VideoResolution { optional int32 height = 1; optional int32 width = 2; optional int32 frame_rate = 3; optional bool ssrcs_known = 1; optional VideoResolution resolution = 3; optional uint32 priority = 4; optional string hangout_id = 1 ; optional string participant_id = 2 ; optional string source_id = 3 ; optional MediaType media_type = 4; optional MuteState mute_state = 5; optional MuteRequest mute_request = 6; optional VideoDetails video_details = 7; optional PlayLevelRequest play_level_request = 8; optional string by_participant_id = 2; optional float play_level = 3; required string by_participant_id = 1; optional CaptureType capture_type = 1; optional VideoResolution captured_resolution = 2; repeated VideoDetailsRegion interest_region = 3; message VideoDetailsRegion { required float width = 3; required float height = 4; message PlayLevelRequest { required string by_participant_id = 1; optional float play_level = 2; message MediaIceCandidate { optional Component component = 1; optional Protocol protocol = 2; optional MediaIceCandidateType type = 5; optional int32 priority = 6; optional string network = 7; optional int32 generation = 8; optional MediaType media_type = 9; enum MediaIceCandidateType { optional IceVersion ice_version = 1; optional SslFingerprint ssl_fingerprint = 2; repeated string option = 3 ; optional string username = 4 ; optional string password = 5 ; repeated MediaIceCandidate candidate = 6; optional string algorithm = 1; optional string fingerprint = 2; ICE_GOOGLE_DRAFT = 1; //http://www.google.com/transport/p2p ICE_RFC_5245 = 2; //urn:xmpp:jingle:transports:ice-udp:1 optional int32 payload_id = 1; optional string name = 2; optional MediaType media_type = 3; optional int32 preference = 4; optional int32 bit_rate = 5; optional int32 sample_rate = 6; optional int32 channel_count = 7; repeated MediaCodecParam param = 8; message MediaCodecParam { optional string value = 2; message MediaCryptoParams { optional MediaCryptoSuite suite = 1; optional string key_params = 2; optional string session_params = 3; AES_CM_128_HMAC_SHA1_80 = 1; AES_CM_128_HMAC_SHA1_32 = 2; message MediaRtpHeaderExtension { optional string uri = 2 ; optional MediaType media_type = 3; optional MediaType media_type = 1; optional StreamRequest stream_request = 2; optional MediaType media_type = 1 [default = MEDIA_TYPE_BUNDLE]; optional MediaTransport transport = 2; repeated MediaCodec codec = 3; repeated MediaCryptoParams crypto_param = 4; repeated MediaRtpHeaderExtension rtp_header_extension = 5; repeated MediaRequest default_request = 6; optional string channel_id = 1; optional PushChannelFormat format = 2; optional string label = 4; optional string session_id = 1; repeated MediaContent client_content = 3; repeated MediaContent server_content = 4; repeated PushChannel push_channel = 5; repeated string hangout_id = 6; optional MediaSessionType type = 7; optional MediaStreamDirection direction = 1; optional MediaType media_type = 2; optional string session_id = 3; optional string stream_id = 4; optional string hangout_id = 5; optional string participant_id = 6; optional string source_id = 7; optional MediaStreamOffer offer = 8; optional StreamRequest request = 9; message MediaStreamOffer { repeated uint32 ssrc = 1; repeated SsrcGroup ssrc_group = 2; optional string semantics = 1; repeated uint32 ssrc = 2; message MediaSourceSearchRequest { optional RequestHeader request_header = 1; optional string hangout_id = 2; optional string participant_id = 3; optional SyncMetadata sync_metadata = 4; message MediaSourceSearchResponse { optional ResponseHeader response_header = 1; repeated MediaSource result = 2; optional SyncMetadata sync_metadata = 3; message MediaSourceAddRequest { optional RequestHeader request_header = 1; optional MediaSource source = 2; optional SyncMetadata sync_metadata = 3; repeated MediaSource resource = 4; message MediaSourceAddResponse { optional ResponseHeader response_header = 1; optional MediaSource source = 2; optional SyncMetadata sync_metadata = 3; repeated MediaSource resource = 4; message MediaSourceQueryRequest { optional RequestHeader request_header = 1; optional string hangout_id = 2; optional string participant_id = 3; optional string source_id = 4; message MediaSourceQueryResponse { optional ResponseHeader response_header = 1; optional MediaSource source = 2; message MediaSourceModifyRequest { optional RequestHeader request_header = 1; optional MediaSource source = 2; optional SyncMetadata sync_metadata = 3; repeated MediaSource resource = 4; message MediaSourceModifyResponse { optional ResponseHeader response_header = 1; optional MediaSource source = 2; optional SyncMetadata sync_metadata = 3; repeated MediaSource resource = 4; message MediaSourceRemoveRequest { optional RequestHeader request_header = 1; optional string hangout_id = 2; optional string participant_id = 3; optional string source_id = 4; optional SyncMetadata sync_metadata = 5; repeated string resource_id = 6; message MediaSourceRemoveResponse { optional ResponseHeader response_header = 1; optional SyncMetadata sync_metadata = 2; message MediaSessionSearchRequest { optional RequestHeader request_header = 1; optional SyncMetadata sync_metadata = 2; optional string hangout_id = 3; message MediaSessionSearchResponse { optional ResponseHeader response_header = 1; repeated MediaSession result = 2; optional SyncMetadata sync_metadata = 3; message MediaSessionAddRequest { optional RequestHeader request_header = 1; optional MediaSession session = 2; optional SyncMetadata sync_metadata = 3; repeated MediaSession resource = 4; message MediaSessionAddResponse { optional ResponseHeader response_header = 1; optional MediaSession session = 2; optional SyncMetadata sync_metadata = 3; repeated MediaSession resource = 4; message MediaSessionQueryRequest { optional RequestHeader request_header = 1; optional string session_id = 2; optional SyncMetadata sync_metadata = 3; message MediaSessionQueryResponse { optional ResponseHeader response_header = 1; optional MediaSession session = 2; optional SyncMetadata sync_metadata = 3; message MediaSessionModifyRequest { optional RequestHeader request_header = 1; optional MediaSession session = 2; optional SyncMetadata sync_metadata = 3; repeated MediaSession resource = 4; message MediaSessionModifyResponse { optional ResponseHeader response_header = 1; optional MediaSession session = 2; optional SyncMetadata sync_metadata = 3; repeated MediaSession resource = 4; message MediaSessionLogRequest { optional RequestHeader request_header = 1; optional string session_id = 2; optional LogData log_data = 3; optional SyncMetadata sync_metadata = 4; message MediaSessionLogResponse { optional ResponseHeader response_header = 1; optional SyncMetadata sync_metadata = 2; message MediaSessionRemoveRequest { optional RequestHeader request_header = 1; optional string session_id = 2; optional SyncMetadata sync_metadata = 3; repeated string resource_id = 4; message MediaSessionRemoveResponse { optional ResponseHeader response_header = 1; optional SyncMetadata sync_metadata = 2; message MediaStreamSearchRequest { optional RequestHeader request_header = 1; optional MediaStreamDirection direction = 2; optional string session_id = 3; optional string hangout_id = 4; optional SyncMetadata sync_metadata = 5; message MediaStreamSearchResponse { optional ResponseHeader response_header = 1; repeated MediaStream result = 2; optional SyncMetadata sync_metadata = 3; message MediaStreamAddRequest { optional RequestHeader request_header = 1; optional MediaStream stream = 2; optional SyncMetadata sync_metadata = 3; repeated MediaStream resource = 4; message MediaStreamAddResponse { optional ResponseHeader response_header = 1; optional MediaStream stream = 2; optional SyncMetadata sync_metadata = 3; repeated MediaStream resource = 4; message MediaStreamQueryRequest { optional RequestHeader request_header = 1; optional MediaStreamDirection direction = 2; optional string session_id = 3; optional string stream_id = 4; optional string hangout_id = 5; message MediaStreamQueryResponse { optional ResponseHeader response_header = 1; optional MediaStream stream = 2; message MediaStreamModifyRequest { optional RequestHeader request_header = 1; optional MediaStream stream = 2; optional SyncMetadata sync_metadata = 3; repeated MediaStream resource = 4; message MediaStreamModifyResponse { optional ResponseHeader response_header = 1; optional MediaStream stream = 2; optional SyncMetadata sync_metadata = 3; repeated MediaStream resource = 4; message MediaStreamRemoveRequest { optional RequestHeader request_header = 1; optional MediaStreamDirection direction = 2; optional string session_id = 3; optional string stream_id = 4; optional string hangout_id = 5; optional SyncMetadata sync_metadata = 6; repeated string resource_id = 7; message MediaStreamRemoveResponse { optional ResponseHeader response_header = 1; optional SyncMetadata sync_metadata = 2; message HangoutClientBatchNotification { repeated HangoutClientPushNotification notification = 1; message HangoutIdentifier { optional string hangout_id = 1; message MediaSessionIdentifier { optional string session_id = 1; message MediaStreamIdentifier { optional string hangout_id = 1; optional string session_id = 2; optional string stream_id = 3; optional MediaStreamDirection direction = 4; message CommonAnnouncementIdentifier { optional string hangout_id = 1; optional string announcement_id = 2; message HangoutsPushNotification { optional SyncMetadata sync_metadata = 1; repeated Hangout modified = 2; repeated HangoutIdentifier deleted = 3; optional HangoutIdentifier resync_collection = 4; message HangoutParticipantsPushNotification { optional SyncMetadata sync_metadata = 1; repeated HangoutParticipant modified = 2; repeated HangoutParticipantIdentifier deleted = 3; optional EndCause end_cause = 4; optional HangoutParticipantIdentifier resync_collection = 5; optional RemovalReason removal_reason = 6; message MediaSessionsPushNotification { optional SyncMetadata sync_metadata = 1; repeated MediaSession modified = 2; repeated MediaSessionIdentifier deleted = 3; optional MediaSessionIdentifier resync_collection = 4; message MediaSourcesPushNotification { optional SyncMetadata sync_metadata = 1; repeated MediaSource modified = 2; repeated MediaSourceIdentifier deleted = 3; optional MediaSourceIdentifier resync_collection = 4; message MediaStreamsPushNotification { optional SyncMetadata sync_metadata = 1; repeated MediaStream modified = 2; repeated MediaStreamIdentifier deleted = 3; optional MediaStreamIdentifier resync_collection = 4; message BroadcastsPushNotification { optional SyncMetadata sync_metadata = 1; repeated Broadcast modified = 2; repeated BroadcastIdentifier deleted = 3; optional BroadcastIdentifier resync_collection = 4; message CommonAnnouncementsPushNotification { optional SyncMetadata sync_metadata = 1; repeated CommonAnnouncement modified = 2; repeated CommonAnnouncementIdentifier deleted = 3; optional CommonAnnouncementIdentifier resync_collection = 4; message PushNotification { optional HangoutParticipantsPushNotification hangout_participants_update = 1; optional MediaSessionsPushNotification media_sessions_update = 2; optional MediaStreamsPushNotification media_streams_update = 3; optional MediaSourcesPushNotification media_sources_update = 5; optional BroadcastsPushNotification hangout_broadcasts_update = 7; optional HangoutsPushNotification hangouts_update = 8; optional CommonAnnouncementsPushNotification common_announcements_update = 9; message HangoutClientPushNotification { optional PushNotification notification = 2; optional HangoutSharingTargetId invitee = 1; repeated NotificationSent notifications_sent = 2; optional string display_name = 3; optional string avatar_url = 4; message HangoutSharingTargetId { optional PersonId person_id = 1; optional string circle_id = 2; optional SystemGroupType group_type = 3; optional string email = 1; optional string user_id = 2; SYSTEM_GROUP_TYPE_PUBLIC = 1; SYSTEM_GROUP_TYPE_DASHER_DOMAIN = 2; SYSTEM_GROUP_TYPE_YOUR_CIRCLES = 3; SYSTEM_GROUP_TYPE_EXTENDED_CIRCLES = 4; NOTIFICATION_SENT_UNKNOWN = 0; NOTIFICATION_SENT_EMAIL = 1; NOTIFICATION_SENT_JINGLE = 2; NOTIFICATION_SENT_RING = 3; NOTIFICATION_SENT_DING = 4; NOTIFICATION_SENT_STREAM_POST = 5; NOTIFICATION_SENT_QUIET = 6; NOTIFICATION_SENT_INVITE = 7; NOTIFICATION_SENT_CALENDAR = 8; NOTIFICATION_SENT_NONE = 9; message HangoutInvitation { optional string hangout_id = 1; optional NotificationType notification_type = 3 [default = RING]; optional int64 invitation_id = 8 [default = 0]; repeated HangoutInvitee invited_entity = 11; message HangoutPhoneInvitation { optional int64 invitation_id = 1 [default = 0]; optional string hangout_id = 2; optional PhoneNumber phone = 3; optional bool is_emergency_call = 4; optional bool is_caller_id_blocked = 5; optional EligibleCallerIdToken eligible_caller_id_token = 6; message HangoutInvitationAddRequest { optional RequestHeader request_header = 1; optional HangoutInvitation invitation = 2; optional SyncMetadata sync_metadata = 3; message HangoutInvitationAddResponse { optional ResponseHeader response_header = 1; optional HangoutInvitation invitation = 2; optional HangoutInvitationAddErrorCode error_code = 3; optional SyncMetadata sync_metadata = 4; enum HangoutInvitationAddErrorCode { PUBLIC_OR_EXTENDED_BLOCKED = 1; message HangoutInvitationAddPhoneRequest { optional RequestHeader request_header = 1; optional HangoutPhoneInvitation invitation = 2; optional SyncMetadata sync_metadata = 3; message HangoutInvitationAddPhoneResponse { optional ResponseHeader response_header = 1; optional HangoutPhoneInvitation invitation = 2; optional SyncMetadata sync_metadata = 3; message BroadcastRecordingDetailsExtension { optional string hangout_id = 1; optional string broadcast_id = 2; optional string project_id = 3; optional string producer_participant_id = 5; optional RecordingDetails recording_details = 8; optional LiveStreamDetails live_stream_details = 9; optional string owner_profile_id = 10; optional LiveStreamStatus live_stream_status = 11; optional RecordingStatus recording_status = 12; optional BroadcastUseCase use_case = 13; message RecordingDetails { optional int64 start_time_ms = 1; optional TimeSpan stop_time = 2; optional string fixed_main_screen_participant_id = 3; optional GooglePlusRecordingDetails gplus_recording = 5; optional AbuseRecordingDetails abuse_recording = 6; optional BroadcastRecordingDetailsExtension details_extension = 7; optional int64 walltime_ms = 1; optional int64 offset_ms = 2; message GooglePlusRecordingDetails { optional string owner_id = 1; optional int64 album_id = 2; optional string title = 3; message LiveStreamDetails { optional string youtube_live_id = 1; optional string topic = 2; optional bool enable_monitor_stream = 3 [default = true]; optional PrivacyStatus privacy_status = 4; PRIVACY_STATUS_PUBLIC = 0; PRIVACY_STATUS_UNLISTED = 1; PRIVACY_STATUS_PRIVATE = 2; message AbuseRecordingDetails { optional AbuseRecordingDetailsStatus status = 1 [default = ABUSE_RECORDING_DETAILS_STATUS_UNKNOWN]; optional string defendant_participant_id = 2; optional string user_comments = 3; enum AbuseRecordingDetailsStatus { ABUSE_RECORDING_DETAILS_STATUS_UNKNOWN = 0; ABUSE_RECORDING_DETAILS_STATUS_INITIALIZE = 1; ABUSE_RECORDING_DETAILS_STATUS_CONFIRM = 2; message LiveStreamStatus { optional LiveStreamStatusStatus current_state = 3; optional int64 live_start_time_ms = 4; optional bool should_go_live = 5 [default = false]; enum LiveStreamStatusStatus { LIVE_STREAM_STATUS_UNKNOWN = 0; LIVE_STREAM_STATUS_INITIALIZING = 1; LIVE_STREAM_STATUS_PREVIEW_AVAILABLE = 2; LIVE_STREAM_STATUS_PREPARING_LIVE = 3; LIVE_STREAM_STATUS_LIVE = 4; LIVE_STREAM_STATUS_FINISHED = 5; message RecordingStatus { optional RecordingStatusStatus current_status = 1; enum RecordingStatusStatus { RECORDING_STATUS_UNKNOWN = 0; RECORDING_STATUS_INITIALIZING = 1; RECORDING_STATUS_STOPPED = 3; RECORDING_STATUS_STARTED = 2; RECORDING_STATUS_STARTING = 4; RECORDING_STATUS_STOPPING = 5; RECORDING_STATUS_READY = 6; message BroadcastAddRequest { optional RequestHeader request_header = 1; optional Broadcast broadcast = 2; optional SyncMetadata sync_metadata = 3; repeated Broadcast resource = 4; message BroadcastAddResponse { optional ResponseHeader response_header = 1; optional Broadcast broadcast = 2; optional SyncMetadata sync_metadata = 3; repeated Broadcast resource = 4; message BroadcastRemoveRequest { optional RequestHeader request_header = 1; optional string hangout_id = 2; optional string broadcast_id = 3; optional SyncMetadata sync_metadata = 4; optional string on_behalf_of_participant_id = 5; repeated string resource_id = 6; repeated BroadcastIdentifier resource = 7; message BroadcastRemoveResponse { optional ResponseHeader response_header = 1; optional SyncMetadata sync_metadata = 2; message BroadcastModifyRequest { optional RequestHeader request_header = 1; optional Broadcast broadcast = 2; optional SyncMetadata sync_metadata = 3; repeated Broadcast resource = 4; message BroadcastModifyResponse { optional ResponseHeader response_header = 1; optional Broadcast broadcast = 2; optional SyncMetadata sync_metadata = 3; repeated Broadcast resource = 4; message BroadcastResolveRequest { optional RequestHeader request_header = 1; optional string hangout_id = 2; message BroadcastResolveResponse { optional ResponseHeader response_header = 1; optional string broadcast_id = 2; optional bool is_owner = 3; message BroadcastQueryRequest { optional RequestHeader request_header = 1; optional string hangout_id = 2; optional string broadcast_id = 3; optional SyncMetadata sync_metadata = 4; message BroadcastQueryResponse { optional ResponseHeader response_header = 1; optional Broadcast broadcast = 2; optional SyncMetadata sync_metadata = 3; message BroadcastSearchRequest { optional RequestHeader request_header = 1; optional string hangout_id = 2; optional SyncMetadata sync_metadata = 3; message BroadcastSearchResponse { optional ResponseHeader response_header = 1; repeated Broadcast broadcast = 2; optional SyncMetadata sync_metadata = 3; message E911UserLocationInfo { optional LocationNetworkInfo network_info = 1; optional GeoLocationInfo device_location = 2; optional GeoLocationInfo emergency_address_location = 3; optional CellularNetworkInfo last_cellular_network_info = 4; message LocationNetworkInfo { optional string bssid = 1; optional NetworkInfoNetworkType network_type = 2; enum NetworkInfoNetworkType { NETWORK_INFO_TYPE_UNKNOWN = 0; NETWORK_INFO_TYPE_ETHERNET = 1; NETWORK_INFO_TYPE_WIFI802_11A = 2; NETWORK_INFO_TYPE_WIFI802_11B = 3; NETWORK_INFO_TYPE_WIFI802_11G = 4; NETWORK_INFO_TYPE_WIFI802_11N = 5; message GeoLocationInfo { optional int32 latitude_e6 = 1; optional int32 longitude_e6 = 2; optional double accuracy = 3; message CellularNetworkInfo { optional CellularNetworkInfoAccessType access_type = 1; optional string access_info = 2; optional int64 p_lani_timestamp_ms = 3; optional int64 registration_timestamp_ms = 4; enum CellularNetworkInfoAccessType { ACCESS_TYPE_THREEGPP_GERAN = 1; ACCESS_TYPE_THREEGPP_UTRAN_FDD = 2; ACCESS_TYPE_THREEGPP_UTRAN_TDD = 3; ACCESS_TYPE_THREEGPP_CDMA2000 = 4; ACCESS_TYPE_THREEGPP_E_UTRAN_FDD = 5; ACCESS_TYPE_THREEGPP_E_UTRAN_TDD = 6; message EligibleCallerIdToken { optional PhoneNumber caller_id_phone_number = 1; optional bytes signature = 2; optional uint64 signature_ttl_usec = 3; optional string participant_log_id = 14; optional HandoffLogEntry handoff_log_entry = 15; message HandoffLogEntry { optional HandoffType type = 1; optional CallStartupEventCode event_code = 2; optional string previous_session_id = 3; optional string next_session_id = 4; HANDOFF_TYPE_NO_HANDOFF = 0; HANDOFF_TYPE_NOVA_WIFI_TO_PSTN = 1; HANDOFF_TYPE_NOVA_PSTN_TO_WIFI = 2; HANDOFF_TYPE_UNKNOWN = 3; HANDOFF_TYPE_HANGOUT_CLOUD_P2P = 4; HANDOFF_TYPE_HANGOUT_P2P_CLOUD = 5; UNKNOWN_ANNOUNCEMENT = 0; ANNOUNCEMENT_TYPE_CAMERA_APP_ON = 1; ANNOUNCEMENT_TYPE_ABUSE_RECORDING = 2; END_CAUSE_USER_ENDED = 0; END_CAUSE_LAPTOP_SLEEPING = 4; END_CAUSE_FLUTE_NOT_ENABLED = 7; END_CAUSE_CLIENT_GONE = 8; END_CAUSE_CONNECTIVITY_LOST = 10; END_CAUSE_TIE_BREAK = 12; END_CAUSE_PLAYER_ERROR = 13; END_CAUSE_ADMIN_ENDED = 14; END_CAUSE_FATAL_RESPONSE = 15; END_CAUSE_INITIATE_FAILED = 16; END_CAUSE_UNKNOWN_SESSION = 17; END_CAUSE_ANOTHER_CLIENT_ACCEPTED = 18; END_CAUSE_INCOMPATIBLE_PARAMETERS = 19; END_CAUSE_SECURITY_ERROR = 20; END_CAUSE_MUC_DROPOUT = 21; END_CAUSE_COMMUNICATION_CHANNEL = 22; END_CAUSE_FAILED_TRANSPORT = 23; END_CAUSE_NO_CANDIDATES = 24; END_CAUSE_SESSION_EXPIRED = 25; END_CAUSE_SERVER_GONE = 26; END_CAUSE_NO_CONNECTIVITY = 27; END_CAUSE_INTERNAL_SERVER_ERROR = 28; END_CAUSE_UNDEFINED_CONDITION = 29; END_CAUSE_RESOURCE_CONSTRAINT = 30; END_CAUSE_NETWORK_GONE = 31; END_CAUSE_BROWSER_CHANNEL_FAILED = 32; END_CAUSE_BAD_REQUEST = 33; END_CAUSE_UNEXPECTED_CODEPATH = 34; END_CAUSE_PAYMENT_REQUIRED = 35; END_CAUSE_WCS_DRAINED = 36; END_CAUSE_USER_AUTO_KICKED = 37; END_CAUSE_HOA_COPYRIGHT_VIOLATION = 38; END_CAUSE_HOA_ABUSE_VIOLATION = 39; END_CAUSE_HOA_FINGERPRINT_VIOLATION = 40; END_CAUSE_USER_TAKE_OVER = 41; END_CAUSE_PLUGIN_CONNECTIVITY_LOST = 42; END_CAUSE_EJECTED_BY_MODERATOR = 43; END_CAUSE_FAILOVER_FAILED = 44; END_CAUSE_USER_RTCP_BYE = 45; END_CAUSE_AUTH_EXPIRED = 46; END_CAUSE_NEVER_STARTED = 47; END_CAUSE_PARTIAL_FAILED_TRANSPORT = 48; END_CAUSE_NEVER_CONNECTED = 49; END_CAUSE_PARTIAL_NEVER_CONNECTED = 50; END_CAUSE_P2P_3RD_PARTY_JOINED = 51; END_CAUSE_P2P_OTHER_SIDE_ENDED = 52; END_CAUSE_P2P_JID_MISMATCH = 53; END_CAUSE_P2P_STATE_MISMATCH = 54; END_CAUSE_P2P_SETUP_FAILED = 55; END_CAUSE_SESSION_SERVER_UNBIND = 56; END_CAUSE_FLUTE_CRASH = 57; END_CAUSE_WEBRTC_DENIED = 58; END_CAUSE_LEFT_CONVERSATION = 59; END_CAUSE_JOIN_CALL_NOT_IN_PROGRESS = 60; END_CAUSE_AUTO_EXIT_ON_EMPTY = 61; END_CAUSE_ANOTHER_CALL_ANSWERED = 62; END_CAUSE_CLIENT_CLOSE_OR_REFRESH = 63; END_CAUSE_KNOCKING_DENIED = 64; END_CAUSE_HANDOFF_TO_PSTN = 65; END_CAUSE_HANDOFF_FROM_PSTN = 66; MEDIA_ROLE_ORGANIZER = 2; MEDIA_ROLE_MODERATOR = 3; PUSH_EVENT_DTMF_EVENT = 1; PUSH_EVENT_INVITATION_EVENT = 2; enum MediaStreamDirection { MEDIA_STREAM_DIRECTION_DOWN = 1; MEDIA_STREAM_DIRECTION_UP = 2; BROADCAST_USE_CASE_HANGOUTS_ON_AIR = 0; BROADCAST_USE_CASE_CONSUMER_RECORDING = 1; BROADCAST_USE_CASE_VIDEO_VOICEMAIL = 2; BROADCAST_USE_CASE_ENTERPRISE_RECORDING = 3; BROADCAST_USE_CASE_ENTERPRISE_STREAMING = 4; BROADCAST_USE_CASE_HANGOUT_ABUSE_RECORDING = 5; BROADCAST_USE_CASE_SPEAKEASY = 8; REMOVED_INSUFFICIENT_FUNDS = 4; REMOVED_CONNECTION_FAILED = 6; REMOVED_CANNOT_CALL_YOURSELF = 7; REMOVED_USER_ALREADY_IN_CALL = 8; enum HangoutParticipantAddErrorCode { HPA_UNKNOWN_ERROR_CODE = 0; HPA_USER_ABUSE_BLOCKED = 1; HPA_MINORS_NOT_ALLOWED = 4; HPA_MINORS_NOT_SUPPORTED = 5; HPA_HANGOUTS_ON_AIR_TOS_NOT_ACCEPTED = 8; HPA_CUSTOMER_RECORDING_TOS_NOT_ACCEPTED = 9; HPA_ABUSE_RECORDING_TOS_NOT_ACCEPTED = 10; HPA_UNICORN_CHILD_NOT_ALLOWED = 11; enum CallStartupEventCode { OTHER_DEVICE_RESPONDED = 101; RING_TIMEOUT_CLIENT = 102; RING_TIMEOUT_SERVER = 103; BROWSER_NOT_SUPPORTED = 203; GOOGLE_PLUS_DISABLED = 205; MINORS_NOT_ALLOWED = 206; MINORS_NOT_SUPPORTED = 207; MOBILE_DATA_NOT_SUPPORTED = 208; NON_GPLUS_NOT_ALLOWED = 222; UNICORN_CHILD_BLOCKED = 223; OBSOLETE_CLIENT_VERSION = 212; PLUSSPAGE_NOT_IN_CIRCLE = 213; PLUSPAGE_NO_ACCESS = 214; ROOM_NOT_FOUND_LINK = 217; VIDEO_CHAT_DISABLED = 220; DISALLOWED_BY_CONFIG = 224; NO_LOCAL_PHONE_ACCOUNT = 225; NO_HANGOUT_TO_JOIN = 226; UNABLE_TO_HANDOFF_INACTIVE_CALL = 227; CONFERENCE_CALL_NOT_SUPPORTED = 228; AUTHENTICATION_FAILURE = 300; ROOM_NOT_FOUND_ERROR = 306; SERVICE_UNAVAILBLE = 307; CREATE_CONV_TIMEOUT = 308; JID_LOOKUP_TIMEOUT = 310; DOWNLOADING_CODE_TIMEOUT = 311; ROOM_DISCOVERY_TIMEOUT = 312; ROOM_CONFIG_TIMEOUT = 313; INITIATE_SESSION_TIMEOUT = 315; CREATE_HANGOUT_ID_TIMEOUT = 316; HANDOFF_TO_CELLULAR_DUE_TO_ERROR = 317; CALL_COULD_NOT_START = 318; ANDROID_TELEPHONY_API_ERROR = 319; NO_TELECOMM_CONNECTION = 321;