// <auto-generated>
//   This file was generated by a tool; you should avoid making direct changes.
//   Consider using 'partial classes' to extend these types
//   Input: steammessages_clientmetrics.steamclient.proto
// </auto-generated>

#region Designer generated code
#pragma warning disable CS0612, CS0618, CS1591, CS3021, IDE0079, IDE1006, RCS1036, RCS1057, RCS1085, RCS1192
namespace SteamKit2.Internal
{

    [global::ProtoBuf.ProtoContract()]
    public partial class CClientMetrics_AppInterfaceCreation : global::ProtoBuf.IExtensible
    {
        private global::ProtoBuf.IExtension __pbn__extensionData;
        global::ProtoBuf.IExtension global::ProtoBuf.IExtensible.GetExtensionObject(bool createIfMissing)
            => global::ProtoBuf.Extensible.GetExtensionObject(ref __pbn__extensionData, createIfMissing);

        [global::ProtoBuf.ProtoMember(1)]
        [global::System.ComponentModel.DefaultValue("")]
        public string raw_version
        {
            get => __pbn__raw_version ?? "";
            set => __pbn__raw_version = value;
        }
        public bool ShouldSerializeraw_version() => __pbn__raw_version != null;
        public void Resetraw_version() => __pbn__raw_version = null;
        private string __pbn__raw_version;

        [global::ProtoBuf.ProtoMember(2)]
        [global::System.ComponentModel.DefaultValue("")]
        public string requested_interface_type
        {
            get => __pbn__requested_interface_type ?? "";
            set => __pbn__requested_interface_type = value;
        }
        public bool ShouldSerializerequested_interface_type() => __pbn__requested_interface_type != null;
        public void Resetrequested_interface_type() => __pbn__requested_interface_type = null;
        private string __pbn__requested_interface_type;

    }

    [global::ProtoBuf.ProtoContract()]
    public partial class CClientMetrics_AppInterfaceMethodCounts : global::ProtoBuf.IExtensible
    {
        private global::ProtoBuf.IExtension __pbn__extensionData;
        global::ProtoBuf.IExtension global::ProtoBuf.IExtensible.GetExtensionObject(bool createIfMissing)
            => global::ProtoBuf.Extensible.GetExtensionObject(ref __pbn__extensionData, createIfMissing);

        [global::ProtoBuf.ProtoMember(1)]
        [global::System.ComponentModel.DefaultValue("")]
        public string interface_name
        {
            get => __pbn__interface_name ?? "";
            set => __pbn__interface_name = value;
        }
        public bool ShouldSerializeinterface_name() => __pbn__interface_name != null;
        public void Resetinterface_name() => __pbn__interface_name = null;
        private string __pbn__interface_name;

        [global::ProtoBuf.ProtoMember(2)]
        [global::System.ComponentModel.DefaultValue("")]
        public string method_name
        {
            get => __pbn__method_name ?? "";
            set => __pbn__method_name = value;
        }
        public bool ShouldSerializemethod_name() => __pbn__method_name != null;
        public void Resetmethod_name() => __pbn__method_name = null;
        private string __pbn__method_name;

        [global::ProtoBuf.ProtoMember(3)]
        public uint call_count
        {
            get => __pbn__call_count.GetValueOrDefault();
            set => __pbn__call_count = value;
        }
        public bool ShouldSerializecall_count() => __pbn__call_count != null;
        public void Resetcall_count() => __pbn__call_count = null;
        private uint? __pbn__call_count;

    }

    [global::ProtoBuf.ProtoContract()]
    public partial class CClientMetrics_AppInterfaceStats_Notification : global::ProtoBuf.IExtensible
    {
        private global::ProtoBuf.IExtension __pbn__extensionData;
        global::ProtoBuf.IExtension global::ProtoBuf.IExtensible.GetExtensionObject(bool createIfMissing)
            => global::ProtoBuf.Extensible.GetExtensionObject(ref __pbn__extensionData, createIfMissing);

        [global::ProtoBuf.ProtoMember(1)]
        public ulong game_id
        {
            get => __pbn__game_id.GetValueOrDefault();
            set => __pbn__game_id = value;
        }
        public bool ShouldSerializegame_id() => __pbn__game_id != null;
        public void Resetgame_id() => __pbn__game_id = null;
        private ulong? __pbn__game_id;

        [global::ProtoBuf.ProtoMember(2)]
        public global::System.Collections.Generic.List<CClientMetrics_AppInterfaceCreation> interfaces_created { get; } = new global::System.Collections.Generic.List<CClientMetrics_AppInterfaceCreation>();

        [global::ProtoBuf.ProtoMember(3)]
        public global::System.Collections.Generic.List<CClientMetrics_AppInterfaceMethodCounts> methods_called { get; } = new global::System.Collections.Generic.List<CClientMetrics_AppInterfaceMethodCounts>();

        [global::ProtoBuf.ProtoMember(4)]
        public uint session_length_seconds
        {
            get => __pbn__session_length_seconds.GetValueOrDefault();
            set => __pbn__session_length_seconds = value;
        }
        public bool ShouldSerializesession_length_seconds() => __pbn__session_length_seconds != null;
        public void Resetsession_length_seconds() => __pbn__session_length_seconds = null;
        private uint? __pbn__session_length_seconds;

    }

    [global::ProtoBuf.ProtoContract()]
    public partial class CClientMetrics_IPv6Connectivity_Result : global::ProtoBuf.IExtensible
    {
        private global::ProtoBuf.IExtension __pbn__extensionData;
        global::ProtoBuf.IExtension global::ProtoBuf.IExtensible.GetExtensionObject(bool createIfMissing)
            => global::ProtoBuf.Extensible.GetExtensionObject(ref __pbn__extensionData, createIfMissing);

        [global::ProtoBuf.ProtoMember(1)]
        public uint protocol_tested
        {
            get => __pbn__protocol_tested.GetValueOrDefault();
            set => __pbn__protocol_tested = value;
        }
        public bool ShouldSerializeprotocol_tested() => __pbn__protocol_tested != null;
        public void Resetprotocol_tested() => __pbn__protocol_tested = null;
        private uint? __pbn__protocol_tested;

        [global::ProtoBuf.ProtoMember(2)]
        public uint connectivity_state
        {
            get => __pbn__connectivity_state.GetValueOrDefault();
            set => __pbn__connectivity_state = value;
        }
        public bool ShouldSerializeconnectivity_state() => __pbn__connectivity_state != null;
        public void Resetconnectivity_state() => __pbn__connectivity_state = null;
        private uint? __pbn__connectivity_state;

    }

    [global::ProtoBuf.ProtoContract()]
    public partial class CClientMetrics_IPv6Connectivity_Notification : global::ProtoBuf.IExtensible
    {
        private global::ProtoBuf.IExtension __pbn__extensionData;
        global::ProtoBuf.IExtension global::ProtoBuf.IExtensible.GetExtensionObject(bool createIfMissing)
            => global::ProtoBuf.Extensible.GetExtensionObject(ref __pbn__extensionData, createIfMissing);

        [global::ProtoBuf.ProtoMember(1)]
        public uint cell_id
        {
            get => __pbn__cell_id.GetValueOrDefault();
            set => __pbn__cell_id = value;
        }
        public bool ShouldSerializecell_id() => __pbn__cell_id != null;
        public void Resetcell_id() => __pbn__cell_id = null;
        private uint? __pbn__cell_id;

        [global::ProtoBuf.ProtoMember(2)]
        public global::System.Collections.Generic.List<CClientMetrics_IPv6Connectivity_Result> results { get; } = new global::System.Collections.Generic.List<CClientMetrics_IPv6Connectivity_Result>();

        [global::ProtoBuf.ProtoMember(3)]
        public bool private_ip_is_rfc6598
        {
            get => __pbn__private_ip_is_rfc6598.GetValueOrDefault();
            set => __pbn__private_ip_is_rfc6598 = value;
        }
        public bool ShouldSerializeprivate_ip_is_rfc6598() => __pbn__private_ip_is_rfc6598 != null;
        public void Resetprivate_ip_is_rfc6598() => __pbn__private_ip_is_rfc6598 = null;
        private bool? __pbn__private_ip_is_rfc6598;

    }

    [global::ProtoBuf.ProtoContract()]
    public partial class CClientMetrics_SteamPipeWorkStats_Operation : global::ProtoBuf.IExtensible
    {
        private global::ProtoBuf.IExtension __pbn__extensionData;
        global::ProtoBuf.IExtension global::ProtoBuf.IExtensible.GetExtensionObject(bool createIfMissing)
            => global::ProtoBuf.Extensible.GetExtensionObject(ref __pbn__extensionData, createIfMissing);

        [global::ProtoBuf.ProtoMember(1)]
        [global::System.ComponentModel.DefaultValue(ESteamPipeOperationType.k_ESteamPipeOperationType_Invalid)]
        public ESteamPipeOperationType type
        {
            get => __pbn__type ?? ESteamPipeOperationType.k_ESteamPipeOperationType_Invalid;
            set => __pbn__type = value;
        }
        public bool ShouldSerializetype() => __pbn__type != null;
        public void Resettype() => __pbn__type = null;
        private ESteamPipeOperationType? __pbn__type;

        [global::ProtoBuf.ProtoMember(2)]
        public uint num_ops
        {
            get => __pbn__num_ops.GetValueOrDefault();
            set => __pbn__num_ops = value;
        }
        public bool ShouldSerializenum_ops() => __pbn__num_ops != null;
        public void Resetnum_ops() => __pbn__num_ops = null;
        private uint? __pbn__num_ops;

        [global::ProtoBuf.ProtoMember(3)]
        public ulong num_bytes
        {
            get => __pbn__num_bytes.GetValueOrDefault();
            set => __pbn__num_bytes = value;
        }
        public bool ShouldSerializenum_bytes() => __pbn__num_bytes != null;
        public void Resetnum_bytes() => __pbn__num_bytes = null;
        private ulong? __pbn__num_bytes;

        [global::ProtoBuf.ProtoMember(4)]
        public ulong busy_time_ms
        {
            get => __pbn__busy_time_ms.GetValueOrDefault();
            set => __pbn__busy_time_ms = value;
        }
        public bool ShouldSerializebusy_time_ms() => __pbn__busy_time_ms != null;
        public void Resetbusy_time_ms() => __pbn__busy_time_ms = null;
        private ulong? __pbn__busy_time_ms;

        [global::ProtoBuf.ProtoMember(5)]
        public ulong idle_time_ms
        {
            get => __pbn__idle_time_ms.GetValueOrDefault();
            set => __pbn__idle_time_ms = value;
        }
        public bool ShouldSerializeidle_time_ms() => __pbn__idle_time_ms != null;
        public void Resetidle_time_ms() => __pbn__idle_time_ms = null;
        private ulong? __pbn__idle_time_ms;

        [global::ProtoBuf.ProtoMember(6)]
        public ulong sum_run_time_ms
        {
            get => __pbn__sum_run_time_ms.GetValueOrDefault();
            set => __pbn__sum_run_time_ms = value;
        }
        public bool ShouldSerializesum_run_time_ms() => __pbn__sum_run_time_ms != null;
        public void Resetsum_run_time_ms() => __pbn__sum_run_time_ms = null;
        private ulong? __pbn__sum_run_time_ms;

        [global::ProtoBuf.ProtoMember(7)]
        public ulong sum_wait_time_ms
        {
            get => __pbn__sum_wait_time_ms.GetValueOrDefault();
            set => __pbn__sum_wait_time_ms = value;
        }
        public bool ShouldSerializesum_wait_time_ms() => __pbn__sum_wait_time_ms != null;
        public void Resetsum_wait_time_ms() => __pbn__sum_wait_time_ms = null;
        private ulong? __pbn__sum_wait_time_ms;

    }

    [global::ProtoBuf.ProtoContract()]
    public partial class CClientMetrics_SteamPipeWorkStats_Notification : global::ProtoBuf.IExtensible
    {
        private global::ProtoBuf.IExtension __pbn__extensionData;
        global::ProtoBuf.IExtension global::ProtoBuf.IExtensible.GetExtensionObject(bool createIfMissing)
            => global::ProtoBuf.Extensible.GetExtensionObject(ref __pbn__extensionData, createIfMissing);

        [global::ProtoBuf.ProtoMember(1)]
        public uint appid
        {
            get => __pbn__appid.GetValueOrDefault();
            set => __pbn__appid = value;
        }
        public bool ShouldSerializeappid() => __pbn__appid != null;
        public void Resetappid() => __pbn__appid = null;
        private uint? __pbn__appid;

        [global::ProtoBuf.ProtoMember(2)]
        public uint depotid
        {
            get => __pbn__depotid.GetValueOrDefault();
            set => __pbn__depotid = value;
        }
        public bool ShouldSerializedepotid() => __pbn__depotid != null;
        public void Resetdepotid() => __pbn__depotid = null;
        private uint? __pbn__depotid;

        [global::ProtoBuf.ProtoMember(3)]
        [global::System.ComponentModel.DefaultValue(ESteamPipeWorkType.k_ESteamPipeClientWorkType_Invalid)]
        public ESteamPipeWorkType work_type
        {
            get => __pbn__work_type ?? ESteamPipeWorkType.k_ESteamPipeClientWorkType_Invalid;
            set => __pbn__work_type = value;
        }
        public bool ShouldSerializework_type() => __pbn__work_type != null;
        public void Resetwork_type() => __pbn__work_type = null;
        private ESteamPipeWorkType? __pbn__work_type;

        [global::ProtoBuf.ProtoMember(4)]
        public global::System.Collections.Generic.List<CClientMetrics_SteamPipeWorkStats_Operation> operations { get; } = new global::System.Collections.Generic.List<CClientMetrics_SteamPipeWorkStats_Operation>();

        [global::ProtoBuf.ProtoMember(5)]
        public uint hardware_type
        {
            get => __pbn__hardware_type.GetValueOrDefault();
            set => __pbn__hardware_type = value;
        }
        public bool ShouldSerializehardware_type() => __pbn__hardware_type != null;
        public void Resethardware_type() => __pbn__hardware_type = null;
        private uint? __pbn__hardware_type;

    }

    [global::ProtoBuf.ProtoContract()]
    public partial class CClientMetrics_ReportReactUsage_Notification : global::ProtoBuf.IExtensible
    {
        private global::ProtoBuf.IExtension __pbn__extensionData;
        global::ProtoBuf.IExtension global::ProtoBuf.IExtensible.GetExtensionObject(bool createIfMissing)
            => global::ProtoBuf.Extensible.GetExtensionObject(ref __pbn__extensionData, createIfMissing);

        [global::ProtoBuf.ProtoMember(1)]
        [global::System.ComponentModel.DefaultValue("")]
        public string product
        {
            get => __pbn__product ?? "";
            set => __pbn__product = value;
        }
        public bool ShouldSerializeproduct() => __pbn__product != null;
        public void Resetproduct() => __pbn__product = null;
        private string __pbn__product;

        [global::ProtoBuf.ProtoMember(2)]
        [global::System.ComponentModel.DefaultValue("")]
        public string version
        {
            get => __pbn__version ?? "";
            set => __pbn__version = value;
        }
        public bool ShouldSerializeversion() => __pbn__version != null;
        public void Resetversion() => __pbn__version = null;
        private string __pbn__version;

        [global::ProtoBuf.ProtoMember(3)]
        public global::System.Collections.Generic.List<RouteData> routes { get; } = new global::System.Collections.Generic.List<RouteData>();

        [global::ProtoBuf.ProtoMember(4)]
        public global::System.Collections.Generic.List<ComponentData> components { get; } = new global::System.Collections.Generic.List<ComponentData>();

        [global::ProtoBuf.ProtoMember(5)]
        public global::System.Collections.Generic.List<ActionData> actions { get; } = new global::System.Collections.Generic.List<ActionData>();

        [global::ProtoBuf.ProtoContract()]
        public partial class RouteData : global::ProtoBuf.IExtensible
        {
            private global::ProtoBuf.IExtension __pbn__extensionData;
            global::ProtoBuf.IExtension global::ProtoBuf.IExtensible.GetExtensionObject(bool createIfMissing)
                => global::ProtoBuf.Extensible.GetExtensionObject(ref __pbn__extensionData, createIfMissing);

            [global::ProtoBuf.ProtoMember(1)]
            [global::System.ComponentModel.DefaultValue("")]
            public string route
            {
                get => __pbn__route ?? "";
                set => __pbn__route = value;
            }
            public bool ShouldSerializeroute() => __pbn__route != null;
            public void Resetroute() => __pbn__route = null;
            private string __pbn__route;

            [global::ProtoBuf.ProtoMember(2)]
            public uint count
            {
                get => __pbn__count.GetValueOrDefault();
                set => __pbn__count = value;
            }
            public bool ShouldSerializecount() => __pbn__count != null;
            public void Resetcount() => __pbn__count = null;
            private uint? __pbn__count;

        }

        [global::ProtoBuf.ProtoContract()]
        public partial class ComponentData : global::ProtoBuf.IExtensible
        {
            private global::ProtoBuf.IExtension __pbn__extensionData;
            global::ProtoBuf.IExtension global::ProtoBuf.IExtensible.GetExtensionObject(bool createIfMissing)
                => global::ProtoBuf.Extensible.GetExtensionObject(ref __pbn__extensionData, createIfMissing);

            [global::ProtoBuf.ProtoMember(1)]
            [global::System.ComponentModel.DefaultValue("")]
            public string component
            {
                get => __pbn__component ?? "";
                set => __pbn__component = value;
            }
            public bool ShouldSerializecomponent() => __pbn__component != null;
            public void Resetcomponent() => __pbn__component = null;
            private string __pbn__component;

            [global::ProtoBuf.ProtoMember(2)]
            public uint count
            {
                get => __pbn__count.GetValueOrDefault();
                set => __pbn__count = value;
            }
            public bool ShouldSerializecount() => __pbn__count != null;
            public void Resetcount() => __pbn__count = null;
            private uint? __pbn__count;

        }

        [global::ProtoBuf.ProtoContract()]
        public partial class ActionData : global::ProtoBuf.IExtensible
        {
            private global::ProtoBuf.IExtension __pbn__extensionData;
            global::ProtoBuf.IExtension global::ProtoBuf.IExtensible.GetExtensionObject(bool createIfMissing)
                => global::ProtoBuf.Extensible.GetExtensionObject(ref __pbn__extensionData, createIfMissing);

            [global::ProtoBuf.ProtoMember(1)]
            [global::System.ComponentModel.DefaultValue("")]
            public string action
            {
                get => __pbn__action ?? "";
                set => __pbn__action = value;
            }
            public bool ShouldSerializeaction() => __pbn__action != null;
            public void Resetaction() => __pbn__action = null;
            private string __pbn__action;

            [global::ProtoBuf.ProtoMember(2)]
            public uint count
            {
                get => __pbn__count.GetValueOrDefault();
                set => __pbn__count = value;
            }
            public bool ShouldSerializecount() => __pbn__count != null;
            public void Resetcount() => __pbn__count = null;
            private uint? __pbn__count;

        }

    }

    [global::ProtoBuf.ProtoContract()]
    public partial class CClientMetrics_ReportClientError_Notification : global::ProtoBuf.IExtensible
    {
        private global::ProtoBuf.IExtension __pbn__extensionData;
        global::ProtoBuf.IExtension global::ProtoBuf.IExtensible.GetExtensionObject(bool createIfMissing)
            => global::ProtoBuf.Extensible.GetExtensionObject(ref __pbn__extensionData, createIfMissing);

        [global::ProtoBuf.ProtoMember(1)]
        [global::System.ComponentModel.DefaultValue("")]
        public string product
        {
            get => __pbn__product ?? "";
            set => __pbn__product = value;
        }
        public bool ShouldSerializeproduct() => __pbn__product != null;
        public void Resetproduct() => __pbn__product = null;
        private string __pbn__product;

        [global::ProtoBuf.ProtoMember(2)]
        [global::System.ComponentModel.DefaultValue("")]
        public string version
        {
            get => __pbn__version ?? "";
            set => __pbn__version = value;
        }
        public bool ShouldSerializeversion() => __pbn__version != null;
        public void Resetversion() => __pbn__version = null;
        private string __pbn__version;

        [global::ProtoBuf.ProtoMember(3)]
        public global::System.Collections.Generic.List<Error> errors { get; } = new global::System.Collections.Generic.List<Error>();

        [global::ProtoBuf.ProtoContract()]
        public partial class Error : global::ProtoBuf.IExtensible
        {
            private global::ProtoBuf.IExtension __pbn__extensionData;
            global::ProtoBuf.IExtension global::ProtoBuf.IExtensible.GetExtensionObject(bool createIfMissing)
                => global::ProtoBuf.Extensible.GetExtensionObject(ref __pbn__extensionData, createIfMissing);

            [global::ProtoBuf.ProtoMember(1)]
            [global::System.ComponentModel.DefaultValue("")]
            public string identifier
            {
                get => __pbn__identifier ?? "";
                set => __pbn__identifier = value;
            }
            public bool ShouldSerializeidentifier() => __pbn__identifier != null;
            public void Resetidentifier() => __pbn__identifier = null;
            private string __pbn__identifier;

            [global::ProtoBuf.ProtoMember(2)]
            [global::System.ComponentModel.DefaultValue("")]
            public string message
            {
                get => __pbn__message ?? "";
                set => __pbn__message = value;
            }
            public bool ShouldSerializemessage() => __pbn__message != null;
            public void Resetmessage() => __pbn__message = null;
            private string __pbn__message;

            [global::ProtoBuf.ProtoMember(3)]
            public uint count
            {
                get => __pbn__count.GetValueOrDefault();
                set => __pbn__count = value;
            }
            public bool ShouldSerializecount() => __pbn__count != null;
            public void Resetcount() => __pbn__count = null;
            private uint? __pbn__count;

        }

    }

    [global::ProtoBuf.ProtoContract()]
    public partial class CClientMetrics_ClientBootstrap_Notification : global::ProtoBuf.IExtensible
    {
        private global::ProtoBuf.IExtension __pbn__extensionData;
        global::ProtoBuf.IExtension global::ProtoBuf.IExtensible.GetExtensionObject(bool createIfMissing)
            => global::ProtoBuf.Extensible.GetExtensionObject(ref __pbn__extensionData, createIfMissing);

        [global::ProtoBuf.ProtoMember(1)]
        public CClientMetrics_ClientBootstrap_Summary summary { get; set; }

    }

    [global::ProtoBuf.ProtoContract()]
    public partial class CClientMetrics_DownloadRates_Notification : global::ProtoBuf.IExtensible
    {
        private global::ProtoBuf.IExtension __pbn__extensionData;
        global::ProtoBuf.IExtension global::ProtoBuf.IExtensible.GetExtensionObject(bool createIfMissing)
            => global::ProtoBuf.Extensible.GetExtensionObject(ref __pbn__extensionData, createIfMissing);

        [global::ProtoBuf.ProtoMember(1)]
        public uint cell_id
        {
            get => __pbn__cell_id.GetValueOrDefault();
            set => __pbn__cell_id = value;
        }
        public bool ShouldSerializecell_id() => __pbn__cell_id != null;
        public void Resetcell_id() => __pbn__cell_id = null;
        private uint? __pbn__cell_id;

        [global::ProtoBuf.ProtoMember(2)]
        public global::System.Collections.Generic.List<StatsInfo> stats { get; } = new global::System.Collections.Generic.List<StatsInfo>();

        [global::ProtoBuf.ProtoMember(3)]
        public uint throttling_kbps
        {
            get => __pbn__throttling_kbps.GetValueOrDefault();
            set => __pbn__throttling_kbps = value;
        }
        public bool ShouldSerializethrottling_kbps() => __pbn__throttling_kbps != null;
        public void Resetthrottling_kbps() => __pbn__throttling_kbps = null;
        private uint? __pbn__throttling_kbps;

        [global::ProtoBuf.ProtoMember(4)]
        public uint os_type
        {
            get => __pbn__os_type.GetValueOrDefault();
            set => __pbn__os_type = value;
        }
        public bool ShouldSerializeos_type() => __pbn__os_type != null;
        public void Resetos_type() => __pbn__os_type = null;
        private uint? __pbn__os_type;

        [global::ProtoBuf.ProtoMember(5)]
        public uint device_type
        {
            get => __pbn__device_type.GetValueOrDefault();
            set => __pbn__device_type = value;
        }
        public bool ShouldSerializedevice_type() => __pbn__device_type != null;
        public void Resetdevice_type() => __pbn__device_type = null;
        private uint? __pbn__device_type;

        [global::ProtoBuf.ProtoContract()]
        public partial class StatsInfo : global::ProtoBuf.IExtensible
        {
            private global::ProtoBuf.IExtension __pbn__extensionData;
            global::ProtoBuf.IExtension global::ProtoBuf.IExtensible.GetExtensionObject(bool createIfMissing)
                => global::ProtoBuf.Extensible.GetExtensionObject(ref __pbn__extensionData, createIfMissing);

            [global::ProtoBuf.ProtoMember(1)]
            public uint source_type
            {
                get => __pbn__source_type.GetValueOrDefault();
                set => __pbn__source_type = value;
            }
            public bool ShouldSerializesource_type() => __pbn__source_type != null;
            public void Resetsource_type() => __pbn__source_type = null;
            private uint? __pbn__source_type;

            [global::ProtoBuf.ProtoMember(2)]
            public uint source_id
            {
                get => __pbn__source_id.GetValueOrDefault();
                set => __pbn__source_id = value;
            }
            public bool ShouldSerializesource_id() => __pbn__source_id != null;
            public void Resetsource_id() => __pbn__source_id = null;
            private uint? __pbn__source_id;

            [global::ProtoBuf.ProtoMember(3)]
            public ulong bytes
            {
                get => __pbn__bytes.GetValueOrDefault();
                set => __pbn__bytes = value;
            }
            public bool ShouldSerializebytes() => __pbn__bytes != null;
            public void Resetbytes() => __pbn__bytes = null;
            private ulong? __pbn__bytes;

            [global::ProtoBuf.ProtoMember(4)]
            [global::System.ComponentModel.DefaultValue("")]
            public string host_name
            {
                get => __pbn__host_name ?? "";
                set => __pbn__host_name = value;
            }
            public bool ShouldSerializehost_name() => __pbn__host_name != null;
            public void Resethost_name() => __pbn__host_name = null;
            private string __pbn__host_name;

            [global::ProtoBuf.ProtoMember(5)]
            public ulong microseconds
            {
                get => __pbn__microseconds.GetValueOrDefault();
                set => __pbn__microseconds = value;
            }
            public bool ShouldSerializemicroseconds() => __pbn__microseconds != null;
            public void Resetmicroseconds() => __pbn__microseconds = null;
            private ulong? __pbn__microseconds;

            [global::ProtoBuf.ProtoMember(6)]
            public bool used_ipv6
            {
                get => __pbn__used_ipv6.GetValueOrDefault();
                set => __pbn__used_ipv6 = value;
            }
            public bool ShouldSerializeused_ipv6() => __pbn__used_ipv6 != null;
            public void Resetused_ipv6() => __pbn__used_ipv6 = null;
            private bool? __pbn__used_ipv6;

            [global::ProtoBuf.ProtoMember(7)]
            public bool proxied
            {
                get => __pbn__proxied.GetValueOrDefault();
                set => __pbn__proxied = value;
            }
            public bool ShouldSerializeproxied() => __pbn__proxied != null;
            public void Resetproxied() => __pbn__proxied = null;
            private bool? __pbn__proxied;

            [global::ProtoBuf.ProtoMember(8)]
            public bool used_http2
            {
                get => __pbn__used_http2.GetValueOrDefault();
                set => __pbn__used_http2 = value;
            }
            public bool ShouldSerializeused_http2() => __pbn__used_http2 != null;
            public void Resetused_http2() => __pbn__used_http2 = null;
            private bool? __pbn__used_http2;

            [global::ProtoBuf.ProtoMember(9)]
            public uint cache_hits
            {
                get => __pbn__cache_hits.GetValueOrDefault();
                set => __pbn__cache_hits = value;
            }
            public bool ShouldSerializecache_hits() => __pbn__cache_hits != null;
            public void Resetcache_hits() => __pbn__cache_hits = null;
            private uint? __pbn__cache_hits;

            [global::ProtoBuf.ProtoMember(10)]
            public uint cache_misses
            {
                get => __pbn__cache_misses.GetValueOrDefault();
                set => __pbn__cache_misses = value;
            }
            public bool ShouldSerializecache_misses() => __pbn__cache_misses != null;
            public void Resetcache_misses() => __pbn__cache_misses = null;
            private uint? __pbn__cache_misses;

            [global::ProtoBuf.ProtoMember(11)]
            public ulong hit_bytes
            {
                get => __pbn__hit_bytes.GetValueOrDefault();
                set => __pbn__hit_bytes = value;
            }
            public bool ShouldSerializehit_bytes() => __pbn__hit_bytes != null;
            public void Resethit_bytes() => __pbn__hit_bytes = null;
            private ulong? __pbn__hit_bytes;

            [global::ProtoBuf.ProtoMember(12)]
            public ulong miss_bytes
            {
                get => __pbn__miss_bytes.GetValueOrDefault();
                set => __pbn__miss_bytes = value;
            }
            public bool ShouldSerializemiss_bytes() => __pbn__miss_bytes != null;
            public void Resetmiss_bytes() => __pbn__miss_bytes = null;
            private ulong? __pbn__miss_bytes;

        }

    }

    [global::ProtoBuf.ProtoContract()]
    public partial class CClientMetrics_ContentValidation_Notification : global::ProtoBuf.IExtensible
    {
        private global::ProtoBuf.IExtension __pbn__extensionData;
        global::ProtoBuf.IExtension global::ProtoBuf.IExtensible.GetExtensionObject(bool createIfMissing)
            => global::ProtoBuf.Extensible.GetExtensionObject(ref __pbn__extensionData, createIfMissing);

        [global::ProtoBuf.ProtoMember(1)]
        public int validation_result
        {
            get => __pbn__validation_result.GetValueOrDefault();
            set => __pbn__validation_result = value;
        }
        public bool ShouldSerializevalidation_result() => __pbn__validation_result != null;
        public void Resetvalidation_result() => __pbn__validation_result = null;
        private int? __pbn__validation_result;

        [global::ProtoBuf.ProtoMember(2)]
        public uint app_id
        {
            get => __pbn__app_id.GetValueOrDefault();
            set => __pbn__app_id = value;
        }
        public bool ShouldSerializeapp_id() => __pbn__app_id != null;
        public void Resetapp_id() => __pbn__app_id = null;
        private uint? __pbn__app_id;

        [global::ProtoBuf.ProtoMember(3)]
        public bool staged_files
        {
            get => __pbn__staged_files.GetValueOrDefault();
            set => __pbn__staged_files = value;
        }
        public bool ShouldSerializestaged_files() => __pbn__staged_files != null;
        public void Resetstaged_files() => __pbn__staged_files = null;
        private bool? __pbn__staged_files;

        [global::ProtoBuf.ProtoMember(4)]
        public bool user_initiated
        {
            get => __pbn__user_initiated.GetValueOrDefault();
            set => __pbn__user_initiated = value;
        }
        public bool ShouldSerializeuser_initiated() => __pbn__user_initiated != null;
        public void Resetuser_initiated() => __pbn__user_initiated = null;
        private bool? __pbn__user_initiated;

        [global::ProtoBuf.ProtoMember(5)]
        public bool early_out
        {
            get => __pbn__early_out.GetValueOrDefault();
            set => __pbn__early_out = value;
        }
        public bool ShouldSerializeearly_out() => __pbn__early_out != null;
        public void Resetearly_out() => __pbn__early_out = null;
        private bool? __pbn__early_out;

        [global::ProtoBuf.ProtoMember(6)]
        public uint chunks_scanned
        {
            get => __pbn__chunks_scanned.GetValueOrDefault();
            set => __pbn__chunks_scanned = value;
        }
        public bool ShouldSerializechunks_scanned() => __pbn__chunks_scanned != null;
        public void Resetchunks_scanned() => __pbn__chunks_scanned = null;
        private uint? __pbn__chunks_scanned;

        [global::ProtoBuf.ProtoMember(7)]
        public uint chunks_corrupt
        {
            get => __pbn__chunks_corrupt.GetValueOrDefault();
            set => __pbn__chunks_corrupt = value;
        }
        public bool ShouldSerializechunks_corrupt() => __pbn__chunks_corrupt != null;
        public void Resetchunks_corrupt() => __pbn__chunks_corrupt = null;
        private uint? __pbn__chunks_corrupt;

        [global::ProtoBuf.ProtoMember(8)]
        public ulong bytes_scanned
        {
            get => __pbn__bytes_scanned.GetValueOrDefault();
            set => __pbn__bytes_scanned = value;
        }
        public bool ShouldSerializebytes_scanned() => __pbn__bytes_scanned != null;
        public void Resetbytes_scanned() => __pbn__bytes_scanned = null;
        private ulong? __pbn__bytes_scanned;

        [global::ProtoBuf.ProtoMember(9)]
        public ulong chunk_bytes_corrupt
        {
            get => __pbn__chunk_bytes_corrupt.GetValueOrDefault();
            set => __pbn__chunk_bytes_corrupt = value;
        }
        public bool ShouldSerializechunk_bytes_corrupt() => __pbn__chunk_bytes_corrupt != null;
        public void Resetchunk_bytes_corrupt() => __pbn__chunk_bytes_corrupt = null;
        private ulong? __pbn__chunk_bytes_corrupt;

        [global::ProtoBuf.ProtoMember(10)]
        public ulong total_file_size_corrupt
        {
            get => __pbn__total_file_size_corrupt.GetValueOrDefault();
            set => __pbn__total_file_size_corrupt = value;
        }
        public bool ShouldSerializetotal_file_size_corrupt() => __pbn__total_file_size_corrupt != null;
        public void Resettotal_file_size_corrupt() => __pbn__total_file_size_corrupt = null;
        private ulong? __pbn__total_file_size_corrupt;

    }

    [global::ProtoBuf.ProtoContract()]
    public partial class CClientMetrics_CloudAppSyncStats_Notification : global::ProtoBuf.IExtensible
    {
        private global::ProtoBuf.IExtension __pbn__extensionData;
        global::ProtoBuf.IExtension global::ProtoBuf.IExtensible.GetExtensionObject(bool createIfMissing)
            => global::ProtoBuf.Extensible.GetExtensionObject(ref __pbn__extensionData, createIfMissing);

        [global::ProtoBuf.ProtoMember(1)]
        public uint app_id
        {
            get => __pbn__app_id.GetValueOrDefault();
            set => __pbn__app_id = value;
        }
        public bool ShouldSerializeapp_id() => __pbn__app_id != null;
        public void Resetapp_id() => __pbn__app_id = null;
        private uint? __pbn__app_id;

        [global::ProtoBuf.ProtoMember(2)]
        public uint platform_type
        {
            get => __pbn__platform_type.GetValueOrDefault();
            set => __pbn__platform_type = value;
        }
        public bool ShouldSerializeplatform_type() => __pbn__platform_type != null;
        public void Resetplatform_type() => __pbn__platform_type = null;
        private uint? __pbn__platform_type;

        [global::ProtoBuf.ProtoMember(3)]
        public bool preload
        {
            get => __pbn__preload.GetValueOrDefault();
            set => __pbn__preload = value;
        }
        public bool ShouldSerializepreload() => __pbn__preload != null;
        public void Resetpreload() => __pbn__preload = null;
        private bool? __pbn__preload;

        [global::ProtoBuf.ProtoMember(4)]
        public bool blocking_app_launch
        {
            get => __pbn__blocking_app_launch.GetValueOrDefault();
            set => __pbn__blocking_app_launch = value;
        }
        public bool ShouldSerializeblocking_app_launch() => __pbn__blocking_app_launch != null;
        public void Resetblocking_app_launch() => __pbn__blocking_app_launch = null;
        private bool? __pbn__blocking_app_launch;

        [global::ProtoBuf.ProtoMember(5)]
        public uint files_uploaded
        {
            get => __pbn__files_uploaded.GetValueOrDefault();
            set => __pbn__files_uploaded = value;
        }
        public bool ShouldSerializefiles_uploaded() => __pbn__files_uploaded != null;
        public void Resetfiles_uploaded() => __pbn__files_uploaded = null;
        private uint? __pbn__files_uploaded;

        [global::ProtoBuf.ProtoMember(6)]
        public uint files_downloaded
        {
            get => __pbn__files_downloaded.GetValueOrDefault();
            set => __pbn__files_downloaded = value;
        }
        public bool ShouldSerializefiles_downloaded() => __pbn__files_downloaded != null;
        public void Resetfiles_downloaded() => __pbn__files_downloaded = null;
        private uint? __pbn__files_downloaded;

        [global::ProtoBuf.ProtoMember(7)]
        public uint files_deleted
        {
            get => __pbn__files_deleted.GetValueOrDefault();
            set => __pbn__files_deleted = value;
        }
        public bool ShouldSerializefiles_deleted() => __pbn__files_deleted != null;
        public void Resetfiles_deleted() => __pbn__files_deleted = null;
        private uint? __pbn__files_deleted;

        [global::ProtoBuf.ProtoMember(8)]
        public ulong bytes_uploaded
        {
            get => __pbn__bytes_uploaded.GetValueOrDefault();
            set => __pbn__bytes_uploaded = value;
        }
        public bool ShouldSerializebytes_uploaded() => __pbn__bytes_uploaded != null;
        public void Resetbytes_uploaded() => __pbn__bytes_uploaded = null;
        private ulong? __pbn__bytes_uploaded;

        [global::ProtoBuf.ProtoMember(9)]
        public ulong bytes_downloaded
        {
            get => __pbn__bytes_downloaded.GetValueOrDefault();
            set => __pbn__bytes_downloaded = value;
        }
        public bool ShouldSerializebytes_downloaded() => __pbn__bytes_downloaded != null;
        public void Resetbytes_downloaded() => __pbn__bytes_downloaded = null;
        private ulong? __pbn__bytes_downloaded;

        [global::ProtoBuf.ProtoMember(10)]
        public ulong microsec_total
        {
            get => __pbn__microsec_total.GetValueOrDefault();
            set => __pbn__microsec_total = value;
        }
        public bool ShouldSerializemicrosec_total() => __pbn__microsec_total != null;
        public void Resetmicrosec_total() => __pbn__microsec_total = null;
        private ulong? __pbn__microsec_total;

        [global::ProtoBuf.ProtoMember(11)]
        public ulong microsec_init_caches
        {
            get => __pbn__microsec_init_caches.GetValueOrDefault();
            set => __pbn__microsec_init_caches = value;
        }
        public bool ShouldSerializemicrosec_init_caches() => __pbn__microsec_init_caches != null;
        public void Resetmicrosec_init_caches() => __pbn__microsec_init_caches = null;
        private ulong? __pbn__microsec_init_caches;

        [global::ProtoBuf.ProtoMember(12)]
        public ulong microsec_validate_state
        {
            get => __pbn__microsec_validate_state.GetValueOrDefault();
            set => __pbn__microsec_validate_state = value;
        }
        public bool ShouldSerializemicrosec_validate_state() => __pbn__microsec_validate_state != null;
        public void Resetmicrosec_validate_state() => __pbn__microsec_validate_state = null;
        private ulong? __pbn__microsec_validate_state;

        [global::ProtoBuf.ProtoMember(13)]
        public ulong microsec_ac_launch
        {
            get => __pbn__microsec_ac_launch.GetValueOrDefault();
            set => __pbn__microsec_ac_launch = value;
        }
        public bool ShouldSerializemicrosec_ac_launch() => __pbn__microsec_ac_launch != null;
        public void Resetmicrosec_ac_launch() => __pbn__microsec_ac_launch = null;
        private ulong? __pbn__microsec_ac_launch;

        [global::ProtoBuf.ProtoMember(14)]
        public ulong microsec_ac_prep_user_files
        {
            get => __pbn__microsec_ac_prep_user_files.GetValueOrDefault();
            set => __pbn__microsec_ac_prep_user_files = value;
        }
        public bool ShouldSerializemicrosec_ac_prep_user_files() => __pbn__microsec_ac_prep_user_files != null;
        public void Resetmicrosec_ac_prep_user_files() => __pbn__microsec_ac_prep_user_files = null;
        private ulong? __pbn__microsec_ac_prep_user_files;

        [global::ProtoBuf.ProtoMember(15)]
        public ulong microsec_ac_exit
        {
            get => __pbn__microsec_ac_exit.GetValueOrDefault();
            set => __pbn__microsec_ac_exit = value;
        }
        public bool ShouldSerializemicrosec_ac_exit() => __pbn__microsec_ac_exit != null;
        public void Resetmicrosec_ac_exit() => __pbn__microsec_ac_exit = null;
        private ulong? __pbn__microsec_ac_exit;

        [global::ProtoBuf.ProtoMember(16)]
        public ulong microsec_build_sync_list
        {
            get => __pbn__microsec_build_sync_list.GetValueOrDefault();
            set => __pbn__microsec_build_sync_list = value;
        }
        public bool ShouldSerializemicrosec_build_sync_list() => __pbn__microsec_build_sync_list != null;
        public void Resetmicrosec_build_sync_list() => __pbn__microsec_build_sync_list = null;
        private ulong? __pbn__microsec_build_sync_list;

        [global::ProtoBuf.ProtoMember(17)]
        public ulong microsec_delete_files
        {
            get => __pbn__microsec_delete_files.GetValueOrDefault();
            set => __pbn__microsec_delete_files = value;
        }
        public bool ShouldSerializemicrosec_delete_files() => __pbn__microsec_delete_files != null;
        public void Resetmicrosec_delete_files() => __pbn__microsec_delete_files = null;
        private ulong? __pbn__microsec_delete_files;

        [global::ProtoBuf.ProtoMember(18)]
        public ulong microsec_download_files
        {
            get => __pbn__microsec_download_files.GetValueOrDefault();
            set => __pbn__microsec_download_files = value;
        }
        public bool ShouldSerializemicrosec_download_files() => __pbn__microsec_download_files != null;
        public void Resetmicrosec_download_files() => __pbn__microsec_download_files = null;
        private ulong? __pbn__microsec_download_files;

        [global::ProtoBuf.ProtoMember(19)]
        public ulong microsec_upload_files
        {
            get => __pbn__microsec_upload_files.GetValueOrDefault();
            set => __pbn__microsec_upload_files = value;
        }
        public bool ShouldSerializemicrosec_upload_files() => __pbn__microsec_upload_files != null;
        public void Resetmicrosec_upload_files() => __pbn__microsec_upload_files = null;
        private ulong? __pbn__microsec_upload_files;

        [global::ProtoBuf.ProtoMember(20)]
        public uint hardware_type
        {
            get => __pbn__hardware_type.GetValueOrDefault();
            set => __pbn__hardware_type = value;
        }
        public bool ShouldSerializehardware_type() => __pbn__hardware_type != null;
        public void Resethardware_type() => __pbn__hardware_type = null;
        private uint? __pbn__hardware_type;

        [global::ProtoBuf.ProtoMember(21)]
        public uint files_managed
        {
            get => __pbn__files_managed.GetValueOrDefault();
            set => __pbn__files_managed = value;
        }
        public bool ShouldSerializefiles_managed() => __pbn__files_managed != null;
        public void Resetfiles_managed() => __pbn__files_managed = null;
        private uint? __pbn__files_managed;

    }

    [global::ProtoBuf.ProtoContract()]
    public partial class CClientMetrics_ContentDownloadResponse_Counts_Notification : global::ProtoBuf.IExtensible
    {
        private global::ProtoBuf.IExtension __pbn__extensionData;
        global::ProtoBuf.IExtension global::ProtoBuf.IExtensible.GetExtensionObject(bool createIfMissing)
            => global::ProtoBuf.Extensible.GetExtensionObject(ref __pbn__extensionData, createIfMissing);

        [global::ProtoBuf.ProtoMember(1)]
        public uint cell_id
        {
            get => __pbn__cell_id.GetValueOrDefault();
            set => __pbn__cell_id = value;
        }
        public bool ShouldSerializecell_id() => __pbn__cell_id != null;
        public void Resetcell_id() => __pbn__cell_id = null;
        private uint? __pbn__cell_id;

        [global::ProtoBuf.ProtoMember(2)]
        public CClientMetrics_ContentDownloadResponse_Hosts data { get; set; }

    }

    [global::ProtoBuf.ProtoContract()]
    public partial class CClientMetrics_ReportClientArgs_Notification : global::ProtoBuf.IExtensible
    {
        private global::ProtoBuf.IExtension __pbn__extensionData;
        global::ProtoBuf.IExtension global::ProtoBuf.IExtensible.GetExtensionObject(bool createIfMissing)
            => global::ProtoBuf.Extensible.GetExtensionObject(ref __pbn__extensionData, createIfMissing);

        [global::ProtoBuf.ProtoMember(1)]
        public global::System.Collections.Generic.List<string> client_args { get; } = new global::System.Collections.Generic.List<string>();

        [global::ProtoBuf.ProtoMember(2)]
        public bool gpu_webview_regkey_disabled
        {
            get => __pbn__gpu_webview_regkey_disabled.GetValueOrDefault();
            set => __pbn__gpu_webview_regkey_disabled = value;
        }
        public bool ShouldSerializegpu_webview_regkey_disabled() => __pbn__gpu_webview_regkey_disabled != null;
        public void Resetgpu_webview_regkey_disabled() => __pbn__gpu_webview_regkey_disabled = null;
        private bool? __pbn__gpu_webview_regkey_disabled;

        [global::ProtoBuf.ProtoMember(3)]
        public bool suppress_gpu_chrome
        {
            get => __pbn__suppress_gpu_chrome.GetValueOrDefault();
            set => __pbn__suppress_gpu_chrome = value;
        }
        public bool ShouldSerializesuppress_gpu_chrome() => __pbn__suppress_gpu_chrome != null;
        public void Resetsuppress_gpu_chrome() => __pbn__suppress_gpu_chrome = null;
        private bool? __pbn__suppress_gpu_chrome;

        [global::ProtoBuf.ProtoMember(4)]
        public bool browser_not_supported
        {
            get => __pbn__browser_not_supported.GetValueOrDefault();
            set => __pbn__browser_not_supported = value;
        }
        public bool ShouldSerializebrowser_not_supported() => __pbn__browser_not_supported != null;
        public void Resetbrowser_not_supported() => __pbn__browser_not_supported = null;
        private bool? __pbn__browser_not_supported;

        [global::ProtoBuf.ProtoMember(5)]
        public bool hw_accel_video_regkey_disabled
        {
            get => __pbn__hw_accel_video_regkey_disabled.GetValueOrDefault();
            set => __pbn__hw_accel_video_regkey_disabled = value;
        }
        public bool ShouldSerializehw_accel_video_regkey_disabled() => __pbn__hw_accel_video_regkey_disabled != null;
        public void Resethw_accel_video_regkey_disabled() => __pbn__hw_accel_video_regkey_disabled = null;
        private bool? __pbn__hw_accel_video_regkey_disabled;

        [global::ProtoBuf.ProtoMember(6)]
        public bool mini_mode_enabled
        {
            get => __pbn__mini_mode_enabled.GetValueOrDefault();
            set => __pbn__mini_mode_enabled = value;
        }
        public bool ShouldSerializemini_mode_enabled() => __pbn__mini_mode_enabled != null;
        public void Resetmini_mode_enabled() => __pbn__mini_mode_enabled = null;
        private bool? __pbn__mini_mode_enabled;

        [global::ProtoBuf.ProtoMember(7)]
        public bool fps_counter_enabled
        {
            get => __pbn__fps_counter_enabled.GetValueOrDefault();
            set => __pbn__fps_counter_enabled = value;
        }
        public bool ShouldSerializefps_counter_enabled() => __pbn__fps_counter_enabled != null;
        public void Resetfps_counter_enabled() => __pbn__fps_counter_enabled = null;
        private bool? __pbn__fps_counter_enabled;

        [global::ProtoBuf.ProtoMember(8)]
        public bool library_low_bandwidth_mode_enabled
        {
            get => __pbn__library_low_bandwidth_mode_enabled.GetValueOrDefault();
            set => __pbn__library_low_bandwidth_mode_enabled = value;
        }
        public bool ShouldSerializelibrary_low_bandwidth_mode_enabled() => __pbn__library_low_bandwidth_mode_enabled != null;
        public void Resetlibrary_low_bandwidth_mode_enabled() => __pbn__library_low_bandwidth_mode_enabled = null;
        private bool? __pbn__library_low_bandwidth_mode_enabled;

        [global::ProtoBuf.ProtoMember(9)]
        public bool library_low_perf_mode_enabled
        {
            get => __pbn__library_low_perf_mode_enabled.GetValueOrDefault();
            set => __pbn__library_low_perf_mode_enabled = value;
        }
        public bool ShouldSerializelibrary_low_perf_mode_enabled() => __pbn__library_low_perf_mode_enabled != null;
        public void Resetlibrary_low_perf_mode_enabled() => __pbn__library_low_perf_mode_enabled = null;
        private bool? __pbn__library_low_perf_mode_enabled;

        [global::ProtoBuf.ProtoMember(10)]
        public int gr_mode
        {
            get => __pbn__gr_mode.GetValueOrDefault();
            set => __pbn__gr_mode = value;
        }
        public bool ShouldSerializegr_mode() => __pbn__gr_mode != null;
        public void Resetgr_mode() => __pbn__gr_mode = null;
        private int? __pbn__gr_mode;

    }

    [global::ProtoBuf.ProtoContract()]
    public partial class CClientMetrics_ClipShare_Notification : global::ProtoBuf.IExtensible
    {
        private global::ProtoBuf.IExtension __pbn__extensionData;
        global::ProtoBuf.IExtension global::ProtoBuf.IExtensible.GetExtensionObject(bool createIfMissing)
            => global::ProtoBuf.Extensible.GetExtensionObject(ref __pbn__extensionData, createIfMissing);

        [global::ProtoBuf.ProtoMember(1)]
        [global::System.ComponentModel.DefaultValue(2u)]
        public uint eresult
        {
            get => __pbn__eresult ?? 2u;
            set => __pbn__eresult = value;
        }
        public bool ShouldSerializeeresult() => __pbn__eresult != null;
        public void Reseteresult() => __pbn__eresult = null;
        private uint? __pbn__eresult;

        [global::ProtoBuf.ProtoMember(2)]
        [global::System.ComponentModel.DefaultValue(EClipShareMethod.k_EClipShareMethod_Chat)]
        public EClipShareMethod share_method
        {
            get => __pbn__share_method ?? EClipShareMethod.k_EClipShareMethod_Chat;
            set => __pbn__share_method = value;
        }
        public bool ShouldSerializeshare_method() => __pbn__share_method != null;
        public void Resetshare_method() => __pbn__share_method = null;
        private EClipShareMethod? __pbn__share_method;

        [global::ProtoBuf.ProtoMember(3)]
        public float seconds
        {
            get => __pbn__seconds.GetValueOrDefault();
            set => __pbn__seconds = value;
        }
        public bool ShouldSerializeseconds() => __pbn__seconds != null;
        public void Resetseconds() => __pbn__seconds = null;
        private float? __pbn__seconds;

        [global::ProtoBuf.ProtoMember(4)]
        public ulong bytes
        {
            get => __pbn__bytes.GetValueOrDefault();
            set => __pbn__bytes = value;
        }
        public bool ShouldSerializebytes() => __pbn__bytes != null;
        public void Resetbytes() => __pbn__bytes = null;
        private ulong? __pbn__bytes;

        [global::ProtoBuf.ProtoMember(5, DataFormat = global::ProtoBuf.DataFormat.FixedSize)]
        public ulong gameid
        {
            get => __pbn__gameid.GetValueOrDefault();
            set => __pbn__gameid = value;
        }
        public bool ShouldSerializegameid() => __pbn__gameid != null;
        public void Resetgameid() => __pbn__gameid = null;
        private ulong? __pbn__gameid;

    }

    [global::ProtoBuf.ProtoContract()]
    public partial class CClientMetrics_ClipRange_Notification : global::ProtoBuf.IExtensible
    {
        private global::ProtoBuf.IExtension __pbn__extensionData;
        global::ProtoBuf.IExtension global::ProtoBuf.IExtensible.GetExtensionObject(bool createIfMissing)
            => global::ProtoBuf.Extensible.GetExtensionObject(ref __pbn__extensionData, createIfMissing);

        [global::ProtoBuf.ProtoMember(1)]
        [global::System.ComponentModel.DefaultValue(EClipRangeMethod.k_EClipRangeMethod_CreateClipButton)]
        public EClipRangeMethod original_range_method
        {
            get => __pbn__original_range_method ?? EClipRangeMethod.k_EClipRangeMethod_CreateClipButton;
            set => __pbn__original_range_method = value;
        }
        public bool ShouldSerializeoriginal_range_method() => __pbn__original_range_method != null;
        public void Resetoriginal_range_method() => __pbn__original_range_method = null;
        private EClipRangeMethod? __pbn__original_range_method;

        [global::ProtoBuf.ProtoMember(2)]
        public RelativeRangeEdge start { get; set; }

        [global::ProtoBuf.ProtoMember(3)]
        public RelativeRangeEdge end { get; set; }

        [global::ProtoBuf.ProtoMember(4)]
        public float seconds
        {
            get => __pbn__seconds.GetValueOrDefault();
            set => __pbn__seconds = value;
        }
        public bool ShouldSerializeseconds() => __pbn__seconds != null;
        public void Resetseconds() => __pbn__seconds = null;
        private float? __pbn__seconds;

        [global::ProtoBuf.ProtoMember(5, DataFormat = global::ProtoBuf.DataFormat.FixedSize)]
        public ulong gameid
        {
            get => __pbn__gameid.GetValueOrDefault();
            set => __pbn__gameid = value;
        }
        public bool ShouldSerializegameid() => __pbn__gameid != null;
        public void Resetgameid() => __pbn__gameid = null;
        private ulong? __pbn__gameid;

        [global::ProtoBuf.ProtoContract()]
        public partial class RelativeRangeEdge : global::ProtoBuf.IExtensible
        {
            private global::ProtoBuf.IExtension __pbn__extensionData;
            global::ProtoBuf.IExtension global::ProtoBuf.IExtensible.GetExtensionObject(bool createIfMissing)
                => global::ProtoBuf.Extensible.GetExtensionObject(ref __pbn__extensionData, createIfMissing);

            [global::ProtoBuf.ProtoMember(1)]
            [global::System.ComponentModel.DefaultValue(EClipRangeMethod.k_EClipRangeMethod_CreateClipButton)]
            public EClipRangeMethod original_range_method
            {
                get => __pbn__original_range_method ?? EClipRangeMethod.k_EClipRangeMethod_CreateClipButton;
                set => __pbn__original_range_method = value;
            }
            public bool ShouldSerializeoriginal_range_method() => __pbn__original_range_method != null;
            public void Resetoriginal_range_method() => __pbn__original_range_method = null;
            private EClipRangeMethod? __pbn__original_range_method;

            [global::ProtoBuf.ProtoMember(2)]
            [global::System.ComponentModel.DefaultValue(EClipRangeMethod.k_EClipRangeMethod_CreateClipButton)]
            public EClipRangeMethod latest_range_method
            {
                get => __pbn__latest_range_method ?? EClipRangeMethod.k_EClipRangeMethod_CreateClipButton;
                set => __pbn__latest_range_method = value;
            }
            public bool ShouldSerializelatest_range_method() => __pbn__latest_range_method != null;
            public void Resetlatest_range_method() => __pbn__latest_range_method = null;
            private EClipRangeMethod? __pbn__latest_range_method;

            [global::ProtoBuf.ProtoMember(3)]
            public int delta_ms
            {
                get => __pbn__delta_ms.GetValueOrDefault();
                set => __pbn__delta_ms = value;
            }
            public bool ShouldSerializedelta_ms() => __pbn__delta_ms != null;
            public void Resetdelta_ms() => __pbn__delta_ms = null;
            private int? __pbn__delta_ms;

        }

    }

    [global::ProtoBuf.ProtoContract()]
    public partial class CClientMetrics_EndGameRecording_Notification : global::ProtoBuf.IExtensible
    {
        private global::ProtoBuf.IExtension __pbn__extensionData;
        global::ProtoBuf.IExtension global::ProtoBuf.IExtensible.GetExtensionObject(bool createIfMissing)
            => global::ProtoBuf.Extensible.GetExtensionObject(ref __pbn__extensionData, createIfMissing);

        [global::ProtoBuf.ProtoMember(1)]
        [global::System.ComponentModel.DefaultValue(EGameRecordingType.k_EGameRecordingType_Unknown)]
        public EGameRecordingType recording_type
        {
            get => __pbn__recording_type ?? EGameRecordingType.k_EGameRecordingType_Unknown;
            set => __pbn__recording_type = value;
        }
        public bool ShouldSerializerecording_type() => __pbn__recording_type != null;
        public void Resetrecording_type() => __pbn__recording_type = null;
        private EGameRecordingType? __pbn__recording_type;

        [global::ProtoBuf.ProtoMember(2)]
        public float seconds
        {
            get => __pbn__seconds.GetValueOrDefault();
            set => __pbn__seconds = value;
        }
        public bool ShouldSerializeseconds() => __pbn__seconds != null;
        public void Resetseconds() => __pbn__seconds = null;
        private float? __pbn__seconds;

        [global::ProtoBuf.ProtoMember(3)]
        public ulong bytes
        {
            get => __pbn__bytes.GetValueOrDefault();
            set => __pbn__bytes = value;
        }
        public bool ShouldSerializebytes() => __pbn__bytes != null;
        public void Resetbytes() => __pbn__bytes = null;
        private ulong? __pbn__bytes;

        [global::ProtoBuf.ProtoMember(4, DataFormat = global::ProtoBuf.DataFormat.FixedSize)]
        public ulong gameid
        {
            get => __pbn__gameid.GetValueOrDefault();
            set => __pbn__gameid = value;
        }
        public bool ShouldSerializegameid() => __pbn__gameid != null;
        public void Resetgameid() => __pbn__gameid = null;
        private ulong? __pbn__gameid;

        [global::ProtoBuf.ProtoMember(5)]
        public bool instant_clip
        {
            get => __pbn__instant_clip.GetValueOrDefault();
            set => __pbn__instant_clip = value;
        }
        public bool ShouldSerializeinstant_clip() => __pbn__instant_clip != null;
        public void Resetinstant_clip() => __pbn__instant_clip = null;
        private bool? __pbn__instant_clip;

    }

    [global::ProtoBuf.ProtoContract()]
    public enum ESteamPipeWorkType
    {
        k_ESteamPipeClientWorkType_Invalid = 0,
        k_ESteamPipeClientWorkType_StageFromChunkStores = 1,
    }

    [global::ProtoBuf.ProtoContract()]
    public enum ESteamPipeOperationType
    {
        k_ESteamPipeOperationType_Invalid = 0,
        k_ESteamPipeOperationType_DecryptCPU = 1,
        k_ESteamPipeOperationType_DiskRead = 2,
        k_ESteamPipeOperationType_DiskWrite = 3,
    }

    [global::ProtoBuf.ProtoContract()]
    public enum EClipShareMethod
    {
        k_EClipShareMethod_Chat = 1,
        k_EClipShareMethod_Clipboard = 2,
        k_EClipShareMethod_File = 3,
        k_EClipShareMethod_SendClip = 4,
        k_EClipShareMethod_SaveToMedia = 5,
        k_EClipShareMethod_CreateLink = 6,
    }

    [global::ProtoBuf.ProtoContract()]
    public enum EClipRangeMethod
    {
        k_EClipRangeMethod_CreateClipButton = 1,
        k_EClipRangeMethod_Highlight = 2,
        k_EClipRangeMethod_BeginEndButtons = 3,
        k_EClipRangeMethod_ContextMenu = 4,
        k_EClipRangeMethod_Drag = 5,
        k_EClipRangeMethod_EntireClip = 6,
        k_EClipRangeMethod_PhaseRecording = 7,
    }

    public class ClientMetrics : SteamUnifiedMessages.UnifiedService
    {
        public override string ServiceName { get; } = "ClientMetrics";

        public void ClientAppInterfaceStatsReport(CClientMetrics_AppInterfaceStats_Notification request )
        {
            UnifiedMessages.SendNotification<CClientMetrics_AppInterfaceStats_Notification>( "ClientMetrics.ClientAppInterfaceStatsReport#1", request );
        }

        public void ClientIPv6ConnectivityReport(CClientMetrics_IPv6Connectivity_Notification request )
        {
            UnifiedMessages.SendNotification<CClientMetrics_IPv6Connectivity_Notification>( "ClientMetrics.ClientIPv6ConnectivityReport#1", request );
        }

        public void SteamPipeWorkStatsReport(CClientMetrics_SteamPipeWorkStats_Notification request )
        {
            UnifiedMessages.SendNotification<CClientMetrics_SteamPipeWorkStats_Notification>( "ClientMetrics.SteamPipeWorkStatsReport#1", request );
        }

        public void ReportReactUsage(CClientMetrics_ReportReactUsage_Notification request )
        {
            UnifiedMessages.SendNotification<CClientMetrics_ReportReactUsage_Notification>( "ClientMetrics.ReportReactUsage#1", request );
        }

        public void ReportClientError(CClientMetrics_ReportClientError_Notification request )
        {
            UnifiedMessages.SendNotification<CClientMetrics_ReportClientError_Notification>( "ClientMetrics.ReportClientError#1", request );
        }

        public void ClientBootstrapReport(CClientMetrics_ClientBootstrap_Notification request )
        {
            UnifiedMessages.SendNotification<CClientMetrics_ClientBootstrap_Notification>( "ClientMetrics.ClientBootstrapReport#1", request );
        }

        public void ClientDownloadRatesReport(CClientMetrics_DownloadRates_Notification request )
        {
            UnifiedMessages.SendNotification<CClientMetrics_DownloadRates_Notification>( "ClientMetrics.ClientDownloadRatesReport#1", request );
        }

        public void ClientContentValidationReport(CClientMetrics_ContentValidation_Notification request )
        {
            UnifiedMessages.SendNotification<CClientMetrics_ContentValidation_Notification>( "ClientMetrics.ClientContentValidationReport#1", request );
        }

        public void ClientCloudAppSyncStats(CClientMetrics_CloudAppSyncStats_Notification request )
        {
            UnifiedMessages.SendNotification<CClientMetrics_CloudAppSyncStats_Notification>( "ClientMetrics.ClientCloudAppSyncStats#1", request );
        }

        public void ClientDownloadResponseCodeCounts(CClientMetrics_ContentDownloadResponse_Counts_Notification request )
        {
            UnifiedMessages.SendNotification<CClientMetrics_ContentDownloadResponse_Counts_Notification>( "ClientMetrics.ClientDownloadResponseCodeCounts#1", request );
        }

        public void ReportClientArgs(CClientMetrics_ReportClientArgs_Notification request )
        {
            UnifiedMessages.SendNotification<CClientMetrics_ReportClientArgs_Notification>( "ClientMetrics.ReportClientArgs#1", request );
        }

        public void ReportClipShare(CClientMetrics_ClipShare_Notification request )
        {
            UnifiedMessages.SendNotification<CClientMetrics_ClipShare_Notification>( "ClientMetrics.ReportClipShare#1", request );
        }

        public void ReportClipRange(CClientMetrics_ClipRange_Notification request )
        {
            UnifiedMessages.SendNotification<CClientMetrics_ClipRange_Notification>( "ClientMetrics.ReportClipRange#1", request );
        }

        public void ReportEndGameRecording(CClientMetrics_EndGameRecording_Notification request )
        {
            UnifiedMessages.SendNotification<CClientMetrics_EndGameRecording_Notification>( "ClientMetrics.ReportEndGameRecording#1", request );
        }

        public override void HandleResponseMsg( string methodName, PacketClientMsgProtobuf packetMsg )
        {
        }

        public override void HandleNotificationMsg( string methodName, PacketClientMsgProtobuf packetMsg )
        {
            switch ( methodName )
            {
                case "ClientAppInterfaceStatsReport":
                    PostNotificationMsg<CClientMetrics_AppInterfaceStats_Notification>( packetMsg );
                    break;
                case "ClientIPv6ConnectivityReport":
                    PostNotificationMsg<CClientMetrics_IPv6Connectivity_Notification>( packetMsg );
                    break;
                case "SteamPipeWorkStatsReport":
                    PostNotificationMsg<CClientMetrics_SteamPipeWorkStats_Notification>( packetMsg );
                    break;
                case "ReportReactUsage":
                    PostNotificationMsg<CClientMetrics_ReportReactUsage_Notification>( packetMsg );
                    break;
                case "ReportClientError":
                    PostNotificationMsg<CClientMetrics_ReportClientError_Notification>( packetMsg );
                    break;
                case "ClientBootstrapReport":
                    PostNotificationMsg<CClientMetrics_ClientBootstrap_Notification>( packetMsg );
                    break;
                case "ClientDownloadRatesReport":
                    PostNotificationMsg<CClientMetrics_DownloadRates_Notification>( packetMsg );
                    break;
                case "ClientContentValidationReport":
                    PostNotificationMsg<CClientMetrics_ContentValidation_Notification>( packetMsg );
                    break;
                case "ClientCloudAppSyncStats":
                    PostNotificationMsg<CClientMetrics_CloudAppSyncStats_Notification>( packetMsg );
                    break;
                case "ClientDownloadResponseCodeCounts":
                    PostNotificationMsg<CClientMetrics_ContentDownloadResponse_Counts_Notification>( packetMsg );
                    break;
                case "ReportClientArgs":
                    PostNotificationMsg<CClientMetrics_ReportClientArgs_Notification>( packetMsg );
                    break;
                case "ReportClipShare":
                    PostNotificationMsg<CClientMetrics_ClipShare_Notification>( packetMsg );
                    break;
                case "ReportClipRange":
                    PostNotificationMsg<CClientMetrics_ClipRange_Notification>( packetMsg );
                    break;
                case "ReportEndGameRecording":
                    PostNotificationMsg<CClientMetrics_EndGameRecording_Notification>( packetMsg );
                    break;
            }
        }
    }

}

#pragma warning restore CS0612, CS0618, CS1591, CS3021, IDE0079, IDE1006, RCS1036, RCS1057, RCS1085, RCS1192
#endregion
