syntax = "proto2"; import "steammessages_base.proto"; import "steammessages_unified_base.proto"; option py_generic_services = true; message ParentalApp { optional uint32 appid = 1; optional bool is_allowed = 2; } message ParentalSettings { optional fixed64 steamid = 1; optional uint32 applist_base_id = 2; optional string applist_base_description = 3; repeated .ParentalApp applist_base = 4; repeated .ParentalApp applist_custom = 5; optional uint32 passwordhashtype = 6; optional bytes salt = 7; optional bytes passwordhash = 8; optional bool is_enabled = 9; optional uint32 enabled_features = 10; optional string recovery_email = 11; optional bool is_site_license_lock = 12; } message CParental_EnableParentalSettings_Request { optional string password = 1; optional .ParentalSettings settings = 2; optional string sessionid = 3; optional uint32 enablecode = 4; optional fixed64 steamid = 10; } message CParental_EnableParentalSettings_Response { } message CParental_DisableParentalSettings_Request { optional string password = 1; optional fixed64 steamid = 10; } message CParental_DisableParentalSettings_Response { } message CParental_GetParentalSettings_Request { optional fixed64 steamid = 10; } message CParental_GetParentalSettings_Response { optional .ParentalSettings settings = 1; } message CParental_GetSignedParentalSettings_Request { optional uint32 priority = 1; } message CParental_GetSignedParentalSettings_Response { optional bytes serialized_settings = 1; optional bytes signature = 2; } message CParental_SetParentalSettings_Request { optional string password = 1; optional .ParentalSettings settings = 2; optional string new_password = 3; optional string sessionid = 4; optional fixed64 steamid = 10; } message CParental_SetParentalSettings_Response { } message CParental_ValidateToken_Request { optional string unlock_token = 1; } message CParental_ValidateToken_Response { } message CParental_ValidatePassword_Request { optional string password = 1; optional string session = 2; optional bool send_unlock_on_success = 3; } message CParental_ValidatePassword_Response { optional string token = 1; } message CParental_LockClient_Request { optional string session = 1; } message CParental_LockClient_Response { } message CParental_RequestRecoveryCode_Request { } message CParental_RequestRecoveryCode_Response { } message CParental_DisableWithRecoveryCode_Request { optional uint32 recovery_code = 1; optional fixed64 steamid = 10; } message CParental_DisableWithRecoveryCode_Response { } message CParental_ParentalSettingsChange_Notification { optional bytes serialized_settings = 1; optional bytes signature = 2; optional string password = 3; optional string sessionid = 4; } message CParental_ParentalUnlock_Notification { optional string password = 1; optional string sessionid = 2; } message CParental_ParentalLock_Notification { optional string sessionid = 1; } service Parental { option (service_description) = "Parental settings service"; rpc EnableParentalSettings (.CParental_EnableParentalSettings_Request) returns (.CParental_EnableParentalSettings_Response) { option (method_description) = "Enable parental settings for the logged in account, optionally setting the current settings"; } rpc DisableParentalSettings (.CParental_DisableParentalSettings_Request) returns (.CParental_DisableParentalSettings_Response) { option (method_description) = "Disable parental settings for the logged in account"; } rpc GetParentalSettings (.CParental_GetParentalSettings_Request) returns (.CParental_GetParentalSettings_Response) { option (method_description) = "Get the current parental settings for the logged in account"; } rpc GetSignedParentalSettings (.CParental_GetSignedParentalSettings_Request) returns (.CParental_GetSignedParentalSettings_Response) { option (method_description) = "Get the current parental settings for the logged in account in a form that can by verified by the receiver"; } rpc SetParentalSettings (.CParental_SetParentalSettings_Request) returns (.CParental_SetParentalSettings_Response) { option (method_description) = "Set the current parental settings for the logged in account"; } rpc ValidateToken (.CParental_ValidateToken_Request) returns (.CParental_ValidateToken_Response) { option (method_description) = "Check if the given parental unlock token is correct for the logged in account"; } rpc ValidatePassword (.CParental_ValidatePassword_Request) returns (.CParental_ValidatePassword_Response) { option (method_description) = "Validate the plaintext password for the logged in account and return an unlock token"; } rpc LockClient (.CParental_LockClient_Request) returns (.CParental_LockClient_Response) { option (method_description) = "Notify connected clients that a lock has occurred in a browser"; } rpc RequestRecoveryCode (.CParental_RequestRecoveryCode_Request) returns (.CParental_RequestRecoveryCode_Response) { option (method_description) = "Request a recovery code be sent to the recovery email address for the specified account"; } rpc DisableWithRecoveryCode (.CParental_DisableWithRecoveryCode_Request) returns (.CParental_DisableWithRecoveryCode_Response) { option (method_description) = "Attempt a recovery unlock on the specified account"; } } service ParentalClient { option (service_description) = "Parental settings client notifications"; option (service_execution_site) = k_EProtoExecutionSiteSteamClient; rpc NotifySettingsChange (.CParental_ParentalSettingsChange_Notification) returns (.NoResponse) { option (method_description) = "Notification from server to client of a change in parental settings"; } rpc NotifyUnlock (.CParental_ParentalUnlock_Notification) returns (.NoResponse) { option (method_description) = "Notification from server to client that an unlock has occurred in a browser"; } rpc NotifyLock (.CParental_ParentalLock_Notification) returns (.NoResponse) { option (method_description) = "Notification from server to client that a lock has occurred in a browser"; } }