#![allow(unknown_lints)]
#![allow(clippy::all)]
#![allow(unused_attributes)]
#![cfg_attr(rustfmt, rustfmt::skip)]
#![allow(box_pointers)]
#![allow(dead_code)]
#![allow(missing_docs)]
#![allow(non_camel_case_types)]
#![allow(non_snake_case)]
#![allow(non_upper_case_globals)]
#![allow(trivial_casts)]
#![allow(unused_results)]
#![allow(unused_mut)]
const _PROTOBUF_VERSION_CHECK: () = ::protobuf::VERSION_3_4_0;
#[doc = "Fetches RSA public key to use to encrypt passwords for a given account name"]
#[derive(PartialEq,Clone,Default,Debug)]
pub struct CAuthentication_GetPasswordRSAPublicKey_Request {
    pub account_name: ::std::option::Option<::std::string::String>,
    pub special_fields: ::protobuf::SpecialFields,
}
impl<'a> ::std::default::Default for &'a CAuthentication_GetPasswordRSAPublicKey_Request {
    fn default() -> &'a CAuthentication_GetPasswordRSAPublicKey_Request {
        <CAuthentication_GetPasswordRSAPublicKey_Request as ::protobuf::Message>::default_instance()
    }
}
impl CAuthentication_GetPasswordRSAPublicKey_Request {
    pub fn new() -> CAuthentication_GetPasswordRSAPublicKey_Request {
        ::std::default::Default::default()
    }
    pub fn account_name(&self) -> &str {
        match self.account_name.as_ref() {
            Some(v) => v,
            None => "",
        }
    }
    pub fn clear_account_name(&mut self) {
        self.account_name = ::std::option::Option::None;
    }
    pub fn has_account_name(&self) -> bool {
        self.account_name.is_some()
    }
    pub fn set_account_name(&mut self, v: ::std::string::String) {
        self.account_name = ::std::option::Option::Some(v);
    }
    pub fn mut_account_name(&mut self) -> &mut ::std::string::String {
        if self.account_name.is_none() {
            self.account_name = ::std::option::Option::Some(::std::string::String::new());
        }
        self.account_name.as_mut().unwrap()
    }
    pub fn take_account_name(&mut self) -> ::std::string::String {
        self.account_name.take().unwrap_or_else(|| ::std::string::String::new())
    }
}
impl ::protobuf::Message for CAuthentication_GetPasswordRSAPublicKey_Request {
    const NAME: &'static str = "CAuthentication_GetPasswordRSAPublicKey_Request";
    fn is_initialized(&self) -> bool {
        true
    }
    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::Result<()> {
        while let Some(tag) = is.read_raw_tag_or_eof()? {
            match tag {
                10 => {
                    self.account_name = ::std::option::Option::Some(is.read_string()?);
                },
                tag => {
                    ::protobuf::rt::read_unknown_or_skip_group(tag, is, self.special_fields.mut_unknown_fields())?;
                },
            };
        }
        ::std::result::Result::Ok(())
    }
    #[allow(unused_variables)]
    fn compute_size(&self) -> u64 {
        let mut my_size = 0;
        if let Some(v) = self.account_name.as_ref() {
            my_size += ::protobuf::rt::string_size(1, &v);
        }
        my_size += ::protobuf::rt::unknown_fields_size(self.special_fields.unknown_fields());
        self.special_fields.cached_size().set(my_size as u32);
        my_size
    }
    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::Result<()> {
        if let Some(v) = self.account_name.as_ref() {
            os.write_string(1, v)?;
        }
        os.write_unknown_fields(self.special_fields.unknown_fields())?;
        ::std::result::Result::Ok(())
    }
    fn special_fields(&self) -> &::protobuf::SpecialFields {
        &self.special_fields
    }
    fn mut_special_fields(&mut self) -> &mut ::protobuf::SpecialFields {
        &mut self.special_fields
    }
    fn new() -> CAuthentication_GetPasswordRSAPublicKey_Request {
        CAuthentication_GetPasswordRSAPublicKey_Request::new()
    }
    fn clear(&mut self) {
        self.account_name = ::std::option::Option::None;
        self.special_fields.clear();
    }
    fn default_instance() -> &'static CAuthentication_GetPasswordRSAPublicKey_Request {
        static instance: CAuthentication_GetPasswordRSAPublicKey_Request = CAuthentication_GetPasswordRSAPublicKey_Request {
            account_name: ::std::option::Option::None,
            special_fields: ::protobuf::SpecialFields::new(),
        };
        &instance
    }
}
#[derive(PartialEq,Clone,Default,Debug)]
pub struct CAuthentication_GetPasswordRSAPublicKey_Response {
    pub publickey_mod: ::std::option::Option<::std::string::String>,
    pub publickey_exp: ::std::option::Option<::std::string::String>,
    pub timestamp: ::std::option::Option<u64>,
    pub special_fields: ::protobuf::SpecialFields,
}
impl<'a> ::std::default::Default for &'a CAuthentication_GetPasswordRSAPublicKey_Response {
    fn default() -> &'a CAuthentication_GetPasswordRSAPublicKey_Response {
        <CAuthentication_GetPasswordRSAPublicKey_Response as ::protobuf::Message>::default_instance()
    }
}
impl CAuthentication_GetPasswordRSAPublicKey_Response {
    pub fn new() -> CAuthentication_GetPasswordRSAPublicKey_Response {
        ::std::default::Default::default()
    }
    pub fn publickey_mod(&self) -> &str {
        match self.publickey_mod.as_ref() {
            Some(v) => v,
            None => "",
        }
    }
    pub fn clear_publickey_mod(&mut self) {
        self.publickey_mod = ::std::option::Option::None;
    }
    pub fn has_publickey_mod(&self) -> bool {
        self.publickey_mod.is_some()
    }
    pub fn set_publickey_mod(&mut self, v: ::std::string::String) {
        self.publickey_mod = ::std::option::Option::Some(v);
    }
    pub fn mut_publickey_mod(&mut self) -> &mut ::std::string::String {
        if self.publickey_mod.is_none() {
            self.publickey_mod = ::std::option::Option::Some(::std::string::String::new());
        }
        self.publickey_mod.as_mut().unwrap()
    }
    pub fn take_publickey_mod(&mut self) -> ::std::string::String {
        self.publickey_mod.take().unwrap_or_else(|| ::std::string::String::new())
    }
    pub fn publickey_exp(&self) -> &str {
        match self.publickey_exp.as_ref() {
            Some(v) => v,
            None => "",
        }
    }
    pub fn clear_publickey_exp(&mut self) {
        self.publickey_exp = ::std::option::Option::None;
    }
    pub fn has_publickey_exp(&self) -> bool {
        self.publickey_exp.is_some()
    }
    pub fn set_publickey_exp(&mut self, v: ::std::string::String) {
        self.publickey_exp = ::std::option::Option::Some(v);
    }
    pub fn mut_publickey_exp(&mut self) -> &mut ::std::string::String {
        if self.publickey_exp.is_none() {
            self.publickey_exp = ::std::option::Option::Some(::std::string::String::new());
        }
        self.publickey_exp.as_mut().unwrap()
    }
    pub fn take_publickey_exp(&mut self) -> ::std::string::String {
        self.publickey_exp.take().unwrap_or_else(|| ::std::string::String::new())
    }
    pub fn timestamp(&self) -> u64 {
        self.timestamp.unwrap_or(0)
    }
    pub fn clear_timestamp(&mut self) {
        self.timestamp = ::std::option::Option::None;
    }
    pub fn has_timestamp(&self) -> bool {
        self.timestamp.is_some()
    }
    pub fn set_timestamp(&mut self, v: u64) {
        self.timestamp = ::std::option::Option::Some(v);
    }
}
impl ::protobuf::Message for CAuthentication_GetPasswordRSAPublicKey_Response {
    const NAME: &'static str = "CAuthentication_GetPasswordRSAPublicKey_Response";
    fn is_initialized(&self) -> bool {
        true
    }
    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::Result<()> {
        while let Some(tag) = is.read_raw_tag_or_eof()? {
            match tag {
                10 => {
                    self.publickey_mod = ::std::option::Option::Some(is.read_string()?);
                },
                18 => {
                    self.publickey_exp = ::std::option::Option::Some(is.read_string()?);
                },
                24 => {
                    self.timestamp = ::std::option::Option::Some(is.read_uint64()?);
                },
                tag => {
                    ::protobuf::rt::read_unknown_or_skip_group(tag, is, self.special_fields.mut_unknown_fields())?;
                },
            };
        }
        ::std::result::Result::Ok(())
    }
    #[allow(unused_variables)]
    fn compute_size(&self) -> u64 {
        let mut my_size = 0;
        if let Some(v) = self.publickey_mod.as_ref() {
            my_size += ::protobuf::rt::string_size(1, &v);
        }
        if let Some(v) = self.publickey_exp.as_ref() {
            my_size += ::protobuf::rt::string_size(2, &v);
        }
        if let Some(v) = self.timestamp {
            my_size += ::protobuf::rt::uint64_size(3, v);
        }
        my_size += ::protobuf::rt::unknown_fields_size(self.special_fields.unknown_fields());
        self.special_fields.cached_size().set(my_size as u32);
        my_size
    }
    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::Result<()> {
        if let Some(v) = self.publickey_mod.as_ref() {
            os.write_string(1, v)?;
        }
        if let Some(v) = self.publickey_exp.as_ref() {
            os.write_string(2, v)?;
        }
        if let Some(v) = self.timestamp {
            os.write_uint64(3, v)?;
        }
        os.write_unknown_fields(self.special_fields.unknown_fields())?;
        ::std::result::Result::Ok(())
    }
    fn special_fields(&self) -> &::protobuf::SpecialFields {
        &self.special_fields
    }
    fn mut_special_fields(&mut self) -> &mut ::protobuf::SpecialFields {
        &mut self.special_fields
    }
    fn new() -> CAuthentication_GetPasswordRSAPublicKey_Response {
        CAuthentication_GetPasswordRSAPublicKey_Response::new()
    }
    fn clear(&mut self) {
        self.publickey_mod = ::std::option::Option::None;
        self.publickey_exp = ::std::option::Option::None;
        self.timestamp = ::std::option::Option::None;
        self.special_fields.clear();
    }
    fn default_instance() -> &'static CAuthentication_GetPasswordRSAPublicKey_Response {
        static instance: CAuthentication_GetPasswordRSAPublicKey_Response = CAuthentication_GetPasswordRSAPublicKey_Response {
            publickey_mod: ::std::option::Option::None,
            publickey_exp: ::std::option::Option::None,
            timestamp: ::std::option::Option::None,
            special_fields: ::protobuf::SpecialFields::new(),
        };
        &instance
    }
}
#[derive(PartialEq,Clone,Default,Debug)]
pub struct CAuthentication_DeviceDetails {
    pub device_friendly_name: ::std::option::Option<::std::string::String>,
    pub platform_type: ::std::option::Option<::protobuf::EnumOrUnknown<EAuthTokenPlatformType>>,
    pub os_type: ::std::option::Option<i32>,
    pub gaming_device_type: ::std::option::Option<u32>,
    pub client_count: ::std::option::Option<u32>,
    pub machine_id: ::std::option::Option<::std::vec::Vec<u8>>,
    pub special_fields: ::protobuf::SpecialFields,
}
impl<'a> ::std::default::Default for &'a CAuthentication_DeviceDetails {
    fn default() -> &'a CAuthentication_DeviceDetails {
        <CAuthentication_DeviceDetails as ::protobuf::Message>::default_instance()
    }
}
impl CAuthentication_DeviceDetails {
    pub fn new() -> CAuthentication_DeviceDetails {
        ::std::default::Default::default()
    }
    pub fn device_friendly_name(&self) -> &str {
        match self.device_friendly_name.as_ref() {
            Some(v) => v,
            None => "",
        }
    }
    pub fn clear_device_friendly_name(&mut self) {
        self.device_friendly_name = ::std::option::Option::None;
    }
    pub fn has_device_friendly_name(&self) -> bool {
        self.device_friendly_name.is_some()
    }
    pub fn set_device_friendly_name(&mut self, v: ::std::string::String) {
        self.device_friendly_name = ::std::option::Option::Some(v);
    }
    pub fn mut_device_friendly_name(&mut self) -> &mut ::std::string::String {
        if self.device_friendly_name.is_none() {
            self.device_friendly_name = ::std::option::Option::Some(::std::string::String::new());
        }
        self.device_friendly_name.as_mut().unwrap()
    }
    pub fn take_device_friendly_name(&mut self) -> ::std::string::String {
        self.device_friendly_name.take().unwrap_or_else(|| ::std::string::String::new())
    }
    pub fn platform_type(&self) -> EAuthTokenPlatformType {
        match self.platform_type {
            Some(e) => e.enum_value_or(EAuthTokenPlatformType::k_EAuthTokenPlatformType_Unknown),
            None => EAuthTokenPlatformType::k_EAuthTokenPlatformType_Unknown,
        }
    }
    pub fn clear_platform_type(&mut self) {
        self.platform_type = ::std::option::Option::None;
    }
    pub fn has_platform_type(&self) -> bool {
        self.platform_type.is_some()
    }
    pub fn set_platform_type(&mut self, v: EAuthTokenPlatformType) {
        self.platform_type = ::std::option::Option::Some(::protobuf::EnumOrUnknown::new(v));
    }
    pub fn os_type(&self) -> i32 {
        self.os_type.unwrap_or(0)
    }
    pub fn clear_os_type(&mut self) {
        self.os_type = ::std::option::Option::None;
    }
    pub fn has_os_type(&self) -> bool {
        self.os_type.is_some()
    }
    pub fn set_os_type(&mut self, v: i32) {
        self.os_type = ::std::option::Option::Some(v);
    }
    pub fn gaming_device_type(&self) -> u32 {
        self.gaming_device_type.unwrap_or(0)
    }
    pub fn clear_gaming_device_type(&mut self) {
        self.gaming_device_type = ::std::option::Option::None;
    }
    pub fn has_gaming_device_type(&self) -> bool {
        self.gaming_device_type.is_some()
    }
    pub fn set_gaming_device_type(&mut self, v: u32) {
        self.gaming_device_type = ::std::option::Option::Some(v);
    }
    pub fn client_count(&self) -> u32 {
        self.client_count.unwrap_or(0)
    }
    pub fn clear_client_count(&mut self) {
        self.client_count = ::std::option::Option::None;
    }
    pub fn has_client_count(&self) -> bool {
        self.client_count.is_some()
    }
    pub fn set_client_count(&mut self, v: u32) {
        self.client_count = ::std::option::Option::Some(v);
    }
    pub fn machine_id(&self) -> &[u8] {
        match self.machine_id.as_ref() {
            Some(v) => v,
            None => &[],
        }
    }
    pub fn clear_machine_id(&mut self) {
        self.machine_id = ::std::option::Option::None;
    }
    pub fn has_machine_id(&self) -> bool {
        self.machine_id.is_some()
    }
    pub fn set_machine_id(&mut self, v: ::std::vec::Vec<u8>) {
        self.machine_id = ::std::option::Option::Some(v);
    }
    pub fn mut_machine_id(&mut self) -> &mut ::std::vec::Vec<u8> {
        if self.machine_id.is_none() {
            self.machine_id = ::std::option::Option::Some(::std::vec::Vec::new());
        }
        self.machine_id.as_mut().unwrap()
    }
    pub fn take_machine_id(&mut self) -> ::std::vec::Vec<u8> {
        self.machine_id.take().unwrap_or_else(|| ::std::vec::Vec::new())
    }
}
impl ::protobuf::Message for CAuthentication_DeviceDetails {
    const NAME: &'static str = "CAuthentication_DeviceDetails";
    fn is_initialized(&self) -> bool {
        true
    }
    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::Result<()> {
        while let Some(tag) = is.read_raw_tag_or_eof()? {
            match tag {
                10 => {
                    self.device_friendly_name = ::std::option::Option::Some(is.read_string()?);
                },
                16 => {
                    self.platform_type = ::std::option::Option::Some(is.read_enum_or_unknown()?);
                },
                24 => {
                    self.os_type = ::std::option::Option::Some(is.read_int32()?);
                },
                32 => {
                    self.gaming_device_type = ::std::option::Option::Some(is.read_uint32()?);
                },
                40 => {
                    self.client_count = ::std::option::Option::Some(is.read_uint32()?);
                },
                50 => {
                    self.machine_id = ::std::option::Option::Some(is.read_bytes()?);
                },
                tag => {
                    ::protobuf::rt::read_unknown_or_skip_group(tag, is, self.special_fields.mut_unknown_fields())?;
                },
            };
        }
        ::std::result::Result::Ok(())
    }
    #[allow(unused_variables)]
    fn compute_size(&self) -> u64 {
        let mut my_size = 0;
        if let Some(v) = self.device_friendly_name.as_ref() {
            my_size += ::protobuf::rt::string_size(1, &v);
        }
        if let Some(v) = self.platform_type {
            my_size += ::protobuf::rt::int32_size(2, v.value());
        }
        if let Some(v) = self.os_type {
            my_size += ::protobuf::rt::int32_size(3, v);
        }
        if let Some(v) = self.gaming_device_type {
            my_size += ::protobuf::rt::uint32_size(4, v);
        }
        if let Some(v) = self.client_count {
            my_size += ::protobuf::rt::uint32_size(5, v);
        }
        if let Some(v) = self.machine_id.as_ref() {
            my_size += ::protobuf::rt::bytes_size(6, &v);
        }
        my_size += ::protobuf::rt::unknown_fields_size(self.special_fields.unknown_fields());
        self.special_fields.cached_size().set(my_size as u32);
        my_size
    }
    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::Result<()> {
        if let Some(v) = self.device_friendly_name.as_ref() {
            os.write_string(1, v)?;
        }
        if let Some(v) = self.platform_type {
            os.write_enum(2, ::protobuf::EnumOrUnknown::value(&v))?;
        }
        if let Some(v) = self.os_type {
            os.write_int32(3, v)?;
        }
        if let Some(v) = self.gaming_device_type {
            os.write_uint32(4, v)?;
        }
        if let Some(v) = self.client_count {
            os.write_uint32(5, v)?;
        }
        if let Some(v) = self.machine_id.as_ref() {
            os.write_bytes(6, v)?;
        }
        os.write_unknown_fields(self.special_fields.unknown_fields())?;
        ::std::result::Result::Ok(())
    }
    fn special_fields(&self) -> &::protobuf::SpecialFields {
        &self.special_fields
    }
    fn mut_special_fields(&mut self) -> &mut ::protobuf::SpecialFields {
        &mut self.special_fields
    }
    fn new() -> CAuthentication_DeviceDetails {
        CAuthentication_DeviceDetails::new()
    }
    fn clear(&mut self) {
        self.device_friendly_name = ::std::option::Option::None;
        self.platform_type = ::std::option::Option::None;
        self.os_type = ::std::option::Option::None;
        self.gaming_device_type = ::std::option::Option::None;
        self.client_count = ::std::option::Option::None;
        self.machine_id = ::std::option::Option::None;
        self.special_fields.clear();
    }
    fn default_instance() -> &'static CAuthentication_DeviceDetails {
        static instance: CAuthentication_DeviceDetails = CAuthentication_DeviceDetails {
            device_friendly_name: ::std::option::Option::None,
            platform_type: ::std::option::Option::None,
            os_type: ::std::option::Option::None,
            gaming_device_type: ::std::option::Option::None,
            client_count: ::std::option::Option::None,
            machine_id: ::std::option::Option::None,
            special_fields: ::protobuf::SpecialFields::new(),
        };
        &instance
    }
}
#[doc = "start authentication process"]
#[derive(PartialEq,Clone,Default,Debug)]
pub struct CAuthentication_BeginAuthSessionViaQR_Request {
    pub device_friendly_name: ::std::option::Option<::std::string::String>,
    pub platform_type: ::std::option::Option<::protobuf::EnumOrUnknown<EAuthTokenPlatformType>>,
    pub device_details: ::protobuf::MessageField<CAuthentication_DeviceDetails>,
    pub website_id: ::std::option::Option<::std::string::String>,
    pub special_fields: ::protobuf::SpecialFields,
}
impl<'a> ::std::default::Default for &'a CAuthentication_BeginAuthSessionViaQR_Request {
    fn default() -> &'a CAuthentication_BeginAuthSessionViaQR_Request {
        <CAuthentication_BeginAuthSessionViaQR_Request as ::protobuf::Message>::default_instance()
    }
}
impl CAuthentication_BeginAuthSessionViaQR_Request {
    pub fn new() -> CAuthentication_BeginAuthSessionViaQR_Request {
        ::std::default::Default::default()
    }
    pub fn device_friendly_name(&self) -> &str {
        match self.device_friendly_name.as_ref() {
            Some(v) => v,
            None => "",
        }
    }
    pub fn clear_device_friendly_name(&mut self) {
        self.device_friendly_name = ::std::option::Option::None;
    }
    pub fn has_device_friendly_name(&self) -> bool {
        self.device_friendly_name.is_some()
    }
    pub fn set_device_friendly_name(&mut self, v: ::std::string::String) {
        self.device_friendly_name = ::std::option::Option::Some(v);
    }
    pub fn mut_device_friendly_name(&mut self) -> &mut ::std::string::String {
        if self.device_friendly_name.is_none() {
            self.device_friendly_name = ::std::option::Option::Some(::std::string::String::new());
        }
        self.device_friendly_name.as_mut().unwrap()
    }
    pub fn take_device_friendly_name(&mut self) -> ::std::string::String {
        self.device_friendly_name.take().unwrap_or_else(|| ::std::string::String::new())
    }
    pub fn platform_type(&self) -> EAuthTokenPlatformType {
        match self.platform_type {
            Some(e) => e.enum_value_or(EAuthTokenPlatformType::k_EAuthTokenPlatformType_Unknown),
            None => EAuthTokenPlatformType::k_EAuthTokenPlatformType_Unknown,
        }
    }
    pub fn clear_platform_type(&mut self) {
        self.platform_type = ::std::option::Option::None;
    }
    pub fn has_platform_type(&self) -> bool {
        self.platform_type.is_some()
    }
    pub fn set_platform_type(&mut self, v: EAuthTokenPlatformType) {
        self.platform_type = ::std::option::Option::Some(::protobuf::EnumOrUnknown::new(v));
    }
    pub fn website_id(&self) -> &str {
        match self.website_id.as_ref() {
            Some(v) => v,
            None => "Unknown",
        }
    }
    pub fn clear_website_id(&mut self) {
        self.website_id = ::std::option::Option::None;
    }
    pub fn has_website_id(&self) -> bool {
        self.website_id.is_some()
    }
    pub fn set_website_id(&mut self, v: ::std::string::String) {
        self.website_id = ::std::option::Option::Some(v);
    }
    pub fn mut_website_id(&mut self) -> &mut ::std::string::String {
        if self.website_id.is_none() {
            self.website_id = ::std::option::Option::Some(::std::string::String::new());
        }
        self.website_id.as_mut().unwrap()
    }
    pub fn take_website_id(&mut self) -> ::std::string::String {
        self.website_id.take().unwrap_or_else(|| ::std::string::String::new())
    }
}
impl ::protobuf::Message for CAuthentication_BeginAuthSessionViaQR_Request {
    const NAME: &'static str = "CAuthentication_BeginAuthSessionViaQR_Request";
    fn is_initialized(&self) -> bool {
        true
    }
    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::Result<()> {
        while let Some(tag) = is.read_raw_tag_or_eof()? {
            match tag {
                10 => {
                    self.device_friendly_name = ::std::option::Option::Some(is.read_string()?);
                },
                16 => {
                    self.platform_type = ::std::option::Option::Some(is.read_enum_or_unknown()?);
                },
                26 => {
                    ::protobuf::rt::read_singular_message_into_field(is, &mut self.device_details)?;
                },
                34 => {
                    self.website_id = ::std::option::Option::Some(is.read_string()?);
                },
                tag => {
                    ::protobuf::rt::read_unknown_or_skip_group(tag, is, self.special_fields.mut_unknown_fields())?;
                },
            };
        }
        ::std::result::Result::Ok(())
    }
    #[allow(unused_variables)]
    fn compute_size(&self) -> u64 {
        let mut my_size = 0;
        if let Some(v) = self.device_friendly_name.as_ref() {
            my_size += ::protobuf::rt::string_size(1, &v);
        }
        if let Some(v) = self.platform_type {
            my_size += ::protobuf::rt::int32_size(2, v.value());
        }
        if let Some(v) = self.device_details.as_ref() {
            let len = v.compute_size();
            my_size += 1 + ::protobuf::rt::compute_raw_varint64_size(len) + len;
        }
        if let Some(v) = self.website_id.as_ref() {
            my_size += ::protobuf::rt::string_size(4, &v);
        }
        my_size += ::protobuf::rt::unknown_fields_size(self.special_fields.unknown_fields());
        self.special_fields.cached_size().set(my_size as u32);
        my_size
    }
    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::Result<()> {
        if let Some(v) = self.device_friendly_name.as_ref() {
            os.write_string(1, v)?;
        }
        if let Some(v) = self.platform_type {
            os.write_enum(2, ::protobuf::EnumOrUnknown::value(&v))?;
        }
        if let Some(v) = self.device_details.as_ref() {
            ::protobuf::rt::write_message_field_with_cached_size(3, v, os)?;
        }
        if let Some(v) = self.website_id.as_ref() {
            os.write_string(4, v)?;
        }
        os.write_unknown_fields(self.special_fields.unknown_fields())?;
        ::std::result::Result::Ok(())
    }
    fn special_fields(&self) -> &::protobuf::SpecialFields {
        &self.special_fields
    }
    fn mut_special_fields(&mut self) -> &mut ::protobuf::SpecialFields {
        &mut self.special_fields
    }
    fn new() -> CAuthentication_BeginAuthSessionViaQR_Request {
        CAuthentication_BeginAuthSessionViaQR_Request::new()
    }
    fn clear(&mut self) {
        self.device_friendly_name = ::std::option::Option::None;
        self.platform_type = ::std::option::Option::None;
        self.device_details.clear();
        self.website_id = ::std::option::Option::None;
        self.special_fields.clear();
    }
    fn default_instance() -> &'static CAuthentication_BeginAuthSessionViaQR_Request {
        static instance: CAuthentication_BeginAuthSessionViaQR_Request = CAuthentication_BeginAuthSessionViaQR_Request {
            device_friendly_name: ::std::option::Option::None,
            platform_type: ::std::option::Option::None,
            device_details: ::protobuf::MessageField::none(),
            website_id: ::std::option::Option::None,
            special_fields: ::protobuf::SpecialFields::new(),
        };
        &instance
    }
}
#[derive(PartialEq,Clone,Default,Debug)]
pub struct CAuthentication_AllowedConfirmation {
    pub confirmation_type: ::std::option::Option<::protobuf::EnumOrUnknown<EAuthSessionGuardType>>,
    pub associated_message: ::std::option::Option<::std::string::String>,
    pub special_fields: ::protobuf::SpecialFields,
}
impl<'a> ::std::default::Default for &'a CAuthentication_AllowedConfirmation {
    fn default() -> &'a CAuthentication_AllowedConfirmation {
        <CAuthentication_AllowedConfirmation as ::protobuf::Message>::default_instance()
    }
}
impl CAuthentication_AllowedConfirmation {
    pub fn new() -> CAuthentication_AllowedConfirmation {
        ::std::default::Default::default()
    }
    pub fn confirmation_type(&self) -> EAuthSessionGuardType {
        match self.confirmation_type {
            Some(e) => e.enum_value_or(EAuthSessionGuardType::k_EAuthSessionGuardType_Unknown),
            None => EAuthSessionGuardType::k_EAuthSessionGuardType_Unknown,
        }
    }
    pub fn clear_confirmation_type(&mut self) {
        self.confirmation_type = ::std::option::Option::None;
    }
    pub fn has_confirmation_type(&self) -> bool {
        self.confirmation_type.is_some()
    }
    pub fn set_confirmation_type(&mut self, v: EAuthSessionGuardType) {
        self.confirmation_type = ::std::option::Option::Some(::protobuf::EnumOrUnknown::new(v));
    }
    pub fn associated_message(&self) -> &str {
        match self.associated_message.as_ref() {
            Some(v) => v,
            None => "",
        }
    }
    pub fn clear_associated_message(&mut self) {
        self.associated_message = ::std::option::Option::None;
    }
    pub fn has_associated_message(&self) -> bool {
        self.associated_message.is_some()
    }
    pub fn set_associated_message(&mut self, v: ::std::string::String) {
        self.associated_message = ::std::option::Option::Some(v);
    }
    pub fn mut_associated_message(&mut self) -> &mut ::std::string::String {
        if self.associated_message.is_none() {
            self.associated_message = ::std::option::Option::Some(::std::string::String::new());
        }
        self.associated_message.as_mut().unwrap()
    }
    pub fn take_associated_message(&mut self) -> ::std::string::String {
        self.associated_message.take().unwrap_or_else(|| ::std::string::String::new())
    }
}
impl ::protobuf::Message for CAuthentication_AllowedConfirmation {
    const NAME: &'static str = "CAuthentication_AllowedConfirmation";
    fn is_initialized(&self) -> bool {
        true
    }
    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::Result<()> {
        while let Some(tag) = is.read_raw_tag_or_eof()? {
            match tag {
                8 => {
                    self.confirmation_type = ::std::option::Option::Some(is.read_enum_or_unknown()?);
                },
                18 => {
                    self.associated_message = ::std::option::Option::Some(is.read_string()?);
                },
                tag => {
                    ::protobuf::rt::read_unknown_or_skip_group(tag, is, self.special_fields.mut_unknown_fields())?;
                },
            };
        }
        ::std::result::Result::Ok(())
    }
    #[allow(unused_variables)]
    fn compute_size(&self) -> u64 {
        let mut my_size = 0;
        if let Some(v) = self.confirmation_type {
            my_size += ::protobuf::rt::int32_size(1, v.value());
        }
        if let Some(v) = self.associated_message.as_ref() {
            my_size += ::protobuf::rt::string_size(2, &v);
        }
        my_size += ::protobuf::rt::unknown_fields_size(self.special_fields.unknown_fields());
        self.special_fields.cached_size().set(my_size as u32);
        my_size
    }
    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::Result<()> {
        if let Some(v) = self.confirmation_type {
            os.write_enum(1, ::protobuf::EnumOrUnknown::value(&v))?;
        }
        if let Some(v) = self.associated_message.as_ref() {
            os.write_string(2, v)?;
        }
        os.write_unknown_fields(self.special_fields.unknown_fields())?;
        ::std::result::Result::Ok(())
    }
    fn special_fields(&self) -> &::protobuf::SpecialFields {
        &self.special_fields
    }
    fn mut_special_fields(&mut self) -> &mut ::protobuf::SpecialFields {
        &mut self.special_fields
    }
    fn new() -> CAuthentication_AllowedConfirmation {
        CAuthentication_AllowedConfirmation::new()
    }
    fn clear(&mut self) {
        self.confirmation_type = ::std::option::Option::None;
        self.associated_message = ::std::option::Option::None;
        self.special_fields.clear();
    }
    fn default_instance() -> &'static CAuthentication_AllowedConfirmation {
        static instance: CAuthentication_AllowedConfirmation = CAuthentication_AllowedConfirmation {
            confirmation_type: ::std::option::Option::None,
            associated_message: ::std::option::Option::None,
            special_fields: ::protobuf::SpecialFields::new(),
        };
        &instance
    }
}
#[derive(PartialEq,Clone,Default,Debug)]
pub struct CAuthentication_BeginAuthSessionViaQR_Response {
    pub client_id: ::std::option::Option<u64>,
    pub challenge_url: ::std::option::Option<::std::string::String>,
    pub request_id: ::std::option::Option<::std::vec::Vec<u8>>,
    pub interval: ::std::option::Option<f32>,
    pub allowed_confirmations: ::std::vec::Vec<CAuthentication_AllowedConfirmation>,
    pub version: ::std::option::Option<i32>,
    pub special_fields: ::protobuf::SpecialFields,
}
impl<'a> ::std::default::Default for &'a CAuthentication_BeginAuthSessionViaQR_Response {
    fn default() -> &'a CAuthentication_BeginAuthSessionViaQR_Response {
        <CAuthentication_BeginAuthSessionViaQR_Response as ::protobuf::Message>::default_instance()
    }
}
impl CAuthentication_BeginAuthSessionViaQR_Response {
    pub fn new() -> CAuthentication_BeginAuthSessionViaQR_Response {
        ::std::default::Default::default()
    }
    pub fn client_id(&self) -> u64 {
        self.client_id.unwrap_or(0)
    }
    pub fn clear_client_id(&mut self) {
        self.client_id = ::std::option::Option::None;
    }
    pub fn has_client_id(&self) -> bool {
        self.client_id.is_some()
    }
    pub fn set_client_id(&mut self, v: u64) {
        self.client_id = ::std::option::Option::Some(v);
    }
    pub fn challenge_url(&self) -> &str {
        match self.challenge_url.as_ref() {
            Some(v) => v,
            None => "",
        }
    }
    pub fn clear_challenge_url(&mut self) {
        self.challenge_url = ::std::option::Option::None;
    }
    pub fn has_challenge_url(&self) -> bool {
        self.challenge_url.is_some()
    }
    pub fn set_challenge_url(&mut self, v: ::std::string::String) {
        self.challenge_url = ::std::option::Option::Some(v);
    }
    pub fn mut_challenge_url(&mut self) -> &mut ::std::string::String {
        if self.challenge_url.is_none() {
            self.challenge_url = ::std::option::Option::Some(::std::string::String::new());
        }
        self.challenge_url.as_mut().unwrap()
    }
    pub fn take_challenge_url(&mut self) -> ::std::string::String {
        self.challenge_url.take().unwrap_or_else(|| ::std::string::String::new())
    }
    pub fn request_id(&self) -> &[u8] {
        match self.request_id.as_ref() {
            Some(v) => v,
            None => &[],
        }
    }
    pub fn clear_request_id(&mut self) {
        self.request_id = ::std::option::Option::None;
    }
    pub fn has_request_id(&self) -> bool {
        self.request_id.is_some()
    }
    pub fn set_request_id(&mut self, v: ::std::vec::Vec<u8>) {
        self.request_id = ::std::option::Option::Some(v);
    }
    pub fn mut_request_id(&mut self) -> &mut ::std::vec::Vec<u8> {
        if self.request_id.is_none() {
            self.request_id = ::std::option::Option::Some(::std::vec::Vec::new());
        }
        self.request_id.as_mut().unwrap()
    }
    pub fn take_request_id(&mut self) -> ::std::vec::Vec<u8> {
        self.request_id.take().unwrap_or_else(|| ::std::vec::Vec::new())
    }
    pub fn interval(&self) -> f32 {
        self.interval.unwrap_or(0.)
    }
    pub fn clear_interval(&mut self) {
        self.interval = ::std::option::Option::None;
    }
    pub fn has_interval(&self) -> bool {
        self.interval.is_some()
    }
    pub fn set_interval(&mut self, v: f32) {
        self.interval = ::std::option::Option::Some(v);
    }
    pub fn version(&self) -> i32 {
        self.version.unwrap_or(0)
    }
    pub fn clear_version(&mut self) {
        self.version = ::std::option::Option::None;
    }
    pub fn has_version(&self) -> bool {
        self.version.is_some()
    }
    pub fn set_version(&mut self, v: i32) {
        self.version = ::std::option::Option::Some(v);
    }
}
impl ::protobuf::Message for CAuthentication_BeginAuthSessionViaQR_Response {
    const NAME: &'static str = "CAuthentication_BeginAuthSessionViaQR_Response";
    fn is_initialized(&self) -> bool {
        true
    }
    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::Result<()> {
        while let Some(tag) = is.read_raw_tag_or_eof()? {
            match tag {
                8 => {
                    self.client_id = ::std::option::Option::Some(is.read_uint64()?);
                },
                18 => {
                    self.challenge_url = ::std::option::Option::Some(is.read_string()?);
                },
                26 => {
                    self.request_id = ::std::option::Option::Some(is.read_bytes()?);
                },
                37 => {
                    self.interval = ::std::option::Option::Some(is.read_float()?);
                },
                42 => {
                    self.allowed_confirmations.push(is.read_message()?);
                },
                48 => {
                    self.version = ::std::option::Option::Some(is.read_int32()?);
                },
                tag => {
                    ::protobuf::rt::read_unknown_or_skip_group(tag, is, self.special_fields.mut_unknown_fields())?;
                },
            };
        }
        ::std::result::Result::Ok(())
    }
    #[allow(unused_variables)]
    fn compute_size(&self) -> u64 {
        let mut my_size = 0;
        if let Some(v) = self.client_id {
            my_size += ::protobuf::rt::uint64_size(1, v);
        }
        if let Some(v) = self.challenge_url.as_ref() {
            my_size += ::protobuf::rt::string_size(2, &v);
        }
        if let Some(v) = self.request_id.as_ref() {
            my_size += ::protobuf::rt::bytes_size(3, &v);
        }
        if let Some(v) = self.interval {
            my_size += 1 + 4;
        }
        for value in &self.allowed_confirmations {
            let len = value.compute_size();
            my_size += 1 + ::protobuf::rt::compute_raw_varint64_size(len) + len;
        };
        if let Some(v) = self.version {
            my_size += ::protobuf::rt::int32_size(6, v);
        }
        my_size += ::protobuf::rt::unknown_fields_size(self.special_fields.unknown_fields());
        self.special_fields.cached_size().set(my_size as u32);
        my_size
    }
    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::Result<()> {
        if let Some(v) = self.client_id {
            os.write_uint64(1, v)?;
        }
        if let Some(v) = self.challenge_url.as_ref() {
            os.write_string(2, v)?;
        }
        if let Some(v) = self.request_id.as_ref() {
            os.write_bytes(3, v)?;
        }
        if let Some(v) = self.interval {
            os.write_float(4, v)?;
        }
        for v in &self.allowed_confirmations {
            ::protobuf::rt::write_message_field_with_cached_size(5, v, os)?;
        };
        if let Some(v) = self.version {
            os.write_int32(6, v)?;
        }
        os.write_unknown_fields(self.special_fields.unknown_fields())?;
        ::std::result::Result::Ok(())
    }
    fn special_fields(&self) -> &::protobuf::SpecialFields {
        &self.special_fields
    }
    fn mut_special_fields(&mut self) -> &mut ::protobuf::SpecialFields {
        &mut self.special_fields
    }
    fn new() -> CAuthentication_BeginAuthSessionViaQR_Response {
        CAuthentication_BeginAuthSessionViaQR_Response::new()
    }
    fn clear(&mut self) {
        self.client_id = ::std::option::Option::None;
        self.challenge_url = ::std::option::Option::None;
        self.request_id = ::std::option::Option::None;
        self.interval = ::std::option::Option::None;
        self.allowed_confirmations.clear();
        self.version = ::std::option::Option::None;
        self.special_fields.clear();
    }
    fn default_instance() -> &'static CAuthentication_BeginAuthSessionViaQR_Response {
        static instance: CAuthentication_BeginAuthSessionViaQR_Response = CAuthentication_BeginAuthSessionViaQR_Response {
            client_id: ::std::option::Option::None,
            challenge_url: ::std::option::Option::None,
            request_id: ::std::option::Option::None,
            interval: ::std::option::Option::None,
            allowed_confirmations: ::std::vec::Vec::new(),
            version: ::std::option::Option::None,
            special_fields: ::protobuf::SpecialFields::new(),
        };
        &instance
    }
}
#[doc = "start authentication process"]
#[derive(PartialEq,Clone,Default,Debug)]
pub struct CAuthentication_BeginAuthSessionViaCredentials_Request {
    pub device_friendly_name: ::std::option::Option<::std::string::String>,
    pub account_name: ::std::option::Option<::std::string::String>,
    pub encrypted_password: ::std::option::Option<::std::string::String>,
    pub encryption_timestamp: ::std::option::Option<u64>,
    pub remember_login: ::std::option::Option<bool>,
    pub platform_type: ::std::option::Option<::protobuf::EnumOrUnknown<EAuthTokenPlatformType>>,
    pub persistence: ::std::option::Option<::protobuf::EnumOrUnknown<super::enums::ESessionPersistence>>,
    pub website_id: ::std::option::Option<::std::string::String>,
    pub device_details: ::protobuf::MessageField<CAuthentication_DeviceDetails>,
    pub guard_data: ::std::option::Option<::std::string::String>,
    pub language: ::std::option::Option<u32>,
    pub qos_level: ::std::option::Option<i32>,
    pub special_fields: ::protobuf::SpecialFields,
}
impl<'a> ::std::default::Default for &'a CAuthentication_BeginAuthSessionViaCredentials_Request {
    fn default() -> &'a CAuthentication_BeginAuthSessionViaCredentials_Request {
        <CAuthentication_BeginAuthSessionViaCredentials_Request as ::protobuf::Message>::default_instance()
    }
}
impl CAuthentication_BeginAuthSessionViaCredentials_Request {
    pub fn new() -> CAuthentication_BeginAuthSessionViaCredentials_Request {
        ::std::default::Default::default()
    }
    pub fn device_friendly_name(&self) -> &str {
        match self.device_friendly_name.as_ref() {
            Some(v) => v,
            None => "",
        }
    }
    pub fn clear_device_friendly_name(&mut self) {
        self.device_friendly_name = ::std::option::Option::None;
    }
    pub fn has_device_friendly_name(&self) -> bool {
        self.device_friendly_name.is_some()
    }
    pub fn set_device_friendly_name(&mut self, v: ::std::string::String) {
        self.device_friendly_name = ::std::option::Option::Some(v);
    }
    pub fn mut_device_friendly_name(&mut self) -> &mut ::std::string::String {
        if self.device_friendly_name.is_none() {
            self.device_friendly_name = ::std::option::Option::Some(::std::string::String::new());
        }
        self.device_friendly_name.as_mut().unwrap()
    }
    pub fn take_device_friendly_name(&mut self) -> ::std::string::String {
        self.device_friendly_name.take().unwrap_or_else(|| ::std::string::String::new())
    }
    pub fn account_name(&self) -> &str {
        match self.account_name.as_ref() {
            Some(v) => v,
            None => "",
        }
    }
    pub fn clear_account_name(&mut self) {
        self.account_name = ::std::option::Option::None;
    }
    pub fn has_account_name(&self) -> bool {
        self.account_name.is_some()
    }
    pub fn set_account_name(&mut self, v: ::std::string::String) {
        self.account_name = ::std::option::Option::Some(v);
    }
    pub fn mut_account_name(&mut self) -> &mut ::std::string::String {
        if self.account_name.is_none() {
            self.account_name = ::std::option::Option::Some(::std::string::String::new());
        }
        self.account_name.as_mut().unwrap()
    }
    pub fn take_account_name(&mut self) -> ::std::string::String {
        self.account_name.take().unwrap_or_else(|| ::std::string::String::new())
    }
    pub fn encrypted_password(&self) -> &str {
        match self.encrypted_password.as_ref() {
            Some(v) => v,
            None => "",
        }
    }
    pub fn clear_encrypted_password(&mut self) {
        self.encrypted_password = ::std::option::Option::None;
    }
    pub fn has_encrypted_password(&self) -> bool {
        self.encrypted_password.is_some()
    }
    pub fn set_encrypted_password(&mut self, v: ::std::string::String) {
        self.encrypted_password = ::std::option::Option::Some(v);
    }
    pub fn mut_encrypted_password(&mut self) -> &mut ::std::string::String {
        if self.encrypted_password.is_none() {
            self.encrypted_password = ::std::option::Option::Some(::std::string::String::new());
        }
        self.encrypted_password.as_mut().unwrap()
    }
    pub fn take_encrypted_password(&mut self) -> ::std::string::String {
        self.encrypted_password.take().unwrap_or_else(|| ::std::string::String::new())
    }
    pub fn encryption_timestamp(&self) -> u64 {
        self.encryption_timestamp.unwrap_or(0)
    }
    pub fn clear_encryption_timestamp(&mut self) {
        self.encryption_timestamp = ::std::option::Option::None;
    }
    pub fn has_encryption_timestamp(&self) -> bool {
        self.encryption_timestamp.is_some()
    }
    pub fn set_encryption_timestamp(&mut self, v: u64) {
        self.encryption_timestamp = ::std::option::Option::Some(v);
    }
    pub fn remember_login(&self) -> bool {
        self.remember_login.unwrap_or(false)
    }
    pub fn clear_remember_login(&mut self) {
        self.remember_login = ::std::option::Option::None;
    }
    pub fn has_remember_login(&self) -> bool {
        self.remember_login.is_some()
    }
    pub fn set_remember_login(&mut self, v: bool) {
        self.remember_login = ::std::option::Option::Some(v);
    }
    pub fn platform_type(&self) -> EAuthTokenPlatformType {
        match self.platform_type {
            Some(e) => e.enum_value_or(EAuthTokenPlatformType::k_EAuthTokenPlatformType_Unknown),
            None => EAuthTokenPlatformType::k_EAuthTokenPlatformType_Unknown,
        }
    }
    pub fn clear_platform_type(&mut self) {
        self.platform_type = ::std::option::Option::None;
    }
    pub fn has_platform_type(&self) -> bool {
        self.platform_type.is_some()
    }
    pub fn set_platform_type(&mut self, v: EAuthTokenPlatformType) {
        self.platform_type = ::std::option::Option::Some(::protobuf::EnumOrUnknown::new(v));
    }
    pub fn persistence(&self) -> super::enums::ESessionPersistence {
        match self.persistence {
            Some(e) => e.enum_value_or(super::enums::ESessionPersistence::k_ESessionPersistence_Persistent),
            None => super::enums::ESessionPersistence::k_ESessionPersistence_Persistent,
        }
    }
    pub fn clear_persistence(&mut self) {
        self.persistence = ::std::option::Option::None;
    }
    pub fn has_persistence(&self) -> bool {
        self.persistence.is_some()
    }
    pub fn set_persistence(&mut self, v: super::enums::ESessionPersistence) {
        self.persistence = ::std::option::Option::Some(::protobuf::EnumOrUnknown::new(v));
    }
    pub fn website_id(&self) -> &str {
        match self.website_id.as_ref() {
            Some(v) => v,
            None => "Unknown",
        }
    }
    pub fn clear_website_id(&mut self) {
        self.website_id = ::std::option::Option::None;
    }
    pub fn has_website_id(&self) -> bool {
        self.website_id.is_some()
    }
    pub fn set_website_id(&mut self, v: ::std::string::String) {
        self.website_id = ::std::option::Option::Some(v);
    }
    pub fn mut_website_id(&mut self) -> &mut ::std::string::String {
        if self.website_id.is_none() {
            self.website_id = ::std::option::Option::Some(::std::string::String::new());
        }
        self.website_id.as_mut().unwrap()
    }
    pub fn take_website_id(&mut self) -> ::std::string::String {
        self.website_id.take().unwrap_or_else(|| ::std::string::String::new())
    }
    pub fn guard_data(&self) -> &str {
        match self.guard_data.as_ref() {
            Some(v) => v,
            None => "",
        }
    }
    pub fn clear_guard_data(&mut self) {
        self.guard_data = ::std::option::Option::None;
    }
    pub fn has_guard_data(&self) -> bool {
        self.guard_data.is_some()
    }
    pub fn set_guard_data(&mut self, v: ::std::string::String) {
        self.guard_data = ::std::option::Option::Some(v);
    }
    pub fn mut_guard_data(&mut self) -> &mut ::std::string::String {
        if self.guard_data.is_none() {
            self.guard_data = ::std::option::Option::Some(::std::string::String::new());
        }
        self.guard_data.as_mut().unwrap()
    }
    pub fn take_guard_data(&mut self) -> ::std::string::String {
        self.guard_data.take().unwrap_or_else(|| ::std::string::String::new())
    }
    pub fn language(&self) -> u32 {
        self.language.unwrap_or(0)
    }
    pub fn clear_language(&mut self) {
        self.language = ::std::option::Option::None;
    }
    pub fn has_language(&self) -> bool {
        self.language.is_some()
    }
    pub fn set_language(&mut self, v: u32) {
        self.language = ::std::option::Option::Some(v);
    }
    pub fn qos_level(&self) -> i32 {
        self.qos_level.unwrap_or(2i32)
    }
    pub fn clear_qos_level(&mut self) {
        self.qos_level = ::std::option::Option::None;
    }
    pub fn has_qos_level(&self) -> bool {
        self.qos_level.is_some()
    }
    pub fn set_qos_level(&mut self, v: i32) {
        self.qos_level = ::std::option::Option::Some(v);
    }
}
impl ::protobuf::Message for CAuthentication_BeginAuthSessionViaCredentials_Request {
    const NAME: &'static str = "CAuthentication_BeginAuthSessionViaCredentials_Request";
    fn is_initialized(&self) -> bool {
        true
    }
    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::Result<()> {
        while let Some(tag) = is.read_raw_tag_or_eof()? {
            match tag {
                10 => {
                    self.device_friendly_name = ::std::option::Option::Some(is.read_string()?);
                },
                18 => {
                    self.account_name = ::std::option::Option::Some(is.read_string()?);
                },
                26 => {
                    self.encrypted_password = ::std::option::Option::Some(is.read_string()?);
                },
                32 => {
                    self.encryption_timestamp = ::std::option::Option::Some(is.read_uint64()?);
                },
                40 => {
                    self.remember_login = ::std::option::Option::Some(is.read_bool()?);
                },
                48 => {
                    self.platform_type = ::std::option::Option::Some(is.read_enum_or_unknown()?);
                },
                56 => {
                    self.persistence = ::std::option::Option::Some(is.read_enum_or_unknown()?);
                },
                66 => {
                    self.website_id = ::std::option::Option::Some(is.read_string()?);
                },
                74 => {
                    ::protobuf::rt::read_singular_message_into_field(is, &mut self.device_details)?;
                },
                82 => {
                    self.guard_data = ::std::option::Option::Some(is.read_string()?);
                },
                88 => {
                    self.language = ::std::option::Option::Some(is.read_uint32()?);
                },
                96 => {
                    self.qos_level = ::std::option::Option::Some(is.read_int32()?);
                },
                tag => {
                    ::protobuf::rt::read_unknown_or_skip_group(tag, is, self.special_fields.mut_unknown_fields())?;
                },
            };
        }
        ::std::result::Result::Ok(())
    }
    #[allow(unused_variables)]
    fn compute_size(&self) -> u64 {
        let mut my_size = 0;
        if let Some(v) = self.device_friendly_name.as_ref() {
            my_size += ::protobuf::rt::string_size(1, &v);
        }
        if let Some(v) = self.account_name.as_ref() {
            my_size += ::protobuf::rt::string_size(2, &v);
        }
        if let Some(v) = self.encrypted_password.as_ref() {
            my_size += ::protobuf::rt::string_size(3, &v);
        }
        if let Some(v) = self.encryption_timestamp {
            my_size += ::protobuf::rt::uint64_size(4, v);
        }
        if let Some(v) = self.remember_login {
            my_size += 1 + 1;
        }
        if let Some(v) = self.platform_type {
            my_size += ::protobuf::rt::int32_size(6, v.value());
        }
        if let Some(v) = self.persistence {
            my_size += ::protobuf::rt::int32_size(7, v.value());
        }
        if let Some(v) = self.website_id.as_ref() {
            my_size += ::protobuf::rt::string_size(8, &v);
        }
        if let Some(v) = self.device_details.as_ref() {
            let len = v.compute_size();
            my_size += 1 + ::protobuf::rt::compute_raw_varint64_size(len) + len;
        }
        if let Some(v) = self.guard_data.as_ref() {
            my_size += ::protobuf::rt::string_size(10, &v);
        }
        if let Some(v) = self.language {
            my_size += ::protobuf::rt::uint32_size(11, v);
        }
        if let Some(v) = self.qos_level {
            my_size += ::protobuf::rt::int32_size(12, v);
        }
        my_size += ::protobuf::rt::unknown_fields_size(self.special_fields.unknown_fields());
        self.special_fields.cached_size().set(my_size as u32);
        my_size
    }
    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::Result<()> {
        if let Some(v) = self.device_friendly_name.as_ref() {
            os.write_string(1, v)?;
        }
        if let Some(v) = self.account_name.as_ref() {
            os.write_string(2, v)?;
        }
        if let Some(v) = self.encrypted_password.as_ref() {
            os.write_string(3, v)?;
        }
        if let Some(v) = self.encryption_timestamp {
            os.write_uint64(4, v)?;
        }
        if let Some(v) = self.remember_login {
            os.write_bool(5, v)?;
        }
        if let Some(v) = self.platform_type {
            os.write_enum(6, ::protobuf::EnumOrUnknown::value(&v))?;
        }
        if let Some(v) = self.persistence {
            os.write_enum(7, ::protobuf::EnumOrUnknown::value(&v))?;
        }
        if let Some(v) = self.website_id.as_ref() {
            os.write_string(8, v)?;
        }
        if let Some(v) = self.device_details.as_ref() {
            ::protobuf::rt::write_message_field_with_cached_size(9, v, os)?;
        }
        if let Some(v) = self.guard_data.as_ref() {
            os.write_string(10, v)?;
        }
        if let Some(v) = self.language {
            os.write_uint32(11, v)?;
        }
        if let Some(v) = self.qos_level {
            os.write_int32(12, v)?;
        }
        os.write_unknown_fields(self.special_fields.unknown_fields())?;
        ::std::result::Result::Ok(())
    }
    fn special_fields(&self) -> &::protobuf::SpecialFields {
        &self.special_fields
    }
    fn mut_special_fields(&mut self) -> &mut ::protobuf::SpecialFields {
        &mut self.special_fields
    }
    fn new() -> CAuthentication_BeginAuthSessionViaCredentials_Request {
        CAuthentication_BeginAuthSessionViaCredentials_Request::new()
    }
    fn clear(&mut self) {
        self.device_friendly_name = ::std::option::Option::None;
        self.account_name = ::std::option::Option::None;
        self.encrypted_password = ::std::option::Option::None;
        self.encryption_timestamp = ::std::option::Option::None;
        self.remember_login = ::std::option::Option::None;
        self.platform_type = ::std::option::Option::None;
        self.persistence = ::std::option::Option::None;
        self.website_id = ::std::option::Option::None;
        self.device_details.clear();
        self.guard_data = ::std::option::Option::None;
        self.language = ::std::option::Option::None;
        self.qos_level = ::std::option::Option::None;
        self.special_fields.clear();
    }
    fn default_instance() -> &'static CAuthentication_BeginAuthSessionViaCredentials_Request {
        static instance: CAuthentication_BeginAuthSessionViaCredentials_Request = CAuthentication_BeginAuthSessionViaCredentials_Request {
            device_friendly_name: ::std::option::Option::None,
            account_name: ::std::option::Option::None,
            encrypted_password: ::std::option::Option::None,
            encryption_timestamp: ::std::option::Option::None,
            remember_login: ::std::option::Option::None,
            platform_type: ::std::option::Option::None,
            persistence: ::std::option::Option::None,
            website_id: ::std::option::Option::None,
            device_details: ::protobuf::MessageField::none(),
            guard_data: ::std::option::Option::None,
            language: ::std::option::Option::None,
            qos_level: ::std::option::Option::None,
            special_fields: ::protobuf::SpecialFields::new(),
        };
        &instance
    }
}
#[derive(PartialEq,Clone,Default,Debug)]
pub struct CAuthentication_BeginAuthSessionViaCredentials_Response {
    pub client_id: ::std::option::Option<u64>,
    pub request_id: ::std::option::Option<::std::vec::Vec<u8>>,
    pub interval: ::std::option::Option<f32>,
    pub allowed_confirmations: ::std::vec::Vec<CAuthentication_AllowedConfirmation>,
    pub steamid: ::std::option::Option<u64>,
    pub weak_token: ::std::option::Option<::std::string::String>,
    pub agreement_session_url: ::std::option::Option<::std::string::String>,
    pub extended_error_message: ::std::option::Option<::std::string::String>,
    pub special_fields: ::protobuf::SpecialFields,
}
impl<'a> ::std::default::Default for &'a CAuthentication_BeginAuthSessionViaCredentials_Response {
    fn default() -> &'a CAuthentication_BeginAuthSessionViaCredentials_Response {
        <CAuthentication_BeginAuthSessionViaCredentials_Response as ::protobuf::Message>::default_instance()
    }
}
impl CAuthentication_BeginAuthSessionViaCredentials_Response {
    pub fn new() -> CAuthentication_BeginAuthSessionViaCredentials_Response {
        ::std::default::Default::default()
    }
    pub fn client_id(&self) -> u64 {
        self.client_id.unwrap_or(0)
    }
    pub fn clear_client_id(&mut self) {
        self.client_id = ::std::option::Option::None;
    }
    pub fn has_client_id(&self) -> bool {
        self.client_id.is_some()
    }
    pub fn set_client_id(&mut self, v: u64) {
        self.client_id = ::std::option::Option::Some(v);
    }
    pub fn request_id(&self) -> &[u8] {
        match self.request_id.as_ref() {
            Some(v) => v,
            None => &[],
        }
    }
    pub fn clear_request_id(&mut self) {
        self.request_id = ::std::option::Option::None;
    }
    pub fn has_request_id(&self) -> bool {
        self.request_id.is_some()
    }
    pub fn set_request_id(&mut self, v: ::std::vec::Vec<u8>) {
        self.request_id = ::std::option::Option::Some(v);
    }
    pub fn mut_request_id(&mut self) -> &mut ::std::vec::Vec<u8> {
        if self.request_id.is_none() {
            self.request_id = ::std::option::Option::Some(::std::vec::Vec::new());
        }
        self.request_id.as_mut().unwrap()
    }
    pub fn take_request_id(&mut self) -> ::std::vec::Vec<u8> {
        self.request_id.take().unwrap_or_else(|| ::std::vec::Vec::new())
    }
    pub fn interval(&self) -> f32 {
        self.interval.unwrap_or(0.)
    }
    pub fn clear_interval(&mut self) {
        self.interval = ::std::option::Option::None;
    }
    pub fn has_interval(&self) -> bool {
        self.interval.is_some()
    }
    pub fn set_interval(&mut self, v: f32) {
        self.interval = ::std::option::Option::Some(v);
    }
    pub fn steamid(&self) -> u64 {
        self.steamid.unwrap_or(0)
    }
    pub fn clear_steamid(&mut self) {
        self.steamid = ::std::option::Option::None;
    }
    pub fn has_steamid(&self) -> bool {
        self.steamid.is_some()
    }
    pub fn set_steamid(&mut self, v: u64) {
        self.steamid = ::std::option::Option::Some(v);
    }
    pub fn weak_token(&self) -> &str {
        match self.weak_token.as_ref() {
            Some(v) => v,
            None => "",
        }
    }
    pub fn clear_weak_token(&mut self) {
        self.weak_token = ::std::option::Option::None;
    }
    pub fn has_weak_token(&self) -> bool {
        self.weak_token.is_some()
    }
    pub fn set_weak_token(&mut self, v: ::std::string::String) {
        self.weak_token = ::std::option::Option::Some(v);
    }
    pub fn mut_weak_token(&mut self) -> &mut ::std::string::String {
        if self.weak_token.is_none() {
            self.weak_token = ::std::option::Option::Some(::std::string::String::new());
        }
        self.weak_token.as_mut().unwrap()
    }
    pub fn take_weak_token(&mut self) -> ::std::string::String {
        self.weak_token.take().unwrap_or_else(|| ::std::string::String::new())
    }
    pub fn agreement_session_url(&self) -> &str {
        match self.agreement_session_url.as_ref() {
            Some(v) => v,
            None => "",
        }
    }
    pub fn clear_agreement_session_url(&mut self) {
        self.agreement_session_url = ::std::option::Option::None;
    }
    pub fn has_agreement_session_url(&self) -> bool {
        self.agreement_session_url.is_some()
    }
    pub fn set_agreement_session_url(&mut self, v: ::std::string::String) {
        self.agreement_session_url = ::std::option::Option::Some(v);
    }
    pub fn mut_agreement_session_url(&mut self) -> &mut ::std::string::String {
        if self.agreement_session_url.is_none() {
            self.agreement_session_url = ::std::option::Option::Some(::std::string::String::new());
        }
        self.agreement_session_url.as_mut().unwrap()
    }
    pub fn take_agreement_session_url(&mut self) -> ::std::string::String {
        self.agreement_session_url.take().unwrap_or_else(|| ::std::string::String::new())
    }
    pub fn extended_error_message(&self) -> &str {
        match self.extended_error_message.as_ref() {
            Some(v) => v,
            None => "",
        }
    }
    pub fn clear_extended_error_message(&mut self) {
        self.extended_error_message = ::std::option::Option::None;
    }
    pub fn has_extended_error_message(&self) -> bool {
        self.extended_error_message.is_some()
    }
    pub fn set_extended_error_message(&mut self, v: ::std::string::String) {
        self.extended_error_message = ::std::option::Option::Some(v);
    }
    pub fn mut_extended_error_message(&mut self) -> &mut ::std::string::String {
        if self.extended_error_message.is_none() {
            self.extended_error_message = ::std::option::Option::Some(::std::string::String::new());
        }
        self.extended_error_message.as_mut().unwrap()
    }
    pub fn take_extended_error_message(&mut self) -> ::std::string::String {
        self.extended_error_message.take().unwrap_or_else(|| ::std::string::String::new())
    }
}
impl ::protobuf::Message for CAuthentication_BeginAuthSessionViaCredentials_Response {
    const NAME: &'static str = "CAuthentication_BeginAuthSessionViaCredentials_Response";
    fn is_initialized(&self) -> bool {
        true
    }
    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::Result<()> {
        while let Some(tag) = is.read_raw_tag_or_eof()? {
            match tag {
                8 => {
                    self.client_id = ::std::option::Option::Some(is.read_uint64()?);
                },
                18 => {
                    self.request_id = ::std::option::Option::Some(is.read_bytes()?);
                },
                29 => {
                    self.interval = ::std::option::Option::Some(is.read_float()?);
                },
                34 => {
                    self.allowed_confirmations.push(is.read_message()?);
                },
                40 => {
                    self.steamid = ::std::option::Option::Some(is.read_uint64()?);
                },
                50 => {
                    self.weak_token = ::std::option::Option::Some(is.read_string()?);
                },
                58 => {
                    self.agreement_session_url = ::std::option::Option::Some(is.read_string()?);
                },
                66 => {
                    self.extended_error_message = ::std::option::Option::Some(is.read_string()?);
                },
                tag => {
                    ::protobuf::rt::read_unknown_or_skip_group(tag, is, self.special_fields.mut_unknown_fields())?;
                },
            };
        }
        ::std::result::Result::Ok(())
    }
    #[allow(unused_variables)]
    fn compute_size(&self) -> u64 {
        let mut my_size = 0;
        if let Some(v) = self.client_id {
            my_size += ::protobuf::rt::uint64_size(1, v);
        }
        if let Some(v) = self.request_id.as_ref() {
            my_size += ::protobuf::rt::bytes_size(2, &v);
        }
        if let Some(v) = self.interval {
            my_size += 1 + 4;
        }
        for value in &self.allowed_confirmations {
            let len = value.compute_size();
            my_size += 1 + ::protobuf::rt::compute_raw_varint64_size(len) + len;
        };
        if let Some(v) = self.steamid {
            my_size += ::protobuf::rt::uint64_size(5, v);
        }
        if let Some(v) = self.weak_token.as_ref() {
            my_size += ::protobuf::rt::string_size(6, &v);
        }
        if let Some(v) = self.agreement_session_url.as_ref() {
            my_size += ::protobuf::rt::string_size(7, &v);
        }
        if let Some(v) = self.extended_error_message.as_ref() {
            my_size += ::protobuf::rt::string_size(8, &v);
        }
        my_size += ::protobuf::rt::unknown_fields_size(self.special_fields.unknown_fields());
        self.special_fields.cached_size().set(my_size as u32);
        my_size
    }
    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::Result<()> {
        if let Some(v) = self.client_id {
            os.write_uint64(1, v)?;
        }
        if let Some(v) = self.request_id.as_ref() {
            os.write_bytes(2, v)?;
        }
        if let Some(v) = self.interval {
            os.write_float(3, v)?;
        }
        for v in &self.allowed_confirmations {
            ::protobuf::rt::write_message_field_with_cached_size(4, v, os)?;
        };
        if let Some(v) = self.steamid {
            os.write_uint64(5, v)?;
        }
        if let Some(v) = self.weak_token.as_ref() {
            os.write_string(6, v)?;
        }
        if let Some(v) = self.agreement_session_url.as_ref() {
            os.write_string(7, v)?;
        }
        if let Some(v) = self.extended_error_message.as_ref() {
            os.write_string(8, v)?;
        }
        os.write_unknown_fields(self.special_fields.unknown_fields())?;
        ::std::result::Result::Ok(())
    }
    fn special_fields(&self) -> &::protobuf::SpecialFields {
        &self.special_fields
    }
    fn mut_special_fields(&mut self) -> &mut ::protobuf::SpecialFields {
        &mut self.special_fields
    }
    fn new() -> CAuthentication_BeginAuthSessionViaCredentials_Response {
        CAuthentication_BeginAuthSessionViaCredentials_Response::new()
    }
    fn clear(&mut self) {
        self.client_id = ::std::option::Option::None;
        self.request_id = ::std::option::Option::None;
        self.interval = ::std::option::Option::None;
        self.allowed_confirmations.clear();
        self.steamid = ::std::option::Option::None;
        self.weak_token = ::std::option::Option::None;
        self.agreement_session_url = ::std::option::Option::None;
        self.extended_error_message = ::std::option::Option::None;
        self.special_fields.clear();
    }
    fn default_instance() -> &'static CAuthentication_BeginAuthSessionViaCredentials_Response {
        static instance: CAuthentication_BeginAuthSessionViaCredentials_Response = CAuthentication_BeginAuthSessionViaCredentials_Response {
            client_id: ::std::option::Option::None,
            request_id: ::std::option::Option::None,
            interval: ::std::option::Option::None,
            allowed_confirmations: ::std::vec::Vec::new(),
            steamid: ::std::option::Option::None,
            weak_token: ::std::option::Option::None,
            agreement_session_url: ::std::option::Option::None,
            extended_error_message: ::std::option::Option::None,
            special_fields: ::protobuf::SpecialFields::new(),
        };
        &instance
    }
}
#[doc = "poll during authentication process"]
#[derive(PartialEq,Clone,Default,Debug)]
pub struct CAuthentication_PollAuthSessionStatus_Request {
    pub client_id: ::std::option::Option<u64>,
    pub request_id: ::std::option::Option<::std::vec::Vec<u8>>,
    pub token_to_revoke: ::std::option::Option<u64>,
    pub special_fields: ::protobuf::SpecialFields,
}
impl<'a> ::std::default::Default for &'a CAuthentication_PollAuthSessionStatus_Request {
    fn default() -> &'a CAuthentication_PollAuthSessionStatus_Request {
        <CAuthentication_PollAuthSessionStatus_Request as ::protobuf::Message>::default_instance()
    }
}
impl CAuthentication_PollAuthSessionStatus_Request {
    pub fn new() -> CAuthentication_PollAuthSessionStatus_Request {
        ::std::default::Default::default()
    }
    pub fn client_id(&self) -> u64 {
        self.client_id.unwrap_or(0)
    }
    pub fn clear_client_id(&mut self) {
        self.client_id = ::std::option::Option::None;
    }
    pub fn has_client_id(&self) -> bool {
        self.client_id.is_some()
    }
    pub fn set_client_id(&mut self, v: u64) {
        self.client_id = ::std::option::Option::Some(v);
    }
    pub fn request_id(&self) -> &[u8] {
        match self.request_id.as_ref() {
            Some(v) => v,
            None => &[],
        }
    }
    pub fn clear_request_id(&mut self) {
        self.request_id = ::std::option::Option::None;
    }
    pub fn has_request_id(&self) -> bool {
        self.request_id.is_some()
    }
    pub fn set_request_id(&mut self, v: ::std::vec::Vec<u8>) {
        self.request_id = ::std::option::Option::Some(v);
    }
    pub fn mut_request_id(&mut self) -> &mut ::std::vec::Vec<u8> {
        if self.request_id.is_none() {
            self.request_id = ::std::option::Option::Some(::std::vec::Vec::new());
        }
        self.request_id.as_mut().unwrap()
    }
    pub fn take_request_id(&mut self) -> ::std::vec::Vec<u8> {
        self.request_id.take().unwrap_or_else(|| ::std::vec::Vec::new())
    }
    pub fn token_to_revoke(&self) -> u64 {
        self.token_to_revoke.unwrap_or(0)
    }
    pub fn clear_token_to_revoke(&mut self) {
        self.token_to_revoke = ::std::option::Option::None;
    }
    pub fn has_token_to_revoke(&self) -> bool {
        self.token_to_revoke.is_some()
    }
    pub fn set_token_to_revoke(&mut self, v: u64) {
        self.token_to_revoke = ::std::option::Option::Some(v);
    }
}
impl ::protobuf::Message for CAuthentication_PollAuthSessionStatus_Request {
    const NAME: &'static str = "CAuthentication_PollAuthSessionStatus_Request";
    fn is_initialized(&self) -> bool {
        true
    }
    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::Result<()> {
        while let Some(tag) = is.read_raw_tag_or_eof()? {
            match tag {
                8 => {
                    self.client_id = ::std::option::Option::Some(is.read_uint64()?);
                },
                18 => {
                    self.request_id = ::std::option::Option::Some(is.read_bytes()?);
                },
                25 => {
                    self.token_to_revoke = ::std::option::Option::Some(is.read_fixed64()?);
                },
                tag => {
                    ::protobuf::rt::read_unknown_or_skip_group(tag, is, self.special_fields.mut_unknown_fields())?;
                },
            };
        }
        ::std::result::Result::Ok(())
    }
    #[allow(unused_variables)]
    fn compute_size(&self) -> u64 {
        let mut my_size = 0;
        if let Some(v) = self.client_id {
            my_size += ::protobuf::rt::uint64_size(1, v);
        }
        if let Some(v) = self.request_id.as_ref() {
            my_size += ::protobuf::rt::bytes_size(2, &v);
        }
        if let Some(v) = self.token_to_revoke {
            my_size += 1 + 8;
        }
        my_size += ::protobuf::rt::unknown_fields_size(self.special_fields.unknown_fields());
        self.special_fields.cached_size().set(my_size as u32);
        my_size
    }
    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::Result<()> {
        if let Some(v) = self.client_id {
            os.write_uint64(1, v)?;
        }
        if let Some(v) = self.request_id.as_ref() {
            os.write_bytes(2, v)?;
        }
        if let Some(v) = self.token_to_revoke {
            os.write_fixed64(3, v)?;
        }
        os.write_unknown_fields(self.special_fields.unknown_fields())?;
        ::std::result::Result::Ok(())
    }
    fn special_fields(&self) -> &::protobuf::SpecialFields {
        &self.special_fields
    }
    fn mut_special_fields(&mut self) -> &mut ::protobuf::SpecialFields {
        &mut self.special_fields
    }
    fn new() -> CAuthentication_PollAuthSessionStatus_Request {
        CAuthentication_PollAuthSessionStatus_Request::new()
    }
    fn clear(&mut self) {
        self.client_id = ::std::option::Option::None;
        self.request_id = ::std::option::Option::None;
        self.token_to_revoke = ::std::option::Option::None;
        self.special_fields.clear();
    }
    fn default_instance() -> &'static CAuthentication_PollAuthSessionStatus_Request {
        static instance: CAuthentication_PollAuthSessionStatus_Request = CAuthentication_PollAuthSessionStatus_Request {
            client_id: ::std::option::Option::None,
            request_id: ::std::option::Option::None,
            token_to_revoke: ::std::option::Option::None,
            special_fields: ::protobuf::SpecialFields::new(),
        };
        &instance
    }
}
#[derive(PartialEq,Clone,Default,Debug)]
pub struct CAuthentication_PollAuthSessionStatus_Response {
    pub new_client_id: ::std::option::Option<u64>,
    pub new_challenge_url: ::std::option::Option<::std::string::String>,
    pub refresh_token: ::std::option::Option<::std::string::String>,
    pub access_token: ::std::option::Option<::std::string::String>,
    pub had_remote_interaction: ::std::option::Option<bool>,
    pub account_name: ::std::option::Option<::std::string::String>,
    pub new_guard_data: ::std::option::Option<::std::string::String>,
    pub agreement_session_url: ::std::option::Option<::std::string::String>,
    pub special_fields: ::protobuf::SpecialFields,
}
impl<'a> ::std::default::Default for &'a CAuthentication_PollAuthSessionStatus_Response {
    fn default() -> &'a CAuthentication_PollAuthSessionStatus_Response {
        <CAuthentication_PollAuthSessionStatus_Response as ::protobuf::Message>::default_instance()
    }
}
impl CAuthentication_PollAuthSessionStatus_Response {
    pub fn new() -> CAuthentication_PollAuthSessionStatus_Response {
        ::std::default::Default::default()
    }
    pub fn new_client_id(&self) -> u64 {
        self.new_client_id.unwrap_or(0)
    }
    pub fn clear_new_client_id(&mut self) {
        self.new_client_id = ::std::option::Option::None;
    }
    pub fn has_new_client_id(&self) -> bool {
        self.new_client_id.is_some()
    }
    pub fn set_new_client_id(&mut self, v: u64) {
        self.new_client_id = ::std::option::Option::Some(v);
    }
    pub fn new_challenge_url(&self) -> &str {
        match self.new_challenge_url.as_ref() {
            Some(v) => v,
            None => "",
        }
    }
    pub fn clear_new_challenge_url(&mut self) {
        self.new_challenge_url = ::std::option::Option::None;
    }
    pub fn has_new_challenge_url(&self) -> bool {
        self.new_challenge_url.is_some()
    }
    pub fn set_new_challenge_url(&mut self, v: ::std::string::String) {
        self.new_challenge_url = ::std::option::Option::Some(v);
    }
    pub fn mut_new_challenge_url(&mut self) -> &mut ::std::string::String {
        if self.new_challenge_url.is_none() {
            self.new_challenge_url = ::std::option::Option::Some(::std::string::String::new());
        }
        self.new_challenge_url.as_mut().unwrap()
    }
    pub fn take_new_challenge_url(&mut self) -> ::std::string::String {
        self.new_challenge_url.take().unwrap_or_else(|| ::std::string::String::new())
    }
    pub fn refresh_token(&self) -> &str {
        match self.refresh_token.as_ref() {
            Some(v) => v,
            None => "",
        }
    }
    pub fn clear_refresh_token(&mut self) {
        self.refresh_token = ::std::option::Option::None;
    }
    pub fn has_refresh_token(&self) -> bool {
        self.refresh_token.is_some()
    }
    pub fn set_refresh_token(&mut self, v: ::std::string::String) {
        self.refresh_token = ::std::option::Option::Some(v);
    }
    pub fn mut_refresh_token(&mut self) -> &mut ::std::string::String {
        if self.refresh_token.is_none() {
            self.refresh_token = ::std::option::Option::Some(::std::string::String::new());
        }
        self.refresh_token.as_mut().unwrap()
    }
    pub fn take_refresh_token(&mut self) -> ::std::string::String {
        self.refresh_token.take().unwrap_or_else(|| ::std::string::String::new())
    }
    pub fn access_token(&self) -> &str {
        match self.access_token.as_ref() {
            Some(v) => v,
            None => "",
        }
    }
    pub fn clear_access_token(&mut self) {
        self.access_token = ::std::option::Option::None;
    }
    pub fn has_access_token(&self) -> bool {
        self.access_token.is_some()
    }
    pub fn set_access_token(&mut self, v: ::std::string::String) {
        self.access_token = ::std::option::Option::Some(v);
    }
    pub fn mut_access_token(&mut self) -> &mut ::std::string::String {
        if self.access_token.is_none() {
            self.access_token = ::std::option::Option::Some(::std::string::String::new());
        }
        self.access_token.as_mut().unwrap()
    }
    pub fn take_access_token(&mut self) -> ::std::string::String {
        self.access_token.take().unwrap_or_else(|| ::std::string::String::new())
    }
    pub fn had_remote_interaction(&self) -> bool {
        self.had_remote_interaction.unwrap_or(false)
    }
    pub fn clear_had_remote_interaction(&mut self) {
        self.had_remote_interaction = ::std::option::Option::None;
    }
    pub fn has_had_remote_interaction(&self) -> bool {
        self.had_remote_interaction.is_some()
    }
    pub fn set_had_remote_interaction(&mut self, v: bool) {
        self.had_remote_interaction = ::std::option::Option::Some(v);
    }
    pub fn account_name(&self) -> &str {
        match self.account_name.as_ref() {
            Some(v) => v,
            None => "",
        }
    }
    pub fn clear_account_name(&mut self) {
        self.account_name = ::std::option::Option::None;
    }
    pub fn has_account_name(&self) -> bool {
        self.account_name.is_some()
    }
    pub fn set_account_name(&mut self, v: ::std::string::String) {
        self.account_name = ::std::option::Option::Some(v);
    }
    pub fn mut_account_name(&mut self) -> &mut ::std::string::String {
        if self.account_name.is_none() {
            self.account_name = ::std::option::Option::Some(::std::string::String::new());
        }
        self.account_name.as_mut().unwrap()
    }
    pub fn take_account_name(&mut self) -> ::std::string::String {
        self.account_name.take().unwrap_or_else(|| ::std::string::String::new())
    }
    pub fn new_guard_data(&self) -> &str {
        match self.new_guard_data.as_ref() {
            Some(v) => v,
            None => "",
        }
    }
    pub fn clear_new_guard_data(&mut self) {
        self.new_guard_data = ::std::option::Option::None;
    }
    pub fn has_new_guard_data(&self) -> bool {
        self.new_guard_data.is_some()
    }
    pub fn set_new_guard_data(&mut self, v: ::std::string::String) {
        self.new_guard_data = ::std::option::Option::Some(v);
    }
    pub fn mut_new_guard_data(&mut self) -> &mut ::std::string::String {
        if self.new_guard_data.is_none() {
            self.new_guard_data = ::std::option::Option::Some(::std::string::String::new());
        }
        self.new_guard_data.as_mut().unwrap()
    }
    pub fn take_new_guard_data(&mut self) -> ::std::string::String {
        self.new_guard_data.take().unwrap_or_else(|| ::std::string::String::new())
    }
    pub fn agreement_session_url(&self) -> &str {
        match self.agreement_session_url.as_ref() {
            Some(v) => v,
            None => "",
        }
    }
    pub fn clear_agreement_session_url(&mut self) {
        self.agreement_session_url = ::std::option::Option::None;
    }
    pub fn has_agreement_session_url(&self) -> bool {
        self.agreement_session_url.is_some()
    }
    pub fn set_agreement_session_url(&mut self, v: ::std::string::String) {
        self.agreement_session_url = ::std::option::Option::Some(v);
    }
    pub fn mut_agreement_session_url(&mut self) -> &mut ::std::string::String {
        if self.agreement_session_url.is_none() {
            self.agreement_session_url = ::std::option::Option::Some(::std::string::String::new());
        }
        self.agreement_session_url.as_mut().unwrap()
    }
    pub fn take_agreement_session_url(&mut self) -> ::std::string::String {
        self.agreement_session_url.take().unwrap_or_else(|| ::std::string::String::new())
    }
}
impl ::protobuf::Message for CAuthentication_PollAuthSessionStatus_Response {
    const NAME: &'static str = "CAuthentication_PollAuthSessionStatus_Response";
    fn is_initialized(&self) -> bool {
        true
    }
    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::Result<()> {
        while let Some(tag) = is.read_raw_tag_or_eof()? {
            match tag {
                8 => {
                    self.new_client_id = ::std::option::Option::Some(is.read_uint64()?);
                },
                18 => {
                    self.new_challenge_url = ::std::option::Option::Some(is.read_string()?);
                },
                26 => {
                    self.refresh_token = ::std::option::Option::Some(is.read_string()?);
                },
                34 => {
                    self.access_token = ::std::option::Option::Some(is.read_string()?);
                },
                40 => {
                    self.had_remote_interaction = ::std::option::Option::Some(is.read_bool()?);
                },
                50 => {
                    self.account_name = ::std::option::Option::Some(is.read_string()?);
                },
                58 => {
                    self.new_guard_data = ::std::option::Option::Some(is.read_string()?);
                },
                66 => {
                    self.agreement_session_url = ::std::option::Option::Some(is.read_string()?);
                },
                tag => {
                    ::protobuf::rt::read_unknown_or_skip_group(tag, is, self.special_fields.mut_unknown_fields())?;
                },
            };
        }
        ::std::result::Result::Ok(())
    }
    #[allow(unused_variables)]
    fn compute_size(&self) -> u64 {
        let mut my_size = 0;
        if let Some(v) = self.new_client_id {
            my_size += ::protobuf::rt::uint64_size(1, v);
        }
        if let Some(v) = self.new_challenge_url.as_ref() {
            my_size += ::protobuf::rt::string_size(2, &v);
        }
        if let Some(v) = self.refresh_token.as_ref() {
            my_size += ::protobuf::rt::string_size(3, &v);
        }
        if let Some(v) = self.access_token.as_ref() {
            my_size += ::protobuf::rt::string_size(4, &v);
        }
        if let Some(v) = self.had_remote_interaction {
            my_size += 1 + 1;
        }
        if let Some(v) = self.account_name.as_ref() {
            my_size += ::protobuf::rt::string_size(6, &v);
        }
        if let Some(v) = self.new_guard_data.as_ref() {
            my_size += ::protobuf::rt::string_size(7, &v);
        }
        if let Some(v) = self.agreement_session_url.as_ref() {
            my_size += ::protobuf::rt::string_size(8, &v);
        }
        my_size += ::protobuf::rt::unknown_fields_size(self.special_fields.unknown_fields());
        self.special_fields.cached_size().set(my_size as u32);
        my_size
    }
    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::Result<()> {
        if let Some(v) = self.new_client_id {
            os.write_uint64(1, v)?;
        }
        if let Some(v) = self.new_challenge_url.as_ref() {
            os.write_string(2, v)?;
        }
        if let Some(v) = self.refresh_token.as_ref() {
            os.write_string(3, v)?;
        }
        if let Some(v) = self.access_token.as_ref() {
            os.write_string(4, v)?;
        }
        if let Some(v) = self.had_remote_interaction {
            os.write_bool(5, v)?;
        }
        if let Some(v) = self.account_name.as_ref() {
            os.write_string(6, v)?;
        }
        if let Some(v) = self.new_guard_data.as_ref() {
            os.write_string(7, v)?;
        }
        if let Some(v) = self.agreement_session_url.as_ref() {
            os.write_string(8, v)?;
        }
        os.write_unknown_fields(self.special_fields.unknown_fields())?;
        ::std::result::Result::Ok(())
    }
    fn special_fields(&self) -> &::protobuf::SpecialFields {
        &self.special_fields
    }
    fn mut_special_fields(&mut self) -> &mut ::protobuf::SpecialFields {
        &mut self.special_fields
    }
    fn new() -> CAuthentication_PollAuthSessionStatus_Response {
        CAuthentication_PollAuthSessionStatus_Response::new()
    }
    fn clear(&mut self) {
        self.new_client_id = ::std::option::Option::None;
        self.new_challenge_url = ::std::option::Option::None;
        self.refresh_token = ::std::option::Option::None;
        self.access_token = ::std::option::Option::None;
        self.had_remote_interaction = ::std::option::Option::None;
        self.account_name = ::std::option::Option::None;
        self.new_guard_data = ::std::option::Option::None;
        self.agreement_session_url = ::std::option::Option::None;
        self.special_fields.clear();
    }
    fn default_instance() -> &'static CAuthentication_PollAuthSessionStatus_Response {
        static instance: CAuthentication_PollAuthSessionStatus_Response = CAuthentication_PollAuthSessionStatus_Response {
            new_client_id: ::std::option::Option::None,
            new_challenge_url: ::std::option::Option::None,
            refresh_token: ::std::option::Option::None,
            access_token: ::std::option::Option::None,
            had_remote_interaction: ::std::option::Option::None,
            account_name: ::std::option::Option::None,
            new_guard_data: ::std::option::Option::None,
            agreement_session_url: ::std::option::Option::None,
            special_fields: ::protobuf::SpecialFields::new(),
        };
        &instance
    }
}
#[doc = "get metadata of specific auth session, this will also implicitly bind the calling account"]
#[derive(PartialEq,Clone,Default,Debug)]
pub struct CAuthentication_GetAuthSessionInfo_Request {
    pub client_id: ::std::option::Option<u64>,
    pub special_fields: ::protobuf::SpecialFields,
}
impl<'a> ::std::default::Default for &'a CAuthentication_GetAuthSessionInfo_Request {
    fn default() -> &'a CAuthentication_GetAuthSessionInfo_Request {
        <CAuthentication_GetAuthSessionInfo_Request as ::protobuf::Message>::default_instance()
    }
}
impl CAuthentication_GetAuthSessionInfo_Request {
    pub fn new() -> CAuthentication_GetAuthSessionInfo_Request {
        ::std::default::Default::default()
    }
    pub fn client_id(&self) -> u64 {
        self.client_id.unwrap_or(0)
    }
    pub fn clear_client_id(&mut self) {
        self.client_id = ::std::option::Option::None;
    }
    pub fn has_client_id(&self) -> bool {
        self.client_id.is_some()
    }
    pub fn set_client_id(&mut self, v: u64) {
        self.client_id = ::std::option::Option::Some(v);
    }
}
impl ::protobuf::Message for CAuthentication_GetAuthSessionInfo_Request {
    const NAME: &'static str = "CAuthentication_GetAuthSessionInfo_Request";
    fn is_initialized(&self) -> bool {
        true
    }
    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::Result<()> {
        while let Some(tag) = is.read_raw_tag_or_eof()? {
            match tag {
                8 => {
                    self.client_id = ::std::option::Option::Some(is.read_uint64()?);
                },
                tag => {
                    ::protobuf::rt::read_unknown_or_skip_group(tag, is, self.special_fields.mut_unknown_fields())?;
                },
            };
        }
        ::std::result::Result::Ok(())
    }
    #[allow(unused_variables)]
    fn compute_size(&self) -> u64 {
        let mut my_size = 0;
        if let Some(v) = self.client_id {
            my_size += ::protobuf::rt::uint64_size(1, v);
        }
        my_size += ::protobuf::rt::unknown_fields_size(self.special_fields.unknown_fields());
        self.special_fields.cached_size().set(my_size as u32);
        my_size
    }
    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::Result<()> {
        if let Some(v) = self.client_id {
            os.write_uint64(1, v)?;
        }
        os.write_unknown_fields(self.special_fields.unknown_fields())?;
        ::std::result::Result::Ok(())
    }
    fn special_fields(&self) -> &::protobuf::SpecialFields {
        &self.special_fields
    }
    fn mut_special_fields(&mut self) -> &mut ::protobuf::SpecialFields {
        &mut self.special_fields
    }
    fn new() -> CAuthentication_GetAuthSessionInfo_Request {
        CAuthentication_GetAuthSessionInfo_Request::new()
    }
    fn clear(&mut self) {
        self.client_id = ::std::option::Option::None;
        self.special_fields.clear();
    }
    fn default_instance() -> &'static CAuthentication_GetAuthSessionInfo_Request {
        static instance: CAuthentication_GetAuthSessionInfo_Request = CAuthentication_GetAuthSessionInfo_Request {
            client_id: ::std::option::Option::None,
            special_fields: ::protobuf::SpecialFields::new(),
        };
        &instance
    }
}
#[derive(PartialEq,Clone,Default,Debug)]
pub struct CAuthentication_GetAuthSessionInfo_Response {
    pub ip: ::std::option::Option<::std::string::String>,
    pub geoloc: ::std::option::Option<::std::string::String>,
    pub city: ::std::option::Option<::std::string::String>,
    pub state: ::std::option::Option<::std::string::String>,
    pub country: ::std::option::Option<::std::string::String>,
    pub platform_type: ::std::option::Option<::protobuf::EnumOrUnknown<EAuthTokenPlatformType>>,
    pub device_friendly_name: ::std::option::Option<::std::string::String>,
    pub version: ::std::option::Option<i32>,
    pub login_history: ::std::option::Option<::protobuf::EnumOrUnknown<EAuthSessionSecurityHistory>>,
    pub requestor_location_mismatch: ::std::option::Option<bool>,
    pub high_usage_login: ::std::option::Option<bool>,
    pub requested_persistence: ::std::option::Option<::protobuf::EnumOrUnknown<super::enums::ESessionPersistence>>,
    pub special_fields: ::protobuf::SpecialFields,
}
impl<'a> ::std::default::Default for &'a CAuthentication_GetAuthSessionInfo_Response {
    fn default() -> &'a CAuthentication_GetAuthSessionInfo_Response {
        <CAuthentication_GetAuthSessionInfo_Response as ::protobuf::Message>::default_instance()
    }
}
impl CAuthentication_GetAuthSessionInfo_Response {
    pub fn new() -> CAuthentication_GetAuthSessionInfo_Response {
        ::std::default::Default::default()
    }
    pub fn ip(&self) -> &str {
        match self.ip.as_ref() {
            Some(v) => v,
            None => "",
        }
    }
    pub fn clear_ip(&mut self) {
        self.ip = ::std::option::Option::None;
    }
    pub fn has_ip(&self) -> bool {
        self.ip.is_some()
    }
    pub fn set_ip(&mut self, v: ::std::string::String) {
        self.ip = ::std::option::Option::Some(v);
    }
    pub fn mut_ip(&mut self) -> &mut ::std::string::String {
        if self.ip.is_none() {
            self.ip = ::std::option::Option::Some(::std::string::String::new());
        }
        self.ip.as_mut().unwrap()
    }
    pub fn take_ip(&mut self) -> ::std::string::String {
        self.ip.take().unwrap_or_else(|| ::std::string::String::new())
    }
    pub fn geoloc(&self) -> &str {
        match self.geoloc.as_ref() {
            Some(v) => v,
            None => "",
        }
    }
    pub fn clear_geoloc(&mut self) {
        self.geoloc = ::std::option::Option::None;
    }
    pub fn has_geoloc(&self) -> bool {
        self.geoloc.is_some()
    }
    pub fn set_geoloc(&mut self, v: ::std::string::String) {
        self.geoloc = ::std::option::Option::Some(v);
    }
    pub fn mut_geoloc(&mut self) -> &mut ::std::string::String {
        if self.geoloc.is_none() {
            self.geoloc = ::std::option::Option::Some(::std::string::String::new());
        }
        self.geoloc.as_mut().unwrap()
    }
    pub fn take_geoloc(&mut self) -> ::std::string::String {
        self.geoloc.take().unwrap_or_else(|| ::std::string::String::new())
    }
    pub fn city(&self) -> &str {
        match self.city.as_ref() {
            Some(v) => v,
            None => "",
        }
    }
    pub fn clear_city(&mut self) {
        self.city = ::std::option::Option::None;
    }
    pub fn has_city(&self) -> bool {
        self.city.is_some()
    }
    pub fn set_city(&mut self, v: ::std::string::String) {
        self.city = ::std::option::Option::Some(v);
    }
    pub fn mut_city(&mut self) -> &mut ::std::string::String {
        if self.city.is_none() {
            self.city = ::std::option::Option::Some(::std::string::String::new());
        }
        self.city.as_mut().unwrap()
    }
    pub fn take_city(&mut self) -> ::std::string::String {
        self.city.take().unwrap_or_else(|| ::std::string::String::new())
    }
    pub fn state(&self) -> &str {
        match self.state.as_ref() {
            Some(v) => v,
            None => "",
        }
    }
    pub fn clear_state(&mut self) {
        self.state = ::std::option::Option::None;
    }
    pub fn has_state(&self) -> bool {
        self.state.is_some()
    }
    pub fn set_state(&mut self, v: ::std::string::String) {
        self.state = ::std::option::Option::Some(v);
    }
    pub fn mut_state(&mut self) -> &mut ::std::string::String {
        if self.state.is_none() {
            self.state = ::std::option::Option::Some(::std::string::String::new());
        }
        self.state.as_mut().unwrap()
    }
    pub fn take_state(&mut self) -> ::std::string::String {
        self.state.take().unwrap_or_else(|| ::std::string::String::new())
    }
    pub fn country(&self) -> &str {
        match self.country.as_ref() {
            Some(v) => v,
            None => "",
        }
    }
    pub fn clear_country(&mut self) {
        self.country = ::std::option::Option::None;
    }
    pub fn has_country(&self) -> bool {
        self.country.is_some()
    }
    pub fn set_country(&mut self, v: ::std::string::String) {
        self.country = ::std::option::Option::Some(v);
    }
    pub fn mut_country(&mut self) -> &mut ::std::string::String {
        if self.country.is_none() {
            self.country = ::std::option::Option::Some(::std::string::String::new());
        }
        self.country.as_mut().unwrap()
    }
    pub fn take_country(&mut self) -> ::std::string::String {
        self.country.take().unwrap_or_else(|| ::std::string::String::new())
    }
    pub fn platform_type(&self) -> EAuthTokenPlatformType {
        match self.platform_type {
            Some(e) => e.enum_value_or(EAuthTokenPlatformType::k_EAuthTokenPlatformType_Unknown),
            None => EAuthTokenPlatformType::k_EAuthTokenPlatformType_Unknown,
        }
    }
    pub fn clear_platform_type(&mut self) {
        self.platform_type = ::std::option::Option::None;
    }
    pub fn has_platform_type(&self) -> bool {
        self.platform_type.is_some()
    }
    pub fn set_platform_type(&mut self, v: EAuthTokenPlatformType) {
        self.platform_type = ::std::option::Option::Some(::protobuf::EnumOrUnknown::new(v));
    }
    pub fn device_friendly_name(&self) -> &str {
        match self.device_friendly_name.as_ref() {
            Some(v) => v,
            None => "",
        }
    }
    pub fn clear_device_friendly_name(&mut self) {
        self.device_friendly_name = ::std::option::Option::None;
    }
    pub fn has_device_friendly_name(&self) -> bool {
        self.device_friendly_name.is_some()
    }
    pub fn set_device_friendly_name(&mut self, v: ::std::string::String) {
        self.device_friendly_name = ::std::option::Option::Some(v);
    }
    pub fn mut_device_friendly_name(&mut self) -> &mut ::std::string::String {
        if self.device_friendly_name.is_none() {
            self.device_friendly_name = ::std::option::Option::Some(::std::string::String::new());
        }
        self.device_friendly_name.as_mut().unwrap()
    }
    pub fn take_device_friendly_name(&mut self) -> ::std::string::String {
        self.device_friendly_name.take().unwrap_or_else(|| ::std::string::String::new())
    }
    pub fn version(&self) -> i32 {
        self.version.unwrap_or(0)
    }
    pub fn clear_version(&mut self) {
        self.version = ::std::option::Option::None;
    }
    pub fn has_version(&self) -> bool {
        self.version.is_some()
    }
    pub fn set_version(&mut self, v: i32) {
        self.version = ::std::option::Option::Some(v);
    }
    pub fn login_history(&self) -> EAuthSessionSecurityHistory {
        match self.login_history {
            Some(e) => e.enum_value_or(EAuthSessionSecurityHistory::k_EAuthSessionSecurityHistory_Invalid),
            None => EAuthSessionSecurityHistory::k_EAuthSessionSecurityHistory_Invalid,
        }
    }
    pub fn clear_login_history(&mut self) {
        self.login_history = ::std::option::Option::None;
    }
    pub fn has_login_history(&self) -> bool {
        self.login_history.is_some()
    }
    pub fn set_login_history(&mut self, v: EAuthSessionSecurityHistory) {
        self.login_history = ::std::option::Option::Some(::protobuf::EnumOrUnknown::new(v));
    }
    pub fn requestor_location_mismatch(&self) -> bool {
        self.requestor_location_mismatch.unwrap_or(false)
    }
    pub fn clear_requestor_location_mismatch(&mut self) {
        self.requestor_location_mismatch = ::std::option::Option::None;
    }
    pub fn has_requestor_location_mismatch(&self) -> bool {
        self.requestor_location_mismatch.is_some()
    }
    pub fn set_requestor_location_mismatch(&mut self, v: bool) {
        self.requestor_location_mismatch = ::std::option::Option::Some(v);
    }
    pub fn high_usage_login(&self) -> bool {
        self.high_usage_login.unwrap_or(false)
    }
    pub fn clear_high_usage_login(&mut self) {
        self.high_usage_login = ::std::option::Option::None;
    }
    pub fn has_high_usage_login(&self) -> bool {
        self.high_usage_login.is_some()
    }
    pub fn set_high_usage_login(&mut self, v: bool) {
        self.high_usage_login = ::std::option::Option::Some(v);
    }
    pub fn requested_persistence(&self) -> super::enums::ESessionPersistence {
        match self.requested_persistence {
            Some(e) => e.enum_value_or(super::enums::ESessionPersistence::k_ESessionPersistence_Invalid),
            None => super::enums::ESessionPersistence::k_ESessionPersistence_Invalid,
        }
    }
    pub fn clear_requested_persistence(&mut self) {
        self.requested_persistence = ::std::option::Option::None;
    }
    pub fn has_requested_persistence(&self) -> bool {
        self.requested_persistence.is_some()
    }
    pub fn set_requested_persistence(&mut self, v: super::enums::ESessionPersistence) {
        self.requested_persistence = ::std::option::Option::Some(::protobuf::EnumOrUnknown::new(v));
    }
}
impl ::protobuf::Message for CAuthentication_GetAuthSessionInfo_Response {
    const NAME: &'static str = "CAuthentication_GetAuthSessionInfo_Response";
    fn is_initialized(&self) -> bool {
        true
    }
    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::Result<()> {
        while let Some(tag) = is.read_raw_tag_or_eof()? {
            match tag {
                10 => {
                    self.ip = ::std::option::Option::Some(is.read_string()?);
                },
                18 => {
                    self.geoloc = ::std::option::Option::Some(is.read_string()?);
                },
                26 => {
                    self.city = ::std::option::Option::Some(is.read_string()?);
                },
                34 => {
                    self.state = ::std::option::Option::Some(is.read_string()?);
                },
                42 => {
                    self.country = ::std::option::Option::Some(is.read_string()?);
                },
                48 => {
                    self.platform_type = ::std::option::Option::Some(is.read_enum_or_unknown()?);
                },
                58 => {
                    self.device_friendly_name = ::std::option::Option::Some(is.read_string()?);
                },
                64 => {
                    self.version = ::std::option::Option::Some(is.read_int32()?);
                },
                72 => {
                    self.login_history = ::std::option::Option::Some(is.read_enum_or_unknown()?);
                },
                80 => {
                    self.requestor_location_mismatch = ::std::option::Option::Some(is.read_bool()?);
                },
                88 => {
                    self.high_usage_login = ::std::option::Option::Some(is.read_bool()?);
                },
                96 => {
                    self.requested_persistence = ::std::option::Option::Some(is.read_enum_or_unknown()?);
                },
                tag => {
                    ::protobuf::rt::read_unknown_or_skip_group(tag, is, self.special_fields.mut_unknown_fields())?;
                },
            };
        }
        ::std::result::Result::Ok(())
    }
    #[allow(unused_variables)]
    fn compute_size(&self) -> u64 {
        let mut my_size = 0;
        if let Some(v) = self.ip.as_ref() {
            my_size += ::protobuf::rt::string_size(1, &v);
        }
        if let Some(v) = self.geoloc.as_ref() {
            my_size += ::protobuf::rt::string_size(2, &v);
        }
        if let Some(v) = self.city.as_ref() {
            my_size += ::protobuf::rt::string_size(3, &v);
        }
        if let Some(v) = self.state.as_ref() {
            my_size += ::protobuf::rt::string_size(4, &v);
        }
        if let Some(v) = self.country.as_ref() {
            my_size += ::protobuf::rt::string_size(5, &v);
        }
        if let Some(v) = self.platform_type {
            my_size += ::protobuf::rt::int32_size(6, v.value());
        }
        if let Some(v) = self.device_friendly_name.as_ref() {
            my_size += ::protobuf::rt::string_size(7, &v);
        }
        if let Some(v) = self.version {
            my_size += ::protobuf::rt::int32_size(8, v);
        }
        if let Some(v) = self.login_history {
            my_size += ::protobuf::rt::int32_size(9, v.value());
        }
        if let Some(v) = self.requestor_location_mismatch {
            my_size += 1 + 1;
        }
        if let Some(v) = self.high_usage_login {
            my_size += 1 + 1;
        }
        if let Some(v) = self.requested_persistence {
            my_size += ::protobuf::rt::int32_size(12, v.value());
        }
        my_size += ::protobuf::rt::unknown_fields_size(self.special_fields.unknown_fields());
        self.special_fields.cached_size().set(my_size as u32);
        my_size
    }
    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::Result<()> {
        if let Some(v) = self.ip.as_ref() {
            os.write_string(1, v)?;
        }
        if let Some(v) = self.geoloc.as_ref() {
            os.write_string(2, v)?;
        }
        if let Some(v) = self.city.as_ref() {
            os.write_string(3, v)?;
        }
        if let Some(v) = self.state.as_ref() {
            os.write_string(4, v)?;
        }
        if let Some(v) = self.country.as_ref() {
            os.write_string(5, v)?;
        }
        if let Some(v) = self.platform_type {
            os.write_enum(6, ::protobuf::EnumOrUnknown::value(&v))?;
        }
        if let Some(v) = self.device_friendly_name.as_ref() {
            os.write_string(7, v)?;
        }
        if let Some(v) = self.version {
            os.write_int32(8, v)?;
        }
        if let Some(v) = self.login_history {
            os.write_enum(9, ::protobuf::EnumOrUnknown::value(&v))?;
        }
        if let Some(v) = self.requestor_location_mismatch {
            os.write_bool(10, v)?;
        }
        if let Some(v) = self.high_usage_login {
            os.write_bool(11, v)?;
        }
        if let Some(v) = self.requested_persistence {
            os.write_enum(12, ::protobuf::EnumOrUnknown::value(&v))?;
        }
        os.write_unknown_fields(self.special_fields.unknown_fields())?;
        ::std::result::Result::Ok(())
    }
    fn special_fields(&self) -> &::protobuf::SpecialFields {
        &self.special_fields
    }
    fn mut_special_fields(&mut self) -> &mut ::protobuf::SpecialFields {
        &mut self.special_fields
    }
    fn new() -> CAuthentication_GetAuthSessionInfo_Response {
        CAuthentication_GetAuthSessionInfo_Response::new()
    }
    fn clear(&mut self) {
        self.ip = ::std::option::Option::None;
        self.geoloc = ::std::option::Option::None;
        self.city = ::std::option::Option::None;
        self.state = ::std::option::Option::None;
        self.country = ::std::option::Option::None;
        self.platform_type = ::std::option::Option::None;
        self.device_friendly_name = ::std::option::Option::None;
        self.version = ::std::option::Option::None;
        self.login_history = ::std::option::Option::None;
        self.requestor_location_mismatch = ::std::option::Option::None;
        self.high_usage_login = ::std::option::Option::None;
        self.requested_persistence = ::std::option::Option::None;
        self.special_fields.clear();
    }
    fn default_instance() -> &'static CAuthentication_GetAuthSessionInfo_Response {
        static instance: CAuthentication_GetAuthSessionInfo_Response = CAuthentication_GetAuthSessionInfo_Response {
            ip: ::std::option::Option::None,
            geoloc: ::std::option::Option::None,
            city: ::std::option::Option::None,
            state: ::std::option::Option::None,
            country: ::std::option::Option::None,
            platform_type: ::std::option::Option::None,
            device_friendly_name: ::std::option::Option::None,
            version: ::std::option::Option::None,
            login_history: ::std::option::Option::None,
            requestor_location_mismatch: ::std::option::Option::None,
            high_usage_login: ::std::option::Option::None,
            requested_persistence: ::std::option::Option::None,
            special_fields: ::protobuf::SpecialFields::new(),
        };
        &instance
    }
}
#[doc = "approve an authentication session via mobile 2fa"]
#[derive(PartialEq,Clone,Default,Debug)]
pub struct CAuthentication_UpdateAuthSessionWithMobileConfirmation_Request {
    pub version: ::std::option::Option<i32>,
    pub client_id: ::std::option::Option<u64>,
    pub steamid: ::std::option::Option<u64>,
    pub signature: ::std::option::Option<::std::vec::Vec<u8>>,
    pub confirm: ::std::option::Option<bool>,
    pub persistence: ::std::option::Option<::protobuf::EnumOrUnknown<super::enums::ESessionPersistence>>,
    pub special_fields: ::protobuf::SpecialFields,
}
impl<'a> ::std::default::Default for &'a CAuthentication_UpdateAuthSessionWithMobileConfirmation_Request {
    fn default() -> &'a CAuthentication_UpdateAuthSessionWithMobileConfirmation_Request {
        <CAuthentication_UpdateAuthSessionWithMobileConfirmation_Request as ::protobuf::Message>::default_instance()
    }
}
impl CAuthentication_UpdateAuthSessionWithMobileConfirmation_Request {
    pub fn new() -> CAuthentication_UpdateAuthSessionWithMobileConfirmation_Request {
        ::std::default::Default::default()
    }
    pub fn version(&self) -> i32 {
        self.version.unwrap_or(0)
    }
    pub fn clear_version(&mut self) {
        self.version = ::std::option::Option::None;
    }
    pub fn has_version(&self) -> bool {
        self.version.is_some()
    }
    pub fn set_version(&mut self, v: i32) {
        self.version = ::std::option::Option::Some(v);
    }
    pub fn client_id(&self) -> u64 {
        self.client_id.unwrap_or(0)
    }
    pub fn clear_client_id(&mut self) {
        self.client_id = ::std::option::Option::None;
    }
    pub fn has_client_id(&self) -> bool {
        self.client_id.is_some()
    }
    pub fn set_client_id(&mut self, v: u64) {
        self.client_id = ::std::option::Option::Some(v);
    }
    pub fn steamid(&self) -> u64 {
        self.steamid.unwrap_or(0)
    }
    pub fn clear_steamid(&mut self) {
        self.steamid = ::std::option::Option::None;
    }
    pub fn has_steamid(&self) -> bool {
        self.steamid.is_some()
    }
    pub fn set_steamid(&mut self, v: u64) {
        self.steamid = ::std::option::Option::Some(v);
    }
    pub fn signature(&self) -> &[u8] {
        match self.signature.as_ref() {
            Some(v) => v,
            None => &[],
        }
    }
    pub fn clear_signature(&mut self) {
        self.signature = ::std::option::Option::None;
    }
    pub fn has_signature(&self) -> bool {
        self.signature.is_some()
    }
    pub fn set_signature(&mut self, v: ::std::vec::Vec<u8>) {
        self.signature = ::std::option::Option::Some(v);
    }
    pub fn mut_signature(&mut self) -> &mut ::std::vec::Vec<u8> {
        if self.signature.is_none() {
            self.signature = ::std::option::Option::Some(::std::vec::Vec::new());
        }
        self.signature.as_mut().unwrap()
    }
    pub fn take_signature(&mut self) -> ::std::vec::Vec<u8> {
        self.signature.take().unwrap_or_else(|| ::std::vec::Vec::new())
    }
    pub fn confirm(&self) -> bool {
        self.confirm.unwrap_or(false)
    }
    pub fn clear_confirm(&mut self) {
        self.confirm = ::std::option::Option::None;
    }
    pub fn has_confirm(&self) -> bool {
        self.confirm.is_some()
    }
    pub fn set_confirm(&mut self, v: bool) {
        self.confirm = ::std::option::Option::Some(v);
    }
    pub fn persistence(&self) -> super::enums::ESessionPersistence {
        match self.persistence {
            Some(e) => e.enum_value_or(super::enums::ESessionPersistence::k_ESessionPersistence_Persistent),
            None => super::enums::ESessionPersistence::k_ESessionPersistence_Persistent,
        }
    }
    pub fn clear_persistence(&mut self) {
        self.persistence = ::std::option::Option::None;
    }
    pub fn has_persistence(&self) -> bool {
        self.persistence.is_some()
    }
    pub fn set_persistence(&mut self, v: super::enums::ESessionPersistence) {
        self.persistence = ::std::option::Option::Some(::protobuf::EnumOrUnknown::new(v));
    }
}
impl ::protobuf::Message for CAuthentication_UpdateAuthSessionWithMobileConfirmation_Request {
    const NAME: &'static str = "CAuthentication_UpdateAuthSessionWithMobileConfirmation_Request";
    fn is_initialized(&self) -> bool {
        true
    }
    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::Result<()> {
        while let Some(tag) = is.read_raw_tag_or_eof()? {
            match tag {
                8 => {
                    self.version = ::std::option::Option::Some(is.read_int32()?);
                },
                16 => {
                    self.client_id = ::std::option::Option::Some(is.read_uint64()?);
                },
                25 => {
                    self.steamid = ::std::option::Option::Some(is.read_fixed64()?);
                },
                34 => {
                    self.signature = ::std::option::Option::Some(is.read_bytes()?);
                },
                40 => {
                    self.confirm = ::std::option::Option::Some(is.read_bool()?);
                },
                48 => {
                    self.persistence = ::std::option::Option::Some(is.read_enum_or_unknown()?);
                },
                tag => {
                    ::protobuf::rt::read_unknown_or_skip_group(tag, is, self.special_fields.mut_unknown_fields())?;
                },
            };
        }
        ::std::result::Result::Ok(())
    }
    #[allow(unused_variables)]
    fn compute_size(&self) -> u64 {
        let mut my_size = 0;
        if let Some(v) = self.version {
            my_size += ::protobuf::rt::int32_size(1, v);
        }
        if let Some(v) = self.client_id {
            my_size += ::protobuf::rt::uint64_size(2, v);
        }
        if let Some(v) = self.steamid {
            my_size += 1 + 8;
        }
        if let Some(v) = self.signature.as_ref() {
            my_size += ::protobuf::rt::bytes_size(4, &v);
        }
        if let Some(v) = self.confirm {
            my_size += 1 + 1;
        }
        if let Some(v) = self.persistence {
            my_size += ::protobuf::rt::int32_size(6, v.value());
        }
        my_size += ::protobuf::rt::unknown_fields_size(self.special_fields.unknown_fields());
        self.special_fields.cached_size().set(my_size as u32);
        my_size
    }
    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::Result<()> {
        if let Some(v) = self.version {
            os.write_int32(1, v)?;
        }
        if let Some(v) = self.client_id {
            os.write_uint64(2, v)?;
        }
        if let Some(v) = self.steamid {
            os.write_fixed64(3, v)?;
        }
        if let Some(v) = self.signature.as_ref() {
            os.write_bytes(4, v)?;
        }
        if let Some(v) = self.confirm {
            os.write_bool(5, v)?;
        }
        if let Some(v) = self.persistence {
            os.write_enum(6, ::protobuf::EnumOrUnknown::value(&v))?;
        }
        os.write_unknown_fields(self.special_fields.unknown_fields())?;
        ::std::result::Result::Ok(())
    }
    fn special_fields(&self) -> &::protobuf::SpecialFields {
        &self.special_fields
    }
    fn mut_special_fields(&mut self) -> &mut ::protobuf::SpecialFields {
        &mut self.special_fields
    }
    fn new() -> CAuthentication_UpdateAuthSessionWithMobileConfirmation_Request {
        CAuthentication_UpdateAuthSessionWithMobileConfirmation_Request::new()
    }
    fn clear(&mut self) {
        self.version = ::std::option::Option::None;
        self.client_id = ::std::option::Option::None;
        self.steamid = ::std::option::Option::None;
        self.signature = ::std::option::Option::None;
        self.confirm = ::std::option::Option::None;
        self.persistence = ::std::option::Option::None;
        self.special_fields.clear();
    }
    fn default_instance() -> &'static CAuthentication_UpdateAuthSessionWithMobileConfirmation_Request {
        static instance: CAuthentication_UpdateAuthSessionWithMobileConfirmation_Request = CAuthentication_UpdateAuthSessionWithMobileConfirmation_Request {
            version: ::std::option::Option::None,
            client_id: ::std::option::Option::None,
            steamid: ::std::option::Option::None,
            signature: ::std::option::Option::None,
            confirm: ::std::option::Option::None,
            persistence: ::std::option::Option::None,
            special_fields: ::protobuf::SpecialFields::new(),
        };
        &instance
    }
}
#[derive(PartialEq,Clone,Default,Debug)]
pub struct CAuthentication_UpdateAuthSessionWithMobileConfirmation_Response {
    pub special_fields: ::protobuf::SpecialFields,
}
impl<'a> ::std::default::Default for &'a CAuthentication_UpdateAuthSessionWithMobileConfirmation_Response {
    fn default() -> &'a CAuthentication_UpdateAuthSessionWithMobileConfirmation_Response {
        <CAuthentication_UpdateAuthSessionWithMobileConfirmation_Response as ::protobuf::Message>::default_instance()
    }
}
impl CAuthentication_UpdateAuthSessionWithMobileConfirmation_Response {
    pub fn new() -> CAuthentication_UpdateAuthSessionWithMobileConfirmation_Response {
        ::std::default::Default::default()
    }
}
impl ::protobuf::Message for CAuthentication_UpdateAuthSessionWithMobileConfirmation_Response {
    const NAME: &'static str = "CAuthentication_UpdateAuthSessionWithMobileConfirmation_Response";
    fn is_initialized(&self) -> bool {
        true
    }
    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::Result<()> {
        while let Some(tag) = is.read_raw_tag_or_eof()? {
            match tag {
                tag => {
                    ::protobuf::rt::read_unknown_or_skip_group(tag, is, self.special_fields.mut_unknown_fields())?;
                },
            };
        }
        ::std::result::Result::Ok(())
    }
    #[allow(unused_variables)]
    fn compute_size(&self) -> u64 {
        let mut my_size = 0;
        my_size += ::protobuf::rt::unknown_fields_size(self.special_fields.unknown_fields());
        self.special_fields.cached_size().set(my_size as u32);
        my_size
    }
    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::Result<()> {
        os.write_unknown_fields(self.special_fields.unknown_fields())?;
        ::std::result::Result::Ok(())
    }
    fn special_fields(&self) -> &::protobuf::SpecialFields {
        &self.special_fields
    }
    fn mut_special_fields(&mut self) -> &mut ::protobuf::SpecialFields {
        &mut self.special_fields
    }
    fn new() -> CAuthentication_UpdateAuthSessionWithMobileConfirmation_Response {
        CAuthentication_UpdateAuthSessionWithMobileConfirmation_Response::new()
    }
    fn clear(&mut self) {
        self.special_fields.clear();
    }
    fn default_instance() -> &'static CAuthentication_UpdateAuthSessionWithMobileConfirmation_Response {
        static instance: CAuthentication_UpdateAuthSessionWithMobileConfirmation_Response = CAuthentication_UpdateAuthSessionWithMobileConfirmation_Response {
            special_fields: ::protobuf::SpecialFields::new(),
        };
        &instance
    }
}
#[doc = "approve an authentication session via steam guard code"]
#[derive(PartialEq,Clone,Default,Debug)]
pub struct CAuthentication_UpdateAuthSessionWithSteamGuardCode_Request {
    pub client_id: ::std::option::Option<u64>,
    pub steamid: ::std::option::Option<u64>,
    pub code: ::std::option::Option<::std::string::String>,
    pub code_type: ::std::option::Option<::protobuf::EnumOrUnknown<EAuthSessionGuardType>>,
    pub special_fields: ::protobuf::SpecialFields,
}
impl<'a> ::std::default::Default for &'a CAuthentication_UpdateAuthSessionWithSteamGuardCode_Request {
    fn default() -> &'a CAuthentication_UpdateAuthSessionWithSteamGuardCode_Request {
        <CAuthentication_UpdateAuthSessionWithSteamGuardCode_Request as ::protobuf::Message>::default_instance()
    }
}
impl CAuthentication_UpdateAuthSessionWithSteamGuardCode_Request {
    pub fn new() -> CAuthentication_UpdateAuthSessionWithSteamGuardCode_Request {
        ::std::default::Default::default()
    }
    pub fn client_id(&self) -> u64 {
        self.client_id.unwrap_or(0)
    }
    pub fn clear_client_id(&mut self) {
        self.client_id = ::std::option::Option::None;
    }
    pub fn has_client_id(&self) -> bool {
        self.client_id.is_some()
    }
    pub fn set_client_id(&mut self, v: u64) {
        self.client_id = ::std::option::Option::Some(v);
    }
    pub fn steamid(&self) -> u64 {
        self.steamid.unwrap_or(0)
    }
    pub fn clear_steamid(&mut self) {
        self.steamid = ::std::option::Option::None;
    }
    pub fn has_steamid(&self) -> bool {
        self.steamid.is_some()
    }
    pub fn set_steamid(&mut self, v: u64) {
        self.steamid = ::std::option::Option::Some(v);
    }
    pub fn code(&self) -> &str {
        match self.code.as_ref() {
            Some(v) => v,
            None => "",
        }
    }
    pub fn clear_code(&mut self) {
        self.code = ::std::option::Option::None;
    }
    pub fn has_code(&self) -> bool {
        self.code.is_some()
    }
    pub fn set_code(&mut self, v: ::std::string::String) {
        self.code = ::std::option::Option::Some(v);
    }
    pub fn mut_code(&mut self) -> &mut ::std::string::String {
        if self.code.is_none() {
            self.code = ::std::option::Option::Some(::std::string::String::new());
        }
        self.code.as_mut().unwrap()
    }
    pub fn take_code(&mut self) -> ::std::string::String {
        self.code.take().unwrap_or_else(|| ::std::string::String::new())
    }
    pub fn code_type(&self) -> EAuthSessionGuardType {
        match self.code_type {
            Some(e) => e.enum_value_or(EAuthSessionGuardType::k_EAuthSessionGuardType_Unknown),
            None => EAuthSessionGuardType::k_EAuthSessionGuardType_Unknown,
        }
    }
    pub fn clear_code_type(&mut self) {
        self.code_type = ::std::option::Option::None;
    }
    pub fn has_code_type(&self) -> bool {
        self.code_type.is_some()
    }
    pub fn set_code_type(&mut self, v: EAuthSessionGuardType) {
        self.code_type = ::std::option::Option::Some(::protobuf::EnumOrUnknown::new(v));
    }
}
impl ::protobuf::Message for CAuthentication_UpdateAuthSessionWithSteamGuardCode_Request {
    const NAME: &'static str = "CAuthentication_UpdateAuthSessionWithSteamGuardCode_Request";
    fn is_initialized(&self) -> bool {
        true
    }
    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::Result<()> {
        while let Some(tag) = is.read_raw_tag_or_eof()? {
            match tag {
                8 => {
                    self.client_id = ::std::option::Option::Some(is.read_uint64()?);
                },
                17 => {
                    self.steamid = ::std::option::Option::Some(is.read_fixed64()?);
                },
                26 => {
                    self.code = ::std::option::Option::Some(is.read_string()?);
                },
                32 => {
                    self.code_type = ::std::option::Option::Some(is.read_enum_or_unknown()?);
                },
                tag => {
                    ::protobuf::rt::read_unknown_or_skip_group(tag, is, self.special_fields.mut_unknown_fields())?;
                },
            };
        }
        ::std::result::Result::Ok(())
    }
    #[allow(unused_variables)]
    fn compute_size(&self) -> u64 {
        let mut my_size = 0;
        if let Some(v) = self.client_id {
            my_size += ::protobuf::rt::uint64_size(1, v);
        }
        if let Some(v) = self.steamid {
            my_size += 1 + 8;
        }
        if let Some(v) = self.code.as_ref() {
            my_size += ::protobuf::rt::string_size(3, &v);
        }
        if let Some(v) = self.code_type {
            my_size += ::protobuf::rt::int32_size(4, v.value());
        }
        my_size += ::protobuf::rt::unknown_fields_size(self.special_fields.unknown_fields());
        self.special_fields.cached_size().set(my_size as u32);
        my_size
    }
    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::Result<()> {
        if let Some(v) = self.client_id {
            os.write_uint64(1, v)?;
        }
        if let Some(v) = self.steamid {
            os.write_fixed64(2, v)?;
        }
        if let Some(v) = self.code.as_ref() {
            os.write_string(3, v)?;
        }
        if let Some(v) = self.code_type {
            os.write_enum(4, ::protobuf::EnumOrUnknown::value(&v))?;
        }
        os.write_unknown_fields(self.special_fields.unknown_fields())?;
        ::std::result::Result::Ok(())
    }
    fn special_fields(&self) -> &::protobuf::SpecialFields {
        &self.special_fields
    }
    fn mut_special_fields(&mut self) -> &mut ::protobuf::SpecialFields {
        &mut self.special_fields
    }
    fn new() -> CAuthentication_UpdateAuthSessionWithSteamGuardCode_Request {
        CAuthentication_UpdateAuthSessionWithSteamGuardCode_Request::new()
    }
    fn clear(&mut self) {
        self.client_id = ::std::option::Option::None;
        self.steamid = ::std::option::Option::None;
        self.code = ::std::option::Option::None;
        self.code_type = ::std::option::Option::None;
        self.special_fields.clear();
    }
    fn default_instance() -> &'static CAuthentication_UpdateAuthSessionWithSteamGuardCode_Request {
        static instance: CAuthentication_UpdateAuthSessionWithSteamGuardCode_Request = CAuthentication_UpdateAuthSessionWithSteamGuardCode_Request {
            client_id: ::std::option::Option::None,
            steamid: ::std::option::Option::None,
            code: ::std::option::Option::None,
            code_type: ::std::option::Option::None,
            special_fields: ::protobuf::SpecialFields::new(),
        };
        &instance
    }
}
#[derive(PartialEq,Clone,Default,Debug)]
pub struct CAuthentication_UpdateAuthSessionWithSteamGuardCode_Response {
    pub agreement_session_url: ::std::option::Option<::std::string::String>,
    pub special_fields: ::protobuf::SpecialFields,
}
impl<'a> ::std::default::Default for &'a CAuthentication_UpdateAuthSessionWithSteamGuardCode_Response {
    fn default() -> &'a CAuthentication_UpdateAuthSessionWithSteamGuardCode_Response {
        <CAuthentication_UpdateAuthSessionWithSteamGuardCode_Response as ::protobuf::Message>::default_instance()
    }
}
impl CAuthentication_UpdateAuthSessionWithSteamGuardCode_Response {
    pub fn new() -> CAuthentication_UpdateAuthSessionWithSteamGuardCode_Response {
        ::std::default::Default::default()
    }
    pub fn agreement_session_url(&self) -> &str {
        match self.agreement_session_url.as_ref() {
            Some(v) => v,
            None => "",
        }
    }
    pub fn clear_agreement_session_url(&mut self) {
        self.agreement_session_url = ::std::option::Option::None;
    }
    pub fn has_agreement_session_url(&self) -> bool {
        self.agreement_session_url.is_some()
    }
    pub fn set_agreement_session_url(&mut self, v: ::std::string::String) {
        self.agreement_session_url = ::std::option::Option::Some(v);
    }
    pub fn mut_agreement_session_url(&mut self) -> &mut ::std::string::String {
        if self.agreement_session_url.is_none() {
            self.agreement_session_url = ::std::option::Option::Some(::std::string::String::new());
        }
        self.agreement_session_url.as_mut().unwrap()
    }
    pub fn take_agreement_session_url(&mut self) -> ::std::string::String {
        self.agreement_session_url.take().unwrap_or_else(|| ::std::string::String::new())
    }
}
impl ::protobuf::Message for CAuthentication_UpdateAuthSessionWithSteamGuardCode_Response {
    const NAME: &'static str = "CAuthentication_UpdateAuthSessionWithSteamGuardCode_Response";
    fn is_initialized(&self) -> bool {
        true
    }
    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::Result<()> {
        while let Some(tag) = is.read_raw_tag_or_eof()? {
            match tag {
                58 => {
                    self.agreement_session_url = ::std::option::Option::Some(is.read_string()?);
                },
                tag => {
                    ::protobuf::rt::read_unknown_or_skip_group(tag, is, self.special_fields.mut_unknown_fields())?;
                },
            };
        }
        ::std::result::Result::Ok(())
    }
    #[allow(unused_variables)]
    fn compute_size(&self) -> u64 {
        let mut my_size = 0;
        if let Some(v) = self.agreement_session_url.as_ref() {
            my_size += ::protobuf::rt::string_size(7, &v);
        }
        my_size += ::protobuf::rt::unknown_fields_size(self.special_fields.unknown_fields());
        self.special_fields.cached_size().set(my_size as u32);
        my_size
    }
    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::Result<()> {
        if let Some(v) = self.agreement_session_url.as_ref() {
            os.write_string(7, v)?;
        }
        os.write_unknown_fields(self.special_fields.unknown_fields())?;
        ::std::result::Result::Ok(())
    }
    fn special_fields(&self) -> &::protobuf::SpecialFields {
        &self.special_fields
    }
    fn mut_special_fields(&mut self) -> &mut ::protobuf::SpecialFields {
        &mut self.special_fields
    }
    fn new() -> CAuthentication_UpdateAuthSessionWithSteamGuardCode_Response {
        CAuthentication_UpdateAuthSessionWithSteamGuardCode_Response::new()
    }
    fn clear(&mut self) {
        self.agreement_session_url = ::std::option::Option::None;
        self.special_fields.clear();
    }
    fn default_instance() -> &'static CAuthentication_UpdateAuthSessionWithSteamGuardCode_Response {
        static instance: CAuthentication_UpdateAuthSessionWithSteamGuardCode_Response = CAuthentication_UpdateAuthSessionWithSteamGuardCode_Response {
            agreement_session_url: ::std::option::Option::None,
            special_fields: ::protobuf::SpecialFields::new(),
        };
        &instance
    }
}
#[doc = "Given a refresh token for a client app audience (e.g. desktop client / mobile client), generate an access token"]
#[derive(PartialEq,Clone,Default,Debug)]
pub struct CAuthentication_AccessToken_GenerateForApp_Request {
    pub refresh_token: ::std::option::Option<::std::string::String>,
    pub steamid: ::std::option::Option<u64>,
    pub renewal_type: ::std::option::Option<::protobuf::EnumOrUnknown<ETokenRenewalType>>,
    pub special_fields: ::protobuf::SpecialFields,
}
impl<'a> ::std::default::Default for &'a CAuthentication_AccessToken_GenerateForApp_Request {
    fn default() -> &'a CAuthentication_AccessToken_GenerateForApp_Request {
        <CAuthentication_AccessToken_GenerateForApp_Request as ::protobuf::Message>::default_instance()
    }
}
impl CAuthentication_AccessToken_GenerateForApp_Request {
    pub fn new() -> CAuthentication_AccessToken_GenerateForApp_Request {
        ::std::default::Default::default()
    }
    pub fn refresh_token(&self) -> &str {
        match self.refresh_token.as_ref() {
            Some(v) => v,
            None => "",
        }
    }
    pub fn clear_refresh_token(&mut self) {
        self.refresh_token = ::std::option::Option::None;
    }
    pub fn has_refresh_token(&self) -> bool {
        self.refresh_token.is_some()
    }
    pub fn set_refresh_token(&mut self, v: ::std::string::String) {
        self.refresh_token = ::std::option::Option::Some(v);
    }
    pub fn mut_refresh_token(&mut self) -> &mut ::std::string::String {
        if self.refresh_token.is_none() {
            self.refresh_token = ::std::option::Option::Some(::std::string::String::new());
        }
        self.refresh_token.as_mut().unwrap()
    }
    pub fn take_refresh_token(&mut self) -> ::std::string::String {
        self.refresh_token.take().unwrap_or_else(|| ::std::string::String::new())
    }
    pub fn steamid(&self) -> u64 {
        self.steamid.unwrap_or(0)
    }
    pub fn clear_steamid(&mut self) {
        self.steamid = ::std::option::Option::None;
    }
    pub fn has_steamid(&self) -> bool {
        self.steamid.is_some()
    }
    pub fn set_steamid(&mut self, v: u64) {
        self.steamid = ::std::option::Option::Some(v);
    }
    pub fn renewal_type(&self) -> ETokenRenewalType {
        match self.renewal_type {
            Some(e) => e.enum_value_or(ETokenRenewalType::k_ETokenRenewalType_None),
            None => ETokenRenewalType::k_ETokenRenewalType_None,
        }
    }
    pub fn clear_renewal_type(&mut self) {
        self.renewal_type = ::std::option::Option::None;
    }
    pub fn has_renewal_type(&self) -> bool {
        self.renewal_type.is_some()
    }
    pub fn set_renewal_type(&mut self, v: ETokenRenewalType) {
        self.renewal_type = ::std::option::Option::Some(::protobuf::EnumOrUnknown::new(v));
    }
}
impl ::protobuf::Message for CAuthentication_AccessToken_GenerateForApp_Request {
    const NAME: &'static str = "CAuthentication_AccessToken_GenerateForApp_Request";
    fn is_initialized(&self) -> bool {
        true
    }
    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::Result<()> {
        while let Some(tag) = is.read_raw_tag_or_eof()? {
            match tag {
                10 => {
                    self.refresh_token = ::std::option::Option::Some(is.read_string()?);
                },
                17 => {
                    self.steamid = ::std::option::Option::Some(is.read_fixed64()?);
                },
                24 => {
                    self.renewal_type = ::std::option::Option::Some(is.read_enum_or_unknown()?);
                },
                tag => {
                    ::protobuf::rt::read_unknown_or_skip_group(tag, is, self.special_fields.mut_unknown_fields())?;
                },
            };
        }
        ::std::result::Result::Ok(())
    }
    #[allow(unused_variables)]
    fn compute_size(&self) -> u64 {
        let mut my_size = 0;
        if let Some(v) = self.refresh_token.as_ref() {
            my_size += ::protobuf::rt::string_size(1, &v);
        }
        if let Some(v) = self.steamid {
            my_size += 1 + 8;
        }
        if let Some(v) = self.renewal_type {
            my_size += ::protobuf::rt::int32_size(3, v.value());
        }
        my_size += ::protobuf::rt::unknown_fields_size(self.special_fields.unknown_fields());
        self.special_fields.cached_size().set(my_size as u32);
        my_size
    }
    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::Result<()> {
        if let Some(v) = self.refresh_token.as_ref() {
            os.write_string(1, v)?;
        }
        if let Some(v) = self.steamid {
            os.write_fixed64(2, v)?;
        }
        if let Some(v) = self.renewal_type {
            os.write_enum(3, ::protobuf::EnumOrUnknown::value(&v))?;
        }
        os.write_unknown_fields(self.special_fields.unknown_fields())?;
        ::std::result::Result::Ok(())
    }
    fn special_fields(&self) -> &::protobuf::SpecialFields {
        &self.special_fields
    }
    fn mut_special_fields(&mut self) -> &mut ::protobuf::SpecialFields {
        &mut self.special_fields
    }
    fn new() -> CAuthentication_AccessToken_GenerateForApp_Request {
        CAuthentication_AccessToken_GenerateForApp_Request::new()
    }
    fn clear(&mut self) {
        self.refresh_token = ::std::option::Option::None;
        self.steamid = ::std::option::Option::None;
        self.renewal_type = ::std::option::Option::None;
        self.special_fields.clear();
    }
    fn default_instance() -> &'static CAuthentication_AccessToken_GenerateForApp_Request {
        static instance: CAuthentication_AccessToken_GenerateForApp_Request = CAuthentication_AccessToken_GenerateForApp_Request {
            refresh_token: ::std::option::Option::None,
            steamid: ::std::option::Option::None,
            renewal_type: ::std::option::Option::None,
            special_fields: ::protobuf::SpecialFields::new(),
        };
        &instance
    }
}
#[derive(PartialEq,Clone,Default,Debug)]
pub struct CAuthentication_AccessToken_GenerateForApp_Response {
    pub access_token: ::std::option::Option<::std::string::String>,
    pub refresh_token: ::std::option::Option<::std::string::String>,
    pub special_fields: ::protobuf::SpecialFields,
}
impl<'a> ::std::default::Default for &'a CAuthentication_AccessToken_GenerateForApp_Response {
    fn default() -> &'a CAuthentication_AccessToken_GenerateForApp_Response {
        <CAuthentication_AccessToken_GenerateForApp_Response as ::protobuf::Message>::default_instance()
    }
}
impl CAuthentication_AccessToken_GenerateForApp_Response {
    pub fn new() -> CAuthentication_AccessToken_GenerateForApp_Response {
        ::std::default::Default::default()
    }
    pub fn access_token(&self) -> &str {
        match self.access_token.as_ref() {
            Some(v) => v,
            None => "",
        }
    }
    pub fn clear_access_token(&mut self) {
        self.access_token = ::std::option::Option::None;
    }
    pub fn has_access_token(&self) -> bool {
        self.access_token.is_some()
    }
    pub fn set_access_token(&mut self, v: ::std::string::String) {
        self.access_token = ::std::option::Option::Some(v);
    }
    pub fn mut_access_token(&mut self) -> &mut ::std::string::String {
        if self.access_token.is_none() {
            self.access_token = ::std::option::Option::Some(::std::string::String::new());
        }
        self.access_token.as_mut().unwrap()
    }
    pub fn take_access_token(&mut self) -> ::std::string::String {
        self.access_token.take().unwrap_or_else(|| ::std::string::String::new())
    }
    pub fn refresh_token(&self) -> &str {
        match self.refresh_token.as_ref() {
            Some(v) => v,
            None => "",
        }
    }
    pub fn clear_refresh_token(&mut self) {
        self.refresh_token = ::std::option::Option::None;
    }
    pub fn has_refresh_token(&self) -> bool {
        self.refresh_token.is_some()
    }
    pub fn set_refresh_token(&mut self, v: ::std::string::String) {
        self.refresh_token = ::std::option::Option::Some(v);
    }
    pub fn mut_refresh_token(&mut self) -> &mut ::std::string::String {
        if self.refresh_token.is_none() {
            self.refresh_token = ::std::option::Option::Some(::std::string::String::new());
        }
        self.refresh_token.as_mut().unwrap()
    }
    pub fn take_refresh_token(&mut self) -> ::std::string::String {
        self.refresh_token.take().unwrap_or_else(|| ::std::string::String::new())
    }
}
impl ::protobuf::Message for CAuthentication_AccessToken_GenerateForApp_Response {
    const NAME: &'static str = "CAuthentication_AccessToken_GenerateForApp_Response";
    fn is_initialized(&self) -> bool {
        true
    }
    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::Result<()> {
        while let Some(tag) = is.read_raw_tag_or_eof()? {
            match tag {
                10 => {
                    self.access_token = ::std::option::Option::Some(is.read_string()?);
                },
                18 => {
                    self.refresh_token = ::std::option::Option::Some(is.read_string()?);
                },
                tag => {
                    ::protobuf::rt::read_unknown_or_skip_group(tag, is, self.special_fields.mut_unknown_fields())?;
                },
            };
        }
        ::std::result::Result::Ok(())
    }
    #[allow(unused_variables)]
    fn compute_size(&self) -> u64 {
        let mut my_size = 0;
        if let Some(v) = self.access_token.as_ref() {
            my_size += ::protobuf::rt::string_size(1, &v);
        }
        if let Some(v) = self.refresh_token.as_ref() {
            my_size += ::protobuf::rt::string_size(2, &v);
        }
        my_size += ::protobuf::rt::unknown_fields_size(self.special_fields.unknown_fields());
        self.special_fields.cached_size().set(my_size as u32);
        my_size
    }
    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::Result<()> {
        if let Some(v) = self.access_token.as_ref() {
            os.write_string(1, v)?;
        }
        if let Some(v) = self.refresh_token.as_ref() {
            os.write_string(2, v)?;
        }
        os.write_unknown_fields(self.special_fields.unknown_fields())?;
        ::std::result::Result::Ok(())
    }
    fn special_fields(&self) -> &::protobuf::SpecialFields {
        &self.special_fields
    }
    fn mut_special_fields(&mut self) -> &mut ::protobuf::SpecialFields {
        &mut self.special_fields
    }
    fn new() -> CAuthentication_AccessToken_GenerateForApp_Response {
        CAuthentication_AccessToken_GenerateForApp_Response::new()
    }
    fn clear(&mut self) {
        self.access_token = ::std::option::Option::None;
        self.refresh_token = ::std::option::Option::None;
        self.special_fields.clear();
    }
    fn default_instance() -> &'static CAuthentication_AccessToken_GenerateForApp_Response {
        static instance: CAuthentication_AccessToken_GenerateForApp_Response = CAuthentication_AccessToken_GenerateForApp_Response {
            access_token: ::std::option::Option::None,
            refresh_token: ::std::option::Option::None,
            special_fields: ::protobuf::SpecialFields::new(),
        };
        &instance
    }
}
#[doc = "Enumerate durable (refresh) tokens for the given subject account"]
#[derive(PartialEq,Clone,Default,Debug)]
pub struct CAuthentication_RefreshToken_Enumerate_Request {
    pub special_fields: ::protobuf::SpecialFields,
}
impl<'a> ::std::default::Default for &'a CAuthentication_RefreshToken_Enumerate_Request {
    fn default() -> &'a CAuthentication_RefreshToken_Enumerate_Request {
        <CAuthentication_RefreshToken_Enumerate_Request as ::protobuf::Message>::default_instance()
    }
}
impl CAuthentication_RefreshToken_Enumerate_Request {
    pub fn new() -> CAuthentication_RefreshToken_Enumerate_Request {
        ::std::default::Default::default()
    }
}
impl ::protobuf::Message for CAuthentication_RefreshToken_Enumerate_Request {
    const NAME: &'static str = "CAuthentication_RefreshToken_Enumerate_Request";
    fn is_initialized(&self) -> bool {
        true
    }
    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::Result<()> {
        while let Some(tag) = is.read_raw_tag_or_eof()? {
            match tag {
                tag => {
                    ::protobuf::rt::read_unknown_or_skip_group(tag, is, self.special_fields.mut_unknown_fields())?;
                },
            };
        }
        ::std::result::Result::Ok(())
    }
    #[allow(unused_variables)]
    fn compute_size(&self) -> u64 {
        let mut my_size = 0;
        my_size += ::protobuf::rt::unknown_fields_size(self.special_fields.unknown_fields());
        self.special_fields.cached_size().set(my_size as u32);
        my_size
    }
    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::Result<()> {
        os.write_unknown_fields(self.special_fields.unknown_fields())?;
        ::std::result::Result::Ok(())
    }
    fn special_fields(&self) -> &::protobuf::SpecialFields {
        &self.special_fields
    }
    fn mut_special_fields(&mut self) -> &mut ::protobuf::SpecialFields {
        &mut self.special_fields
    }
    fn new() -> CAuthentication_RefreshToken_Enumerate_Request {
        CAuthentication_RefreshToken_Enumerate_Request::new()
    }
    fn clear(&mut self) {
        self.special_fields.clear();
    }
    fn default_instance() -> &'static CAuthentication_RefreshToken_Enumerate_Request {
        static instance: CAuthentication_RefreshToken_Enumerate_Request = CAuthentication_RefreshToken_Enumerate_Request {
            special_fields: ::protobuf::SpecialFields::new(),
        };
        &instance
    }
}
#[derive(PartialEq,Clone,Default,Debug)]
pub struct CAuthentication_RefreshToken_Enumerate_Response {
    pub refresh_tokens: ::std::vec::Vec<cauthentication_refresh_token_enumerate_response::RefreshTokenDescription>,
    pub requesting_token: ::std::option::Option<u64>,
    pub special_fields: ::protobuf::SpecialFields,
}
impl<'a> ::std::default::Default for &'a CAuthentication_RefreshToken_Enumerate_Response {
    fn default() -> &'a CAuthentication_RefreshToken_Enumerate_Response {
        <CAuthentication_RefreshToken_Enumerate_Response as ::protobuf::Message>::default_instance()
    }
}
impl CAuthentication_RefreshToken_Enumerate_Response {
    pub fn new() -> CAuthentication_RefreshToken_Enumerate_Response {
        ::std::default::Default::default()
    }
    pub fn requesting_token(&self) -> u64 {
        self.requesting_token.unwrap_or(0)
    }
    pub fn clear_requesting_token(&mut self) {
        self.requesting_token = ::std::option::Option::None;
    }
    pub fn has_requesting_token(&self) -> bool {
        self.requesting_token.is_some()
    }
    pub fn set_requesting_token(&mut self, v: u64) {
        self.requesting_token = ::std::option::Option::Some(v);
    }
}
impl ::protobuf::Message for CAuthentication_RefreshToken_Enumerate_Response {
    const NAME: &'static str = "CAuthentication_RefreshToken_Enumerate_Response";
    fn is_initialized(&self) -> bool {
        true
    }
    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::Result<()> {
        while let Some(tag) = is.read_raw_tag_or_eof()? {
            match tag {
                10 => {
                    self.refresh_tokens.push(is.read_message()?);
                },
                17 => {
                    self.requesting_token = ::std::option::Option::Some(is.read_fixed64()?);
                },
                tag => {
                    ::protobuf::rt::read_unknown_or_skip_group(tag, is, self.special_fields.mut_unknown_fields())?;
                },
            };
        }
        ::std::result::Result::Ok(())
    }
    #[allow(unused_variables)]
    fn compute_size(&self) -> u64 {
        let mut my_size = 0;
        for value in &self.refresh_tokens {
            let len = value.compute_size();
            my_size += 1 + ::protobuf::rt::compute_raw_varint64_size(len) + len;
        };
        if let Some(v) = self.requesting_token {
            my_size += 1 + 8;
        }
        my_size += ::protobuf::rt::unknown_fields_size(self.special_fields.unknown_fields());
        self.special_fields.cached_size().set(my_size as u32);
        my_size
    }
    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::Result<()> {
        for v in &self.refresh_tokens {
            ::protobuf::rt::write_message_field_with_cached_size(1, v, os)?;
        };
        if let Some(v) = self.requesting_token {
            os.write_fixed64(2, v)?;
        }
        os.write_unknown_fields(self.special_fields.unknown_fields())?;
        ::std::result::Result::Ok(())
    }
    fn special_fields(&self) -> &::protobuf::SpecialFields {
        &self.special_fields
    }
    fn mut_special_fields(&mut self) -> &mut ::protobuf::SpecialFields {
        &mut self.special_fields
    }
    fn new() -> CAuthentication_RefreshToken_Enumerate_Response {
        CAuthentication_RefreshToken_Enumerate_Response::new()
    }
    fn clear(&mut self) {
        self.refresh_tokens.clear();
        self.requesting_token = ::std::option::Option::None;
        self.special_fields.clear();
    }
    fn default_instance() -> &'static CAuthentication_RefreshToken_Enumerate_Response {
        static instance: CAuthentication_RefreshToken_Enumerate_Response = CAuthentication_RefreshToken_Enumerate_Response {
            refresh_tokens: ::std::vec::Vec::new(),
            requesting_token: ::std::option::Option::None,
            special_fields: ::protobuf::SpecialFields::new(),
        };
        &instance
    }
}
pub mod cauthentication_refresh_token_enumerate_response {
    #[derive(PartialEq,Clone,Default,Debug)]
    pub struct TokenUsageEvent {
        pub time: ::std::option::Option<u32>,
        pub ip: ::protobuf::MessageField<super::super::steammessages_base::CMsgIPAddress>,
        pub locale: ::std::option::Option<::std::string::String>,
        pub country: ::std::option::Option<::std::string::String>,
        pub state: ::std::option::Option<::std::string::String>,
        pub city: ::std::option::Option<::std::string::String>,
        pub special_fields: ::protobuf::SpecialFields,
    }
    impl<'a> ::std::default::Default for &'a TokenUsageEvent {
        fn default() -> &'a TokenUsageEvent {
            <TokenUsageEvent as ::protobuf::Message>::default_instance()
        }
    }
    impl TokenUsageEvent {
        pub fn new() -> TokenUsageEvent {
            ::std::default::Default::default()
        }
        pub fn time(&self) -> u32 {
            self.time.unwrap_or(0)
        }
        pub fn clear_time(&mut self) {
            self.time = ::std::option::Option::None;
        }
        pub fn has_time(&self) -> bool {
            self.time.is_some()
        }
        pub fn set_time(&mut self, v: u32) {
            self.time = ::std::option::Option::Some(v);
        }
        pub fn locale(&self) -> &str {
            match self.locale.as_ref() {
                Some(v) => v,
                None => "",
            }
        }
        pub fn clear_locale(&mut self) {
            self.locale = ::std::option::Option::None;
        }
        pub fn has_locale(&self) -> bool {
            self.locale.is_some()
        }
        pub fn set_locale(&mut self, v: ::std::string::String) {
            self.locale = ::std::option::Option::Some(v);
        }
        pub fn mut_locale(&mut self) -> &mut ::std::string::String {
            if self.locale.is_none() {
                self.locale = ::std::option::Option::Some(::std::string::String::new());
            }
            self.locale.as_mut().unwrap()
        }
        pub fn take_locale(&mut self) -> ::std::string::String {
            self.locale.take().unwrap_or_else(|| ::std::string::String::new())
        }
        pub fn country(&self) -> &str {
            match self.country.as_ref() {
                Some(v) => v,
                None => "",
            }
        }
        pub fn clear_country(&mut self) {
            self.country = ::std::option::Option::None;
        }
        pub fn has_country(&self) -> bool {
            self.country.is_some()
        }
        pub fn set_country(&mut self, v: ::std::string::String) {
            self.country = ::std::option::Option::Some(v);
        }
        pub fn mut_country(&mut self) -> &mut ::std::string::String {
            if self.country.is_none() {
                self.country = ::std::option::Option::Some(::std::string::String::new());
            }
            self.country.as_mut().unwrap()
        }
        pub fn take_country(&mut self) -> ::std::string::String {
            self.country.take().unwrap_or_else(|| ::std::string::String::new())
        }
        pub fn state(&self) -> &str {
            match self.state.as_ref() {
                Some(v) => v,
                None => "",
            }
        }
        pub fn clear_state(&mut self) {
            self.state = ::std::option::Option::None;
        }
        pub fn has_state(&self) -> bool {
            self.state.is_some()
        }
        pub fn set_state(&mut self, v: ::std::string::String) {
            self.state = ::std::option::Option::Some(v);
        }
        pub fn mut_state(&mut self) -> &mut ::std::string::String {
            if self.state.is_none() {
                self.state = ::std::option::Option::Some(::std::string::String::new());
            }
            self.state.as_mut().unwrap()
        }
        pub fn take_state(&mut self) -> ::std::string::String {
            self.state.take().unwrap_or_else(|| ::std::string::String::new())
        }
        pub fn city(&self) -> &str {
            match self.city.as_ref() {
                Some(v) => v,
                None => "",
            }
        }
        pub fn clear_city(&mut self) {
            self.city = ::std::option::Option::None;
        }
        pub fn has_city(&self) -> bool {
            self.city.is_some()
        }
        pub fn set_city(&mut self, v: ::std::string::String) {
            self.city = ::std::option::Option::Some(v);
        }
        pub fn mut_city(&mut self) -> &mut ::std::string::String {
            if self.city.is_none() {
                self.city = ::std::option::Option::Some(::std::string::String::new());
            }
            self.city.as_mut().unwrap()
        }
        pub fn take_city(&mut self) -> ::std::string::String {
            self.city.take().unwrap_or_else(|| ::std::string::String::new())
        }
    }
    impl ::protobuf::Message for TokenUsageEvent {
        const NAME: &'static str = "TokenUsageEvent";
        fn is_initialized(&self) -> bool {
            true
        }
        fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::Result<()> {
            while let Some(tag) = is.read_raw_tag_or_eof()? {
                match tag {
                    8 => {
                        self.time = ::std::option::Option::Some(is.read_uint32()?);
                    },
                    18 => {
                        ::protobuf::rt::read_singular_message_into_field(is, &mut self.ip)?;
                    },
                    26 => {
                        self.locale = ::std::option::Option::Some(is.read_string()?);
                    },
                    34 => {
                        self.country = ::std::option::Option::Some(is.read_string()?);
                    },
                    42 => {
                        self.state = ::std::option::Option::Some(is.read_string()?);
                    },
                    50 => {
                        self.city = ::std::option::Option::Some(is.read_string()?);
                    },
                    tag => {
                        ::protobuf::rt::read_unknown_or_skip_group(tag, is, self.special_fields.mut_unknown_fields())?;
                    },
                };
            }
            ::std::result::Result::Ok(())
        }
        #[allow(unused_variables)]
        fn compute_size(&self) -> u64 {
            let mut my_size = 0;
            if let Some(v) = self.time {
                my_size += ::protobuf::rt::uint32_size(1, v);
            }
            if let Some(v) = self.ip.as_ref() {
                let len = v.compute_size();
                my_size += 1 + ::protobuf::rt::compute_raw_varint64_size(len) + len;
            }
            if let Some(v) = self.locale.as_ref() {
                my_size += ::protobuf::rt::string_size(3, &v);
            }
            if let Some(v) = self.country.as_ref() {
                my_size += ::protobuf::rt::string_size(4, &v);
            }
            if let Some(v) = self.state.as_ref() {
                my_size += ::protobuf::rt::string_size(5, &v);
            }
            if let Some(v) = self.city.as_ref() {
                my_size += ::protobuf::rt::string_size(6, &v);
            }
            my_size += ::protobuf::rt::unknown_fields_size(self.special_fields.unknown_fields());
            self.special_fields.cached_size().set(my_size as u32);
            my_size
        }
        fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::Result<()> {
            if let Some(v) = self.time {
                os.write_uint32(1, v)?;
            }
            if let Some(v) = self.ip.as_ref() {
                ::protobuf::rt::write_message_field_with_cached_size(2, v, os)?;
            }
            if let Some(v) = self.locale.as_ref() {
                os.write_string(3, v)?;
            }
            if let Some(v) = self.country.as_ref() {
                os.write_string(4, v)?;
            }
            if let Some(v) = self.state.as_ref() {
                os.write_string(5, v)?;
            }
            if let Some(v) = self.city.as_ref() {
                os.write_string(6, v)?;
            }
            os.write_unknown_fields(self.special_fields.unknown_fields())?;
            ::std::result::Result::Ok(())
        }
        fn special_fields(&self) -> &::protobuf::SpecialFields {
            &self.special_fields
        }
        fn mut_special_fields(&mut self) -> &mut ::protobuf::SpecialFields {
            &mut self.special_fields
        }
        fn new() -> TokenUsageEvent {
            TokenUsageEvent::new()
        }
        fn clear(&mut self) {
            self.time = ::std::option::Option::None;
            self.ip.clear();
            self.locale = ::std::option::Option::None;
            self.country = ::std::option::Option::None;
            self.state = ::std::option::Option::None;
            self.city = ::std::option::Option::None;
            self.special_fields.clear();
        }
        fn default_instance() -> &'static TokenUsageEvent {
            static instance: TokenUsageEvent = TokenUsageEvent {
                time: ::std::option::Option::None,
                ip: ::protobuf::MessageField::none(),
                locale: ::std::option::Option::None,
                country: ::std::option::Option::None,
                state: ::std::option::Option::None,
                city: ::std::option::Option::None,
                special_fields: ::protobuf::SpecialFields::new(),
            };
            &instance
        }
    }
    #[derive(PartialEq,Clone,Default,Debug)]
    pub struct RefreshTokenDescription {
        pub token_id: ::std::option::Option<u64>,
        pub token_description: ::std::option::Option<::std::string::String>,
        pub time_updated: ::std::option::Option<u32>,
        pub platform_type: ::std::option::Option<::protobuf::EnumOrUnknown<super::EAuthTokenPlatformType>>,
        pub logged_in: ::std::option::Option<bool>,
        pub os_platform: ::std::option::Option<u32>,
        pub auth_type: ::std::option::Option<u32>,
        pub gaming_device_type: ::std::option::Option<u32>,
        pub first_seen: ::protobuf::MessageField<TokenUsageEvent>,
        pub last_seen: ::protobuf::MessageField<TokenUsageEvent>,
        pub os_type: ::std::option::Option<i32>,
        pub special_fields: ::protobuf::SpecialFields,
    }
    impl<'a> ::std::default::Default for &'a RefreshTokenDescription {
        fn default() -> &'a RefreshTokenDescription {
            <RefreshTokenDescription as ::protobuf::Message>::default_instance()
        }
    }
    impl RefreshTokenDescription {
        pub fn new() -> RefreshTokenDescription {
            ::std::default::Default::default()
        }
        pub fn token_id(&self) -> u64 {
            self.token_id.unwrap_or(0)
        }
        pub fn clear_token_id(&mut self) {
            self.token_id = ::std::option::Option::None;
        }
        pub fn has_token_id(&self) -> bool {
            self.token_id.is_some()
        }
        pub fn set_token_id(&mut self, v: u64) {
            self.token_id = ::std::option::Option::Some(v);
        }
        pub fn token_description(&self) -> &str {
            match self.token_description.as_ref() {
                Some(v) => v,
                None => "",
            }
        }
        pub fn clear_token_description(&mut self) {
            self.token_description = ::std::option::Option::None;
        }
        pub fn has_token_description(&self) -> bool {
            self.token_description.is_some()
        }
        pub fn set_token_description(&mut self, v: ::std::string::String) {
            self.token_description = ::std::option::Option::Some(v);
        }
        pub fn mut_token_description(&mut self) -> &mut ::std::string::String {
            if self.token_description.is_none() {
                self.token_description = ::std::option::Option::Some(::std::string::String::new());
            }
            self.token_description.as_mut().unwrap()
        }
        pub fn take_token_description(&mut self) -> ::std::string::String {
            self.token_description.take().unwrap_or_else(|| ::std::string::String::new())
        }
        pub fn time_updated(&self) -> u32 {
            self.time_updated.unwrap_or(0)
        }
        pub fn clear_time_updated(&mut self) {
            self.time_updated = ::std::option::Option::None;
        }
        pub fn has_time_updated(&self) -> bool {
            self.time_updated.is_some()
        }
        pub fn set_time_updated(&mut self, v: u32) {
            self.time_updated = ::std::option::Option::Some(v);
        }
        pub fn platform_type(&self) -> super::EAuthTokenPlatformType {
            match self.platform_type {
                Some(e) => e.enum_value_or(super::EAuthTokenPlatformType::k_EAuthTokenPlatformType_Unknown),
                None => super::EAuthTokenPlatformType::k_EAuthTokenPlatformType_Unknown,
            }
        }
        pub fn clear_platform_type(&mut self) {
            self.platform_type = ::std::option::Option::None;
        }
        pub fn has_platform_type(&self) -> bool {
            self.platform_type.is_some()
        }
        pub fn set_platform_type(&mut self, v: super::EAuthTokenPlatformType) {
            self.platform_type = ::std::option::Option::Some(::protobuf::EnumOrUnknown::new(v));
        }
        pub fn logged_in(&self) -> bool {
            self.logged_in.unwrap_or(false)
        }
        pub fn clear_logged_in(&mut self) {
            self.logged_in = ::std::option::Option::None;
        }
        pub fn has_logged_in(&self) -> bool {
            self.logged_in.is_some()
        }
        pub fn set_logged_in(&mut self, v: bool) {
            self.logged_in = ::std::option::Option::Some(v);
        }
        pub fn os_platform(&self) -> u32 {
            self.os_platform.unwrap_or(0)
        }
        pub fn clear_os_platform(&mut self) {
            self.os_platform = ::std::option::Option::None;
        }
        pub fn has_os_platform(&self) -> bool {
            self.os_platform.is_some()
        }
        pub fn set_os_platform(&mut self, v: u32) {
            self.os_platform = ::std::option::Option::Some(v);
        }
        pub fn auth_type(&self) -> u32 {
            self.auth_type.unwrap_or(0)
        }
        pub fn clear_auth_type(&mut self) {
            self.auth_type = ::std::option::Option::None;
        }
        pub fn has_auth_type(&self) -> bool {
            self.auth_type.is_some()
        }
        pub fn set_auth_type(&mut self, v: u32) {
            self.auth_type = ::std::option::Option::Some(v);
        }
        pub fn gaming_device_type(&self) -> u32 {
            self.gaming_device_type.unwrap_or(0)
        }
        pub fn clear_gaming_device_type(&mut self) {
            self.gaming_device_type = ::std::option::Option::None;
        }
        pub fn has_gaming_device_type(&self) -> bool {
            self.gaming_device_type.is_some()
        }
        pub fn set_gaming_device_type(&mut self, v: u32) {
            self.gaming_device_type = ::std::option::Option::Some(v);
        }
        pub fn os_type(&self) -> i32 {
            self.os_type.unwrap_or(0)
        }
        pub fn clear_os_type(&mut self) {
            self.os_type = ::std::option::Option::None;
        }
        pub fn has_os_type(&self) -> bool {
            self.os_type.is_some()
        }
        pub fn set_os_type(&mut self, v: i32) {
            self.os_type = ::std::option::Option::Some(v);
        }
    }
    impl ::protobuf::Message for RefreshTokenDescription {
        const NAME: &'static str = "RefreshTokenDescription";
        fn is_initialized(&self) -> bool {
            true
        }
        fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::Result<()> {
            while let Some(tag) = is.read_raw_tag_or_eof()? {
                match tag {
                    9 => {
                        self.token_id = ::std::option::Option::Some(is.read_fixed64()?);
                    },
                    18 => {
                        self.token_description = ::std::option::Option::Some(is.read_string()?);
                    },
                    24 => {
                        self.time_updated = ::std::option::Option::Some(is.read_uint32()?);
                    },
                    32 => {
                        self.platform_type = ::std::option::Option::Some(is.read_enum_or_unknown()?);
                    },
                    40 => {
                        self.logged_in = ::std::option::Option::Some(is.read_bool()?);
                    },
                    48 => {
                        self.os_platform = ::std::option::Option::Some(is.read_uint32()?);
                    },
                    56 => {
                        self.auth_type = ::std::option::Option::Some(is.read_uint32()?);
                    },
                    64 => {
                        self.gaming_device_type = ::std::option::Option::Some(is.read_uint32()?);
                    },
                    74 => {
                        ::protobuf::rt::read_singular_message_into_field(is, &mut self.first_seen)?;
                    },
                    82 => {
                        ::protobuf::rt::read_singular_message_into_field(is, &mut self.last_seen)?;
                    },
                    88 => {
                        self.os_type = ::std::option::Option::Some(is.read_int32()?);
                    },
                    tag => {
                        ::protobuf::rt::read_unknown_or_skip_group(tag, is, self.special_fields.mut_unknown_fields())?;
                    },
                };
            }
            ::std::result::Result::Ok(())
        }
        #[allow(unused_variables)]
        fn compute_size(&self) -> u64 {
            let mut my_size = 0;
            if let Some(v) = self.token_id {
                my_size += 1 + 8;
            }
            if let Some(v) = self.token_description.as_ref() {
                my_size += ::protobuf::rt::string_size(2, &v);
            }
            if let Some(v) = self.time_updated {
                my_size += ::protobuf::rt::uint32_size(3, v);
            }
            if let Some(v) = self.platform_type {
                my_size += ::protobuf::rt::int32_size(4, v.value());
            }
            if let Some(v) = self.logged_in {
                my_size += 1 + 1;
            }
            if let Some(v) = self.os_platform {
                my_size += ::protobuf::rt::uint32_size(6, v);
            }
            if let Some(v) = self.auth_type {
                my_size += ::protobuf::rt::uint32_size(7, v);
            }
            if let Some(v) = self.gaming_device_type {
                my_size += ::protobuf::rt::uint32_size(8, v);
            }
            if let Some(v) = self.first_seen.as_ref() {
                let len = v.compute_size();
                my_size += 1 + ::protobuf::rt::compute_raw_varint64_size(len) + len;
            }
            if let Some(v) = self.last_seen.as_ref() {
                let len = v.compute_size();
                my_size += 1 + ::protobuf::rt::compute_raw_varint64_size(len) + len;
            }
            if let Some(v) = self.os_type {
                my_size += ::protobuf::rt::int32_size(11, v);
            }
            my_size += ::protobuf::rt::unknown_fields_size(self.special_fields.unknown_fields());
            self.special_fields.cached_size().set(my_size as u32);
            my_size
        }
        fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::Result<()> {
            if let Some(v) = self.token_id {
                os.write_fixed64(1, v)?;
            }
            if let Some(v) = self.token_description.as_ref() {
                os.write_string(2, v)?;
            }
            if let Some(v) = self.time_updated {
                os.write_uint32(3, v)?;
            }
            if let Some(v) = self.platform_type {
                os.write_enum(4, ::protobuf::EnumOrUnknown::value(&v))?;
            }
            if let Some(v) = self.logged_in {
                os.write_bool(5, v)?;
            }
            if let Some(v) = self.os_platform {
                os.write_uint32(6, v)?;
            }
            if let Some(v) = self.auth_type {
                os.write_uint32(7, v)?;
            }
            if let Some(v) = self.gaming_device_type {
                os.write_uint32(8, v)?;
            }
            if let Some(v) = self.first_seen.as_ref() {
                ::protobuf::rt::write_message_field_with_cached_size(9, v, os)?;
            }
            if let Some(v) = self.last_seen.as_ref() {
                ::protobuf::rt::write_message_field_with_cached_size(10, v, os)?;
            }
            if let Some(v) = self.os_type {
                os.write_int32(11, v)?;
            }
            os.write_unknown_fields(self.special_fields.unknown_fields())?;
            ::std::result::Result::Ok(())
        }
        fn special_fields(&self) -> &::protobuf::SpecialFields {
            &self.special_fields
        }
        fn mut_special_fields(&mut self) -> &mut ::protobuf::SpecialFields {
            &mut self.special_fields
        }
        fn new() -> RefreshTokenDescription {
            RefreshTokenDescription::new()
        }
        fn clear(&mut self) {
            self.token_id = ::std::option::Option::None;
            self.token_description = ::std::option::Option::None;
            self.time_updated = ::std::option::Option::None;
            self.platform_type = ::std::option::Option::None;
            self.logged_in = ::std::option::Option::None;
            self.os_platform = ::std::option::Option::None;
            self.auth_type = ::std::option::Option::None;
            self.gaming_device_type = ::std::option::Option::None;
            self.first_seen.clear();
            self.last_seen.clear();
            self.os_type = ::std::option::Option::None;
            self.special_fields.clear();
        }
        fn default_instance() -> &'static RefreshTokenDescription {
            static instance: RefreshTokenDescription = RefreshTokenDescription {
                token_id: ::std::option::Option::None,
                token_description: ::std::option::Option::None,
                time_updated: ::std::option::Option::None,
                platform_type: ::std::option::Option::None,
                logged_in: ::std::option::Option::None,
                os_platform: ::std::option::Option::None,
                auth_type: ::std::option::Option::None,
                gaming_device_type: ::std::option::Option::None,
                first_seen: ::protobuf::MessageField::none(),
                last_seen: ::protobuf::MessageField::none(),
                os_type: ::std::option::Option::None,
                special_fields: ::protobuf::SpecialFields::new(),
            };
            &instance
        }
    }
}
#[doc = "Gets all active auth sessions for an account for reference by the mobile app"]
#[derive(PartialEq,Clone,Default,Debug)]
pub struct CAuthentication_GetAuthSessionsForAccount_Request {
    pub special_fields: ::protobuf::SpecialFields,
}
impl<'a> ::std::default::Default for &'a CAuthentication_GetAuthSessionsForAccount_Request {
    fn default() -> &'a CAuthentication_GetAuthSessionsForAccount_Request {
        <CAuthentication_GetAuthSessionsForAccount_Request as ::protobuf::Message>::default_instance()
    }
}
impl CAuthentication_GetAuthSessionsForAccount_Request {
    pub fn new() -> CAuthentication_GetAuthSessionsForAccount_Request {
        ::std::default::Default::default()
    }
}
impl ::protobuf::Message for CAuthentication_GetAuthSessionsForAccount_Request {
    const NAME: &'static str = "CAuthentication_GetAuthSessionsForAccount_Request";
    fn is_initialized(&self) -> bool {
        true
    }
    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::Result<()> {
        while let Some(tag) = is.read_raw_tag_or_eof()? {
            match tag {
                tag => {
                    ::protobuf::rt::read_unknown_or_skip_group(tag, is, self.special_fields.mut_unknown_fields())?;
                },
            };
        }
        ::std::result::Result::Ok(())
    }
    #[allow(unused_variables)]
    fn compute_size(&self) -> u64 {
        let mut my_size = 0;
        my_size += ::protobuf::rt::unknown_fields_size(self.special_fields.unknown_fields());
        self.special_fields.cached_size().set(my_size as u32);
        my_size
    }
    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::Result<()> {
        os.write_unknown_fields(self.special_fields.unknown_fields())?;
        ::std::result::Result::Ok(())
    }
    fn special_fields(&self) -> &::protobuf::SpecialFields {
        &self.special_fields
    }
    fn mut_special_fields(&mut self) -> &mut ::protobuf::SpecialFields {
        &mut self.special_fields
    }
    fn new() -> CAuthentication_GetAuthSessionsForAccount_Request {
        CAuthentication_GetAuthSessionsForAccount_Request::new()
    }
    fn clear(&mut self) {
        self.special_fields.clear();
    }
    fn default_instance() -> &'static CAuthentication_GetAuthSessionsForAccount_Request {
        static instance: CAuthentication_GetAuthSessionsForAccount_Request = CAuthentication_GetAuthSessionsForAccount_Request {
            special_fields: ::protobuf::SpecialFields::new(),
        };
        &instance
    }
}
#[derive(PartialEq,Clone,Default,Debug)]
pub struct CAuthentication_GetAuthSessionsForAccount_Response {
    pub client_ids: ::std::vec::Vec<u64>,
    pub special_fields: ::protobuf::SpecialFields,
}
impl<'a> ::std::default::Default for &'a CAuthentication_GetAuthSessionsForAccount_Response {
    fn default() -> &'a CAuthentication_GetAuthSessionsForAccount_Response {
        <CAuthentication_GetAuthSessionsForAccount_Response as ::protobuf::Message>::default_instance()
    }
}
impl CAuthentication_GetAuthSessionsForAccount_Response {
    pub fn new() -> CAuthentication_GetAuthSessionsForAccount_Response {
        ::std::default::Default::default()
    }
}
impl ::protobuf::Message for CAuthentication_GetAuthSessionsForAccount_Response {
    const NAME: &'static str = "CAuthentication_GetAuthSessionsForAccount_Response";
    fn is_initialized(&self) -> bool {
        true
    }
    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::Result<()> {
        while let Some(tag) = is.read_raw_tag_or_eof()? {
            match tag {
                10 => {
                    is.read_repeated_packed_uint64_into(&mut self.client_ids)?;
                },
                8 => {
                    self.client_ids.push(is.read_uint64()?);
                },
                tag => {
                    ::protobuf::rt::read_unknown_or_skip_group(tag, is, self.special_fields.mut_unknown_fields())?;
                },
            };
        }
        ::std::result::Result::Ok(())
    }
    #[allow(unused_variables)]
    fn compute_size(&self) -> u64 {
        let mut my_size = 0;
        for value in &self.client_ids {
            my_size += ::protobuf::rt::uint64_size(1, *value);
        };
        my_size += ::protobuf::rt::unknown_fields_size(self.special_fields.unknown_fields());
        self.special_fields.cached_size().set(my_size as u32);
        my_size
    }
    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::Result<()> {
        for v in &self.client_ids {
            os.write_uint64(1, *v)?;
        };
        os.write_unknown_fields(self.special_fields.unknown_fields())?;
        ::std::result::Result::Ok(())
    }
    fn special_fields(&self) -> &::protobuf::SpecialFields {
        &self.special_fields
    }
    fn mut_special_fields(&mut self) -> &mut ::protobuf::SpecialFields {
        &mut self.special_fields
    }
    fn new() -> CAuthentication_GetAuthSessionsForAccount_Response {
        CAuthentication_GetAuthSessionsForAccount_Response::new()
    }
    fn clear(&mut self) {
        self.client_ids.clear();
        self.special_fields.clear();
    }
    fn default_instance() -> &'static CAuthentication_GetAuthSessionsForAccount_Response {
        static instance: CAuthentication_GetAuthSessionsForAccount_Response = CAuthentication_GetAuthSessionsForAccount_Response {
            client_ids: ::std::vec::Vec::new(),
            special_fields: ::protobuf::SpecialFields::new(),
        };
        &instance
    }
}
#[doc = "Migrates a WG token to an access and refresh token using a signature generated with the user's 2FA secret"]
#[derive(PartialEq,Clone,Default,Debug)]
pub struct CAuthentication_MigrateMobileSession_Request {
    pub steamid: ::std::option::Option<u64>,
    pub token: ::std::option::Option<::std::string::String>,
    pub signature: ::std::option::Option<::std::string::String>,
    pub special_fields: ::protobuf::SpecialFields,
}
impl<'a> ::std::default::Default for &'a CAuthentication_MigrateMobileSession_Request {
    fn default() -> &'a CAuthentication_MigrateMobileSession_Request {
        <CAuthentication_MigrateMobileSession_Request as ::protobuf::Message>::default_instance()
    }
}
impl CAuthentication_MigrateMobileSession_Request {
    pub fn new() -> CAuthentication_MigrateMobileSession_Request {
        ::std::default::Default::default()
    }
    pub fn steamid(&self) -> u64 {
        self.steamid.unwrap_or(0)
    }
    pub fn clear_steamid(&mut self) {
        self.steamid = ::std::option::Option::None;
    }
    pub fn has_steamid(&self) -> bool {
        self.steamid.is_some()
    }
    pub fn set_steamid(&mut self, v: u64) {
        self.steamid = ::std::option::Option::Some(v);
    }
    pub fn token(&self) -> &str {
        match self.token.as_ref() {
            Some(v) => v,
            None => "",
        }
    }
    pub fn clear_token(&mut self) {
        self.token = ::std::option::Option::None;
    }
    pub fn has_token(&self) -> bool {
        self.token.is_some()
    }
    pub fn set_token(&mut self, v: ::std::string::String) {
        self.token = ::std::option::Option::Some(v);
    }
    pub fn mut_token(&mut self) -> &mut ::std::string::String {
        if self.token.is_none() {
            self.token = ::std::option::Option::Some(::std::string::String::new());
        }
        self.token.as_mut().unwrap()
    }
    pub fn take_token(&mut self) -> ::std::string::String {
        self.token.take().unwrap_or_else(|| ::std::string::String::new())
    }
    pub fn signature(&self) -> &str {
        match self.signature.as_ref() {
            Some(v) => v,
            None => "",
        }
    }
    pub fn clear_signature(&mut self) {
        self.signature = ::std::option::Option::None;
    }
    pub fn has_signature(&self) -> bool {
        self.signature.is_some()
    }
    pub fn set_signature(&mut self, v: ::std::string::String) {
        self.signature = ::std::option::Option::Some(v);
    }
    pub fn mut_signature(&mut self) -> &mut ::std::string::String {
        if self.signature.is_none() {
            self.signature = ::std::option::Option::Some(::std::string::String::new());
        }
        self.signature.as_mut().unwrap()
    }
    pub fn take_signature(&mut self) -> ::std::string::String {
        self.signature.take().unwrap_or_else(|| ::std::string::String::new())
    }
}
impl ::protobuf::Message for CAuthentication_MigrateMobileSession_Request {
    const NAME: &'static str = "CAuthentication_MigrateMobileSession_Request";
    fn is_initialized(&self) -> bool {
        true
    }
    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::Result<()> {
        while let Some(tag) = is.read_raw_tag_or_eof()? {
            match tag {
                9 => {
                    self.steamid = ::std::option::Option::Some(is.read_fixed64()?);
                },
                18 => {
                    self.token = ::std::option::Option::Some(is.read_string()?);
                },
                26 => {
                    self.signature = ::std::option::Option::Some(is.read_string()?);
                },
                tag => {
                    ::protobuf::rt::read_unknown_or_skip_group(tag, is, self.special_fields.mut_unknown_fields())?;
                },
            };
        }
        ::std::result::Result::Ok(())
    }
    #[allow(unused_variables)]
    fn compute_size(&self) -> u64 {
        let mut my_size = 0;
        if let Some(v) = self.steamid {
            my_size += 1 + 8;
        }
        if let Some(v) = self.token.as_ref() {
            my_size += ::protobuf::rt::string_size(2, &v);
        }
        if let Some(v) = self.signature.as_ref() {
            my_size += ::protobuf::rt::string_size(3, &v);
        }
        my_size += ::protobuf::rt::unknown_fields_size(self.special_fields.unknown_fields());
        self.special_fields.cached_size().set(my_size as u32);
        my_size
    }
    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::Result<()> {
        if let Some(v) = self.steamid {
            os.write_fixed64(1, v)?;
        }
        if let Some(v) = self.token.as_ref() {
            os.write_string(2, v)?;
        }
        if let Some(v) = self.signature.as_ref() {
            os.write_string(3, v)?;
        }
        os.write_unknown_fields(self.special_fields.unknown_fields())?;
        ::std::result::Result::Ok(())
    }
    fn special_fields(&self) -> &::protobuf::SpecialFields {
        &self.special_fields
    }
    fn mut_special_fields(&mut self) -> &mut ::protobuf::SpecialFields {
        &mut self.special_fields
    }
    fn new() -> CAuthentication_MigrateMobileSession_Request {
        CAuthentication_MigrateMobileSession_Request::new()
    }
    fn clear(&mut self) {
        self.steamid = ::std::option::Option::None;
        self.token = ::std::option::Option::None;
        self.signature = ::std::option::Option::None;
        self.special_fields.clear();
    }
    fn default_instance() -> &'static CAuthentication_MigrateMobileSession_Request {
        static instance: CAuthentication_MigrateMobileSession_Request = CAuthentication_MigrateMobileSession_Request {
            steamid: ::std::option::Option::None,
            token: ::std::option::Option::None,
            signature: ::std::option::Option::None,
            special_fields: ::protobuf::SpecialFields::new(),
        };
        &instance
    }
}
#[derive(PartialEq,Clone,Default,Debug)]
pub struct CAuthentication_MigrateMobileSession_Response {
    pub refresh_token: ::std::option::Option<::std::string::String>,
    pub access_token: ::std::option::Option<::std::string::String>,
    pub special_fields: ::protobuf::SpecialFields,
}
impl<'a> ::std::default::Default for &'a CAuthentication_MigrateMobileSession_Response {
    fn default() -> &'a CAuthentication_MigrateMobileSession_Response {
        <CAuthentication_MigrateMobileSession_Response as ::protobuf::Message>::default_instance()
    }
}
impl CAuthentication_MigrateMobileSession_Response {
    pub fn new() -> CAuthentication_MigrateMobileSession_Response {
        ::std::default::Default::default()
    }
    pub fn refresh_token(&self) -> &str {
        match self.refresh_token.as_ref() {
            Some(v) => v,
            None => "",
        }
    }
    pub fn clear_refresh_token(&mut self) {
        self.refresh_token = ::std::option::Option::None;
    }
    pub fn has_refresh_token(&self) -> bool {
        self.refresh_token.is_some()
    }
    pub fn set_refresh_token(&mut self, v: ::std::string::String) {
        self.refresh_token = ::std::option::Option::Some(v);
    }
    pub fn mut_refresh_token(&mut self) -> &mut ::std::string::String {
        if self.refresh_token.is_none() {
            self.refresh_token = ::std::option::Option::Some(::std::string::String::new());
        }
        self.refresh_token.as_mut().unwrap()
    }
    pub fn take_refresh_token(&mut self) -> ::std::string::String {
        self.refresh_token.take().unwrap_or_else(|| ::std::string::String::new())
    }
    pub fn access_token(&self) -> &str {
        match self.access_token.as_ref() {
            Some(v) => v,
            None => "",
        }
    }
    pub fn clear_access_token(&mut self) {
        self.access_token = ::std::option::Option::None;
    }
    pub fn has_access_token(&self) -> bool {
        self.access_token.is_some()
    }
    pub fn set_access_token(&mut self, v: ::std::string::String) {
        self.access_token = ::std::option::Option::Some(v);
    }
    pub fn mut_access_token(&mut self) -> &mut ::std::string::String {
        if self.access_token.is_none() {
            self.access_token = ::std::option::Option::Some(::std::string::String::new());
        }
        self.access_token.as_mut().unwrap()
    }
    pub fn take_access_token(&mut self) -> ::std::string::String {
        self.access_token.take().unwrap_or_else(|| ::std::string::String::new())
    }
}
impl ::protobuf::Message for CAuthentication_MigrateMobileSession_Response {
    const NAME: &'static str = "CAuthentication_MigrateMobileSession_Response";
    fn is_initialized(&self) -> bool {
        true
    }
    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::Result<()> {
        while let Some(tag) = is.read_raw_tag_or_eof()? {
            match tag {
                10 => {
                    self.refresh_token = ::std::option::Option::Some(is.read_string()?);
                },
                18 => {
                    self.access_token = ::std::option::Option::Some(is.read_string()?);
                },
                tag => {
                    ::protobuf::rt::read_unknown_or_skip_group(tag, is, self.special_fields.mut_unknown_fields())?;
                },
            };
        }
        ::std::result::Result::Ok(())
    }
    #[allow(unused_variables)]
    fn compute_size(&self) -> u64 {
        let mut my_size = 0;
        if let Some(v) = self.refresh_token.as_ref() {
            my_size += ::protobuf::rt::string_size(1, &v);
        }
        if let Some(v) = self.access_token.as_ref() {
            my_size += ::protobuf::rt::string_size(2, &v);
        }
        my_size += ::protobuf::rt::unknown_fields_size(self.special_fields.unknown_fields());
        self.special_fields.cached_size().set(my_size as u32);
        my_size
    }
    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::Result<()> {
        if let Some(v) = self.refresh_token.as_ref() {
            os.write_string(1, v)?;
        }
        if let Some(v) = self.access_token.as_ref() {
            os.write_string(2, v)?;
        }
        os.write_unknown_fields(self.special_fields.unknown_fields())?;
        ::std::result::Result::Ok(())
    }
    fn special_fields(&self) -> &::protobuf::SpecialFields {
        &self.special_fields
    }
    fn mut_special_fields(&mut self) -> &mut ::protobuf::SpecialFields {
        &mut self.special_fields
    }
    fn new() -> CAuthentication_MigrateMobileSession_Response {
        CAuthentication_MigrateMobileSession_Response::new()
    }
    fn clear(&mut self) {
        self.refresh_token = ::std::option::Option::None;
        self.access_token = ::std::option::Option::None;
        self.special_fields.clear();
    }
    fn default_instance() -> &'static CAuthentication_MigrateMobileSession_Response {
        static instance: CAuthentication_MigrateMobileSession_Response = CAuthentication_MigrateMobileSession_Response {
            refresh_token: ::std::option::Option::None,
            access_token: ::std::option::Option::None,
            special_fields: ::protobuf::SpecialFields::new(),
        };
        &instance
    }
}
#[doc = "Revoke a single token immediately, making it unable to renew or generate new access tokens"]
#[derive(PartialEq,Clone,Default,Debug)]
pub struct CAuthentication_Token_Revoke_Request {
    pub token: ::std::option::Option<::std::string::String>,
    pub revoke_action: ::std::option::Option<::protobuf::EnumOrUnknown<EAuthTokenRevokeAction>>,
    pub special_fields: ::protobuf::SpecialFields,
}
impl<'a> ::std::default::Default for &'a CAuthentication_Token_Revoke_Request {
    fn default() -> &'a CAuthentication_Token_Revoke_Request {
        <CAuthentication_Token_Revoke_Request as ::protobuf::Message>::default_instance()
    }
}
impl CAuthentication_Token_Revoke_Request {
    pub fn new() -> CAuthentication_Token_Revoke_Request {
        ::std::default::Default::default()
    }
    pub fn token(&self) -> &str {
        match self.token.as_ref() {
            Some(v) => v,
            None => "",
        }
    }
    pub fn clear_token(&mut self) {
        self.token = ::std::option::Option::None;
    }
    pub fn has_token(&self) -> bool {
        self.token.is_some()
    }
    pub fn set_token(&mut self, v: ::std::string::String) {
        self.token = ::std::option::Option::Some(v);
    }
    pub fn mut_token(&mut self) -> &mut ::std::string::String {
        if self.token.is_none() {
            self.token = ::std::option::Option::Some(::std::string::String::new());
        }
        self.token.as_mut().unwrap()
    }
    pub fn take_token(&mut self) -> ::std::string::String {
        self.token.take().unwrap_or_else(|| ::std::string::String::new())
    }
    pub fn revoke_action(&self) -> EAuthTokenRevokeAction {
        match self.revoke_action {
            Some(e) => e.enum_value_or(EAuthTokenRevokeAction::k_EAuthTokenRevokePermanent),
            None => EAuthTokenRevokeAction::k_EAuthTokenRevokePermanent,
        }
    }
    pub fn clear_revoke_action(&mut self) {
        self.revoke_action = ::std::option::Option::None;
    }
    pub fn has_revoke_action(&self) -> bool {
        self.revoke_action.is_some()
    }
    pub fn set_revoke_action(&mut self, v: EAuthTokenRevokeAction) {
        self.revoke_action = ::std::option::Option::Some(::protobuf::EnumOrUnknown::new(v));
    }
}
impl ::protobuf::Message for CAuthentication_Token_Revoke_Request {
    const NAME: &'static str = "CAuthentication_Token_Revoke_Request";
    fn is_initialized(&self) -> bool {
        true
    }
    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::Result<()> {
        while let Some(tag) = is.read_raw_tag_or_eof()? {
            match tag {
                10 => {
                    self.token = ::std::option::Option::Some(is.read_string()?);
                },
                16 => {
                    self.revoke_action = ::std::option::Option::Some(is.read_enum_or_unknown()?);
                },
                tag => {
                    ::protobuf::rt::read_unknown_or_skip_group(tag, is, self.special_fields.mut_unknown_fields())?;
                },
            };
        }
        ::std::result::Result::Ok(())
    }
    #[allow(unused_variables)]
    fn compute_size(&self) -> u64 {
        let mut my_size = 0;
        if let Some(v) = self.token.as_ref() {
            my_size += ::protobuf::rt::string_size(1, &v);
        }
        if let Some(v) = self.revoke_action {
            my_size += ::protobuf::rt::int32_size(2, v.value());
        }
        my_size += ::protobuf::rt::unknown_fields_size(self.special_fields.unknown_fields());
        self.special_fields.cached_size().set(my_size as u32);
        my_size
    }
    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::Result<()> {
        if let Some(v) = self.token.as_ref() {
            os.write_string(1, v)?;
        }
        if let Some(v) = self.revoke_action {
            os.write_enum(2, ::protobuf::EnumOrUnknown::value(&v))?;
        }
        os.write_unknown_fields(self.special_fields.unknown_fields())?;
        ::std::result::Result::Ok(())
    }
    fn special_fields(&self) -> &::protobuf::SpecialFields {
        &self.special_fields
    }
    fn mut_special_fields(&mut self) -> &mut ::protobuf::SpecialFields {
        &mut self.special_fields
    }
    fn new() -> CAuthentication_Token_Revoke_Request {
        CAuthentication_Token_Revoke_Request::new()
    }
    fn clear(&mut self) {
        self.token = ::std::option::Option::None;
        self.revoke_action = ::std::option::Option::None;
        self.special_fields.clear();
    }
    fn default_instance() -> &'static CAuthentication_Token_Revoke_Request {
        static instance: CAuthentication_Token_Revoke_Request = CAuthentication_Token_Revoke_Request {
            token: ::std::option::Option::None,
            revoke_action: ::std::option::Option::None,
            special_fields: ::protobuf::SpecialFields::new(),
        };
        &instance
    }
}
#[derive(PartialEq,Clone,Default,Debug)]
pub struct CAuthentication_Token_Revoke_Response {
    pub special_fields: ::protobuf::SpecialFields,
}
impl<'a> ::std::default::Default for &'a CAuthentication_Token_Revoke_Response {
    fn default() -> &'a CAuthentication_Token_Revoke_Response {
        <CAuthentication_Token_Revoke_Response as ::protobuf::Message>::default_instance()
    }
}
impl CAuthentication_Token_Revoke_Response {
    pub fn new() -> CAuthentication_Token_Revoke_Response {
        ::std::default::Default::default()
    }
}
impl ::protobuf::Message for CAuthentication_Token_Revoke_Response {
    const NAME: &'static str = "CAuthentication_Token_Revoke_Response";
    fn is_initialized(&self) -> bool {
        true
    }
    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::Result<()> {
        while let Some(tag) = is.read_raw_tag_or_eof()? {
            match tag {
                tag => {
                    ::protobuf::rt::read_unknown_or_skip_group(tag, is, self.special_fields.mut_unknown_fields())?;
                },
            };
        }
        ::std::result::Result::Ok(())
    }
    #[allow(unused_variables)]
    fn compute_size(&self) -> u64 {
        let mut my_size = 0;
        my_size += ::protobuf::rt::unknown_fields_size(self.special_fields.unknown_fields());
        self.special_fields.cached_size().set(my_size as u32);
        my_size
    }
    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::Result<()> {
        os.write_unknown_fields(self.special_fields.unknown_fields())?;
        ::std::result::Result::Ok(())
    }
    fn special_fields(&self) -> &::protobuf::SpecialFields {
        &self.special_fields
    }
    fn mut_special_fields(&mut self) -> &mut ::protobuf::SpecialFields {
        &mut self.special_fields
    }
    fn new() -> CAuthentication_Token_Revoke_Response {
        CAuthentication_Token_Revoke_Response::new()
    }
    fn clear(&mut self) {
        self.special_fields.clear();
    }
    fn default_instance() -> &'static CAuthentication_Token_Revoke_Response {
        static instance: CAuthentication_Token_Revoke_Response = CAuthentication_Token_Revoke_Response {
            special_fields: ::protobuf::SpecialFields::new(),
        };
        &instance
    }
}
#[doc = "Mark the given refresh token as revoked"]
#[derive(PartialEq,Clone,Default,Debug)]
pub struct CAuthentication_RefreshToken_Revoke_Request {
    pub token_id: ::std::option::Option<u64>,
    pub steamid: ::std::option::Option<u64>,
    pub revoke_action: ::std::option::Option<::protobuf::EnumOrUnknown<EAuthTokenRevokeAction>>,
    pub signature: ::std::option::Option<::std::vec::Vec<u8>>,
    pub special_fields: ::protobuf::SpecialFields,
}
impl<'a> ::std::default::Default for &'a CAuthentication_RefreshToken_Revoke_Request {
    fn default() -> &'a CAuthentication_RefreshToken_Revoke_Request {
        <CAuthentication_RefreshToken_Revoke_Request as ::protobuf::Message>::default_instance()
    }
}
impl CAuthentication_RefreshToken_Revoke_Request {
    pub fn new() -> CAuthentication_RefreshToken_Revoke_Request {
        ::std::default::Default::default()
    }
    pub fn token_id(&self) -> u64 {
        self.token_id.unwrap_or(0)
    }
    pub fn clear_token_id(&mut self) {
        self.token_id = ::std::option::Option::None;
    }
    pub fn has_token_id(&self) -> bool {
        self.token_id.is_some()
    }
    pub fn set_token_id(&mut self, v: u64) {
        self.token_id = ::std::option::Option::Some(v);
    }
    pub fn steamid(&self) -> u64 {
        self.steamid.unwrap_or(0)
    }
    pub fn clear_steamid(&mut self) {
        self.steamid = ::std::option::Option::None;
    }
    pub fn has_steamid(&self) -> bool {
        self.steamid.is_some()
    }
    pub fn set_steamid(&mut self, v: u64) {
        self.steamid = ::std::option::Option::Some(v);
    }
    pub fn revoke_action(&self) -> EAuthTokenRevokeAction {
        match self.revoke_action {
            Some(e) => e.enum_value_or(EAuthTokenRevokeAction::k_EAuthTokenRevokePermanent),
            None => EAuthTokenRevokeAction::k_EAuthTokenRevokePermanent,
        }
    }
    pub fn clear_revoke_action(&mut self) {
        self.revoke_action = ::std::option::Option::None;
    }
    pub fn has_revoke_action(&self) -> bool {
        self.revoke_action.is_some()
    }
    pub fn set_revoke_action(&mut self, v: EAuthTokenRevokeAction) {
        self.revoke_action = ::std::option::Option::Some(::protobuf::EnumOrUnknown::new(v));
    }
    pub fn signature(&self) -> &[u8] {
        match self.signature.as_ref() {
            Some(v) => v,
            None => &[],
        }
    }
    pub fn clear_signature(&mut self) {
        self.signature = ::std::option::Option::None;
    }
    pub fn has_signature(&self) -> bool {
        self.signature.is_some()
    }
    pub fn set_signature(&mut self, v: ::std::vec::Vec<u8>) {
        self.signature = ::std::option::Option::Some(v);
    }
    pub fn mut_signature(&mut self) -> &mut ::std::vec::Vec<u8> {
        if self.signature.is_none() {
            self.signature = ::std::option::Option::Some(::std::vec::Vec::new());
        }
        self.signature.as_mut().unwrap()
    }
    pub fn take_signature(&mut self) -> ::std::vec::Vec<u8> {
        self.signature.take().unwrap_or_else(|| ::std::vec::Vec::new())
    }
}
impl ::protobuf::Message for CAuthentication_RefreshToken_Revoke_Request {
    const NAME: &'static str = "CAuthentication_RefreshToken_Revoke_Request";
    fn is_initialized(&self) -> bool {
        true
    }
    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::Result<()> {
        while let Some(tag) = is.read_raw_tag_or_eof()? {
            match tag {
                9 => {
                    self.token_id = ::std::option::Option::Some(is.read_fixed64()?);
                },
                17 => {
                    self.steamid = ::std::option::Option::Some(is.read_fixed64()?);
                },
                24 => {
                    self.revoke_action = ::std::option::Option::Some(is.read_enum_or_unknown()?);
                },
                34 => {
                    self.signature = ::std::option::Option::Some(is.read_bytes()?);
                },
                tag => {
                    ::protobuf::rt::read_unknown_or_skip_group(tag, is, self.special_fields.mut_unknown_fields())?;
                },
            };
        }
        ::std::result::Result::Ok(())
    }
    #[allow(unused_variables)]
    fn compute_size(&self) -> u64 {
        let mut my_size = 0;
        if let Some(v) = self.token_id {
            my_size += 1 + 8;
        }
        if let Some(v) = self.steamid {
            my_size += 1 + 8;
        }
        if let Some(v) = self.revoke_action {
            my_size += ::protobuf::rt::int32_size(3, v.value());
        }
        if let Some(v) = self.signature.as_ref() {
            my_size += ::protobuf::rt::bytes_size(4, &v);
        }
        my_size += ::protobuf::rt::unknown_fields_size(self.special_fields.unknown_fields());
        self.special_fields.cached_size().set(my_size as u32);
        my_size
    }
    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::Result<()> {
        if let Some(v) = self.token_id {
            os.write_fixed64(1, v)?;
        }
        if let Some(v) = self.steamid {
            os.write_fixed64(2, v)?;
        }
        if let Some(v) = self.revoke_action {
            os.write_enum(3, ::protobuf::EnumOrUnknown::value(&v))?;
        }
        if let Some(v) = self.signature.as_ref() {
            os.write_bytes(4, v)?;
        }
        os.write_unknown_fields(self.special_fields.unknown_fields())?;
        ::std::result::Result::Ok(())
    }
    fn special_fields(&self) -> &::protobuf::SpecialFields {
        &self.special_fields
    }
    fn mut_special_fields(&mut self) -> &mut ::protobuf::SpecialFields {
        &mut self.special_fields
    }
    fn new() -> CAuthentication_RefreshToken_Revoke_Request {
        CAuthentication_RefreshToken_Revoke_Request::new()
    }
    fn clear(&mut self) {
        self.token_id = ::std::option::Option::None;
        self.steamid = ::std::option::Option::None;
        self.revoke_action = ::std::option::Option::None;
        self.signature = ::std::option::Option::None;
        self.special_fields.clear();
    }
    fn default_instance() -> &'static CAuthentication_RefreshToken_Revoke_Request {
        static instance: CAuthentication_RefreshToken_Revoke_Request = CAuthentication_RefreshToken_Revoke_Request {
            token_id: ::std::option::Option::None,
            steamid: ::std::option::Option::None,
            revoke_action: ::std::option::Option::None,
            signature: ::std::option::Option::None,
            special_fields: ::protobuf::SpecialFields::new(),
        };
        &instance
    }
}
#[derive(PartialEq,Clone,Default,Debug)]
pub struct CAuthentication_RefreshToken_Revoke_Response {
    pub special_fields: ::protobuf::SpecialFields,
}
impl<'a> ::std::default::Default for &'a CAuthentication_RefreshToken_Revoke_Response {
    fn default() -> &'a CAuthentication_RefreshToken_Revoke_Response {
        <CAuthentication_RefreshToken_Revoke_Response as ::protobuf::Message>::default_instance()
    }
}
impl CAuthentication_RefreshToken_Revoke_Response {
    pub fn new() -> CAuthentication_RefreshToken_Revoke_Response {
        ::std::default::Default::default()
    }
}
impl ::protobuf::Message for CAuthentication_RefreshToken_Revoke_Response {
    const NAME: &'static str = "CAuthentication_RefreshToken_Revoke_Response";
    fn is_initialized(&self) -> bool {
        true
    }
    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::Result<()> {
        while let Some(tag) = is.read_raw_tag_or_eof()? {
            match tag {
                tag => {
                    ::protobuf::rt::read_unknown_or_skip_group(tag, is, self.special_fields.mut_unknown_fields())?;
                },
            };
        }
        ::std::result::Result::Ok(())
    }
    #[allow(unused_variables)]
    fn compute_size(&self) -> u64 {
        let mut my_size = 0;
        my_size += ::protobuf::rt::unknown_fields_size(self.special_fields.unknown_fields());
        self.special_fields.cached_size().set(my_size as u32);
        my_size
    }
    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::Result<()> {
        os.write_unknown_fields(self.special_fields.unknown_fields())?;
        ::std::result::Result::Ok(())
    }
    fn special_fields(&self) -> &::protobuf::SpecialFields {
        &self.special_fields
    }
    fn mut_special_fields(&mut self) -> &mut ::protobuf::SpecialFields {
        &mut self.special_fields
    }
    fn new() -> CAuthentication_RefreshToken_Revoke_Response {
        CAuthentication_RefreshToken_Revoke_Response::new()
    }
    fn clear(&mut self) {
        self.special_fields.clear();
    }
    fn default_instance() -> &'static CAuthentication_RefreshToken_Revoke_Response {
        static instance: CAuthentication_RefreshToken_Revoke_Response = CAuthentication_RefreshToken_Revoke_Response {
            special_fields: ::protobuf::SpecialFields::new(),
        };
        &instance
    }
}
#[doc = "Asks the server for a list of refresh tokens associated with an account"]
#[derive(PartialEq,Clone,Default,Debug)]
pub struct CAuthenticationSupport_QueryRefreshTokensByAccount_Request {
    pub steamid: ::std::option::Option<u64>,
    pub include_revoked_tokens: ::std::option::Option<bool>,
    pub special_fields: ::protobuf::SpecialFields,
}
impl<'a> ::std::default::Default for &'a CAuthenticationSupport_QueryRefreshTokensByAccount_Request {
    fn default() -> &'a CAuthenticationSupport_QueryRefreshTokensByAccount_Request {
        <CAuthenticationSupport_QueryRefreshTokensByAccount_Request as ::protobuf::Message>::default_instance()
    }
}
impl CAuthenticationSupport_QueryRefreshTokensByAccount_Request {
    pub fn new() -> CAuthenticationSupport_QueryRefreshTokensByAccount_Request {
        ::std::default::Default::default()
    }
    pub fn steamid(&self) -> u64 {
        self.steamid.unwrap_or(0)
    }
    pub fn clear_steamid(&mut self) {
        self.steamid = ::std::option::Option::None;
    }
    pub fn has_steamid(&self) -> bool {
        self.steamid.is_some()
    }
    pub fn set_steamid(&mut self, v: u64) {
        self.steamid = ::std::option::Option::Some(v);
    }
    pub fn include_revoked_tokens(&self) -> bool {
        self.include_revoked_tokens.unwrap_or(false)
    }
    pub fn clear_include_revoked_tokens(&mut self) {
        self.include_revoked_tokens = ::std::option::Option::None;
    }
    pub fn has_include_revoked_tokens(&self) -> bool {
        self.include_revoked_tokens.is_some()
    }
    pub fn set_include_revoked_tokens(&mut self, v: bool) {
        self.include_revoked_tokens = ::std::option::Option::Some(v);
    }
}
impl ::protobuf::Message for CAuthenticationSupport_QueryRefreshTokensByAccount_Request {
    const NAME: &'static str = "CAuthenticationSupport_QueryRefreshTokensByAccount_Request";
    fn is_initialized(&self) -> bool {
        true
    }
    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::Result<()> {
        while let Some(tag) = is.read_raw_tag_or_eof()? {
            match tag {
                9 => {
                    self.steamid = ::std::option::Option::Some(is.read_fixed64()?);
                },
                16 => {
                    self.include_revoked_tokens = ::std::option::Option::Some(is.read_bool()?);
                },
                tag => {
                    ::protobuf::rt::read_unknown_or_skip_group(tag, is, self.special_fields.mut_unknown_fields())?;
                },
            };
        }
        ::std::result::Result::Ok(())
    }
    #[allow(unused_variables)]
    fn compute_size(&self) -> u64 {
        let mut my_size = 0;
        if let Some(v) = self.steamid {
            my_size += 1 + 8;
        }
        if let Some(v) = self.include_revoked_tokens {
            my_size += 1 + 1;
        }
        my_size += ::protobuf::rt::unknown_fields_size(self.special_fields.unknown_fields());
        self.special_fields.cached_size().set(my_size as u32);
        my_size
    }
    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::Result<()> {
        if let Some(v) = self.steamid {
            os.write_fixed64(1, v)?;
        }
        if let Some(v) = self.include_revoked_tokens {
            os.write_bool(2, v)?;
        }
        os.write_unknown_fields(self.special_fields.unknown_fields())?;
        ::std::result::Result::Ok(())
    }
    fn special_fields(&self) -> &::protobuf::SpecialFields {
        &self.special_fields
    }
    fn mut_special_fields(&mut self) -> &mut ::protobuf::SpecialFields {
        &mut self.special_fields
    }
    fn new() -> CAuthenticationSupport_QueryRefreshTokensByAccount_Request {
        CAuthenticationSupport_QueryRefreshTokensByAccount_Request::new()
    }
    fn clear(&mut self) {
        self.steamid = ::std::option::Option::None;
        self.include_revoked_tokens = ::std::option::Option::None;
        self.special_fields.clear();
    }
    fn default_instance() -> &'static CAuthenticationSupport_QueryRefreshTokensByAccount_Request {
        static instance: CAuthenticationSupport_QueryRefreshTokensByAccount_Request = CAuthenticationSupport_QueryRefreshTokensByAccount_Request {
            steamid: ::std::option::Option::None,
            include_revoked_tokens: ::std::option::Option::None,
            special_fields: ::protobuf::SpecialFields::new(),
        };
        &instance
    }
}
#[derive(PartialEq,Clone,Default,Debug)]
pub struct CSupportRefreshTokenDescription {
    pub token_id: ::std::option::Option<u64>,
    pub token_description: ::std::option::Option<::std::string::String>,
    pub time_updated: ::std::option::Option<u32>,
    pub platform_type: ::std::option::Option<::protobuf::EnumOrUnknown<EAuthTokenPlatformType>>,
    pub token_state: ::std::option::Option<::protobuf::EnumOrUnknown<EAuthTokenState>>,
    pub owner_steamid: ::std::option::Option<u64>,
    pub os_platform: ::std::option::Option<u32>,
    pub os_type: ::std::option::Option<i32>,
    pub auth_type: ::std::option::Option<u32>,
    pub gaming_device_type: ::std::option::Option<u32>,
    pub first_seen: ::protobuf::MessageField<csupport_refresh_token_description::TokenUsageEvent>,
    pub last_seen: ::protobuf::MessageField<csupport_refresh_token_description::TokenUsageEvent>,
    pub special_fields: ::protobuf::SpecialFields,
}
impl<'a> ::std::default::Default for &'a CSupportRefreshTokenDescription {
    fn default() -> &'a CSupportRefreshTokenDescription {
        <CSupportRefreshTokenDescription as ::protobuf::Message>::default_instance()
    }
}
impl CSupportRefreshTokenDescription {
    pub fn new() -> CSupportRefreshTokenDescription {
        ::std::default::Default::default()
    }
    pub fn token_id(&self) -> u64 {
        self.token_id.unwrap_or(0)
    }
    pub fn clear_token_id(&mut self) {
        self.token_id = ::std::option::Option::None;
    }
    pub fn has_token_id(&self) -> bool {
        self.token_id.is_some()
    }
    pub fn set_token_id(&mut self, v: u64) {
        self.token_id = ::std::option::Option::Some(v);
    }
    pub fn token_description(&self) -> &str {
        match self.token_description.as_ref() {
            Some(v) => v,
            None => "",
        }
    }
    pub fn clear_token_description(&mut self) {
        self.token_description = ::std::option::Option::None;
    }
    pub fn has_token_description(&self) -> bool {
        self.token_description.is_some()
    }
    pub fn set_token_description(&mut self, v: ::std::string::String) {
        self.token_description = ::std::option::Option::Some(v);
    }
    pub fn mut_token_description(&mut self) -> &mut ::std::string::String {
        if self.token_description.is_none() {
            self.token_description = ::std::option::Option::Some(::std::string::String::new());
        }
        self.token_description.as_mut().unwrap()
    }
    pub fn take_token_description(&mut self) -> ::std::string::String {
        self.token_description.take().unwrap_or_else(|| ::std::string::String::new())
    }
    pub fn time_updated(&self) -> u32 {
        self.time_updated.unwrap_or(0)
    }
    pub fn clear_time_updated(&mut self) {
        self.time_updated = ::std::option::Option::None;
    }
    pub fn has_time_updated(&self) -> bool {
        self.time_updated.is_some()
    }
    pub fn set_time_updated(&mut self, v: u32) {
        self.time_updated = ::std::option::Option::Some(v);
    }
    pub fn platform_type(&self) -> EAuthTokenPlatformType {
        match self.platform_type {
            Some(e) => e.enum_value_or(EAuthTokenPlatformType::k_EAuthTokenPlatformType_Unknown),
            None => EAuthTokenPlatformType::k_EAuthTokenPlatformType_Unknown,
        }
    }
    pub fn clear_platform_type(&mut self) {
        self.platform_type = ::std::option::Option::None;
    }
    pub fn has_platform_type(&self) -> bool {
        self.platform_type.is_some()
    }
    pub fn set_platform_type(&mut self, v: EAuthTokenPlatformType) {
        self.platform_type = ::std::option::Option::Some(::protobuf::EnumOrUnknown::new(v));
    }
    pub fn token_state(&self) -> EAuthTokenState {
        match self.token_state {
            Some(e) => e.enum_value_or(EAuthTokenState::k_EAuthTokenState_Invalid),
            None => EAuthTokenState::k_EAuthTokenState_Invalid,
        }
    }
    pub fn clear_token_state(&mut self) {
        self.token_state = ::std::option::Option::None;
    }
    pub fn has_token_state(&self) -> bool {
        self.token_state.is_some()
    }
    pub fn set_token_state(&mut self, v: EAuthTokenState) {
        self.token_state = ::std::option::Option::Some(::protobuf::EnumOrUnknown::new(v));
    }
    pub fn owner_steamid(&self) -> u64 {
        self.owner_steamid.unwrap_or(0)
    }
    pub fn clear_owner_steamid(&mut self) {
        self.owner_steamid = ::std::option::Option::None;
    }
    pub fn has_owner_steamid(&self) -> bool {
        self.owner_steamid.is_some()
    }
    pub fn set_owner_steamid(&mut self, v: u64) {
        self.owner_steamid = ::std::option::Option::Some(v);
    }
    pub fn os_platform(&self) -> u32 {
        self.os_platform.unwrap_or(0)
    }
    pub fn clear_os_platform(&mut self) {
        self.os_platform = ::std::option::Option::None;
    }
    pub fn has_os_platform(&self) -> bool {
        self.os_platform.is_some()
    }
    pub fn set_os_platform(&mut self, v: u32) {
        self.os_platform = ::std::option::Option::Some(v);
    }
    pub fn os_type(&self) -> i32 {
        self.os_type.unwrap_or(0)
    }
    pub fn clear_os_type(&mut self) {
        self.os_type = ::std::option::Option::None;
    }
    pub fn has_os_type(&self) -> bool {
        self.os_type.is_some()
    }
    pub fn set_os_type(&mut self, v: i32) {
        self.os_type = ::std::option::Option::Some(v);
    }
    pub fn auth_type(&self) -> u32 {
        self.auth_type.unwrap_or(0)
    }
    pub fn clear_auth_type(&mut self) {
        self.auth_type = ::std::option::Option::None;
    }
    pub fn has_auth_type(&self) -> bool {
        self.auth_type.is_some()
    }
    pub fn set_auth_type(&mut self, v: u32) {
        self.auth_type = ::std::option::Option::Some(v);
    }
    pub fn gaming_device_type(&self) -> u32 {
        self.gaming_device_type.unwrap_or(0)
    }
    pub fn clear_gaming_device_type(&mut self) {
        self.gaming_device_type = ::std::option::Option::None;
    }
    pub fn has_gaming_device_type(&self) -> bool {
        self.gaming_device_type.is_some()
    }
    pub fn set_gaming_device_type(&mut self, v: u32) {
        self.gaming_device_type = ::std::option::Option::Some(v);
    }
}
impl ::protobuf::Message for CSupportRefreshTokenDescription {
    const NAME: &'static str = "CSupportRefreshTokenDescription";
    fn is_initialized(&self) -> bool {
        true
    }
    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::Result<()> {
        while let Some(tag) = is.read_raw_tag_or_eof()? {
            match tag {
                9 => {
                    self.token_id = ::std::option::Option::Some(is.read_fixed64()?);
                },
                18 => {
                    self.token_description = ::std::option::Option::Some(is.read_string()?);
                },
                24 => {
                    self.time_updated = ::std::option::Option::Some(is.read_uint32()?);
                },
                32 => {
                    self.platform_type = ::std::option::Option::Some(is.read_enum_or_unknown()?);
                },
                40 => {
                    self.token_state = ::std::option::Option::Some(is.read_enum_or_unknown()?);
                },
                49 => {
                    self.owner_steamid = ::std::option::Option::Some(is.read_fixed64()?);
                },
                56 => {
                    self.os_platform = ::std::option::Option::Some(is.read_uint32()?);
                },
                64 => {
                    self.os_type = ::std::option::Option::Some(is.read_int32()?);
                },
                72 => {
                    self.auth_type = ::std::option::Option::Some(is.read_uint32()?);
                },
                80 => {
                    self.gaming_device_type = ::std::option::Option::Some(is.read_uint32()?);
                },
                90 => {
                    ::protobuf::rt::read_singular_message_into_field(is, &mut self.first_seen)?;
                },
                98 => {
                    ::protobuf::rt::read_singular_message_into_field(is, &mut self.last_seen)?;
                },
                tag => {
                    ::protobuf::rt::read_unknown_or_skip_group(tag, is, self.special_fields.mut_unknown_fields())?;
                },
            };
        }
        ::std::result::Result::Ok(())
    }
    #[allow(unused_variables)]
    fn compute_size(&self) -> u64 {
        let mut my_size = 0;
        if let Some(v) = self.token_id {
            my_size += 1 + 8;
        }
        if let Some(v) = self.token_description.as_ref() {
            my_size += ::protobuf::rt::string_size(2, &v);
        }
        if let Some(v) = self.time_updated {
            my_size += ::protobuf::rt::uint32_size(3, v);
        }
        if let Some(v) = self.platform_type {
            my_size += ::protobuf::rt::int32_size(4, v.value());
        }
        if let Some(v) = self.token_state {
            my_size += ::protobuf::rt::int32_size(5, v.value());
        }
        if let Some(v) = self.owner_steamid {
            my_size += 1 + 8;
        }
        if let Some(v) = self.os_platform {
            my_size += ::protobuf::rt::uint32_size(7, v);
        }
        if let Some(v) = self.os_type {
            my_size += ::protobuf::rt::int32_size(8, v);
        }
        if let Some(v) = self.auth_type {
            my_size += ::protobuf::rt::uint32_size(9, v);
        }
        if let Some(v) = self.gaming_device_type {
            my_size += ::protobuf::rt::uint32_size(10, v);
        }
        if let Some(v) = self.first_seen.as_ref() {
            let len = v.compute_size();
            my_size += 1 + ::protobuf::rt::compute_raw_varint64_size(len) + len;
        }
        if let Some(v) = self.last_seen.as_ref() {
            let len = v.compute_size();
            my_size += 1 + ::protobuf::rt::compute_raw_varint64_size(len) + len;
        }
        my_size += ::protobuf::rt::unknown_fields_size(self.special_fields.unknown_fields());
        self.special_fields.cached_size().set(my_size as u32);
        my_size
    }
    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::Result<()> {
        if let Some(v) = self.token_id {
            os.write_fixed64(1, v)?;
        }
        if let Some(v) = self.token_description.as_ref() {
            os.write_string(2, v)?;
        }
        if let Some(v) = self.time_updated {
            os.write_uint32(3, v)?;
        }
        if let Some(v) = self.platform_type {
            os.write_enum(4, ::protobuf::EnumOrUnknown::value(&v))?;
        }
        if let Some(v) = self.token_state {
            os.write_enum(5, ::protobuf::EnumOrUnknown::value(&v))?;
        }
        if let Some(v) = self.owner_steamid {
            os.write_fixed64(6, v)?;
        }
        if let Some(v) = self.os_platform {
            os.write_uint32(7, v)?;
        }
        if let Some(v) = self.os_type {
            os.write_int32(8, v)?;
        }
        if let Some(v) = self.auth_type {
            os.write_uint32(9, v)?;
        }
        if let Some(v) = self.gaming_device_type {
            os.write_uint32(10, v)?;
        }
        if let Some(v) = self.first_seen.as_ref() {
            ::protobuf::rt::write_message_field_with_cached_size(11, v, os)?;
        }
        if let Some(v) = self.last_seen.as_ref() {
            ::protobuf::rt::write_message_field_with_cached_size(12, v, os)?;
        }
        os.write_unknown_fields(self.special_fields.unknown_fields())?;
        ::std::result::Result::Ok(())
    }
    fn special_fields(&self) -> &::protobuf::SpecialFields {
        &self.special_fields
    }
    fn mut_special_fields(&mut self) -> &mut ::protobuf::SpecialFields {
        &mut self.special_fields
    }
    fn new() -> CSupportRefreshTokenDescription {
        CSupportRefreshTokenDescription::new()
    }
    fn clear(&mut self) {
        self.token_id = ::std::option::Option::None;
        self.token_description = ::std::option::Option::None;
        self.time_updated = ::std::option::Option::None;
        self.platform_type = ::std::option::Option::None;
        self.token_state = ::std::option::Option::None;
        self.owner_steamid = ::std::option::Option::None;
        self.os_platform = ::std::option::Option::None;
        self.os_type = ::std::option::Option::None;
        self.auth_type = ::std::option::Option::None;
        self.gaming_device_type = ::std::option::Option::None;
        self.first_seen.clear();
        self.last_seen.clear();
        self.special_fields.clear();
    }
    fn default_instance() -> &'static CSupportRefreshTokenDescription {
        static instance: CSupportRefreshTokenDescription = CSupportRefreshTokenDescription {
            token_id: ::std::option::Option::None,
            token_description: ::std::option::Option::None,
            time_updated: ::std::option::Option::None,
            platform_type: ::std::option::Option::None,
            token_state: ::std::option::Option::None,
            owner_steamid: ::std::option::Option::None,
            os_platform: ::std::option::Option::None,
            os_type: ::std::option::Option::None,
            auth_type: ::std::option::Option::None,
            gaming_device_type: ::std::option::Option::None,
            first_seen: ::protobuf::MessageField::none(),
            last_seen: ::protobuf::MessageField::none(),
            special_fields: ::protobuf::SpecialFields::new(),
        };
        &instance
    }
}
pub mod csupport_refresh_token_description {
    #[derive(PartialEq,Clone,Default,Debug)]
    pub struct TokenUsageEvent {
        pub time: ::std::option::Option<u32>,
        pub ip: ::protobuf::MessageField<super::super::steammessages_base::CMsgIPAddress>,
        pub country: ::std::option::Option<::std::string::String>,
        pub state: ::std::option::Option<::std::string::String>,
        pub city: ::std::option::Option<::std::string::String>,
        pub special_fields: ::protobuf::SpecialFields,
    }
    impl<'a> ::std::default::Default for &'a TokenUsageEvent {
        fn default() -> &'a TokenUsageEvent {
            <TokenUsageEvent as ::protobuf::Message>::default_instance()
        }
    }
    impl TokenUsageEvent {
        pub fn new() -> TokenUsageEvent {
            ::std::default::Default::default()
        }
        pub fn time(&self) -> u32 {
            self.time.unwrap_or(0)
        }
        pub fn clear_time(&mut self) {
            self.time = ::std::option::Option::None;
        }
        pub fn has_time(&self) -> bool {
            self.time.is_some()
        }
        pub fn set_time(&mut self, v: u32) {
            self.time = ::std::option::Option::Some(v);
        }
        pub fn country(&self) -> &str {
            match self.country.as_ref() {
                Some(v) => v,
                None => "",
            }
        }
        pub fn clear_country(&mut self) {
            self.country = ::std::option::Option::None;
        }
        pub fn has_country(&self) -> bool {
            self.country.is_some()
        }
        pub fn set_country(&mut self, v: ::std::string::String) {
            self.country = ::std::option::Option::Some(v);
        }
        pub fn mut_country(&mut self) -> &mut ::std::string::String {
            if self.country.is_none() {
                self.country = ::std::option::Option::Some(::std::string::String::new());
            }
            self.country.as_mut().unwrap()
        }
        pub fn take_country(&mut self) -> ::std::string::String {
            self.country.take().unwrap_or_else(|| ::std::string::String::new())
        }
        pub fn state(&self) -> &str {
            match self.state.as_ref() {
                Some(v) => v,
                None => "",
            }
        }
        pub fn clear_state(&mut self) {
            self.state = ::std::option::Option::None;
        }
        pub fn has_state(&self) -> bool {
            self.state.is_some()
        }
        pub fn set_state(&mut self, v: ::std::string::String) {
            self.state = ::std::option::Option::Some(v);
        }
        pub fn mut_state(&mut self) -> &mut ::std::string::String {
            if self.state.is_none() {
                self.state = ::std::option::Option::Some(::std::string::String::new());
            }
            self.state.as_mut().unwrap()
        }
        pub fn take_state(&mut self) -> ::std::string::String {
            self.state.take().unwrap_or_else(|| ::std::string::String::new())
        }
        pub fn city(&self) -> &str {
            match self.city.as_ref() {
                Some(v) => v,
                None => "",
            }
        }
        pub fn clear_city(&mut self) {
            self.city = ::std::option::Option::None;
        }
        pub fn has_city(&self) -> bool {
            self.city.is_some()
        }
        pub fn set_city(&mut self, v: ::std::string::String) {
            self.city = ::std::option::Option::Some(v);
        }
        pub fn mut_city(&mut self) -> &mut ::std::string::String {
            if self.city.is_none() {
                self.city = ::std::option::Option::Some(::std::string::String::new());
            }
            self.city.as_mut().unwrap()
        }
        pub fn take_city(&mut self) -> ::std::string::String {
            self.city.take().unwrap_or_else(|| ::std::string::String::new())
        }
    }
    impl ::protobuf::Message for TokenUsageEvent {
        const NAME: &'static str = "TokenUsageEvent";
        fn is_initialized(&self) -> bool {
            true
        }
        fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::Result<()> {
            while let Some(tag) = is.read_raw_tag_or_eof()? {
                match tag {
                    8 => {
                        self.time = ::std::option::Option::Some(is.read_uint32()?);
                    },
                    18 => {
                        ::protobuf::rt::read_singular_message_into_field(is, &mut self.ip)?;
                    },
                    26 => {
                        self.country = ::std::option::Option::Some(is.read_string()?);
                    },
                    34 => {
                        self.state = ::std::option::Option::Some(is.read_string()?);
                    },
                    42 => {
                        self.city = ::std::option::Option::Some(is.read_string()?);
                    },
                    tag => {
                        ::protobuf::rt::read_unknown_or_skip_group(tag, is, self.special_fields.mut_unknown_fields())?;
                    },
                };
            }
            ::std::result::Result::Ok(())
        }
        #[allow(unused_variables)]
        fn compute_size(&self) -> u64 {
            let mut my_size = 0;
            if let Some(v) = self.time {
                my_size += ::protobuf::rt::uint32_size(1, v);
            }
            if let Some(v) = self.ip.as_ref() {
                let len = v.compute_size();
                my_size += 1 + ::protobuf::rt::compute_raw_varint64_size(len) + len;
            }
            if let Some(v) = self.country.as_ref() {
                my_size += ::protobuf::rt::string_size(3, &v);
            }
            if let Some(v) = self.state.as_ref() {
                my_size += ::protobuf::rt::string_size(4, &v);
            }
            if let Some(v) = self.city.as_ref() {
                my_size += ::protobuf::rt::string_size(5, &v);
            }
            my_size += ::protobuf::rt::unknown_fields_size(self.special_fields.unknown_fields());
            self.special_fields.cached_size().set(my_size as u32);
            my_size
        }
        fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::Result<()> {
            if let Some(v) = self.time {
                os.write_uint32(1, v)?;
            }
            if let Some(v) = self.ip.as_ref() {
                ::protobuf::rt::write_message_field_with_cached_size(2, v, os)?;
            }
            if let Some(v) = self.country.as_ref() {
                os.write_string(3, v)?;
            }
            if let Some(v) = self.state.as_ref() {
                os.write_string(4, v)?;
            }
            if let Some(v) = self.city.as_ref() {
                os.write_string(5, v)?;
            }
            os.write_unknown_fields(self.special_fields.unknown_fields())?;
            ::std::result::Result::Ok(())
        }
        fn special_fields(&self) -> &::protobuf::SpecialFields {
            &self.special_fields
        }
        fn mut_special_fields(&mut self) -> &mut ::protobuf::SpecialFields {
            &mut self.special_fields
        }
        fn new() -> TokenUsageEvent {
            TokenUsageEvent::new()
        }
        fn clear(&mut self) {
            self.time = ::std::option::Option::None;
            self.ip.clear();
            self.country = ::std::option::Option::None;
            self.state = ::std::option::Option::None;
            self.city = ::std::option::Option::None;
            self.special_fields.clear();
        }
        fn default_instance() -> &'static TokenUsageEvent {
            static instance: TokenUsageEvent = TokenUsageEvent {
                time: ::std::option::Option::None,
                ip: ::protobuf::MessageField::none(),
                country: ::std::option::Option::None,
                state: ::std::option::Option::None,
                city: ::std::option::Option::None,
                special_fields: ::protobuf::SpecialFields::new(),
            };
            &instance
        }
    }
}
#[derive(PartialEq,Clone,Default,Debug)]
pub struct CAuthenticationSupport_QueryRefreshTokensByAccount_Response {
    pub refresh_tokens: ::std::vec::Vec<CSupportRefreshTokenDescription>,
    pub last_token_reset: ::std::option::Option<i32>,
    pub special_fields: ::protobuf::SpecialFields,
}
impl<'a> ::std::default::Default for &'a CAuthenticationSupport_QueryRefreshTokensByAccount_Response {
    fn default() -> &'a CAuthenticationSupport_QueryRefreshTokensByAccount_Response {
        <CAuthenticationSupport_QueryRefreshTokensByAccount_Response as ::protobuf::Message>::default_instance()
    }
}
impl CAuthenticationSupport_QueryRefreshTokensByAccount_Response {
    pub fn new() -> CAuthenticationSupport_QueryRefreshTokensByAccount_Response {
        ::std::default::Default::default()
    }
    pub fn last_token_reset(&self) -> i32 {
        self.last_token_reset.unwrap_or(0)
    }
    pub fn clear_last_token_reset(&mut self) {
        self.last_token_reset = ::std::option::Option::None;
    }
    pub fn has_last_token_reset(&self) -> bool {
        self.last_token_reset.is_some()
    }
    pub fn set_last_token_reset(&mut self, v: i32) {
        self.last_token_reset = ::std::option::Option::Some(v);
    }
}
impl ::protobuf::Message for CAuthenticationSupport_QueryRefreshTokensByAccount_Response {
    const NAME: &'static str = "CAuthenticationSupport_QueryRefreshTokensByAccount_Response";
    fn is_initialized(&self) -> bool {
        true
    }
    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::Result<()> {
        while let Some(tag) = is.read_raw_tag_or_eof()? {
            match tag {
                10 => {
                    self.refresh_tokens.push(is.read_message()?);
                },
                16 => {
                    self.last_token_reset = ::std::option::Option::Some(is.read_int32()?);
                },
                tag => {
                    ::protobuf::rt::read_unknown_or_skip_group(tag, is, self.special_fields.mut_unknown_fields())?;
                },
            };
        }
        ::std::result::Result::Ok(())
    }
    #[allow(unused_variables)]
    fn compute_size(&self) -> u64 {
        let mut my_size = 0;
        for value in &self.refresh_tokens {
            let len = value.compute_size();
            my_size += 1 + ::protobuf::rt::compute_raw_varint64_size(len) + len;
        };
        if let Some(v) = self.last_token_reset {
            my_size += ::protobuf::rt::int32_size(2, v);
        }
        my_size += ::protobuf::rt::unknown_fields_size(self.special_fields.unknown_fields());
        self.special_fields.cached_size().set(my_size as u32);
        my_size
    }
    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::Result<()> {
        for v in &self.refresh_tokens {
            ::protobuf::rt::write_message_field_with_cached_size(1, v, os)?;
        };
        if let Some(v) = self.last_token_reset {
            os.write_int32(2, v)?;
        }
        os.write_unknown_fields(self.special_fields.unknown_fields())?;
        ::std::result::Result::Ok(())
    }
    fn special_fields(&self) -> &::protobuf::SpecialFields {
        &self.special_fields
    }
    fn mut_special_fields(&mut self) -> &mut ::protobuf::SpecialFields {
        &mut self.special_fields
    }
    fn new() -> CAuthenticationSupport_QueryRefreshTokensByAccount_Response {
        CAuthenticationSupport_QueryRefreshTokensByAccount_Response::new()
    }
    fn clear(&mut self) {
        self.refresh_tokens.clear();
        self.last_token_reset = ::std::option::Option::None;
        self.special_fields.clear();
    }
    fn default_instance() -> &'static CAuthenticationSupport_QueryRefreshTokensByAccount_Response {
        static instance: CAuthenticationSupport_QueryRefreshTokensByAccount_Response = CAuthenticationSupport_QueryRefreshTokensByAccount_Response {
            refresh_tokens: ::std::vec::Vec::new(),
            last_token_reset: ::std::option::Option::None,
            special_fields: ::protobuf::SpecialFields::new(),
        };
        &instance
    }
}
#[doc = "Asks the server for a list of refresh tokens associated with an account"]
#[derive(PartialEq,Clone,Default,Debug)]
pub struct CAuthenticationSupport_QueryRefreshTokenByID_Request {
    pub token_id: ::std::option::Option<u64>,
    pub special_fields: ::protobuf::SpecialFields,
}
impl<'a> ::std::default::Default for &'a CAuthenticationSupport_QueryRefreshTokenByID_Request {
    fn default() -> &'a CAuthenticationSupport_QueryRefreshTokenByID_Request {
        <CAuthenticationSupport_QueryRefreshTokenByID_Request as ::protobuf::Message>::default_instance()
    }
}
impl CAuthenticationSupport_QueryRefreshTokenByID_Request {
    pub fn new() -> CAuthenticationSupport_QueryRefreshTokenByID_Request {
        ::std::default::Default::default()
    }
    pub fn token_id(&self) -> u64 {
        self.token_id.unwrap_or(0)
    }
    pub fn clear_token_id(&mut self) {
        self.token_id = ::std::option::Option::None;
    }
    pub fn has_token_id(&self) -> bool {
        self.token_id.is_some()
    }
    pub fn set_token_id(&mut self, v: u64) {
        self.token_id = ::std::option::Option::Some(v);
    }
}
impl ::protobuf::Message for CAuthenticationSupport_QueryRefreshTokenByID_Request {
    const NAME: &'static str = "CAuthenticationSupport_QueryRefreshTokenByID_Request";
    fn is_initialized(&self) -> bool {
        true
    }
    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::Result<()> {
        while let Some(tag) = is.read_raw_tag_or_eof()? {
            match tag {
                9 => {
                    self.token_id = ::std::option::Option::Some(is.read_fixed64()?);
                },
                tag => {
                    ::protobuf::rt::read_unknown_or_skip_group(tag, is, self.special_fields.mut_unknown_fields())?;
                },
            };
        }
        ::std::result::Result::Ok(())
    }
    #[allow(unused_variables)]
    fn compute_size(&self) -> u64 {
        let mut my_size = 0;
        if let Some(v) = self.token_id {
            my_size += 1 + 8;
        }
        my_size += ::protobuf::rt::unknown_fields_size(self.special_fields.unknown_fields());
        self.special_fields.cached_size().set(my_size as u32);
        my_size
    }
    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::Result<()> {
        if let Some(v) = self.token_id {
            os.write_fixed64(1, v)?;
        }
        os.write_unknown_fields(self.special_fields.unknown_fields())?;
        ::std::result::Result::Ok(())
    }
    fn special_fields(&self) -> &::protobuf::SpecialFields {
        &self.special_fields
    }
    fn mut_special_fields(&mut self) -> &mut ::protobuf::SpecialFields {
        &mut self.special_fields
    }
    fn new() -> CAuthenticationSupport_QueryRefreshTokenByID_Request {
        CAuthenticationSupport_QueryRefreshTokenByID_Request::new()
    }
    fn clear(&mut self) {
        self.token_id = ::std::option::Option::None;
        self.special_fields.clear();
    }
    fn default_instance() -> &'static CAuthenticationSupport_QueryRefreshTokenByID_Request {
        static instance: CAuthenticationSupport_QueryRefreshTokenByID_Request = CAuthenticationSupport_QueryRefreshTokenByID_Request {
            token_id: ::std::option::Option::None,
            special_fields: ::protobuf::SpecialFields::new(),
        };
        &instance
    }
}
#[derive(PartialEq,Clone,Default,Debug)]
pub struct CAuthenticationSupport_QueryRefreshTokenByID_Response {
    pub refresh_tokens: ::std::vec::Vec<CSupportRefreshTokenDescription>,
    pub special_fields: ::protobuf::SpecialFields,
}
impl<'a> ::std::default::Default for &'a CAuthenticationSupport_QueryRefreshTokenByID_Response {
    fn default() -> &'a CAuthenticationSupport_QueryRefreshTokenByID_Response {
        <CAuthenticationSupport_QueryRefreshTokenByID_Response as ::protobuf::Message>::default_instance()
    }
}
impl CAuthenticationSupport_QueryRefreshTokenByID_Response {
    pub fn new() -> CAuthenticationSupport_QueryRefreshTokenByID_Response {
        ::std::default::Default::default()
    }
}
impl ::protobuf::Message for CAuthenticationSupport_QueryRefreshTokenByID_Response {
    const NAME: &'static str = "CAuthenticationSupport_QueryRefreshTokenByID_Response";
    fn is_initialized(&self) -> bool {
        true
    }
    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::Result<()> {
        while let Some(tag) = is.read_raw_tag_or_eof()? {
            match tag {
                10 => {
                    self.refresh_tokens.push(is.read_message()?);
                },
                tag => {
                    ::protobuf::rt::read_unknown_or_skip_group(tag, is, self.special_fields.mut_unknown_fields())?;
                },
            };
        }
        ::std::result::Result::Ok(())
    }
    #[allow(unused_variables)]
    fn compute_size(&self) -> u64 {
        let mut my_size = 0;
        for value in &self.refresh_tokens {
            let len = value.compute_size();
            my_size += 1 + ::protobuf::rt::compute_raw_varint64_size(len) + len;
        };
        my_size += ::protobuf::rt::unknown_fields_size(self.special_fields.unknown_fields());
        self.special_fields.cached_size().set(my_size as u32);
        my_size
    }
    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::Result<()> {
        for v in &self.refresh_tokens {
            ::protobuf::rt::write_message_field_with_cached_size(1, v, os)?;
        };
        os.write_unknown_fields(self.special_fields.unknown_fields())?;
        ::std::result::Result::Ok(())
    }
    fn special_fields(&self) -> &::protobuf::SpecialFields {
        &self.special_fields
    }
    fn mut_special_fields(&mut self) -> &mut ::protobuf::SpecialFields {
        &mut self.special_fields
    }
    fn new() -> CAuthenticationSupport_QueryRefreshTokenByID_Response {
        CAuthenticationSupport_QueryRefreshTokenByID_Response::new()
    }
    fn clear(&mut self) {
        self.refresh_tokens.clear();
        self.special_fields.clear();
    }
    fn default_instance() -> &'static CAuthenticationSupport_QueryRefreshTokenByID_Response {
        static instance: CAuthenticationSupport_QueryRefreshTokenByID_Response = CAuthenticationSupport_QueryRefreshTokenByID_Response {
            refresh_tokens: ::std::vec::Vec::new(),
            special_fields: ::protobuf::SpecialFields::new(),
        };
        &instance
    }
}
#[doc = "Revokes a user's auth token"]
#[derive(PartialEq,Clone,Default,Debug)]
pub struct CAuthenticationSupport_RevokeToken_Request {
    pub token_id: ::std::option::Option<u64>,
    pub steamid: ::std::option::Option<u64>,
    pub special_fields: ::protobuf::SpecialFields,
}
impl<'a> ::std::default::Default for &'a CAuthenticationSupport_RevokeToken_Request {
    fn default() -> &'a CAuthenticationSupport_RevokeToken_Request {
        <CAuthenticationSupport_RevokeToken_Request as ::protobuf::Message>::default_instance()
    }
}
impl CAuthenticationSupport_RevokeToken_Request {
    pub fn new() -> CAuthenticationSupport_RevokeToken_Request {
        ::std::default::Default::default()
    }
    pub fn token_id(&self) -> u64 {
        self.token_id.unwrap_or(0)
    }
    pub fn clear_token_id(&mut self) {
        self.token_id = ::std::option::Option::None;
    }
    pub fn has_token_id(&self) -> bool {
        self.token_id.is_some()
    }
    pub fn set_token_id(&mut self, v: u64) {
        self.token_id = ::std::option::Option::Some(v);
    }
    pub fn steamid(&self) -> u64 {
        self.steamid.unwrap_or(0)
    }
    pub fn clear_steamid(&mut self) {
        self.steamid = ::std::option::Option::None;
    }
    pub fn has_steamid(&self) -> bool {
        self.steamid.is_some()
    }
    pub fn set_steamid(&mut self, v: u64) {
        self.steamid = ::std::option::Option::Some(v);
    }
}
impl ::protobuf::Message for CAuthenticationSupport_RevokeToken_Request {
    const NAME: &'static str = "CAuthenticationSupport_RevokeToken_Request";
    fn is_initialized(&self) -> bool {
        true
    }
    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::Result<()> {
        while let Some(tag) = is.read_raw_tag_or_eof()? {
            match tag {
                9 => {
                    self.token_id = ::std::option::Option::Some(is.read_fixed64()?);
                },
                17 => {
                    self.steamid = ::std::option::Option::Some(is.read_fixed64()?);
                },
                tag => {
                    ::protobuf::rt::read_unknown_or_skip_group(tag, is, self.special_fields.mut_unknown_fields())?;
                },
            };
        }
        ::std::result::Result::Ok(())
    }
    #[allow(unused_variables)]
    fn compute_size(&self) -> u64 {
        let mut my_size = 0;
        if let Some(v) = self.token_id {
            my_size += 1 + 8;
        }
        if let Some(v) = self.steamid {
            my_size += 1 + 8;
        }
        my_size += ::protobuf::rt::unknown_fields_size(self.special_fields.unknown_fields());
        self.special_fields.cached_size().set(my_size as u32);
        my_size
    }
    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::Result<()> {
        if let Some(v) = self.token_id {
            os.write_fixed64(1, v)?;
        }
        if let Some(v) = self.steamid {
            os.write_fixed64(2, v)?;
        }
        os.write_unknown_fields(self.special_fields.unknown_fields())?;
        ::std::result::Result::Ok(())
    }
    fn special_fields(&self) -> &::protobuf::SpecialFields {
        &self.special_fields
    }
    fn mut_special_fields(&mut self) -> &mut ::protobuf::SpecialFields {
        &mut self.special_fields
    }
    fn new() -> CAuthenticationSupport_RevokeToken_Request {
        CAuthenticationSupport_RevokeToken_Request::new()
    }
    fn clear(&mut self) {
        self.token_id = ::std::option::Option::None;
        self.steamid = ::std::option::Option::None;
        self.special_fields.clear();
    }
    fn default_instance() -> &'static CAuthenticationSupport_RevokeToken_Request {
        static instance: CAuthenticationSupport_RevokeToken_Request = CAuthenticationSupport_RevokeToken_Request {
            token_id: ::std::option::Option::None,
            steamid: ::std::option::Option::None,
            special_fields: ::protobuf::SpecialFields::new(),
        };
        &instance
    }
}
#[derive(PartialEq,Clone,Default,Debug)]
pub struct CAuthenticationSupport_RevokeToken_Response {
    pub special_fields: ::protobuf::SpecialFields,
}
impl<'a> ::std::default::Default for &'a CAuthenticationSupport_RevokeToken_Response {
    fn default() -> &'a CAuthenticationSupport_RevokeToken_Response {
        <CAuthenticationSupport_RevokeToken_Response as ::protobuf::Message>::default_instance()
    }
}
impl CAuthenticationSupport_RevokeToken_Response {
    pub fn new() -> CAuthenticationSupport_RevokeToken_Response {
        ::std::default::Default::default()
    }
}
impl ::protobuf::Message for CAuthenticationSupport_RevokeToken_Response {
    const NAME: &'static str = "CAuthenticationSupport_RevokeToken_Response";
    fn is_initialized(&self) -> bool {
        true
    }
    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::Result<()> {
        while let Some(tag) = is.read_raw_tag_or_eof()? {
            match tag {
                tag => {
                    ::protobuf::rt::read_unknown_or_skip_group(tag, is, self.special_fields.mut_unknown_fields())?;
                },
            };
        }
        ::std::result::Result::Ok(())
    }
    #[allow(unused_variables)]
    fn compute_size(&self) -> u64 {
        let mut my_size = 0;
        my_size += ::protobuf::rt::unknown_fields_size(self.special_fields.unknown_fields());
        self.special_fields.cached_size().set(my_size as u32);
        my_size
    }
    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::Result<()> {
        os.write_unknown_fields(self.special_fields.unknown_fields())?;
        ::std::result::Result::Ok(())
    }
    fn special_fields(&self) -> &::protobuf::SpecialFields {
        &self.special_fields
    }
    fn mut_special_fields(&mut self) -> &mut ::protobuf::SpecialFields {
        &mut self.special_fields
    }
    fn new() -> CAuthenticationSupport_RevokeToken_Response {
        CAuthenticationSupport_RevokeToken_Response::new()
    }
    fn clear(&mut self) {
        self.special_fields.clear();
    }
    fn default_instance() -> &'static CAuthenticationSupport_RevokeToken_Response {
        static instance: CAuthenticationSupport_RevokeToken_Response = CAuthenticationSupport_RevokeToken_Response {
            special_fields: ::protobuf::SpecialFields::new(),
        };
        &instance
    }
}
#[doc = "Gets the audit history for a user's auth token"]
#[derive(PartialEq,Clone,Default,Debug)]
pub struct CAuthenticationSupport_GetTokenHistory_Request {
    pub token_id: ::std::option::Option<u64>,
    pub special_fields: ::protobuf::SpecialFields,
}
impl<'a> ::std::default::Default for &'a CAuthenticationSupport_GetTokenHistory_Request {
    fn default() -> &'a CAuthenticationSupport_GetTokenHistory_Request {
        <CAuthenticationSupport_GetTokenHistory_Request as ::protobuf::Message>::default_instance()
    }
}
impl CAuthenticationSupport_GetTokenHistory_Request {
    pub fn new() -> CAuthenticationSupport_GetTokenHistory_Request {
        ::std::default::Default::default()
    }
    pub fn token_id(&self) -> u64 {
        self.token_id.unwrap_or(0)
    }
    pub fn clear_token_id(&mut self) {
        self.token_id = ::std::option::Option::None;
    }
    pub fn has_token_id(&self) -> bool {
        self.token_id.is_some()
    }
    pub fn set_token_id(&mut self, v: u64) {
        self.token_id = ::std::option::Option::Some(v);
    }
}
impl ::protobuf::Message for CAuthenticationSupport_GetTokenHistory_Request {
    const NAME: &'static str = "CAuthenticationSupport_GetTokenHistory_Request";
    fn is_initialized(&self) -> bool {
        true
    }
    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::Result<()> {
        while let Some(tag) = is.read_raw_tag_or_eof()? {
            match tag {
                9 => {
                    self.token_id = ::std::option::Option::Some(is.read_fixed64()?);
                },
                tag => {
                    ::protobuf::rt::read_unknown_or_skip_group(tag, is, self.special_fields.mut_unknown_fields())?;
                },
            };
        }
        ::std::result::Result::Ok(())
    }
    #[allow(unused_variables)]
    fn compute_size(&self) -> u64 {
        let mut my_size = 0;
        if let Some(v) = self.token_id {
            my_size += 1 + 8;
        }
        my_size += ::protobuf::rt::unknown_fields_size(self.special_fields.unknown_fields());
        self.special_fields.cached_size().set(my_size as u32);
        my_size
    }
    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::Result<()> {
        if let Some(v) = self.token_id {
            os.write_fixed64(1, v)?;
        }
        os.write_unknown_fields(self.special_fields.unknown_fields())?;
        ::std::result::Result::Ok(())
    }
    fn special_fields(&self) -> &::protobuf::SpecialFields {
        &self.special_fields
    }
    fn mut_special_fields(&mut self) -> &mut ::protobuf::SpecialFields {
        &mut self.special_fields
    }
    fn new() -> CAuthenticationSupport_GetTokenHistory_Request {
        CAuthenticationSupport_GetTokenHistory_Request::new()
    }
    fn clear(&mut self) {
        self.token_id = ::std::option::Option::None;
        self.special_fields.clear();
    }
    fn default_instance() -> &'static CAuthenticationSupport_GetTokenHistory_Request {
        static instance: CAuthenticationSupport_GetTokenHistory_Request = CAuthenticationSupport_GetTokenHistory_Request {
            token_id: ::std::option::Option::None,
            special_fields: ::protobuf::SpecialFields::new(),
        };
        &instance
    }
}
#[derive(PartialEq,Clone,Default,Debug)]
pub struct CSupportRefreshTokenAudit {
    pub action: ::std::option::Option<i32>,
    pub time: ::std::option::Option<u32>,
    pub ip: ::protobuf::MessageField<super::steammessages_base::CMsgIPAddress>,
    pub actor: ::std::option::Option<u64>,
    pub special_fields: ::protobuf::SpecialFields,
}
impl<'a> ::std::default::Default for &'a CSupportRefreshTokenAudit {
    fn default() -> &'a CSupportRefreshTokenAudit {
        <CSupportRefreshTokenAudit as ::protobuf::Message>::default_instance()
    }
}
impl CSupportRefreshTokenAudit {
    pub fn new() -> CSupportRefreshTokenAudit {
        ::std::default::Default::default()
    }
    pub fn action(&self) -> i32 {
        self.action.unwrap_or(0)
    }
    pub fn clear_action(&mut self) {
        self.action = ::std::option::Option::None;
    }
    pub fn has_action(&self) -> bool {
        self.action.is_some()
    }
    pub fn set_action(&mut self, v: i32) {
        self.action = ::std::option::Option::Some(v);
    }
    pub fn time(&self) -> u32 {
        self.time.unwrap_or(0)
    }
    pub fn clear_time(&mut self) {
        self.time = ::std::option::Option::None;
    }
    pub fn has_time(&self) -> bool {
        self.time.is_some()
    }
    pub fn set_time(&mut self, v: u32) {
        self.time = ::std::option::Option::Some(v);
    }
    pub fn actor(&self) -> u64 {
        self.actor.unwrap_or(0)
    }
    pub fn clear_actor(&mut self) {
        self.actor = ::std::option::Option::None;
    }
    pub fn has_actor(&self) -> bool {
        self.actor.is_some()
    }
    pub fn set_actor(&mut self, v: u64) {
        self.actor = ::std::option::Option::Some(v);
    }
}
impl ::protobuf::Message for CSupportRefreshTokenAudit {
    const NAME: &'static str = "CSupportRefreshTokenAudit";
    fn is_initialized(&self) -> bool {
        true
    }
    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::Result<()> {
        while let Some(tag) = is.read_raw_tag_or_eof()? {
            match tag {
                8 => {
                    self.action = ::std::option::Option::Some(is.read_int32()?);
                },
                16 => {
                    self.time = ::std::option::Option::Some(is.read_uint32()?);
                },
                26 => {
                    ::protobuf::rt::read_singular_message_into_field(is, &mut self.ip)?;
                },
                33 => {
                    self.actor = ::std::option::Option::Some(is.read_fixed64()?);
                },
                tag => {
                    ::protobuf::rt::read_unknown_or_skip_group(tag, is, self.special_fields.mut_unknown_fields())?;
                },
            };
        }
        ::std::result::Result::Ok(())
    }
    #[allow(unused_variables)]
    fn compute_size(&self) -> u64 {
        let mut my_size = 0;
        if let Some(v) = self.action {
            my_size += ::protobuf::rt::int32_size(1, v);
        }
        if let Some(v) = self.time {
            my_size += ::protobuf::rt::uint32_size(2, v);
        }
        if let Some(v) = self.ip.as_ref() {
            let len = v.compute_size();
            my_size += 1 + ::protobuf::rt::compute_raw_varint64_size(len) + len;
        }
        if let Some(v) = self.actor {
            my_size += 1 + 8;
        }
        my_size += ::protobuf::rt::unknown_fields_size(self.special_fields.unknown_fields());
        self.special_fields.cached_size().set(my_size as u32);
        my_size
    }
    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::Result<()> {
        if let Some(v) = self.action {
            os.write_int32(1, v)?;
        }
        if let Some(v) = self.time {
            os.write_uint32(2, v)?;
        }
        if let Some(v) = self.ip.as_ref() {
            ::protobuf::rt::write_message_field_with_cached_size(3, v, os)?;
        }
        if let Some(v) = self.actor {
            os.write_fixed64(4, v)?;
        }
        os.write_unknown_fields(self.special_fields.unknown_fields())?;
        ::std::result::Result::Ok(())
    }
    fn special_fields(&self) -> &::protobuf::SpecialFields {
        &self.special_fields
    }
    fn mut_special_fields(&mut self) -> &mut ::protobuf::SpecialFields {
        &mut self.special_fields
    }
    fn new() -> CSupportRefreshTokenAudit {
        CSupportRefreshTokenAudit::new()
    }
    fn clear(&mut self) {
        self.action = ::std::option::Option::None;
        self.time = ::std::option::Option::None;
        self.ip.clear();
        self.actor = ::std::option::Option::None;
        self.special_fields.clear();
    }
    fn default_instance() -> &'static CSupportRefreshTokenAudit {
        static instance: CSupportRefreshTokenAudit = CSupportRefreshTokenAudit {
            action: ::std::option::Option::None,
            time: ::std::option::Option::None,
            ip: ::protobuf::MessageField::none(),
            actor: ::std::option::Option::None,
            special_fields: ::protobuf::SpecialFields::new(),
        };
        &instance
    }
}
#[derive(PartialEq,Clone,Default,Debug)]
pub struct CAuthenticationSupport_GetTokenHistory_Response {
    pub history: ::std::vec::Vec<CSupportRefreshTokenAudit>,
    pub special_fields: ::protobuf::SpecialFields,
}
impl<'a> ::std::default::Default for &'a CAuthenticationSupport_GetTokenHistory_Response {
    fn default() -> &'a CAuthenticationSupport_GetTokenHistory_Response {
        <CAuthenticationSupport_GetTokenHistory_Response as ::protobuf::Message>::default_instance()
    }
}
impl CAuthenticationSupport_GetTokenHistory_Response {
    pub fn new() -> CAuthenticationSupport_GetTokenHistory_Response {
        ::std::default::Default::default()
    }
}
impl ::protobuf::Message for CAuthenticationSupport_GetTokenHistory_Response {
    const NAME: &'static str = "CAuthenticationSupport_GetTokenHistory_Response";
    fn is_initialized(&self) -> bool {
        true
    }
    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::Result<()> {
        while let Some(tag) = is.read_raw_tag_or_eof()? {
            match tag {
                10 => {
                    self.history.push(is.read_message()?);
                },
                tag => {
                    ::protobuf::rt::read_unknown_or_skip_group(tag, is, self.special_fields.mut_unknown_fields())?;
                },
            };
        }
        ::std::result::Result::Ok(())
    }
    #[allow(unused_variables)]
    fn compute_size(&self) -> u64 {
        let mut my_size = 0;
        for value in &self.history {
            let len = value.compute_size();
            my_size += 1 + ::protobuf::rt::compute_raw_varint64_size(len) + len;
        };
        my_size += ::protobuf::rt::unknown_fields_size(self.special_fields.unknown_fields());
        self.special_fields.cached_size().set(my_size as u32);
        my_size
    }
    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::Result<()> {
        for v in &self.history {
            ::protobuf::rt::write_message_field_with_cached_size(1, v, os)?;
        };
        os.write_unknown_fields(self.special_fields.unknown_fields())?;
        ::std::result::Result::Ok(())
    }
    fn special_fields(&self) -> &::protobuf::SpecialFields {
        &self.special_fields
    }
    fn mut_special_fields(&mut self) -> &mut ::protobuf::SpecialFields {
        &mut self.special_fields
    }
    fn new() -> CAuthenticationSupport_GetTokenHistory_Response {
        CAuthenticationSupport_GetTokenHistory_Response::new()
    }
    fn clear(&mut self) {
        self.history.clear();
        self.special_fields.clear();
    }
    fn default_instance() -> &'static CAuthenticationSupport_GetTokenHistory_Response {
        static instance: CAuthenticationSupport_GetTokenHistory_Response = CAuthenticationSupport_GetTokenHistory_Response {
            history: ::std::vec::Vec::new(),
            special_fields: ::protobuf::SpecialFields::new(),
        };
        &instance
    }
}
#[doc = "Create a nonce for a cloud gaming service session"]
#[derive(PartialEq,Clone,Default,Debug)]
pub struct CCloudGaming_CreateNonce_Request {
    pub platform: ::std::option::Option<::std::string::String>,
    pub appid: ::std::option::Option<u32>,
    pub special_fields: ::protobuf::SpecialFields,
}
impl<'a> ::std::default::Default for &'a CCloudGaming_CreateNonce_Request {
    fn default() -> &'a CCloudGaming_CreateNonce_Request {
        <CCloudGaming_CreateNonce_Request as ::protobuf::Message>::default_instance()
    }
}
impl CCloudGaming_CreateNonce_Request {
    pub fn new() -> CCloudGaming_CreateNonce_Request {
        ::std::default::Default::default()
    }
    pub fn platform(&self) -> &str {
        match self.platform.as_ref() {
            Some(v) => v,
            None => "",
        }
    }
    pub fn clear_platform(&mut self) {
        self.platform = ::std::option::Option::None;
    }
    pub fn has_platform(&self) -> bool {
        self.platform.is_some()
    }
    pub fn set_platform(&mut self, v: ::std::string::String) {
        self.platform = ::std::option::Option::Some(v);
    }
    pub fn mut_platform(&mut self) -> &mut ::std::string::String {
        if self.platform.is_none() {
            self.platform = ::std::option::Option::Some(::std::string::String::new());
        }
        self.platform.as_mut().unwrap()
    }
    pub fn take_platform(&mut self) -> ::std::string::String {
        self.platform.take().unwrap_or_else(|| ::std::string::String::new())
    }
    pub fn appid(&self) -> u32 {
        self.appid.unwrap_or(0)
    }
    pub fn clear_appid(&mut self) {
        self.appid = ::std::option::Option::None;
    }
    pub fn has_appid(&self) -> bool {
        self.appid.is_some()
    }
    pub fn set_appid(&mut self, v: u32) {
        self.appid = ::std::option::Option::Some(v);
    }
}
impl ::protobuf::Message for CCloudGaming_CreateNonce_Request {
    const NAME: &'static str = "CCloudGaming_CreateNonce_Request";
    fn is_initialized(&self) -> bool {
        true
    }
    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::Result<()> {
        while let Some(tag) = is.read_raw_tag_or_eof()? {
            match tag {
                10 => {
                    self.platform = ::std::option::Option::Some(is.read_string()?);
                },
                16 => {
                    self.appid = ::std::option::Option::Some(is.read_uint32()?);
                },
                tag => {
                    ::protobuf::rt::read_unknown_or_skip_group(tag, is, self.special_fields.mut_unknown_fields())?;
                },
            };
        }
        ::std::result::Result::Ok(())
    }
    #[allow(unused_variables)]
    fn compute_size(&self) -> u64 {
        let mut my_size = 0;
        if let Some(v) = self.platform.as_ref() {
            my_size += ::protobuf::rt::string_size(1, &v);
        }
        if let Some(v) = self.appid {
            my_size += ::protobuf::rt::uint32_size(2, v);
        }
        my_size += ::protobuf::rt::unknown_fields_size(self.special_fields.unknown_fields());
        self.special_fields.cached_size().set(my_size as u32);
        my_size
    }
    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::Result<()> {
        if let Some(v) = self.platform.as_ref() {
            os.write_string(1, v)?;
        }
        if let Some(v) = self.appid {
            os.write_uint32(2, v)?;
        }
        os.write_unknown_fields(self.special_fields.unknown_fields())?;
        ::std::result::Result::Ok(())
    }
    fn special_fields(&self) -> &::protobuf::SpecialFields {
        &self.special_fields
    }
    fn mut_special_fields(&mut self) -> &mut ::protobuf::SpecialFields {
        &mut self.special_fields
    }
    fn new() -> CCloudGaming_CreateNonce_Request {
        CCloudGaming_CreateNonce_Request::new()
    }
    fn clear(&mut self) {
        self.platform = ::std::option::Option::None;
        self.appid = ::std::option::Option::None;
        self.special_fields.clear();
    }
    fn default_instance() -> &'static CCloudGaming_CreateNonce_Request {
        static instance: CCloudGaming_CreateNonce_Request = CCloudGaming_CreateNonce_Request {
            platform: ::std::option::Option::None,
            appid: ::std::option::Option::None,
            special_fields: ::protobuf::SpecialFields::new(),
        };
        &instance
    }
}
#[derive(PartialEq,Clone,Default,Debug)]
pub struct CCloudGaming_CreateNonce_Response {
    pub nonce: ::std::option::Option<::std::string::String>,
    pub expiry: ::std::option::Option<u32>,
    pub special_fields: ::protobuf::SpecialFields,
}
impl<'a> ::std::default::Default for &'a CCloudGaming_CreateNonce_Response {
    fn default() -> &'a CCloudGaming_CreateNonce_Response {
        <CCloudGaming_CreateNonce_Response as ::protobuf::Message>::default_instance()
    }
}
impl CCloudGaming_CreateNonce_Response {
    pub fn new() -> CCloudGaming_CreateNonce_Response {
        ::std::default::Default::default()
    }
    pub fn nonce(&self) -> &str {
        match self.nonce.as_ref() {
            Some(v) => v,
            None => "",
        }
    }
    pub fn clear_nonce(&mut self) {
        self.nonce = ::std::option::Option::None;
    }
    pub fn has_nonce(&self) -> bool {
        self.nonce.is_some()
    }
    pub fn set_nonce(&mut self, v: ::std::string::String) {
        self.nonce = ::std::option::Option::Some(v);
    }
    pub fn mut_nonce(&mut self) -> &mut ::std::string::String {
        if self.nonce.is_none() {
            self.nonce = ::std::option::Option::Some(::std::string::String::new());
        }
        self.nonce.as_mut().unwrap()
    }
    pub fn take_nonce(&mut self) -> ::std::string::String {
        self.nonce.take().unwrap_or_else(|| ::std::string::String::new())
    }
    pub fn expiry(&self) -> u32 {
        self.expiry.unwrap_or(0)
    }
    pub fn clear_expiry(&mut self) {
        self.expiry = ::std::option::Option::None;
    }
    pub fn has_expiry(&self) -> bool {
        self.expiry.is_some()
    }
    pub fn set_expiry(&mut self, v: u32) {
        self.expiry = ::std::option::Option::Some(v);
    }
}
impl ::protobuf::Message for CCloudGaming_CreateNonce_Response {
    const NAME: &'static str = "CCloudGaming_CreateNonce_Response";
    fn is_initialized(&self) -> bool {
        true
    }
    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::Result<()> {
        while let Some(tag) = is.read_raw_tag_or_eof()? {
            match tag {
                10 => {
                    self.nonce = ::std::option::Option::Some(is.read_string()?);
                },
                16 => {
                    self.expiry = ::std::option::Option::Some(is.read_uint32()?);
                },
                tag => {
                    ::protobuf::rt::read_unknown_or_skip_group(tag, is, self.special_fields.mut_unknown_fields())?;
                },
            };
        }
        ::std::result::Result::Ok(())
    }
    #[allow(unused_variables)]
    fn compute_size(&self) -> u64 {
        let mut my_size = 0;
        if let Some(v) = self.nonce.as_ref() {
            my_size += ::protobuf::rt::string_size(1, &v);
        }
        if let Some(v) = self.expiry {
            my_size += ::protobuf::rt::uint32_size(2, v);
        }
        my_size += ::protobuf::rt::unknown_fields_size(self.special_fields.unknown_fields());
        self.special_fields.cached_size().set(my_size as u32);
        my_size
    }
    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::Result<()> {
        if let Some(v) = self.nonce.as_ref() {
            os.write_string(1, v)?;
        }
        if let Some(v) = self.expiry {
            os.write_uint32(2, v)?;
        }
        os.write_unknown_fields(self.special_fields.unknown_fields())?;
        ::std::result::Result::Ok(())
    }
    fn special_fields(&self) -> &::protobuf::SpecialFields {
        &self.special_fields
    }
    fn mut_special_fields(&mut self) -> &mut ::protobuf::SpecialFields {
        &mut self.special_fields
    }
    fn new() -> CCloudGaming_CreateNonce_Response {
        CCloudGaming_CreateNonce_Response::new()
    }
    fn clear(&mut self) {
        self.nonce = ::std::option::Option::None;
        self.expiry = ::std::option::Option::None;
        self.special_fields.clear();
    }
    fn default_instance() -> &'static CCloudGaming_CreateNonce_Response {
        static instance: CCloudGaming_CreateNonce_Response = CCloudGaming_CreateNonce_Response {
            nonce: ::std::option::Option::None,
            expiry: ::std::option::Option::None,
            special_fields: ::protobuf::SpecialFields::new(),
        };
        &instance
    }
}
#[doc = "Get the amount of streaming time remaining for a set of apps"]
#[derive(PartialEq,Clone,Default,Debug)]
pub struct CCloudGaming_GetTimeRemaining_Request {
    pub platform: ::std::option::Option<::std::string::String>,
    pub appid_list: ::std::vec::Vec<u32>,
    pub special_fields: ::protobuf::SpecialFields,
}
impl<'a> ::std::default::Default for &'a CCloudGaming_GetTimeRemaining_Request {
    fn default() -> &'a CCloudGaming_GetTimeRemaining_Request {
        <CCloudGaming_GetTimeRemaining_Request as ::protobuf::Message>::default_instance()
    }
}
impl CCloudGaming_GetTimeRemaining_Request {
    pub fn new() -> CCloudGaming_GetTimeRemaining_Request {
        ::std::default::Default::default()
    }
    pub fn platform(&self) -> &str {
        match self.platform.as_ref() {
            Some(v) => v,
            None => "",
        }
    }
    pub fn clear_platform(&mut self) {
        self.platform = ::std::option::Option::None;
    }
    pub fn has_platform(&self) -> bool {
        self.platform.is_some()
    }
    pub fn set_platform(&mut self, v: ::std::string::String) {
        self.platform = ::std::option::Option::Some(v);
    }
    pub fn mut_platform(&mut self) -> &mut ::std::string::String {
        if self.platform.is_none() {
            self.platform = ::std::option::Option::Some(::std::string::String::new());
        }
        self.platform.as_mut().unwrap()
    }
    pub fn take_platform(&mut self) -> ::std::string::String {
        self.platform.take().unwrap_or_else(|| ::std::string::String::new())
    }
}
impl ::protobuf::Message for CCloudGaming_GetTimeRemaining_Request {
    const NAME: &'static str = "CCloudGaming_GetTimeRemaining_Request";
    fn is_initialized(&self) -> bool {
        true
    }
    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::Result<()> {
        while let Some(tag) = is.read_raw_tag_or_eof()? {
            match tag {
                10 => {
                    self.platform = ::std::option::Option::Some(is.read_string()?);
                },
                18 => {
                    is.read_repeated_packed_uint32_into(&mut self.appid_list)?;
                },
                16 => {
                    self.appid_list.push(is.read_uint32()?);
                },
                tag => {
                    ::protobuf::rt::read_unknown_or_skip_group(tag, is, self.special_fields.mut_unknown_fields())?;
                },
            };
        }
        ::std::result::Result::Ok(())
    }
    #[allow(unused_variables)]
    fn compute_size(&self) -> u64 {
        let mut my_size = 0;
        if let Some(v) = self.platform.as_ref() {
            my_size += ::protobuf::rt::string_size(1, &v);
        }
        for value in &self.appid_list {
            my_size += ::protobuf::rt::uint32_size(2, *value);
        };
        my_size += ::protobuf::rt::unknown_fields_size(self.special_fields.unknown_fields());
        self.special_fields.cached_size().set(my_size as u32);
        my_size
    }
    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::Result<()> {
        if let Some(v) = self.platform.as_ref() {
            os.write_string(1, v)?;
        }
        for v in &self.appid_list {
            os.write_uint32(2, *v)?;
        };
        os.write_unknown_fields(self.special_fields.unknown_fields())?;
        ::std::result::Result::Ok(())
    }
    fn special_fields(&self) -> &::protobuf::SpecialFields {
        &self.special_fields
    }
    fn mut_special_fields(&mut self) -> &mut ::protobuf::SpecialFields {
        &mut self.special_fields
    }
    fn new() -> CCloudGaming_GetTimeRemaining_Request {
        CCloudGaming_GetTimeRemaining_Request::new()
    }
    fn clear(&mut self) {
        self.platform = ::std::option::Option::None;
        self.appid_list.clear();
        self.special_fields.clear();
    }
    fn default_instance() -> &'static CCloudGaming_GetTimeRemaining_Request {
        static instance: CCloudGaming_GetTimeRemaining_Request = CCloudGaming_GetTimeRemaining_Request {
            platform: ::std::option::Option::None,
            appid_list: ::std::vec::Vec::new(),
            special_fields: ::protobuf::SpecialFields::new(),
        };
        &instance
    }
}
#[derive(PartialEq,Clone,Default,Debug)]
pub struct CCloudGaming_TimeRemaining {
    pub appid: ::std::option::Option<u32>,
    pub minutes_remaining: ::std::option::Option<u32>,
    pub special_fields: ::protobuf::SpecialFields,
}
impl<'a> ::std::default::Default for &'a CCloudGaming_TimeRemaining {
    fn default() -> &'a CCloudGaming_TimeRemaining {
        <CCloudGaming_TimeRemaining as ::protobuf::Message>::default_instance()
    }
}
impl CCloudGaming_TimeRemaining {
    pub fn new() -> CCloudGaming_TimeRemaining {
        ::std::default::Default::default()
    }
    pub fn appid(&self) -> u32 {
        self.appid.unwrap_or(0)
    }
    pub fn clear_appid(&mut self) {
        self.appid = ::std::option::Option::None;
    }
    pub fn has_appid(&self) -> bool {
        self.appid.is_some()
    }
    pub fn set_appid(&mut self, v: u32) {
        self.appid = ::std::option::Option::Some(v);
    }
    pub fn minutes_remaining(&self) -> u32 {
        self.minutes_remaining.unwrap_or(0)
    }
    pub fn clear_minutes_remaining(&mut self) {
        self.minutes_remaining = ::std::option::Option::None;
    }
    pub fn has_minutes_remaining(&self) -> bool {
        self.minutes_remaining.is_some()
    }
    pub fn set_minutes_remaining(&mut self, v: u32) {
        self.minutes_remaining = ::std::option::Option::Some(v);
    }
}
impl ::protobuf::Message for CCloudGaming_TimeRemaining {
    const NAME: &'static str = "CCloudGaming_TimeRemaining";
    fn is_initialized(&self) -> bool {
        true
    }
    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::Result<()> {
        while let Some(tag) = is.read_raw_tag_or_eof()? {
            match tag {
                8 => {
                    self.appid = ::std::option::Option::Some(is.read_uint32()?);
                },
                16 => {
                    self.minutes_remaining = ::std::option::Option::Some(is.read_uint32()?);
                },
                tag => {
                    ::protobuf::rt::read_unknown_or_skip_group(tag, is, self.special_fields.mut_unknown_fields())?;
                },
            };
        }
        ::std::result::Result::Ok(())
    }
    #[allow(unused_variables)]
    fn compute_size(&self) -> u64 {
        let mut my_size = 0;
        if let Some(v) = self.appid {
            my_size += ::protobuf::rt::uint32_size(1, v);
        }
        if let Some(v) = self.minutes_remaining {
            my_size += ::protobuf::rt::uint32_size(2, v);
        }
        my_size += ::protobuf::rt::unknown_fields_size(self.special_fields.unknown_fields());
        self.special_fields.cached_size().set(my_size as u32);
        my_size
    }
    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::Result<()> {
        if let Some(v) = self.appid {
            os.write_uint32(1, v)?;
        }
        if let Some(v) = self.minutes_remaining {
            os.write_uint32(2, v)?;
        }
        os.write_unknown_fields(self.special_fields.unknown_fields())?;
        ::std::result::Result::Ok(())
    }
    fn special_fields(&self) -> &::protobuf::SpecialFields {
        &self.special_fields
    }
    fn mut_special_fields(&mut self) -> &mut ::protobuf::SpecialFields {
        &mut self.special_fields
    }
    fn new() -> CCloudGaming_TimeRemaining {
        CCloudGaming_TimeRemaining::new()
    }
    fn clear(&mut self) {
        self.appid = ::std::option::Option::None;
        self.minutes_remaining = ::std::option::Option::None;
        self.special_fields.clear();
    }
    fn default_instance() -> &'static CCloudGaming_TimeRemaining {
        static instance: CCloudGaming_TimeRemaining = CCloudGaming_TimeRemaining {
            appid: ::std::option::Option::None,
            minutes_remaining: ::std::option::Option::None,
            special_fields: ::protobuf::SpecialFields::new(),
        };
        &instance
    }
}
#[derive(PartialEq,Clone,Default,Debug)]
pub struct CCloudGaming_GetTimeRemaining_Response {
    pub entries: ::std::vec::Vec<CCloudGaming_TimeRemaining>,
    pub special_fields: ::protobuf::SpecialFields,
}
impl<'a> ::std::default::Default for &'a CCloudGaming_GetTimeRemaining_Response {
    fn default() -> &'a CCloudGaming_GetTimeRemaining_Response {
        <CCloudGaming_GetTimeRemaining_Response as ::protobuf::Message>::default_instance()
    }
}
impl CCloudGaming_GetTimeRemaining_Response {
    pub fn new() -> CCloudGaming_GetTimeRemaining_Response {
        ::std::default::Default::default()
    }
}
impl ::protobuf::Message for CCloudGaming_GetTimeRemaining_Response {
    const NAME: &'static str = "CCloudGaming_GetTimeRemaining_Response";
    fn is_initialized(&self) -> bool {
        true
    }
    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::Result<()> {
        while let Some(tag) = is.read_raw_tag_or_eof()? {
            match tag {
                18 => {
                    self.entries.push(is.read_message()?);
                },
                tag => {
                    ::protobuf::rt::read_unknown_or_skip_group(tag, is, self.special_fields.mut_unknown_fields())?;
                },
            };
        }
        ::std::result::Result::Ok(())
    }
    #[allow(unused_variables)]
    fn compute_size(&self) -> u64 {
        let mut my_size = 0;
        for value in &self.entries {
            let len = value.compute_size();
            my_size += 1 + ::protobuf::rt::compute_raw_varint64_size(len) + len;
        };
        my_size += ::protobuf::rt::unknown_fields_size(self.special_fields.unknown_fields());
        self.special_fields.cached_size().set(my_size as u32);
        my_size
    }
    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::Result<()> {
        for v in &self.entries {
            ::protobuf::rt::write_message_field_with_cached_size(2, v, os)?;
        };
        os.write_unknown_fields(self.special_fields.unknown_fields())?;
        ::std::result::Result::Ok(())
    }
    fn special_fields(&self) -> &::protobuf::SpecialFields {
        &self.special_fields
    }
    fn mut_special_fields(&mut self) -> &mut ::protobuf::SpecialFields {
        &mut self.special_fields
    }
    fn new() -> CCloudGaming_GetTimeRemaining_Response {
        CCloudGaming_GetTimeRemaining_Response::new()
    }
    fn clear(&mut self) {
        self.entries.clear();
        self.special_fields.clear();
    }
    fn default_instance() -> &'static CCloudGaming_GetTimeRemaining_Response {
        static instance: CCloudGaming_GetTimeRemaining_Response = CCloudGaming_GetTimeRemaining_Response {
            entries: ::std::vec::Vec::new(),
            special_fields: ::protobuf::SpecialFields::new(),
        };
        &instance
    }
}
#[derive(Clone,Copy,PartialEq,Eq,Debug,Hash)]
pub enum EAuthTokenPlatformType {
    k_EAuthTokenPlatformType_Unknown = 0,
    k_EAuthTokenPlatformType_SteamClient = 1,
    k_EAuthTokenPlatformType_WebBrowser = 2,
    k_EAuthTokenPlatformType_MobileApp = 3,
}
impl ::protobuf::Enum for EAuthTokenPlatformType {
    const NAME: &'static str = "EAuthTokenPlatformType";
    fn value(&self) -> i32 {
        *self as i32
    }
    fn from_i32(value: i32) -> ::std::option::Option<EAuthTokenPlatformType> {
        match value {
            0 => ::std::option::Option::Some(EAuthTokenPlatformType::k_EAuthTokenPlatformType_Unknown),
            1 => ::std::option::Option::Some(EAuthTokenPlatformType::k_EAuthTokenPlatformType_SteamClient),
            2 => ::std::option::Option::Some(EAuthTokenPlatformType::k_EAuthTokenPlatformType_WebBrowser),
            3 => ::std::option::Option::Some(EAuthTokenPlatformType::k_EAuthTokenPlatformType_MobileApp),
            _ => ::std::option::Option::None
        }
    }
    fn from_str(str: &str) -> ::std::option::Option<EAuthTokenPlatformType> {
        match str {
            "k_EAuthTokenPlatformType_Unknown" => ::std::option::Option::Some(EAuthTokenPlatformType::k_EAuthTokenPlatformType_Unknown),
            "k_EAuthTokenPlatformType_SteamClient" => ::std::option::Option::Some(EAuthTokenPlatformType::k_EAuthTokenPlatformType_SteamClient),
            "k_EAuthTokenPlatformType_WebBrowser" => ::std::option::Option::Some(EAuthTokenPlatformType::k_EAuthTokenPlatformType_WebBrowser),
            "k_EAuthTokenPlatformType_MobileApp" => ::std::option::Option::Some(EAuthTokenPlatformType::k_EAuthTokenPlatformType_MobileApp),
            _ => ::std::option::Option::None
        }
    }
    const VALUES: &'static [EAuthTokenPlatformType] = &[
        EAuthTokenPlatformType::k_EAuthTokenPlatformType_Unknown,
        EAuthTokenPlatformType::k_EAuthTokenPlatformType_SteamClient,
        EAuthTokenPlatformType::k_EAuthTokenPlatformType_WebBrowser,
        EAuthTokenPlatformType::k_EAuthTokenPlatformType_MobileApp,
    ];
}
impl ::std::default::Default for EAuthTokenPlatformType {
    fn default() -> Self {
        EAuthTokenPlatformType::k_EAuthTokenPlatformType_Unknown
    }
}
#[derive(Clone,Copy,PartialEq,Eq,Debug,Hash)]
pub enum EAuthSessionGuardType {
    k_EAuthSessionGuardType_Unknown = 0,
    k_EAuthSessionGuardType_None = 1,
    k_EAuthSessionGuardType_EmailCode = 2,
    k_EAuthSessionGuardType_DeviceCode = 3,
    k_EAuthSessionGuardType_DeviceConfirmation = 4,
    k_EAuthSessionGuardType_EmailConfirmation = 5,
    k_EAuthSessionGuardType_MachineToken = 6,
    k_EAuthSessionGuardType_LegacyMachineAuth = 7,
}
impl ::protobuf::Enum for EAuthSessionGuardType {
    const NAME: &'static str = "EAuthSessionGuardType";
    fn value(&self) -> i32 {
        *self as i32
    }
    fn from_i32(value: i32) -> ::std::option::Option<EAuthSessionGuardType> {
        match value {
            0 => ::std::option::Option::Some(EAuthSessionGuardType::k_EAuthSessionGuardType_Unknown),
            1 => ::std::option::Option::Some(EAuthSessionGuardType::k_EAuthSessionGuardType_None),
            2 => ::std::option::Option::Some(EAuthSessionGuardType::k_EAuthSessionGuardType_EmailCode),
            3 => ::std::option::Option::Some(EAuthSessionGuardType::k_EAuthSessionGuardType_DeviceCode),
            4 => ::std::option::Option::Some(EAuthSessionGuardType::k_EAuthSessionGuardType_DeviceConfirmation),
            5 => ::std::option::Option::Some(EAuthSessionGuardType::k_EAuthSessionGuardType_EmailConfirmation),
            6 => ::std::option::Option::Some(EAuthSessionGuardType::k_EAuthSessionGuardType_MachineToken),
            7 => ::std::option::Option::Some(EAuthSessionGuardType::k_EAuthSessionGuardType_LegacyMachineAuth),
            _ => ::std::option::Option::None
        }
    }
    fn from_str(str: &str) -> ::std::option::Option<EAuthSessionGuardType> {
        match str {
            "k_EAuthSessionGuardType_Unknown" => ::std::option::Option::Some(EAuthSessionGuardType::k_EAuthSessionGuardType_Unknown),
            "k_EAuthSessionGuardType_None" => ::std::option::Option::Some(EAuthSessionGuardType::k_EAuthSessionGuardType_None),
            "k_EAuthSessionGuardType_EmailCode" => ::std::option::Option::Some(EAuthSessionGuardType::k_EAuthSessionGuardType_EmailCode),
            "k_EAuthSessionGuardType_DeviceCode" => ::std::option::Option::Some(EAuthSessionGuardType::k_EAuthSessionGuardType_DeviceCode),
            "k_EAuthSessionGuardType_DeviceConfirmation" => ::std::option::Option::Some(EAuthSessionGuardType::k_EAuthSessionGuardType_DeviceConfirmation),
            "k_EAuthSessionGuardType_EmailConfirmation" => ::std::option::Option::Some(EAuthSessionGuardType::k_EAuthSessionGuardType_EmailConfirmation),
            "k_EAuthSessionGuardType_MachineToken" => ::std::option::Option::Some(EAuthSessionGuardType::k_EAuthSessionGuardType_MachineToken),
            "k_EAuthSessionGuardType_LegacyMachineAuth" => ::std::option::Option::Some(EAuthSessionGuardType::k_EAuthSessionGuardType_LegacyMachineAuth),
            _ => ::std::option::Option::None
        }
    }
    const VALUES: &'static [EAuthSessionGuardType] = &[
        EAuthSessionGuardType::k_EAuthSessionGuardType_Unknown,
        EAuthSessionGuardType::k_EAuthSessionGuardType_None,
        EAuthSessionGuardType::k_EAuthSessionGuardType_EmailCode,
        EAuthSessionGuardType::k_EAuthSessionGuardType_DeviceCode,
        EAuthSessionGuardType::k_EAuthSessionGuardType_DeviceConfirmation,
        EAuthSessionGuardType::k_EAuthSessionGuardType_EmailConfirmation,
        EAuthSessionGuardType::k_EAuthSessionGuardType_MachineToken,
        EAuthSessionGuardType::k_EAuthSessionGuardType_LegacyMachineAuth,
    ];
}
impl ::std::default::Default for EAuthSessionGuardType {
    fn default() -> Self {
        EAuthSessionGuardType::k_EAuthSessionGuardType_Unknown
    }
}
#[derive(Clone,Copy,PartialEq,Eq,Debug,Hash)]
pub enum EAuthSessionSecurityHistory {
    k_EAuthSessionSecurityHistory_Invalid = 0,
    k_EAuthSessionSecurityHistory_UsedPreviously = 1,
    k_EAuthSessionSecurityHistory_NoPriorHistory = 2,
}
impl ::protobuf::Enum for EAuthSessionSecurityHistory {
    const NAME: &'static str = "EAuthSessionSecurityHistory";
    fn value(&self) -> i32 {
        *self as i32
    }
    fn from_i32(value: i32) -> ::std::option::Option<EAuthSessionSecurityHistory> {
        match value {
            0 => ::std::option::Option::Some(EAuthSessionSecurityHistory::k_EAuthSessionSecurityHistory_Invalid),
            1 => ::std::option::Option::Some(EAuthSessionSecurityHistory::k_EAuthSessionSecurityHistory_UsedPreviously),
            2 => ::std::option::Option::Some(EAuthSessionSecurityHistory::k_EAuthSessionSecurityHistory_NoPriorHistory),
            _ => ::std::option::Option::None
        }
    }
    fn from_str(str: &str) -> ::std::option::Option<EAuthSessionSecurityHistory> {
        match str {
            "k_EAuthSessionSecurityHistory_Invalid" => ::std::option::Option::Some(EAuthSessionSecurityHistory::k_EAuthSessionSecurityHistory_Invalid),
            "k_EAuthSessionSecurityHistory_UsedPreviously" => ::std::option::Option::Some(EAuthSessionSecurityHistory::k_EAuthSessionSecurityHistory_UsedPreviously),
            "k_EAuthSessionSecurityHistory_NoPriorHistory" => ::std::option::Option::Some(EAuthSessionSecurityHistory::k_EAuthSessionSecurityHistory_NoPriorHistory),
            _ => ::std::option::Option::None
        }
    }
    const VALUES: &'static [EAuthSessionSecurityHistory] = &[
        EAuthSessionSecurityHistory::k_EAuthSessionSecurityHistory_Invalid,
        EAuthSessionSecurityHistory::k_EAuthSessionSecurityHistory_UsedPreviously,
        EAuthSessionSecurityHistory::k_EAuthSessionSecurityHistory_NoPriorHistory,
    ];
}
impl ::std::default::Default for EAuthSessionSecurityHistory {
    fn default() -> Self {
        EAuthSessionSecurityHistory::k_EAuthSessionSecurityHistory_Invalid
    }
}
#[derive(Clone,Copy,PartialEq,Eq,Debug,Hash)]
pub enum ETokenRenewalType {
    k_ETokenRenewalType_None = 0,
    k_ETokenRenewalType_Allow = 1,
}
impl ::protobuf::Enum for ETokenRenewalType {
    const NAME: &'static str = "ETokenRenewalType";
    fn value(&self) -> i32 {
        *self as i32
    }
    fn from_i32(value: i32) -> ::std::option::Option<ETokenRenewalType> {
        match value {
            0 => ::std::option::Option::Some(ETokenRenewalType::k_ETokenRenewalType_None),
            1 => ::std::option::Option::Some(ETokenRenewalType::k_ETokenRenewalType_Allow),
            _ => ::std::option::Option::None
        }
    }
    fn from_str(str: &str) -> ::std::option::Option<ETokenRenewalType> {
        match str {
            "k_ETokenRenewalType_None" => ::std::option::Option::Some(ETokenRenewalType::k_ETokenRenewalType_None),
            "k_ETokenRenewalType_Allow" => ::std::option::Option::Some(ETokenRenewalType::k_ETokenRenewalType_Allow),
            _ => ::std::option::Option::None
        }
    }
    const VALUES: &'static [ETokenRenewalType] = &[
        ETokenRenewalType::k_ETokenRenewalType_None,
        ETokenRenewalType::k_ETokenRenewalType_Allow,
    ];
}
impl ::std::default::Default for ETokenRenewalType {
    fn default() -> Self {
        ETokenRenewalType::k_ETokenRenewalType_None
    }
}
#[derive(Clone,Copy,PartialEq,Eq,Debug,Hash)]
pub enum EAuthTokenRevokeAction {
    k_EAuthTokenRevokeLogout = 0,
    k_EAuthTokenRevokePermanent = 1,
    k_EAuthTokenRevokeReplaced = 2,
    k_EAuthTokenRevokeSupport = 3,
    k_EAuthTokenRevokeConsume = 4,
    k_EAuthTokenRevokeNonRememberedLogout = 5,
    k_EAuthTokenRevokeNonRememberedPermanent = 6,
    k_EAuthTokenRevokeAutomatic = 7,
}
impl ::protobuf::Enum for EAuthTokenRevokeAction {
    const NAME: &'static str = "EAuthTokenRevokeAction";
    fn value(&self) -> i32 {
        *self as i32
    }
    fn from_i32(value: i32) -> ::std::option::Option<EAuthTokenRevokeAction> {
        match value {
            0 => ::std::option::Option::Some(EAuthTokenRevokeAction::k_EAuthTokenRevokeLogout),
            1 => ::std::option::Option::Some(EAuthTokenRevokeAction::k_EAuthTokenRevokePermanent),
            2 => ::std::option::Option::Some(EAuthTokenRevokeAction::k_EAuthTokenRevokeReplaced),
            3 => ::std::option::Option::Some(EAuthTokenRevokeAction::k_EAuthTokenRevokeSupport),
            4 => ::std::option::Option::Some(EAuthTokenRevokeAction::k_EAuthTokenRevokeConsume),
            5 => ::std::option::Option::Some(EAuthTokenRevokeAction::k_EAuthTokenRevokeNonRememberedLogout),
            6 => ::std::option::Option::Some(EAuthTokenRevokeAction::k_EAuthTokenRevokeNonRememberedPermanent),
            7 => ::std::option::Option::Some(EAuthTokenRevokeAction::k_EAuthTokenRevokeAutomatic),
            _ => ::std::option::Option::None
        }
    }
    fn from_str(str: &str) -> ::std::option::Option<EAuthTokenRevokeAction> {
        match str {
            "k_EAuthTokenRevokeLogout" => ::std::option::Option::Some(EAuthTokenRevokeAction::k_EAuthTokenRevokeLogout),
            "k_EAuthTokenRevokePermanent" => ::std::option::Option::Some(EAuthTokenRevokeAction::k_EAuthTokenRevokePermanent),
            "k_EAuthTokenRevokeReplaced" => ::std::option::Option::Some(EAuthTokenRevokeAction::k_EAuthTokenRevokeReplaced),
            "k_EAuthTokenRevokeSupport" => ::std::option::Option::Some(EAuthTokenRevokeAction::k_EAuthTokenRevokeSupport),
            "k_EAuthTokenRevokeConsume" => ::std::option::Option::Some(EAuthTokenRevokeAction::k_EAuthTokenRevokeConsume),
            "k_EAuthTokenRevokeNonRememberedLogout" => ::std::option::Option::Some(EAuthTokenRevokeAction::k_EAuthTokenRevokeNonRememberedLogout),
            "k_EAuthTokenRevokeNonRememberedPermanent" => ::std::option::Option::Some(EAuthTokenRevokeAction::k_EAuthTokenRevokeNonRememberedPermanent),
            "k_EAuthTokenRevokeAutomatic" => ::std::option::Option::Some(EAuthTokenRevokeAction::k_EAuthTokenRevokeAutomatic),
            _ => ::std::option::Option::None
        }
    }
    const VALUES: &'static [EAuthTokenRevokeAction] = &[
        EAuthTokenRevokeAction::k_EAuthTokenRevokeLogout,
        EAuthTokenRevokeAction::k_EAuthTokenRevokePermanent,
        EAuthTokenRevokeAction::k_EAuthTokenRevokeReplaced,
        EAuthTokenRevokeAction::k_EAuthTokenRevokeSupport,
        EAuthTokenRevokeAction::k_EAuthTokenRevokeConsume,
        EAuthTokenRevokeAction::k_EAuthTokenRevokeNonRememberedLogout,
        EAuthTokenRevokeAction::k_EAuthTokenRevokeNonRememberedPermanent,
        EAuthTokenRevokeAction::k_EAuthTokenRevokeAutomatic,
    ];
}
impl ::std::default::Default for EAuthTokenRevokeAction {
    fn default() -> Self {
        EAuthTokenRevokeAction::k_EAuthTokenRevokeLogout
    }
}
#[derive(Clone,Copy,PartialEq,Eq,Debug,Hash)]
pub enum EAuthTokenState {
    k_EAuthTokenState_Invalid = 0,
    k_EAuthTokenState_New = 1,
    k_EAuthTokenState_Confirmed = 2,
    k_EAuthTokenState_Issued = 3,
    k_EAuthTokenState_Denied = 4,
    k_EAuthTokenState_LoggedOut = 5,
    k_EAuthTokenState_Consumed = 6,
    k_EAuthTokenState_Revoked = 99,
}
impl ::protobuf::Enum for EAuthTokenState {
    const NAME: &'static str = "EAuthTokenState";
    fn value(&self) -> i32 {
        *self as i32
    }
    fn from_i32(value: i32) -> ::std::option::Option<EAuthTokenState> {
        match value {
            0 => ::std::option::Option::Some(EAuthTokenState::k_EAuthTokenState_Invalid),
            1 => ::std::option::Option::Some(EAuthTokenState::k_EAuthTokenState_New),
            2 => ::std::option::Option::Some(EAuthTokenState::k_EAuthTokenState_Confirmed),
            3 => ::std::option::Option::Some(EAuthTokenState::k_EAuthTokenState_Issued),
            4 => ::std::option::Option::Some(EAuthTokenState::k_EAuthTokenState_Denied),
            5 => ::std::option::Option::Some(EAuthTokenState::k_EAuthTokenState_LoggedOut),
            6 => ::std::option::Option::Some(EAuthTokenState::k_EAuthTokenState_Consumed),
            99 => ::std::option::Option::Some(EAuthTokenState::k_EAuthTokenState_Revoked),
            _ => ::std::option::Option::None
        }
    }
    fn from_str(str: &str) -> ::std::option::Option<EAuthTokenState> {
        match str {
            "k_EAuthTokenState_Invalid" => ::std::option::Option::Some(EAuthTokenState::k_EAuthTokenState_Invalid),
            "k_EAuthTokenState_New" => ::std::option::Option::Some(EAuthTokenState::k_EAuthTokenState_New),
            "k_EAuthTokenState_Confirmed" => ::std::option::Option::Some(EAuthTokenState::k_EAuthTokenState_Confirmed),
            "k_EAuthTokenState_Issued" => ::std::option::Option::Some(EAuthTokenState::k_EAuthTokenState_Issued),
            "k_EAuthTokenState_Denied" => ::std::option::Option::Some(EAuthTokenState::k_EAuthTokenState_Denied),
            "k_EAuthTokenState_LoggedOut" => ::std::option::Option::Some(EAuthTokenState::k_EAuthTokenState_LoggedOut),
            "k_EAuthTokenState_Consumed" => ::std::option::Option::Some(EAuthTokenState::k_EAuthTokenState_Consumed),
            "k_EAuthTokenState_Revoked" => ::std::option::Option::Some(EAuthTokenState::k_EAuthTokenState_Revoked),
            _ => ::std::option::Option::None
        }
    }
    const VALUES: &'static [EAuthTokenState] = &[
        EAuthTokenState::k_EAuthTokenState_Invalid,
        EAuthTokenState::k_EAuthTokenState_New,
        EAuthTokenState::k_EAuthTokenState_Confirmed,
        EAuthTokenState::k_EAuthTokenState_Issued,
        EAuthTokenState::k_EAuthTokenState_Denied,
        EAuthTokenState::k_EAuthTokenState_LoggedOut,
        EAuthTokenState::k_EAuthTokenState_Consumed,
        EAuthTokenState::k_EAuthTokenState_Revoked,
    ];
}
impl ::std::default::Default for EAuthTokenState {
    fn default() -> Self {
        EAuthTokenState::k_EAuthTokenState_Invalid
    }
}
#[allow(unused_imports)]
use crate::steammessages_base::*;
#[allow(unused_imports)]
use crate::steammessages_unified_base_steamclient::*;
#[allow(unused_imports)]
use crate::enums::*;
impl crate::RpcMessage for CAuthentication_GetPasswordRSAPublicKey_Request {
    fn parse(reader: &mut dyn std::io::Read) -> protobuf::Result<Self> {
        <Self as protobuf::Message>::parse_from_reader(reader)
    }
    fn write(&self, writer: &mut dyn std::io::Write) -> protobuf::Result<()> {
        use protobuf::Message;
        self.write_to_writer(writer)
    }
    fn encode_size(&self) -> usize {
        use protobuf::Message;
        self.compute_size() as usize
    }
}
impl crate::RpcMessage for CAuthentication_GetPasswordRSAPublicKey_Response {
    fn parse(reader: &mut dyn std::io::Read) -> protobuf::Result<Self> {
        <Self as protobuf::Message>::parse_from_reader(reader)
    }
    fn write(&self, writer: &mut dyn std::io::Write) -> protobuf::Result<()> {
        use protobuf::Message;
        self.write_to_writer(writer)
    }
    fn encode_size(&self) -> usize {
        use protobuf::Message;
        self.compute_size() as usize
    }
}
impl crate::RpcMessage for CAuthentication_DeviceDetails {
    fn parse(reader: &mut dyn std::io::Read) -> protobuf::Result<Self> {
        <Self as protobuf::Message>::parse_from_reader(reader)
    }
    fn write(&self, writer: &mut dyn std::io::Write) -> protobuf::Result<()> {
        use protobuf::Message;
        self.write_to_writer(writer)
    }
    fn encode_size(&self) -> usize {
        use protobuf::Message;
        self.compute_size() as usize
    }
}
impl crate::RpcMessage for CAuthentication_BeginAuthSessionViaQR_Request {
    fn parse(reader: &mut dyn std::io::Read) -> protobuf::Result<Self> {
        <Self as protobuf::Message>::parse_from_reader(reader)
    }
    fn write(&self, writer: &mut dyn std::io::Write) -> protobuf::Result<()> {
        use protobuf::Message;
        self.write_to_writer(writer)
    }
    fn encode_size(&self) -> usize {
        use protobuf::Message;
        self.compute_size() as usize
    }
}
impl crate::RpcMessage for CAuthentication_AllowedConfirmation {
    fn parse(reader: &mut dyn std::io::Read) -> protobuf::Result<Self> {
        <Self as protobuf::Message>::parse_from_reader(reader)
    }
    fn write(&self, writer: &mut dyn std::io::Write) -> protobuf::Result<()> {
        use protobuf::Message;
        self.write_to_writer(writer)
    }
    fn encode_size(&self) -> usize {
        use protobuf::Message;
        self.compute_size() as usize
    }
}
impl crate::RpcMessage for CAuthentication_BeginAuthSessionViaQR_Response {
    fn parse(reader: &mut dyn std::io::Read) -> protobuf::Result<Self> {
        <Self as protobuf::Message>::parse_from_reader(reader)
    }
    fn write(&self, writer: &mut dyn std::io::Write) -> protobuf::Result<()> {
        use protobuf::Message;
        self.write_to_writer(writer)
    }
    fn encode_size(&self) -> usize {
        use protobuf::Message;
        self.compute_size() as usize
    }
}
impl crate::RpcMessage for CAuthentication_BeginAuthSessionViaCredentials_Request {
    fn parse(reader: &mut dyn std::io::Read) -> protobuf::Result<Self> {
        <Self as protobuf::Message>::parse_from_reader(reader)
    }
    fn write(&self, writer: &mut dyn std::io::Write) -> protobuf::Result<()> {
        use protobuf::Message;
        self.write_to_writer(writer)
    }
    fn encode_size(&self) -> usize {
        use protobuf::Message;
        self.compute_size() as usize
    }
}
impl crate::RpcMessage for CAuthentication_BeginAuthSessionViaCredentials_Response {
    fn parse(reader: &mut dyn std::io::Read) -> protobuf::Result<Self> {
        <Self as protobuf::Message>::parse_from_reader(reader)
    }
    fn write(&self, writer: &mut dyn std::io::Write) -> protobuf::Result<()> {
        use protobuf::Message;
        self.write_to_writer(writer)
    }
    fn encode_size(&self) -> usize {
        use protobuf::Message;
        self.compute_size() as usize
    }
}
impl crate::RpcMessage for CAuthentication_PollAuthSessionStatus_Request {
    fn parse(reader: &mut dyn std::io::Read) -> protobuf::Result<Self> {
        <Self as protobuf::Message>::parse_from_reader(reader)
    }
    fn write(&self, writer: &mut dyn std::io::Write) -> protobuf::Result<()> {
        use protobuf::Message;
        self.write_to_writer(writer)
    }
    fn encode_size(&self) -> usize {
        use protobuf::Message;
        self.compute_size() as usize
    }
}
impl crate::RpcMessage for CAuthentication_PollAuthSessionStatus_Response {
    fn parse(reader: &mut dyn std::io::Read) -> protobuf::Result<Self> {
        <Self as protobuf::Message>::parse_from_reader(reader)
    }
    fn write(&self, writer: &mut dyn std::io::Write) -> protobuf::Result<()> {
        use protobuf::Message;
        self.write_to_writer(writer)
    }
    fn encode_size(&self) -> usize {
        use protobuf::Message;
        self.compute_size() as usize
    }
}
impl crate::RpcMessage for CAuthentication_GetAuthSessionInfo_Request {
    fn parse(reader: &mut dyn std::io::Read) -> protobuf::Result<Self> {
        <Self as protobuf::Message>::parse_from_reader(reader)
    }
    fn write(&self, writer: &mut dyn std::io::Write) -> protobuf::Result<()> {
        use protobuf::Message;
        self.write_to_writer(writer)
    }
    fn encode_size(&self) -> usize {
        use protobuf::Message;
        self.compute_size() as usize
    }
}
impl crate::RpcMessage for CAuthentication_GetAuthSessionInfo_Response {
    fn parse(reader: &mut dyn std::io::Read) -> protobuf::Result<Self> {
        <Self as protobuf::Message>::parse_from_reader(reader)
    }
    fn write(&self, writer: &mut dyn std::io::Write) -> protobuf::Result<()> {
        use protobuf::Message;
        self.write_to_writer(writer)
    }
    fn encode_size(&self) -> usize {
        use protobuf::Message;
        self.compute_size() as usize
    }
}
impl crate::RpcMessage
for CAuthentication_UpdateAuthSessionWithMobileConfirmation_Request {
    fn parse(reader: &mut dyn std::io::Read) -> protobuf::Result<Self> {
        <Self as protobuf::Message>::parse_from_reader(reader)
    }
    fn write(&self, writer: &mut dyn std::io::Write) -> protobuf::Result<()> {
        use protobuf::Message;
        self.write_to_writer(writer)
    }
    fn encode_size(&self) -> usize {
        use protobuf::Message;
        self.compute_size() as usize
    }
}
impl crate::RpcMessage
for CAuthentication_UpdateAuthSessionWithMobileConfirmation_Response {
    fn parse(reader: &mut dyn std::io::Read) -> protobuf::Result<Self> {
        <Self as protobuf::Message>::parse_from_reader(reader)
    }
    fn write(&self, writer: &mut dyn std::io::Write) -> protobuf::Result<()> {
        use protobuf::Message;
        self.write_to_writer(writer)
    }
    fn encode_size(&self) -> usize {
        use protobuf::Message;
        self.compute_size() as usize
    }
}
impl crate::RpcMessage for CAuthentication_UpdateAuthSessionWithSteamGuardCode_Request {
    fn parse(reader: &mut dyn std::io::Read) -> protobuf::Result<Self> {
        <Self as protobuf::Message>::parse_from_reader(reader)
    }
    fn write(&self, writer: &mut dyn std::io::Write) -> protobuf::Result<()> {
        use protobuf::Message;
        self.write_to_writer(writer)
    }
    fn encode_size(&self) -> usize {
        use protobuf::Message;
        self.compute_size() as usize
    }
}
impl crate::RpcMessage for CAuthentication_UpdateAuthSessionWithSteamGuardCode_Response {
    fn parse(reader: &mut dyn std::io::Read) -> protobuf::Result<Self> {
        <Self as protobuf::Message>::parse_from_reader(reader)
    }
    fn write(&self, writer: &mut dyn std::io::Write) -> protobuf::Result<()> {
        use protobuf::Message;
        self.write_to_writer(writer)
    }
    fn encode_size(&self) -> usize {
        use protobuf::Message;
        self.compute_size() as usize
    }
}
impl crate::RpcMessage for CAuthentication_AccessToken_GenerateForApp_Request {
    fn parse(reader: &mut dyn std::io::Read) -> protobuf::Result<Self> {
        <Self as protobuf::Message>::parse_from_reader(reader)
    }
    fn write(&self, writer: &mut dyn std::io::Write) -> protobuf::Result<()> {
        use protobuf::Message;
        self.write_to_writer(writer)
    }
    fn encode_size(&self) -> usize {
        use protobuf::Message;
        self.compute_size() as usize
    }
}
impl crate::RpcMessage for CAuthentication_AccessToken_GenerateForApp_Response {
    fn parse(reader: &mut dyn std::io::Read) -> protobuf::Result<Self> {
        <Self as protobuf::Message>::parse_from_reader(reader)
    }
    fn write(&self, writer: &mut dyn std::io::Write) -> protobuf::Result<()> {
        use protobuf::Message;
        self.write_to_writer(writer)
    }
    fn encode_size(&self) -> usize {
        use protobuf::Message;
        self.compute_size() as usize
    }
}
impl crate::RpcMessage for CAuthentication_RefreshToken_Enumerate_Request {
    fn parse(reader: &mut dyn std::io::Read) -> protobuf::Result<Self> {
        <Self as protobuf::Message>::parse_from_reader(reader)
    }
    fn write(&self, writer: &mut dyn std::io::Write) -> protobuf::Result<()> {
        use protobuf::Message;
        self.write_to_writer(writer)
    }
    fn encode_size(&self) -> usize {
        use protobuf::Message;
        self.compute_size() as usize
    }
}
impl crate::RpcMessage for CAuthentication_RefreshToken_Enumerate_Response {
    fn parse(reader: &mut dyn std::io::Read) -> protobuf::Result<Self> {
        <Self as protobuf::Message>::parse_from_reader(reader)
    }
    fn write(&self, writer: &mut dyn std::io::Write) -> protobuf::Result<()> {
        use protobuf::Message;
        self.write_to_writer(writer)
    }
    fn encode_size(&self) -> usize {
        use protobuf::Message;
        self.compute_size() as usize
    }
}
impl crate::RpcMessage for CAuthentication_GetAuthSessionsForAccount_Request {
    fn parse(reader: &mut dyn std::io::Read) -> protobuf::Result<Self> {
        <Self as protobuf::Message>::parse_from_reader(reader)
    }
    fn write(&self, writer: &mut dyn std::io::Write) -> protobuf::Result<()> {
        use protobuf::Message;
        self.write_to_writer(writer)
    }
    fn encode_size(&self) -> usize {
        use protobuf::Message;
        self.compute_size() as usize
    }
}
impl crate::RpcMessage for CAuthentication_GetAuthSessionsForAccount_Response {
    fn parse(reader: &mut dyn std::io::Read) -> protobuf::Result<Self> {
        <Self as protobuf::Message>::parse_from_reader(reader)
    }
    fn write(&self, writer: &mut dyn std::io::Write) -> protobuf::Result<()> {
        use protobuf::Message;
        self.write_to_writer(writer)
    }
    fn encode_size(&self) -> usize {
        use protobuf::Message;
        self.compute_size() as usize
    }
}
impl crate::RpcMessage for CAuthentication_MigrateMobileSession_Request {
    fn parse(reader: &mut dyn std::io::Read) -> protobuf::Result<Self> {
        <Self as protobuf::Message>::parse_from_reader(reader)
    }
    fn write(&self, writer: &mut dyn std::io::Write) -> protobuf::Result<()> {
        use protobuf::Message;
        self.write_to_writer(writer)
    }
    fn encode_size(&self) -> usize {
        use protobuf::Message;
        self.compute_size() as usize
    }
}
impl crate::RpcMessage for CAuthentication_MigrateMobileSession_Response {
    fn parse(reader: &mut dyn std::io::Read) -> protobuf::Result<Self> {
        <Self as protobuf::Message>::parse_from_reader(reader)
    }
    fn write(&self, writer: &mut dyn std::io::Write) -> protobuf::Result<()> {
        use protobuf::Message;
        self.write_to_writer(writer)
    }
    fn encode_size(&self) -> usize {
        use protobuf::Message;
        self.compute_size() as usize
    }
}
impl crate::RpcMessage for CAuthentication_Token_Revoke_Request {
    fn parse(reader: &mut dyn std::io::Read) -> protobuf::Result<Self> {
        <Self as protobuf::Message>::parse_from_reader(reader)
    }
    fn write(&self, writer: &mut dyn std::io::Write) -> protobuf::Result<()> {
        use protobuf::Message;
        self.write_to_writer(writer)
    }
    fn encode_size(&self) -> usize {
        use protobuf::Message;
        self.compute_size() as usize
    }
}
impl crate::RpcMessage for CAuthentication_Token_Revoke_Response {
    fn parse(reader: &mut dyn std::io::Read) -> protobuf::Result<Self> {
        <Self as protobuf::Message>::parse_from_reader(reader)
    }
    fn write(&self, writer: &mut dyn std::io::Write) -> protobuf::Result<()> {
        use protobuf::Message;
        self.write_to_writer(writer)
    }
    fn encode_size(&self) -> usize {
        use protobuf::Message;
        self.compute_size() as usize
    }
}
impl crate::RpcMessage for CAuthentication_RefreshToken_Revoke_Request {
    fn parse(reader: &mut dyn std::io::Read) -> protobuf::Result<Self> {
        <Self as protobuf::Message>::parse_from_reader(reader)
    }
    fn write(&self, writer: &mut dyn std::io::Write) -> protobuf::Result<()> {
        use protobuf::Message;
        self.write_to_writer(writer)
    }
    fn encode_size(&self) -> usize {
        use protobuf::Message;
        self.compute_size() as usize
    }
}
impl crate::RpcMessage for CAuthentication_RefreshToken_Revoke_Response {
    fn parse(reader: &mut dyn std::io::Read) -> protobuf::Result<Self> {
        <Self as protobuf::Message>::parse_from_reader(reader)
    }
    fn write(&self, writer: &mut dyn std::io::Write) -> protobuf::Result<()> {
        use protobuf::Message;
        self.write_to_writer(writer)
    }
    fn encode_size(&self) -> usize {
        use protobuf::Message;
        self.compute_size() as usize
    }
}
impl crate::RpcMessage for CAuthenticationSupport_QueryRefreshTokensByAccount_Request {
    fn parse(reader: &mut dyn std::io::Read) -> protobuf::Result<Self> {
        <Self as protobuf::Message>::parse_from_reader(reader)
    }
    fn write(&self, writer: &mut dyn std::io::Write) -> protobuf::Result<()> {
        use protobuf::Message;
        self.write_to_writer(writer)
    }
    fn encode_size(&self) -> usize {
        use protobuf::Message;
        self.compute_size() as usize
    }
}
impl crate::RpcMessage for CSupportRefreshTokenDescription {
    fn parse(reader: &mut dyn std::io::Read) -> protobuf::Result<Self> {
        <Self as protobuf::Message>::parse_from_reader(reader)
    }
    fn write(&self, writer: &mut dyn std::io::Write) -> protobuf::Result<()> {
        use protobuf::Message;
        self.write_to_writer(writer)
    }
    fn encode_size(&self) -> usize {
        use protobuf::Message;
        self.compute_size() as usize
    }
}
impl crate::RpcMessage for CAuthenticationSupport_QueryRefreshTokensByAccount_Response {
    fn parse(reader: &mut dyn std::io::Read) -> protobuf::Result<Self> {
        <Self as protobuf::Message>::parse_from_reader(reader)
    }
    fn write(&self, writer: &mut dyn std::io::Write) -> protobuf::Result<()> {
        use protobuf::Message;
        self.write_to_writer(writer)
    }
    fn encode_size(&self) -> usize {
        use protobuf::Message;
        self.compute_size() as usize
    }
}
impl crate::RpcMessage for CAuthenticationSupport_QueryRefreshTokenByID_Request {
    fn parse(reader: &mut dyn std::io::Read) -> protobuf::Result<Self> {
        <Self as protobuf::Message>::parse_from_reader(reader)
    }
    fn write(&self, writer: &mut dyn std::io::Write) -> protobuf::Result<()> {
        use protobuf::Message;
        self.write_to_writer(writer)
    }
    fn encode_size(&self) -> usize {
        use protobuf::Message;
        self.compute_size() as usize
    }
}
impl crate::RpcMessage for CAuthenticationSupport_QueryRefreshTokenByID_Response {
    fn parse(reader: &mut dyn std::io::Read) -> protobuf::Result<Self> {
        <Self as protobuf::Message>::parse_from_reader(reader)
    }
    fn write(&self, writer: &mut dyn std::io::Write) -> protobuf::Result<()> {
        use protobuf::Message;
        self.write_to_writer(writer)
    }
    fn encode_size(&self) -> usize {
        use protobuf::Message;
        self.compute_size() as usize
    }
}
impl crate::RpcMessage for CAuthenticationSupport_RevokeToken_Request {
    fn parse(reader: &mut dyn std::io::Read) -> protobuf::Result<Self> {
        <Self as protobuf::Message>::parse_from_reader(reader)
    }
    fn write(&self, writer: &mut dyn std::io::Write) -> protobuf::Result<()> {
        use protobuf::Message;
        self.write_to_writer(writer)
    }
    fn encode_size(&self) -> usize {
        use protobuf::Message;
        self.compute_size() as usize
    }
}
impl crate::RpcMessage for CAuthenticationSupport_RevokeToken_Response {
    fn parse(reader: &mut dyn std::io::Read) -> protobuf::Result<Self> {
        <Self as protobuf::Message>::parse_from_reader(reader)
    }
    fn write(&self, writer: &mut dyn std::io::Write) -> protobuf::Result<()> {
        use protobuf::Message;
        self.write_to_writer(writer)
    }
    fn encode_size(&self) -> usize {
        use protobuf::Message;
        self.compute_size() as usize
    }
}
impl crate::RpcMessage for CAuthenticationSupport_GetTokenHistory_Request {
    fn parse(reader: &mut dyn std::io::Read) -> protobuf::Result<Self> {
        <Self as protobuf::Message>::parse_from_reader(reader)
    }
    fn write(&self, writer: &mut dyn std::io::Write) -> protobuf::Result<()> {
        use protobuf::Message;
        self.write_to_writer(writer)
    }
    fn encode_size(&self) -> usize {
        use protobuf::Message;
        self.compute_size() as usize
    }
}
impl crate::RpcMessage for CSupportRefreshTokenAudit {
    fn parse(reader: &mut dyn std::io::Read) -> protobuf::Result<Self> {
        <Self as protobuf::Message>::parse_from_reader(reader)
    }
    fn write(&self, writer: &mut dyn std::io::Write) -> protobuf::Result<()> {
        use protobuf::Message;
        self.write_to_writer(writer)
    }
    fn encode_size(&self) -> usize {
        use protobuf::Message;
        self.compute_size() as usize
    }
}
impl crate::RpcMessage for CAuthenticationSupport_GetTokenHistory_Response {
    fn parse(reader: &mut dyn std::io::Read) -> protobuf::Result<Self> {
        <Self as protobuf::Message>::parse_from_reader(reader)
    }
    fn write(&self, writer: &mut dyn std::io::Write) -> protobuf::Result<()> {
        use protobuf::Message;
        self.write_to_writer(writer)
    }
    fn encode_size(&self) -> usize {
        use protobuf::Message;
        self.compute_size() as usize
    }
}
impl crate::RpcMessage for CCloudGaming_CreateNonce_Request {
    fn parse(reader: &mut dyn std::io::Read) -> protobuf::Result<Self> {
        <Self as protobuf::Message>::parse_from_reader(reader)
    }
    fn write(&self, writer: &mut dyn std::io::Write) -> protobuf::Result<()> {
        use protobuf::Message;
        self.write_to_writer(writer)
    }
    fn encode_size(&self) -> usize {
        use protobuf::Message;
        self.compute_size() as usize
    }
}
impl crate::RpcMessage for CCloudGaming_CreateNonce_Response {
    fn parse(reader: &mut dyn std::io::Read) -> protobuf::Result<Self> {
        <Self as protobuf::Message>::parse_from_reader(reader)
    }
    fn write(&self, writer: &mut dyn std::io::Write) -> protobuf::Result<()> {
        use protobuf::Message;
        self.write_to_writer(writer)
    }
    fn encode_size(&self) -> usize {
        use protobuf::Message;
        self.compute_size() as usize
    }
}
impl crate::RpcMessage for CCloudGaming_GetTimeRemaining_Request {
    fn parse(reader: &mut dyn std::io::Read) -> protobuf::Result<Self> {
        <Self as protobuf::Message>::parse_from_reader(reader)
    }
    fn write(&self, writer: &mut dyn std::io::Write) -> protobuf::Result<()> {
        use protobuf::Message;
        self.write_to_writer(writer)
    }
    fn encode_size(&self) -> usize {
        use protobuf::Message;
        self.compute_size() as usize
    }
}
impl crate::RpcMessage for CCloudGaming_TimeRemaining {
    fn parse(reader: &mut dyn std::io::Read) -> protobuf::Result<Self> {
        <Self as protobuf::Message>::parse_from_reader(reader)
    }
    fn write(&self, writer: &mut dyn std::io::Write) -> protobuf::Result<()> {
        use protobuf::Message;
        self.write_to_writer(writer)
    }
    fn encode_size(&self) -> usize {
        use protobuf::Message;
        self.compute_size() as usize
    }
}
impl crate::RpcMessage for CCloudGaming_GetTimeRemaining_Response {
    fn parse(reader: &mut dyn std::io::Read) -> protobuf::Result<Self> {
        <Self as protobuf::Message>::parse_from_reader(reader)
    }
    fn write(&self, writer: &mut dyn std::io::Write) -> protobuf::Result<()> {
        use protobuf::Message;
        self.write_to_writer(writer)
    }
    fn encode_size(&self) -> usize {
        use protobuf::Message;
        self.compute_size() as usize
    }
}
struct Authentication {}
impl crate::RpcService for Authentication {
    const SERVICE_NAME: &'static str = "Authentication";
}
struct AuthenticationSupport {}
impl crate::RpcService for AuthenticationSupport {
    const SERVICE_NAME: &'static str = "AuthenticationSupport";
}
struct CloudGaming {}
impl crate::RpcService for CloudGaming {
    const SERVICE_NAME: &'static str = "CloudGaming";
}
impl crate::RpcMethod for CAuthenticationSupport_GetTokenHistory_Request {
    const METHOD_NAME: &'static str = "AuthenticationSupport.GetTokenHistory#1";
    type Response = CAuthenticationSupport_GetTokenHistory_Response;
}
impl crate::RpcMethod for CAuthenticationSupport_QueryRefreshTokenByID_Request {
    const METHOD_NAME: &'static str = "AuthenticationSupport.QueryRefreshTokenByID#1";
    type Response = CAuthenticationSupport_QueryRefreshTokenByID_Response;
}
impl crate::RpcMethod for CAuthenticationSupport_QueryRefreshTokensByAccount_Request {
    const METHOD_NAME: &'static str = "AuthenticationSupport.QueryRefreshTokensByAccount#1";
    type Response = CAuthenticationSupport_QueryRefreshTokensByAccount_Response;
}
impl crate::RpcMethod for CAuthenticationSupport_RevokeToken_Request {
    const METHOD_NAME: &'static str = "AuthenticationSupport.RevokeToken#1";
    type Response = CAuthenticationSupport_RevokeToken_Response;
}
impl crate::RpcMethod for CAuthentication_AccessToken_GenerateForApp_Request {
    const METHOD_NAME: &'static str = "Authentication.GenerateAccessTokenForApp#1";
    type Response = CAuthentication_AccessToken_GenerateForApp_Response;
}
impl crate::RpcMethod for CAuthentication_BeginAuthSessionViaCredentials_Request {
    const METHOD_NAME: &'static str = "Authentication.BeginAuthSessionViaCredentials#1";
    type Response = CAuthentication_BeginAuthSessionViaCredentials_Response;
}
impl crate::RpcMethod for CAuthentication_BeginAuthSessionViaQR_Request {
    const METHOD_NAME: &'static str = "Authentication.BeginAuthSessionViaQR#1";
    type Response = CAuthentication_BeginAuthSessionViaQR_Response;
}
impl crate::RpcMethod for CAuthentication_GetAuthSessionInfo_Request {
    const METHOD_NAME: &'static str = "Authentication.GetAuthSessionInfo#1";
    type Response = CAuthentication_GetAuthSessionInfo_Response;
}
impl crate::RpcMethod for CAuthentication_GetAuthSessionsForAccount_Request {
    const METHOD_NAME: &'static str = "Authentication.GetAuthSessionsForAccount#1";
    type Response = CAuthentication_GetAuthSessionsForAccount_Response;
}
impl crate::RpcMethod for CAuthentication_GetPasswordRSAPublicKey_Request {
    const METHOD_NAME: &'static str = "Authentication.GetPasswordRSAPublicKey#1";
    type Response = CAuthentication_GetPasswordRSAPublicKey_Response;
}
impl crate::RpcMethod for CAuthentication_MigrateMobileSession_Request {
    const METHOD_NAME: &'static str = "Authentication.MigrateMobileSession#1";
    type Response = CAuthentication_MigrateMobileSession_Response;
}
impl crate::RpcMethod for CAuthentication_PollAuthSessionStatus_Request {
    const METHOD_NAME: &'static str = "Authentication.PollAuthSessionStatus#1";
    type Response = CAuthentication_PollAuthSessionStatus_Response;
}
impl crate::RpcMethod for CAuthentication_RefreshToken_Enumerate_Request {
    const METHOD_NAME: &'static str = "Authentication.EnumerateTokens#1";
    type Response = CAuthentication_RefreshToken_Enumerate_Response;
}
impl crate::RpcMethod for CAuthentication_RefreshToken_Revoke_Request {
    const METHOD_NAME: &'static str = "Authentication.RevokeRefreshToken#1";
    type Response = CAuthentication_RefreshToken_Revoke_Response;
}
impl crate::RpcMethod for CAuthentication_Token_Revoke_Request {
    const METHOD_NAME: &'static str = "Authentication.RevokeToken#1";
    type Response = CAuthentication_Token_Revoke_Response;
}
impl crate::RpcMethod
for CAuthentication_UpdateAuthSessionWithMobileConfirmation_Request {
    const METHOD_NAME: &'static str = "Authentication.UpdateAuthSessionWithMobileConfirmation#1";
    type Response = CAuthentication_UpdateAuthSessionWithMobileConfirmation_Response;
}
impl crate::RpcMethod for CAuthentication_UpdateAuthSessionWithSteamGuardCode_Request {
    const METHOD_NAME: &'static str = "Authentication.UpdateAuthSessionWithSteamGuardCode#1";
    type Response = CAuthentication_UpdateAuthSessionWithSteamGuardCode_Response;
}
impl crate::RpcMethod for CCloudGaming_CreateNonce_Request {
    const METHOD_NAME: &'static str = "CloudGaming.CreateNonce#1";
    type Response = CCloudGaming_CreateNonce_Response;
}
impl crate::RpcMethod for CCloudGaming_GetTimeRemaining_Request {
    const METHOD_NAME: &'static str = "CloudGaming.GetTimeRemaining#1";
    type Response = CCloudGaming_GetTimeRemaining_Response;
}