# Generated by the protocol buffer compiler.  DO NOT EDIT!
# sources: steammessages_parental.steamclient.proto
# plugin: python-betterproto
# Last updated 09/09/2021

from dataclasses import dataclass

import betterproto

from .msg import UnifiedMessage


@dataclass(eq=False, repr=False)
class ParentalApp(betterproto.Message):
    appid: int = betterproto.uint32_field(1)
    is_allowed: bool = betterproto.bool_field(2)


@dataclass(eq=False, repr=False)
class ParentalSettings(betterproto.Message):
    steamid: int = betterproto.fixed64_field(1)
    applist_base_id: int = betterproto.uint32_field(2)
    applist_base_description: str = betterproto.string_field(3)
    applist_base: "list[ParentalApp]" = betterproto.message_field(4)
    applist_custom: "list[ParentalApp]" = betterproto.message_field(5)
    passwordhashtype: int = betterproto.uint32_field(6)
    salt: bytes = betterproto.bytes_field(7)
    passwordhash: bytes = betterproto.bytes_field(8)
    is_enabled: bool = betterproto.bool_field(9)
    enabled_features: int = betterproto.uint32_field(10)
    recovery_email: str = betterproto.string_field(11)
    is_site_license_lock: bool = betterproto.bool_field(12)


class EnableParentalSettingsRequest(UnifiedMessage, um_name="Parental.EnableParentalSettings"):
    password: str = betterproto.string_field(1)
    settings: "ParentalSettings" = betterproto.message_field(2)
    sessionid: str = betterproto.string_field(3)
    enablecode: int = betterproto.uint32_field(4)
    steamid: int = betterproto.fixed64_field(10)


class EnableParentalSettingsResponse(UnifiedMessage, um_name="Parental.EnableParentalSettings"):
    pass


class DisableParentalSettingsRequest(UnifiedMessage, um_name="Parental.DisableParentalSettings"):
    password: str = betterproto.string_field(1)
    steamid: int = betterproto.fixed64_field(10)


class DisableParentalSettingsResponse(UnifiedMessage, um_name="Parental.DisableParentalSettings"):
    pass


class GetParentalSettingsRequest(UnifiedMessage, um_name="Parental.GetParentalSettings"):
    steamid: int = betterproto.fixed64_field(10)


class GetParentalSettingsResponse(UnifiedMessage, um_name="Parental.GetParentalSettings"):
    settings: "ParentalSettings" = betterproto.message_field(1)


class GetSignedParentalSettingsRequest(UnifiedMessage, um_name="Parental.GetSignedParentalSettings"):
    priority: int = betterproto.uint32_field(1)


class GetSignedParentalSettingsResponse(UnifiedMessage, um_name="Parental.GetSignedParentalSettings"):
    serialized_settings: bytes = betterproto.bytes_field(1)
    signature: bytes = betterproto.bytes_field(2)


class SetParentalSettingsRequest(UnifiedMessage, um_name="Parental.SetParentalSettings"):
    password: str = betterproto.string_field(1)
    settings: "ParentalSettings" = betterproto.message_field(2)
    new_password: str = betterproto.string_field(3)
    sessionid: str = betterproto.string_field(4)
    steamid: int = betterproto.fixed64_field(10)


class SetParentalSettingsResponse(UnifiedMessage, um_name="Parental.SetParentalSettings"):
    pass


class ValidateTokenRequest(UnifiedMessage, um_name="Parental.ValidateToken"):
    unlock_token: str = betterproto.string_field(1)


class ValidateTokenResponse(UnifiedMessage, um_name="Parental.ValidateToken"):
    pass


class ValidatePasswordRequest(UnifiedMessage, um_name="Parental.ValidatePassword"):
    password: str = betterproto.string_field(1)
    session: str = betterproto.string_field(2)
    send_unlock_on_success: bool = betterproto.bool_field(3)


class ValidatePasswordResponse(UnifiedMessage, um_name="Parental.ValidatePassword"):
    token: str = betterproto.string_field(1)


class LockClientRequest(UnifiedMessage, um_name="Parental.LockClient"):
    session: str = betterproto.string_field(1)


class LockClientResponse(UnifiedMessage, um_name="Parental.LockClient"):
    pass


class RequestRecoveryCodeRequest(UnifiedMessage, um_name="Parental.RequestRecoveryCode"):
    pass


class RequestRecoveryCodeResponse(UnifiedMessage, um_name="Parental.RequestRecoveryCode"):
    pass


class DisableWithRecoveryCodeRequest(UnifiedMessage, um_name="Parental.DisableWithRecoveryCode"):
    recovery_code: int = betterproto.uint32_field(1)
    steamid: int = betterproto.fixed64_field(10)


class DisableWithRecoveryCodeResponse(UnifiedMessage, um_name="Parental.DisableWithRecoveryCode"):
    pass


@dataclass(eq=False, repr=False)
class ParentalSettingsChangeNotification(betterproto.Message):
    serialized_settings: bytes = betterproto.bytes_field(1)
    signature: bytes = betterproto.bytes_field(2)
    password: str = betterproto.string_field(3)
    sessionid: str = betterproto.string_field(4)


@dataclass(eq=False, repr=False)
class ParentalUnlockNotification(betterproto.Message):
    password: str = betterproto.string_field(1)
    sessionid: str = betterproto.string_field(2)


@dataclass(eq=False, repr=False)
class ParentalLockNotification(betterproto.Message):
    sessionid: str = betterproto.string_field(1)
