import "steammessages_unified_base.steamclient.proto";
import "steammessages_base.proto";
import "steammessages_clientserver_friends.proto";

message CHelpRequestLogs_UploadUserApplicationLog_Request {
	optional uint32 appid = 1;
	optional string log_type = 2;
	optional string version_string = 3;
	optional string log_contents = 4;
}

message CHelpRequestLogs_UploadUserApplicationLog_Response {
	optional uint64 id = 1;
}

message CMsgClientAppMinutesPlayedData {
	repeated .CMsgClientAppMinutesPlayedData_AppMinutesPlayedData minutes_played = 1;
}

message CMsgClientAppMinutesPlayedData_AppMinutesPlayedData {
	optional uint32 app_id = 1;
	optional int32 forever = 2;
	optional int32 last_two_weeks = 3;
}

message CCommunity_GetApps_Request {
	repeated int32 appids = 1;
	optional uint32 language = 2;
}

message CCommunity_GetApps_Response {
	repeated .CCDDBAppDetailCommon apps = 1;
}

message CCommunity_GetAppRichPresenceLocalization_Request {
	optional int32 appid = 1;
	optional string language = 2;
}

message CCommunity_GetAppRichPresenceLocalization_Response {
	optional int32 appid = 1;
	repeated .CCommunity_GetAppRichPresenceLocalization_Response_TokenList token_lists = 2;
}

message CCommunity_GetAppRichPresenceLocalization_Response_Token {
	optional string name = 1;
	optional string value = 2;
}

message CCommunity_GetAppRichPresenceLocalization_Response_TokenList {
	optional string language = 1;
	repeated .CCommunity_GetAppRichPresenceLocalization_Response_Token tokens = 2;
}

message CCommunity_GetCommentThread_Request {
	optional fixed64 steamid = 1;
	optional uint32 comment_thread_type = 2;
	optional fixed64 gidfeature = 3;
	optional fixed64 gidfeature2 = 4;
	optional fixed64 commentthreadid = 5;
	optional int32 start = 6;
	optional int32 count = 7;
	optional int32 upvoters = 8;
	optional bool include_deleted = 9;
	optional fixed64 gidcomment = 10;
	optional uint32 time_oldest = 11;
	optional bool oldest_first = 12;
}

message CCommunity_Comment {
	optional fixed64 gidcomment = 1;
	optional fixed64 steamid = 2;
	optional uint32 timestamp = 3;
	optional string text = 4;
	optional int32 upvotes = 5;
	optional bool hidden = 6;
	optional bool hidden_by_user = 7;
	optional bool deleted = 8;
	optional .CMsgIPAddress ipaddress = 9;
	optional int32 total_hidden = 10;
	optional bool upvoted_by_user = 11;
}

message CCommunity_GetCommentThread_Response {
	repeated .CCommunity_Comment comments = 1;
	repeated .CCommunity_Comment deleted_comments = 2;
	optional fixed64 steamid = 3;
	optional fixed64 commentthreadid = 4;
	optional int32 start = 5;
	optional int32 count = 6;
	optional int32 total_count = 7;
	optional int32 upvotes = 8;
	repeated uint32 upvoters = 9;
	optional bool user_subscribed = 10;
	optional bool user_upvoted = 11;
	optional fixed64 answer_commentid = 12;
	optional uint32 answer_actor = 13;
	optional int32 answer_actor_rank = 14;
	optional bool can_post = 15;
}

message CCommunity_PostCommentToThread_Request {
	optional fixed64 steamid = 1;
	optional uint32 comment_thread_type = 2;
	optional fixed64 gidfeature = 3;
	optional fixed64 gidfeature2 = 4;
	optional string text = 6;
	optional fixed64 gidparentcomment = 7;
	optional bool suppress_notifications = 8;
}

message CCommunity_PostCommentToThread_Response {
	optional fixed64 gidcomment = 1;
	optional fixed64 commentthreadid = 2;
	optional int32 count = 3;
	optional int32 upvotes = 4;
}

message CCommunity_DeleteCommentFromThread_Request {
	optional fixed64 steamid = 1;
	optional uint32 comment_thread_type = 2;
	optional fixed64 gidfeature = 3;
	optional fixed64 gidfeature2 = 4;
	optional fixed64 gidcomment = 5;
	optional bool undelete = 6;
}

message CCommunity_DeleteCommentFromThread_Response {
}

message CCommunity_RateCommentThread_Request {
	optional string commentthreadtype = 1;
	optional uint64 steamid = 2;
	optional uint64 gidfeature = 3;
	optional uint64 gidfeature2 = 4;
	optional uint64 gidcomment = 5;
	optional bool rate_up = 6;
	optional bool suppress_notifications = 7;
}

message CCommunity_RateCommentThread_Response {
	optional uint64 gidcomment = 1;
	optional uint64 commentthreadid = 2;
	optional uint32 count = 3;
	optional uint32 upvotes = 4;
	optional bool has_upvoted = 5;
}

message CCommunity_GetCommentThreadRatings_Request {
	optional string commentthreadtype = 1;
	optional uint64 steamid = 2;
	optional uint64 gidfeature = 3;
	optional uint64 gidfeature2 = 4;
	optional uint64 gidcomment = 5;
	optional uint32 max_results = 6;
}

message CCommunity_GetCommentThreadRatings_Response {
	optional uint64 commentthreadid = 1;
	optional uint64 gidcomment = 2;
	optional uint32 upvotes = 3;
	optional bool has_upvoted = 4;
	repeated uint32 upvoter_accountids = 5;
}

message CCommunity_RateClanAnnouncement_Request {
	optional uint64 announcementid = 1;
	optional bool vote_up = 2;
}

message CCommunity_RateClanAnnouncement_Response {
}

message CCommunity_GetClanAnnouncementVoteForUser_Request {
	optional uint64 announcementid = 1;
}

message CCommunity_GetClanAnnouncementVoteForUser_Response {
	optional bool voted_up = 1;
	optional bool voted_down = 2;
}

message CAppPriority {
	optional uint32 priority = 1;
	repeated uint32 appid = 2;
}

message CCommunity_GetUserPartnerEventNews_Request {
	optional uint32 count = 1;
	optional uint32 offset = 2;
	optional uint32 rtime32_start_time = 3;
	optional uint32 rtime32_end_time = 4;
	repeated uint32 language_preference = 5;
	repeated int32 filter_event_type = 6 [(description) = "enum; suggested type: ECommunityWordFilterType"];
	optional bool filter_to_appid = 7;
	repeated .CAppPriority app_list = 8;
	optional uint32 count_after = 9 [default = 0];
	optional uint32 count_before = 10 [default = 0];
}

message CCommunity_GetUserPartnerEventNews_Response {
	repeated .CClanMatchEventByRange results = 1;
}

message CCommunity_GetBestEventsForUser_Request {
	optional bool include_steam_blog = 1;
	optional uint32 filter_to_played_within_days = 2;
}

message CCommunity_PartnerEventResult {
	optional uint32 clanid = 1;
	optional fixed64 event_gid = 2;
	optional fixed64 announcement_gid = 3;
	optional uint32 appid = 4;
	optional bool possible_takeover = 5;
	optional uint32 rtime32_last_modified = 6 [default = 0];
	optional int32 user_app_priority = 7;
}

message CCommunity_GetBestEventsForUser_Response {
	repeated .CCommunity_PartnerEventResult results = 1;
}

message CCommunity_ClearUserPartnerEventsAppPriorities_Request {
}

message CCommunity_ClearUserPartnerEventsAppPriorities_Response {
}

message CCommunity_PartnerEventsAppPriority {
	optional uint32 appid = 1;
	optional int32 user_app_priority = 2;
}

message CCommunity_GetUserPartnerEventsAppPriorities_Request {
}

message CCommunity_GetUserPartnerEventsAppPriorities_Response {
	repeated .CCommunity_PartnerEventsAppPriority priorities = 1;
}

message CCommunity_ClearSinglePartnerEventsAppPriority_Request {
	optional uint32 appid = 1;
}

message CCommunity_ClearSinglePartnerEventsAppPriority_Response {
}

message CCommunity_PartnerEventsShowMoreForApp_Request {
	optional uint32 appid = 1;
}

message CCommunity_PartnerEventsShowMoreForApp_Response {
}

message CCommunity_PartnerEventsShowLessForApp_Request {
	optional uint32 appid = 1;
}

message CCommunity_PartnerEventsShowLessForApp_Response {
}

message CCommunity_MarkPartnerEventsForUser_Request {
	repeated .CCommunity_MarkPartnerEventsForUser_Request_PartnerEventMarking markings = 1;
}

message CCommunity_MarkPartnerEventsForUser_Request_PartnerEventMarking {
	optional uint32 clanid = 1;
	optional fixed64 event_gid = 2;
	optional int32 display_location = 3 [(description) = "enum; suggested type: EPartnerEventDisplayLocation"];
	optional bool mark_shown = 4;
	optional bool mark_read = 5;
}

message CCommunity_MarkPartnerEventsForUser_Response {
}

message CProductImpressionsFromClient_Notification {
	repeated .CProductImpressionsFromClient_Notification_Impression impressions = 1;
}

message CProductImpressionsFromClient_Notification_Impression {
	optional int32 type = 1 [(description) = "enum; suggested type: EProductImpressionFromClientType"];
	optional uint32 appid = 2;
	optional uint32 num_impressions = 3;
}

message CFriendsListCategory {
	optional uint32 groupid = 1;
	optional string name = 2;
	repeated uint32 accountid_members = 3;
}

message CFriendsList_GetCategories_Request {
}

message CFriendsList_GetCategories_Response {
	repeated .CFriendsListCategory categories = 1;
}

message CFriendsListFavoriteEntry {
	optional uint32 accountid = 1;
	optional uint32 clanid = 2;
	optional uint64 chat_group_id = 3;
}

message CFriendsList_GetFavorites_Request {
}

message CFriendsList_GetFavorites_Response {
	repeated .CFriendsListFavoriteEntry favorites = 1;
}

message CFriendsList_SetFavorites_Request {
	repeated .CFriendsListFavoriteEntry favorites = 1;
}

message CFriendsList_SetFavorites_Response {
}

message CFriendsList_FavoritesChanged_Notification {
	repeated .CFriendsListFavoriteEntry favorites = 1;
}

message CFriendsList_GetFriendsList_Request {
}

message CFriendsList_GetFriendsList_Response {
	optional .CMsgClientFriendsList friendslist = 1;
}

message CMsgClientUCMEnumerateUserPublishedFiles {
	optional uint32 app_id = 1;
	optional uint32 start_index = 2;
	optional uint32 sort_order = 3;
}

message CMsgClientUCMEnumerateUserPublishedFilesResponse {
	optional int32 eresult = 1 [default = 2];
	repeated .CMsgClientUCMEnumerateUserPublishedFilesResponse_PublishedFileId published_files = 2;
	optional uint32 total_results = 3;
}

message CMsgClientUCMEnumerateUserPublishedFilesResponse_PublishedFileId {
	optional fixed64 published_file_id = 1;
}

message CMsgClientUCMEnumerateUserSubscribedFiles {
	optional uint32 app_id = 1;
	optional uint32 start_index = 2;
	optional uint32 list_type = 3 [default = 1];
	optional uint32 matching_file_type = 4 [default = 0];
	optional uint32 count = 5 [default = 50];
}

message CMsgClientUCMEnumerateUserSubscribedFilesResponse {
	optional int32 eresult = 1 [default = 2];
	repeated .CMsgClientUCMEnumerateUserSubscribedFilesResponse_PublishedFileId subscribed_files = 2;
	optional uint32 total_results = 3;
}

message CMsgClientUCMEnumerateUserSubscribedFilesResponse_PublishedFileId {
	optional fixed64 published_file_id = 1;
	optional fixed32 rtime32_subscribed = 2 [default = 0];
}

message CMsgClientUCMPublishedFileDeleted {
	optional fixed64 published_file_id = 1;
	optional uint32 app_id = 2;
}

message CMsgClientWorkshopItemInfoRequest {
	optional uint32 app_id = 1;
	optional uint32 last_time_updated = 2;
	repeated .CMsgClientWorkshopItemInfoRequest_WorkshopItem workshop_items = 3;
}

message CMsgClientWorkshopItemInfoRequest_WorkshopItem {
	optional fixed64 published_file_id = 1;
	optional uint32 time_updated = 2;
}

message CMsgClientWorkshopItemInfoResponse {
	optional int32 eresult = 1 [default = 2];
	optional uint32 update_time = 2;
	repeated .CMsgClientWorkshopItemInfoResponse_WorkshopItemInfo workshop_items = 3;
	repeated fixed64 private_items = 4;
}

message CMsgClientWorkshopItemInfoResponse_WorkshopItemInfo {
	optional fixed64 published_file_id = 1;
	optional uint32 time_updated = 2;
	optional fixed64 manifest_id = 3;
	optional bool is_legacy = 4;
}

message CMsgClientUCMGetPublishedFilesForUser {
	optional uint32 app_id = 1;
	optional fixed64 creator_steam_id = 2;
	repeated string required_tags = 3;
	repeated string excluded_tags = 4;
	optional uint32 start_index = 5;
}

message CMsgClientUCMGetPublishedFilesForUserResponse {
	optional int32 eresult = 1 [default = 2];
	repeated .CMsgClientUCMGetPublishedFilesForUserResponse_PublishedFileId published_files = 2;
	optional uint32 total_results = 3;
}

message CMsgClientUCMGetPublishedFilesForUserResponse_PublishedFileId {
	optional fixed64 published_file_id = 1;
}

message CMsgCREEnumeratePublishedFiles {
	optional uint32 app_id = 1;
	optional int32 query_type = 2;
	optional uint32 start_index = 3;
	optional uint32 days = 4;
	optional uint32 count = 5;
	repeated string tags = 6;
	repeated string user_tags = 7;
	optional uint32 matching_file_type = 8 [default = 13];
}

message CMsgCREEnumeratePublishedFilesResponse {
	optional int32 eresult = 1 [default = 2];
	repeated .CMsgCREEnumeratePublishedFilesResponse_PublishedFileId published_files = 2;
	optional uint32 total_results = 3;
}

message CMsgCREEnumeratePublishedFilesResponse_PublishedFileId {
	optional fixed64 published_file_id = 1;
	optional int32 votes_for = 2;
	optional int32 votes_against = 3;
	optional int32 reports = 4;
	optional float score = 5;
}

message CMsgGameServerPingSample {
	optional fixed32 my_ip = 1;
	optional int32 gs_app_id = 2;
	repeated .CMsgGameServerPingSample_Sample gs_samples = 3;
}

message CMsgGameServerPingSample_Sample {
	optional fixed32 ip = 1;
	optional uint32 avg_ping_ms = 2;
	optional uint32 stddev_ping_ms_x10 = 3;
}

message CClan_RespondToClanInvite_Request {
	optional fixed64 steamid = 1;
	optional bool accept = 2;
}

message CClan_RespondToClanInvite_Response {
}

message CVoiceChat_RequestOneOnOneChat_Request {
	optional fixed64 steamid_partner = 1;
}

message CVoiceChat_RequestOneOnOneChat_Response {
	optional fixed64 voice_chatid = 1;
}

message CVoiceChat_OneOnOneChatRequested_Notification {
	optional fixed64 voice_chatid = 1;
	optional fixed64 steamid_partner = 2;
}

message CVoiceChat_AnswerOneOnOneChat_Request {
	optional fixed64 voice_chatid = 1;
	optional fixed64 steamid_partner = 2;
	optional bool accepted_request = 3;
}

message CVoiceChat_AnswerOneOnOneChat_Response {
}

message CVoiceChat_OneOnOneChatRequestResponse_Notification {
	optional fixed64 voicechat_id = 1;
	optional fixed64 steamid_partner = 2;
	optional bool accepted_request = 3;
}

message CVoiceChat_EndOneOnOneChat_Request {
	optional fixed64 steamid_partner = 1;
}

message CVoiceChat_EndOneOnOneChat_Response {
}

message CVoiceChat_LeaveOneOnOneChat_Request {
	optional fixed64 steamid_partner = 1;
	optional fixed64 voice_chatid = 2;
}

message CVoiceChat_LeaveOneOnOneChat_Response {
}

message CVoiceChat_UserJoinedVoiceChat_Notification {
	optional fixed64 voice_chatid = 1;
	optional fixed64 user_steamid = 2;
	optional uint64 chatid = 3;
	optional fixed64 one_on_one_steamid_lower = 4;
	optional fixed64 one_on_one_steamid_higher = 5;
	optional uint64 chat_group_id = 6;
	optional uint32 user_sessionid = 7;
}

message CVoiceChat_UserVoiceStatus_Notification {
	optional fixed64 voice_chatid = 1;
	optional fixed64 user_steamid = 2;
	optional bool user_muted_mic_locally = 3;
	optional bool user_muted_output_locally = 4;
	optional bool user_has_no_mic_for_session = 5;
	optional int32 user_webaudio_sample_rate = 6;
}

message CVoiceChat_AllMembersStatus_Notification {
	optional fixed64 voice_chatid = 1;
	repeated .CVoiceChat_UserVoiceStatus_Notification users = 2;
}

message CVoiceChat_UpdateVoiceChatWebRTCData_Request {
	optional fixed64 voice_chatid = 1;
	optional uint32 ip_webrtc_server = 2;
	optional uint32 port_webrtc_server = 3;
	optional uint32 ip_webrtc_client = 4;
	optional uint32 port_webrtc_client = 5;
	optional uint32 ssrc_my_sending_stream = 6;
	optional string user_agent = 7;
	optional bool has_audio_worklets_support = 8;
}

message CVoiceChat_UpdateVoiceChatWebRTCData_Response {
	optional bool send_client_voice_logs = 1;
}

message CVoiceChat_UploadClientVoiceChatLogs_Request {
	optional fixed64 voice_chatid = 1;
	optional string client_voice_logs_new_lines = 2;
}

message CVoiceChat_UploadClientVoiceChatLogs_Response {
}

message CVoiceChat_LeaveVoiceChat_Request {
	optional fixed64 voice_chatid = 1;
}

message CVoiceChat_LeaveVoiceChat_Response {
}

message CVoiceChat_UserLeftVoiceChat_Notification {
	optional fixed64 voice_chatid = 1;
	optional fixed64 user_steamid = 2;
	optional uint64 chatid = 3;
	optional fixed64 one_on_one_steamid_lower = 4;
	optional fixed64 one_on_one_steamid_higher = 5;
	optional uint64 chat_group_id = 6;
	optional uint32 user_sessionid = 7;
}

message CVoiceChat_VoiceChatEnded_Notification {
	optional fixed64 voice_chatid = 1;
	optional fixed64 one_on_one_steamid_lower = 2;
	optional fixed64 one_on_one_steamid_higher = 3;
	optional uint64 chatid = 4;
	optional uint64 chat_group_id = 5;
}

message CWebRTCClient_InitiateWebRTCConnection_Request {
	optional string sdp = 1;
}

message CWebRTCClient_InitiateWebRTCConnection_Response {
	optional string remote_description = 1;
}

message CWebRTC_WebRTCSessionConnected_Notification {
	optional uint32 ssrc = 1;
	optional uint32 client_ip = 2;
	optional uint32 client_port = 3;
	optional uint32 server_ip = 4;
	optional uint32 server_port = 5;
}

message CWebRTC_WebRTCUpdateRemoteDescription_Notification {
	optional string remote_description = 1;
	optional uint64 remote_description_version = 2;
	repeated .CWebRTC_WebRTCUpdateRemoteDescription_Notification_CSSRCToAccountIDMapping ssrcs_to_accountids = 3;
}

message CWebRTC_WebRTCUpdateRemoteDescription_Notification_CSSRCToAccountIDMapping {
	optional uint32 ssrc = 1;
	optional uint32 accountid = 2;
}

message CWebRTCClient_AcknowledgeUpdatedRemoteDescription_Request {
	optional uint32 ip_webrtc_server = 1;
	optional uint32 port_webrtc_server = 2;
	optional uint32 ip_webrtc_session_client = 3;
	optional uint32 port_webrtc_session_client = 4;
	optional uint64 remote_description_version = 5;
}

message CWebRTCClient_AcknowledgeUpdatedRemoteDescription_Response {
}

message CMobilePerAccount_GetSettings_Request {
}

message CMobilePerAccount_GetSettings_Response {
	optional bool has_settings = 4;
	optional bool allow_sale_push = 2;
	optional bool allow_wishlist_push = 3;
	optional uint32 chat_notification_level = 5;
	optional bool notify_direct_chat = 6;
	optional bool notify_group_chat = 7;
	optional bool allow_event_push = 8 [default = true];
}

message CMobilePerAccount_SetSettings_Request {
	optional bool allow_sale_push = 2;
	optional bool allow_wishlist_push = 3;
	optional uint32 chat_notification_level = 4;
	optional bool notify_direct_chat = 5;
	optional bool notify_group_chat = 6;
	optional bool allow_event_push = 7 [default = true];
}

message CMobilePerAccount_SetSettings_Response {
}

message CMobileDevice_RegisterMobileDevice_Request {
	optional string deviceid = 1;
	optional string language = 2;
	optional bool push_enabled = 3;
	optional string app_version = 4;
	optional string os_version = 5;
	optional string device_model = 6;
	optional string twofactor_device_identifier = 7;
	optional int32 mobile_app = 8 [(description) = "enum; suggested type: EMobileApp"];
}

message CMobileDevice_RegisterMobileDevice_Response {
	optional uint32 unique_deviceid = 2;
}

message CMobileDevice_DeregisterMobileDevice_Notification {
	optional string deviceid = 1;
}

message UnknownProto {
}

service HelpRequestLogs {
	rpc UploadUserApplicationLog (.CHelpRequestLogs_UploadUserApplicationLog_Request) returns (.CHelpRequestLogs_UploadUserApplicationLog_Response);
}

service Community {
	rpc GetApps (.CCommunity_GetApps_Request) returns (.CCommunity_GetApps_Response);
	rpc GetAppRichPresenceLocalization (.CCommunity_GetAppRichPresenceLocalization_Request) returns (.CCommunity_GetAppRichPresenceLocalization_Response);
	rpc GetCommentThread (.CCommunity_GetCommentThread_Request) returns (.CCommunity_GetCommentThread_Response);
	rpc PostCommentToThread (.CCommunity_PostCommentToThread_Request) returns (.CCommunity_PostCommentToThread_Response);
	rpc DeleteCommentFromThread (.CCommunity_DeleteCommentFromThread_Request) returns (.CCommunity_DeleteCommentFromThread_Response);
	rpc RateCommentThread (.CCommunity_RateCommentThread_Request) returns (.CCommunity_RateCommentThread_Response);
	rpc GetCommentThreadRatings (.CCommunity_GetCommentThreadRatings_Request) returns (.CCommunity_GetCommentThreadRatings_Response);
	rpc RateClanAnnouncement (.CCommunity_RateClanAnnouncement_Request) returns (.CCommunity_RateClanAnnouncement_Response);
	rpc GetClanAnnouncementVoteForUser (.CCommunity_GetClanAnnouncementVoteForUser_Request) returns (.CCommunity_GetClanAnnouncementVoteForUser_Response);
	rpc GetUserPartnerEventNews (.CCommunity_GetUserPartnerEventNews_Request) returns (.CCommunity_GetUserPartnerEventNews_Response);
	rpc GetBestEventsForUser (.CCommunity_GetBestEventsForUser_Request) returns (.CCommunity_GetBestEventsForUser_Response);
	rpc MarkPartnerEventsForUser (.CCommunity_MarkPartnerEventsForUser_Request) returns (.CCommunity_MarkPartnerEventsForUser_Response);
	rpc PartnerEventsShowMoreForApp (.CCommunity_PartnerEventsShowMoreForApp_Request) returns (.CCommunity_PartnerEventsShowMoreForApp_Response);
	rpc PartnerEventsShowLessForApp (.CCommunity_PartnerEventsShowLessForApp_Request) returns (.CCommunity_PartnerEventsShowLessForApp_Response);
	rpc ClearUserPartnerEventsAppPriorities (.CCommunity_ClearUserPartnerEventsAppPriorities_Request) returns (.CCommunity_ClearUserPartnerEventsAppPriorities_Response);
	rpc GetUserPartnerEventsAppPriorities (.CCommunity_GetUserPartnerEventsAppPriorities_Request) returns (.CCommunity_GetUserPartnerEventsAppPriorities_Response);
	rpc ClearSinglePartnerEventsAppPriority (.CCommunity_ClearSinglePartnerEventsAppPriority_Request) returns (.CCommunity_ClearSinglePartnerEventsAppPriority_Response);
}

service ExperimentService {
	rpc ReportProductImpressionsFromClient (.UnknownProto) returns (.NoResponse);
}

service FriendsList {
	rpc GetCategories (.CFriendsList_GetCategories_Request) returns (.CFriendsList_GetCategories_Response);
	rpc GetFriendsList (.CFriendsList_GetFriendsList_Request) returns (.CFriendsList_GetFriendsList_Response);
	rpc GetFavorites (.CFriendsList_GetFavorites_Request) returns (.CFriendsList_GetFavorites_Response);
	rpc SetFavorites (.CFriendsList_SetFavorites_Request) returns (.CFriendsList_SetFavorites_Response);
}

service FriendsListClient {
	rpc FavoritesChanged (.CFriendsList_FavoritesChanged_Notification) returns (.NoResponse);
}

service Clan {
	rpc RespondToClanInvite (.CClan_RespondToClanInvite_Request) returns (.CClan_RespondToClanInvite_Response);
}

service VoiceChat {
	rpc UpdateVoiceChatWebRTCData (.CVoiceChat_UpdateVoiceChatWebRTCData_Request) returns (.CVoiceChat_UpdateVoiceChatWebRTCData_Response);
	rpc NotifyUserVoiceStatus (.CVoiceChat_UserVoiceStatus_Notification) returns (.NoResponse);
	rpc UploadClientVoiceChatLogs (.CVoiceChat_UploadClientVoiceChatLogs_Request) returns (.CVoiceChat_UploadClientVoiceChatLogs_Response);
	rpc LeaveVoiceChat (.CVoiceChat_LeaveVoiceChat_Request) returns (.CVoiceChat_LeaveVoiceChat_Response);
	rpc RequestOneOnOneChat (.CVoiceChat_RequestOneOnOneChat_Request) returns (.CVoiceChat_RequestOneOnOneChat_Response);
	rpc AnswerOneOnOneChat (.CVoiceChat_AnswerOneOnOneChat_Request) returns (.CVoiceChat_AnswerOneOnOneChat_Response);
	rpc EndOneOnOneChat (.CVoiceChat_EndOneOnOneChat_Request) returns (.CVoiceChat_EndOneOnOneChat_Response);
	rpc LeaveOneOnOneChat (.CVoiceChat_LeaveOneOnOneChat_Request) returns (.CVoiceChat_LeaveOneOnOneChat_Response);
}

service VoiceChatClient {
	rpc NotifyUserJoinedVoiceChat (.CVoiceChat_UserJoinedVoiceChat_Notification) returns (.NoResponse);
	rpc NotifyUserLeftVoiceChat (.CVoiceChat_UserLeftVoiceChat_Notification) returns (.NoResponse);
	rpc NotifyVoiceChatEnded (.CVoiceChat_VoiceChatEnded_Notification) returns (.NoResponse);
	rpc NotifyUserVoiceStatus (.CVoiceChat_UserVoiceStatus_Notification) returns (.NoResponse);
	rpc NotifyAllUsersVoiceStatus (.CVoiceChat_AllMembersStatus_Notification) returns (.NoResponse);
	rpc NotifyOneOnOneChatRequested (.CVoiceChat_OneOnOneChatRequested_Notification) returns (.NoResponse);
	rpc NotifyOneOnOneChatResponse (.CVoiceChat_OneOnOneChatRequestResponse_Notification) returns (.NoResponse);
}

service WebRTCClient {
	rpc InitiateWebRTCConnection (.CWebRTCClient_InitiateWebRTCConnection_Request) returns (.CWebRTCClient_InitiateWebRTCConnection_Response);
	rpc AcknowledgeUpdatedRemoteDescription (.CWebRTCClient_AcknowledgeUpdatedRemoteDescription_Request) returns (.CWebRTCClient_AcknowledgeUpdatedRemoteDescription_Response);
}

service WebRTCClientNotifications {
	rpc NotifyWebRTCSessionConnected (.CWebRTC_WebRTCSessionConnected_Notification) returns (.NoResponse);
	rpc NotifyWebRTCUpdateRemoteDescription (.CWebRTC_WebRTCUpdateRemoteDescription_Notification) returns (.NoResponse);
}

service MobilePerAccount {
	rpc GetSettings (.CMobilePerAccount_GetSettings_Request) returns (.CMobilePerAccount_GetSettings_Response);
	rpc SetSettings (.CMobilePerAccount_SetSettings_Request) returns (.CMobilePerAccount_SetSettings_Response);
}

service MobileDevice {
	rpc RegisterMobileDevice (.CMobileDevice_RegisterMobileDevice_Request) returns (.CMobileDevice_RegisterMobileDevice_Response);
	rpc DeregisterMobileDevice (.CMobileDevice_DeregisterMobileDevice_Notification) returns (.NoResponse);
}

