import "steammessages.proto"; enum EMobilePaymentProvider { k_EMobilePaymentProvider_Invalid = 0; k_EMobilePaymentProvider_GooglePlay = 1; k_EMobilePaymentProvider_AppleAppStore = 2; } message CMsgWebAPIKey { optional uint32 status = 1 [default = 255]; optional uint32 account_id = 2 [default = 0]; optional uint32 publisher_group_id = 3 [default = 0]; optional uint32 key_id = 4; optional string domain = 5; } message CMsgHttpRequest { message RequestHeader { optional string name = 1; optional string value = 2; } message QueryParam { optional string name = 1; optional bytes value = 2; } optional uint32 request_method = 1; optional string hostname = 2; optional string url = 3; repeated .CMsgHttpRequest.RequestHeader headers = 4; repeated .CMsgHttpRequest.QueryParam get_params = 5; repeated .CMsgHttpRequest.QueryParam post_params = 6; optional bytes body = 7; optional uint32 absolute_timeout = 8; optional bool use_https = 9; } message CMsgWebAPIRequest { optional string interface_name = 2; optional string method_name = 3; optional uint32 version = 4; optional .CMsgWebAPIKey api_key = 5; optional .CMsgHttpRequest request = 6; optional uint32 routing_app_id = 7; } message CMsgHttpResponse { message ResponseHeader { optional string name = 1; optional string value = 2; } optional uint32 status_code = 1; repeated .CMsgHttpResponse.ResponseHeader headers = 2; optional bytes body = 3; } message CMsgAMFindAccounts { optional uint32 search_type = 1; optional string search_string = 2; } message CMsgAMFindAccountsResponse { repeated fixed64 steam_id = 1; } message CMsgNotifyWatchdog { optional uint32 source = 1; optional uint32 alert_type = 2; optional bool critical = 4; optional uint32 time = 5; optional uint32 appid = 6; optional string text = 7; optional string recipient = 12; } message CMsgAMGetLicenses { optional fixed64 steamid = 1; } message CMsgPackageLicense { optional uint32 package_id = 1; optional uint32 time_created = 2; optional uint32 owner_id = 3; } message CMsgAMGetLicensesResponse { repeated .CMsgPackageLicense license = 1; optional uint32 result = 2; } message CMsgAMGetUserGameStats { optional fixed64 steam_id = 1; optional fixed64 game_id = 2; repeated uint32 stats = 3; } message CMsgAMGetUserGameStatsResponse { message Stats { optional uint32 stat_id = 1; optional uint32 stat_value = 2; } message Achievement_Blocks { optional uint32 achievement_id = 1; optional uint32 achievement_bit_id = 2; optional fixed32 unlock_time = 3; } optional fixed64 steam_id = 1; optional fixed64 game_id = 2; optional int32 eresult = 3 [default = 2]; repeated .CMsgAMGetUserGameStatsResponse.Stats stats = 4; repeated .CMsgAMGetUserGameStatsResponse.Achievement_Blocks achievement_blocks = 5; } message CMsgGCGetCommandList { optional uint32 app_id = 1; optional string command_prefix = 2; } message CMsgGCGetCommandListResponse { repeated string command_name = 1; } message CGCMsgMemCachedGet { repeated string keys = 1; } message CGCMsgMemCachedGetResponse { message ValueTag { optional bool found = 1; optional bytes value = 2; } repeated .CGCMsgMemCachedGetResponse.ValueTag values = 1; } message CGCMsgMemCachedSet { message KeyPair { optional string name = 1; optional bytes value = 2; } repeated .CGCMsgMemCachedSet.KeyPair keys = 1; } message CGCMsgMemCachedDelete { repeated string keys = 1; } message CGCMsgMemCachedStats { } message CGCMsgMemCachedStatsResponse { optional uint64 curr_connections = 1; optional uint64 cmd_get = 2; optional uint64 cmd_set = 3; optional uint64 cmd_flush = 4; optional uint64 get_hits = 5; optional uint64 get_misses = 6; optional uint64 delete_hits = 7; optional uint64 delete_misses = 8; optional uint64 bytes_read = 9; optional uint64 bytes_written = 10; optional uint64 limit_maxbytes = 11; optional uint64 curr_items = 12; optional uint64 evictions = 13; optional uint64 bytes = 14; } message CGCMsgSQLStats { optional uint32 schema_catalog = 1; } message CGCMsgSQLStatsResponse { optional uint32 threads = 1; optional uint32 threads_connected = 2; optional uint32 threads_active = 3; optional uint32 operations_submitted = 4; optional uint32 prepared_statements_executed = 5; optional uint32 non_prepared_statements_executed = 6; optional uint32 deadlock_retries = 7; optional uint32 operations_timed_out_in_queue = 8; optional uint32 errors = 9; } message CMsgAMAddFreeLicense { optional fixed64 steamid = 1; optional uint32 ip_public = 2; optional uint32 packageid = 3; optional string store_country_code = 4; } message CMsgAMAddFreeLicenseResponse { optional int32 eresult = 1 [default = 2]; optional int32 purchase_result_detail = 2; optional fixed64 transid = 3; } message CGCMsgGetIPLocation { repeated fixed32 ips = 1; } message CGCMsgGetIPASN { repeated fixed32 ips = 1; } message CIPASNInfo { optional fixed32 ip = 1; optional uint32 asn = 2; } message CGCMsgGetIPASNResponse { repeated .CIPASNInfo infos = 1; } message CGCMsgSystemStatsSchema { optional uint32 gc_app_id = 1; optional bytes schema_kv = 2; } message CGCMsgGetSystemStats { } message CGCMsgGetSystemStatsResponse { optional uint32 gc_app_id = 1; optional bytes stats_kv = 2; optional uint32 active_jobs = 3; optional uint32 yielding_jobs = 4; optional uint32 user_sessions = 5; optional uint32 game_server_sessions = 6; optional uint32 socaches = 7; optional uint32 socaches_to_unload = 8; optional uint32 socaches_loading = 9; optional uint32 writeback_queue = 10; optional uint32 steamid_locks = 11; optional uint32 logon_queue = 12; optional uint32 logon_jobs = 13; } message CMsgAMSendEmail { message ReplacementToken { optional string token_name = 1; optional string token_value = 2; } message PersonaNameReplacementToken { optional fixed64 steamid = 1; optional string token_name = 2; } optional fixed64 steamid = 1; optional uint32 email_msg_type = 2; optional uint32 email_format = 3; repeated .CMsgAMSendEmail.PersonaNameReplacementToken persona_name_tokens = 5; optional uint32 source_gc = 6; repeated .CMsgAMSendEmail.ReplacementToken tokens = 7; } message CMsgAMSendEmailResponse { optional uint32 eresult = 1 [default = 2]; } message CMsgGCGetEmailTemplate { optional uint32 app_id = 1; optional uint32 email_msg_type = 2; optional int32 email_lang = 3; optional int32 email_format = 4; } message CMsgGCGetEmailTemplateResponse { optional uint32 eresult = 1 [default = 2]; optional bool template_exists = 2; optional string template = 3; } message CMsgAMGrantGuestPasses2 { optional fixed64 steam_id = 1; optional uint32 package_id = 2; optional int32 passes_to_grant = 3; optional int32 days_to_expiration = 4; optional int32 action = 5; } message CMsgAMGrantGuestPasses2Response { optional int32 eresult = 1 [default = 2]; optional int32 passes_granted = 2 [default = 0]; } message CMsgGCGetPersonaNames { repeated fixed64 steamids = 1; } message CMsgGCGetPersonaNames_Response { message PersonaName { optional fixed64 steamid = 1; optional string persona_name = 2; } repeated .CMsgGCGetPersonaNames_Response.PersonaName succeeded_lookups = 1; repeated fixed64 failed_lookup_steamids = 2; } message CMsgGCCheckFriendship { optional fixed64 steamid_left = 1; optional fixed64 steamid_right = 2; } message CMsgGCCheckFriendship_Response { optional bool success = 1; optional bool found_friendship = 2; } message CMsgGCGetAppFriendsList { optional fixed64 steamid = 1; optional bool include_friendship_timestamps = 2; } message CMsgGCGetAppFriendsList_Response { optional bool success = 1; repeated fixed64 steamids = 2; repeated fixed32 friendship_timestamps = 3; repeated fixed32 last_playtimes = 4; } message CMsgGCMsgMasterSetDirectory { message SubGC { optional int32 dir_index = 1 [default = -1]; optional string name = 2; optional string box = 3; optional string command_line = 4; optional string gc_binary = 5; } optional int32 master_dir_index = 1 [default = -1]; repeated .CMsgGCMsgMasterSetDirectory.SubGC dir = 2; } message CMsgGCMsgMasterSetDirectory_Response { optional int32 eresult = 1 [default = 2]; optional string message = 2; } message CMsgGCMsgWebAPIJobRequestForwardResponse { optional int32 dir_index = 1 [default = -1]; } message CGCSystemMsg_GetPurchaseTrust_Request { optional fixed64 steamid = 1; } message CGCSystemMsg_GetPurchaseTrust_Response { optional bool has_prior_purchase_history = 1; optional bool has_no_recent_password_resets = 2; optional bool is_wallet_cash_trusted = 3; optional uint32 time_all_trusted = 4; } message CMsgGCHAccountVacStatusChange { optional fixed64 steam_id = 1; optional uint32 app_id = 2; optional uint32 rtime_vacban_starts = 3; optional bool is_banned_now = 4; optional bool is_banned_future = 5; } message CMsgGCGetPartnerAccountLink { optional fixed64 steamid = 1; } message CMsgGCGetPartnerAccountLink_Response { optional uint32 pwid = 1; optional uint32 nexonid = 2; optional int32 ageclass = 3 [default = 0]; optional bool id_verified = 4 [default = true]; optional bool is_adult = 5 [default = true]; } message CMsgGCRoutingInfo { enum RoutingMethod { RANDOM = 0; DISCARD = 1; CLIENT_STEAMID = 2; PROTOBUF_FIELD_UINT64 = 3; WEBAPI_PARAM = 4; WEBAPI_PARAM_STEAMID_ACCOUNTID = 5; } repeated int32 dir_index = 1; optional .CMsgGCRoutingInfo.RoutingMethod method = 2 [default = RANDOM]; optional .CMsgGCRoutingInfo.RoutingMethod fallback = 3 [default = DISCARD]; optional uint32 protobuf_field = 4; optional string webapi_param = 5; } message CMsgGCMsgMasterSetWebAPIRouting { message Entry { optional string interface_name = 1; optional string method_name = 2; optional .CMsgGCRoutingInfo routing = 3; } repeated .CMsgGCMsgMasterSetWebAPIRouting.Entry entries = 1; } message CMsgGCMsgMasterSetClientMsgRouting { message Entry { optional uint32 msg_type = 1; optional .CMsgGCRoutingInfo routing = 2; } repeated .CMsgGCMsgMasterSetClientMsgRouting.Entry entries = 1; } message CMsgGCMsgMasterSetWebAPIRouting_Response { optional int32 eresult = 1 [default = 2]; } message CMsgGCMsgMasterSetClientMsgRouting_Response { optional int32 eresult = 1 [default = 2]; } message CMsgGCMsgSetOptions { message MessageRange { required uint32 low = 1; required uint32 high = 2; } enum Option { NOTIFY_USER_SESSIONS = 0; NOTIFY_SERVER_SESSIONS = 1; NOTIFY_ACHIEVEMENTS = 2; NOTIFY_VAC_ACTION = 3; } enum GCSQLVersion { GCSQL_VERSION_BASELINE = 1; GCSQL_VERSION_BOOLTYPE = 2; } repeated .CMsgGCMsgSetOptions.Option options = 1; repeated .CMsgGCMsgSetOptions.MessageRange client_msg_ranges = 2; optional .CMsgGCMsgSetOptions.GCSQLVersion gcsql_version = 3 [default = GCSQL_VERSION_BASELINE]; } message CMsgGCHUpdateSession { message ExtraField { optional string name = 1; optional string value = 2; } optional fixed64 steam_id = 1; optional uint32 app_id = 2; optional bool online = 3; optional fixed64 server_steam_id = 4; optional uint32 server_addr = 5; optional uint32 server_port = 6; optional uint32 os_type = 7; optional uint32 client_addr = 8; repeated .CMsgGCHUpdateSession.ExtraField extra_fields = 9; } message CMsgNotificationOfSuspiciousActivity { message MultipleGameInstances { optional uint32 app_instance_count = 1; repeated fixed64 other_steamids = 2; } optional fixed64 steamid = 1; optional uint32 appid = 2; optional .CMsgNotificationOfSuspiciousActivity.MultipleGameInstances multiple_instances = 3; } message CMsgDPPartnerMicroTxns { message PartnerMicroTxn { optional uint32 init_time = 1; optional uint32 last_update_time = 2; optional uint64 txn_id = 3; optional uint32 account_id = 4; optional uint32 line_item = 5; optional uint64 item_id = 6; optional uint32 def_index = 7; optional uint64 price = 8; optional uint64 tax = 9; optional uint64 price_usd = 10; optional uint64 tax_usd = 11; optional uint32 purchase_type = 12; optional uint32 steam_txn_type = 13; optional string country_code = 14; optional string region_code = 15; optional int32 quantity = 16; optional uint64 ref_trans_id = 17; } message PartnerInfo { optional uint32 partner_id = 1; optional string partner_name = 2; optional string currency_code = 3; optional string currency_name = 4; } optional uint32 appid = 1; optional string gc_name = 2; optional .CMsgDPPartnerMicroTxns.PartnerInfo partner = 3; repeated .CMsgDPPartnerMicroTxns.PartnerMicroTxn transactions = 4; } message CMsgDPPartnerMicroTxnsResponse { enum EErrorCode { k_MsgValid = 0; k_MsgInvalidAppID = 1; k_MsgInvalidPartnerInfo = 2; k_MsgNoTransactions = 3; k_MsgSQLFailure = 4; k_MsgPartnerInfoDiscrepancy = 5; k_MsgTransactionInsertFailed = 7; k_MsgAlreadyRunning = 8; k_MsgInvalidTransactionData = 9; } optional uint32 eresult = 1 [default = 2]; optional .CMsgDPPartnerMicroTxnsResponse.EErrorCode eerrorcode = 2 [default = k_MsgValid]; } message CMsgGCHVacVerificationChange { optional fixed64 steamid = 1; optional uint32 appid = 2; optional bool is_verified = 3; } message CMsgGCHAccountTwoFactorChange { optional fixed64 steamid = 1; optional uint32 appid = 2; optional bool twofactor_enabled = 3; } message CMsgGCCheckClanMembership { optional fixed64 steamid = 1; optional uint32 clanid = 2; } message CMsgGCCheckClanMembership_Response { optional bool ismember = 1; } message CMsgGCHAppCheersReceived { message CheerTypeAmount { optional uint32 cheer_type = 1; optional uint32 cheer_amount = 2; } message CheerTarget { optional uint64 cheer_target = 1; repeated .CMsgGCHAppCheersReceived.CheerTypeAmount cheer_types = 2; } optional uint32 appid = 1; repeated .CMsgGCHAppCheersReceived.CheerTarget cheer_targets = 2; } message CMsgGCHAppCheersGetAllowedTypes { optional uint32 appid = 1; optional uint64 cheer_target = 2; } message CMsgGCHAppCheersGetAllowedTypesResponse { message CheerRemaps { optional uint32 original_cheer_type = 1; optional uint32 remapped_cheer_type = 2; repeated uint32 account_ids = 3; } repeated uint32 cheer_types_valid_all_users = 1; repeated .CMsgGCHAppCheersGetAllowedTypesResponse.CheerRemaps cheer_remaps = 2; optional uint32 cache_duration = 3; } message CGCSystemMsg_ReportExternalPurchase_Request { optional uint32 appid = 1; optional fixed64 steamid = 2; optional .EMobilePaymentProvider provider = 3 [default = k_EMobilePaymentProvider_Invalid]; optional uint64 orderid = 4; optional string provider_orderid = 5; optional int64 amount = 6; optional string currency = 7; optional uint32 quantity = 8; optional uint32 itemid = 9; optional string item_description = 10; optional string language = 11; optional string category = 12; optional uint32 time_created = 13; } message CGCSystemMsg_ReportExternalPurchase_Response { optional fixed64 transid = 1; optional uint64 orderid = 2; } message CWorkshop_AddSpecialPayment_Request { optional uint32 appid = 1; optional uint32 gameitemid = 2; optional string date = 3; optional uint64 payment_us_usd = 4; optional uint64 payment_row_usd = 5; } message CWorkshop_AddSpecialPayment_Response { } message CWorkshop_GetSpecialPayments_Request { optional uint32 appid = 1; optional uint32 gameitemid = 2; optional string date = 3; } message CWorkshop_GetSpecialPayments_Response { message SpecialPayment { optional uint32 appid = 1; optional uint32 gameitemid = 2; optional string date = 3; optional uint64 net_payment_us_usd = 4; optional uint64 net_payment_row_usd = 5; } repeated .CWorkshop_GetSpecialPayments_Response.SpecialPayment special_payments = 1; }