import "steammessages_base.proto"; option optimize_for = SPEED; option cc_generic_services = false; message CMsgClientUDSP2PSessionStarted { optional fixed64 steamid_remote = 1; optional int32 appid = 2; } message CMsgClientUDSP2PSessionEnded { optional fixed64 steamid_remote = 1; optional int32 appid = 2; optional int32 session_length_sec = 3; optional int32 session_error = 4; optional int32 nattype = 5; optional int32 bytes_recv = 6; optional int32 bytes_sent = 7; optional int32 bytes_sent_relay = 8; optional int32 bytes_recv_relay = 9; optional int32 time_to_connect_ms = 10; } message CMsgClientGetClientDetails { } message CMsgClientGetClientDetailsResponse { message Game { optional uint32 appid = 1; optional string extra_info = 2; optional uint32 time_running_sec = 3; } optional uint32 package_version = 1; optional string os = 2; optional string machine_name = 3; optional string ip_public = 4; optional string ip_private = 5; repeated .CMsgClientGetClientDetailsResponse.Game games_running = 6; optional uint64 bytes_available = 7; optional uint32 protocol_version = 8; optional uint32 clientcomm_version = 9; repeated uint32 local_users = 10; } message CMsgClientGetClientAppList { optional bool media = 1; optional bool tools = 2; optional bool games = 3; optional bool only_installed = 4; optional bool only_changing = 5; optional bool comics = 6; optional bool include_client_info = 7; } message CMsgClientGetClientAppListResponse { message App { message DLC { optional uint32 appid = 1; optional bool installed = 2; } optional uint32 appid = 1; optional string category = 2; optional string app_type = 10; optional bool favorite = 3; optional bool installed = 4; optional bool auto_update = 5; optional uint64 bytes_downloaded = 6; optional uint64 bytes_to_download = 7; optional uint32 bytes_download_rate = 8; repeated .CMsgClientGetClientAppListResponse.App.DLC dlcs = 9; optional bool download_paused = 11; optional uint32 num_downloading = 12; optional uint32 num_paused = 13; optional bool changing = 14; optional bool available_on_platform = 15; optional uint64 bytes_staged = 16; optional uint64 bytes_to_stage = 17; optional uint64 bytes_required = 18; optional uint32 source_buildid = 19; optional uint32 target_buildid = 20; optional uint32 estimated_seconds_remaining = 21; optional int32 queue_position = 22; optional bool uninstalling = 23; optional uint32 rt_time_scheduled = 24; } repeated .CMsgClientGetClientAppListResponse.App apps = 1; optional uint64 bytes_available = 2; optional .CMsgClientGetClientDetailsResponse client_info = 3; } message CMsgClientInstallClientApp { optional uint32 appid = 1; } message CMsgClientInstallClientAppResponse { optional uint32 result = 1; } message CMsgClientUninstallClientApp { optional uint32 appid = 1; } message CMsgClientUninstallClientAppResponse { optional uint32 result = 1; } message CMsgClientSetClientAppUpdateState { optional uint32 appid = 1; optional bool update = 2; } message CMsgClientSetClientAppUpdateStateResponse { optional uint32 result = 1; } message CMsgClientEnableOrDisableDownloads { optional bool enable = 1; } message CMsgClientEnableOrDisableDownloadsResponse { optional uint32 result = 1; }