syntax = "proto2";

import "steammessages_base.proto";

option optimize_for = SPEED;
option cc_generic_services = false;

message CMsgClientHeartBeat {
  optional bool send_reply = 1;
}

message CMsgClientServerTimestampRequest {
  optional uint64 client_request_timestamp = 1;
}

message CMsgClientServerTimestampResponse {
  optional uint64 client_request_timestamp = 1;
  optional uint64 server_timestamp_ms = 2;
}

message CMsgClientSecret {
  optional uint32 version = 1;
  optional uint32 appid = 2;
  optional uint32 deviceid = 3;
  optional fixed64 nonce = 4;
  optional bytes hmac = 5;
}

message CMsgClientHello {
  optional uint32 protocol_version = 1;
}

message CMsgClientLogon {
  optional uint32 protocol_version = 1;
  optional uint32 deprecated_obfustucated_private_ip = 2;
  optional uint32 cell_id = 3;
  optional uint32 last_session_id = 4;
  optional uint32 client_package_version = 5;
  optional string client_language = 6;
  optional uint32 client_os_type = 7;
  optional bool should_remember_password = 8 [default = false];
  optional string wine_version = 9;
  optional uint32 deprecated_10 = 10;
  optional CMsgIPAddress obfuscated_private_ip = 11;
  optional uint32 deprecated_public_ip = 20;
  optional uint32 qos_level = 21;
  optional fixed64 client_supplied_steam_id = 22;
  optional CMsgIPAddress public_ip = 23;
  optional bytes machine_id = 30;
  optional uint32 launcher_type = 31 [default = 0];
  optional uint32 ui_mode = 32 [default = 0];
  optional uint32 chat_mode = 33 [default = 0];
  optional bytes steam2_auth_ticket = 41;
  optional string email_address = 42;
  optional fixed32 rtime32_account_creation = 43;
  optional string account_name = 50;
  optional string password = 51;
  optional string game_server_token = 52;
  optional string login_key = 60;
  optional bool was_converted_deprecated_msg = 70 [default = false];
  optional string anon_user_target_account_name = 80;
  optional fixed64 resolved_user_steam_id = 81;
  optional int32 eresult_sentryfile = 82;
  optional bytes sha_sentryfile = 83;
  optional string auth_code = 84;
  optional int32 otp_type = 85;
  optional uint32 otp_value = 86;
  optional string otp_identifier = 87;
  optional bool steam2_ticket_request = 88;
  optional bytes sony_psn_ticket = 90;
  optional string sony_psn_service_id = 91;
  optional bool create_new_psn_linked_account_if_needed = 92 [default = false];
  optional string sony_psn_name = 93;
  optional int32 game_server_app_id = 94;
  optional bool steamguard_dont_remember_computer = 95;
  optional string machine_name = 96;
  optional string machine_name_userchosen = 97;
  optional string country_override = 98;
  optional uint64 client_instance_id = 100;
  optional string two_factor_code = 101;
  optional bool supports_rate_limit_response = 102;
  optional string web_logon_nonce = 103;
  optional int32 priority_reason = 104;
  optional CMsgClientSecret embedded_client_secret = 105;
  optional bool disable_partner_autogrants = 106;
  optional string access_token = 108;
  optional bool is_chrome_os = 109;
  optional bool is_steam_box_deprecated = 99;
  optional bool is_steam_deck_deprecated = 107;
  optional bool is_tesla_deprecated = 110;
  optional uint32 gaming_device_type = 111;
}

message CMsgClientLogonResponse {
  optional int32 eresult = 1 [default = 2];
  optional int32 legacy_out_of_game_heartbeat_seconds = 2;
  optional int32 heartbeat_seconds = 3;
  optional uint32 deprecated_public_ip = 4;
  optional fixed32 rtime32_server_time = 5;
  optional uint32 account_flags = 6;
  optional uint32 cell_id = 7;
  optional string email_domain = 8;
  optional bytes steam2_ticket = 9;
  optional int32 eresult_extended = 10;
  optional uint32 cell_id_ping_threshold = 12;
  optional bool deprecated_use_pics = 13;
  optional string vanity_url = 14;
  optional CMsgIPAddress public_ip = 15;
  optional string user_country = 16;
  optional fixed64 client_supplied_steamid = 20;
  optional string ip_country_code = 21;
  optional bytes parental_settings = 22;
  optional bytes parental_setting_signature = 23;
  optional int32 count_loginfailures_to_migrate = 24;
  optional int32 count_disconnects_to_migrate = 25;
  optional int32 ogs_data_report_time_window = 26;
  optional uint64 client_instance_id = 27;
  optional bool force_client_update_check = 28;
  optional string agreement_session_url = 29;
  optional uint64 token_id = 30;
  optional uint64 family_group_id = 31;
}

message CMsgClientRequestWebAPIAuthenticateUserNonce {
  optional int32 token_type = 1 [default = -1];
}

message CMsgClientRequestWebAPIAuthenticateUserNonceResponse {
  optional int32 eresult = 1 [default = 2];
  optional string webapi_authenticate_user_nonce = 11;
  optional int32 token_type = 3 [default = -1];
}

message CMsgClientLogOff {
}

message CMsgClientLoggedOff {
  optional int32 eresult = 1 [default = 2];
}

message CMsgClientNewLoginKey {
  optional uint32 unique_id = 1;
  optional string login_key = 2;
}

message CMsgClientNewLoginKeyAccepted {
  optional uint32 unique_id = 1;
}

message CMsgClientAccountInfo {
  optional string persona_name = 1;
  optional string ip_country = 2;
  optional int32 count_authed_computers = 5;
  optional uint32 account_flags = 7;
  optional string steamguard_machine_name_user_chosen = 15;
  optional bool is_phone_verified = 16;
  optional uint32 two_factor_state = 17;
  optional bool is_phone_identifying = 18;
  optional bool is_phone_needing_reverify = 19;
}

message CMsgClientChallengeRequest {
  optional fixed64 steamid = 1;
}

message CMsgClientChallengeResponse {
  optional fixed64 challenge = 1;
}

