// <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_timedtrial.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 CTimedTrial_GetTimeRemaining_Request : 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.ProtoContract()]
    public partial class CTimedTrial_GetTimeRemaining_Response : 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 seconds_played
        {
            get => __pbn__seconds_played.GetValueOrDefault();
            set => __pbn__seconds_played = value;
        }
        public bool ShouldSerializeseconds_played() => __pbn__seconds_played != null;
        public void Resetseconds_played() => __pbn__seconds_played = null;
        private uint? __pbn__seconds_played;

        [global::ProtoBuf.ProtoMember(2)]
        public uint seconds_allowed
        {
            get => __pbn__seconds_allowed.GetValueOrDefault();
            set => __pbn__seconds_allowed = value;
        }
        public bool ShouldSerializeseconds_allowed() => __pbn__seconds_allowed != null;
        public void Resetseconds_allowed() => __pbn__seconds_allowed = null;
        private uint? __pbn__seconds_allowed;

        [global::ProtoBuf.ProtoMember(3)]
        public uint packageid
        {
            get => __pbn__packageid.GetValueOrDefault();
            set => __pbn__packageid = value;
        }
        public bool ShouldSerializepackageid() => __pbn__packageid != null;
        public void Resetpackageid() => __pbn__packageid = null;
        private uint? __pbn__packageid;

        [global::ProtoBuf.ProtoMember(4)]
        public uint mastersub_appid
        {
            get => __pbn__mastersub_appid.GetValueOrDefault();
            set => __pbn__mastersub_appid = value;
        }
        public bool ShouldSerializemastersub_appid() => __pbn__mastersub_appid != null;
        public void Resetmastersub_appid() => __pbn__mastersub_appid = null;
        private uint? __pbn__mastersub_appid;

    }

    [global::ProtoBuf.ProtoContract()]
    public partial class CTimedTrial_RecordPlaytime_Request : 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 seconds_played
        {
            get => __pbn__seconds_played.GetValueOrDefault();
            set => __pbn__seconds_played = value;
        }
        public bool ShouldSerializeseconds_played() => __pbn__seconds_played != null;
        public void Resetseconds_played() => __pbn__seconds_played = null;
        private uint? __pbn__seconds_played;

    }

    [global::ProtoBuf.ProtoContract()]
    public partial class CTimedTrial_RecordPlaytime_Response : 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 seconds_played
        {
            get => __pbn__seconds_played.GetValueOrDefault();
            set => __pbn__seconds_played = value;
        }
        public bool ShouldSerializeseconds_played() => __pbn__seconds_played != null;
        public void Resetseconds_played() => __pbn__seconds_played = null;
        private uint? __pbn__seconds_played;

        [global::ProtoBuf.ProtoMember(2)]
        public uint seconds_allowed
        {
            get => __pbn__seconds_allowed.GetValueOrDefault();
            set => __pbn__seconds_allowed = value;
        }
        public bool ShouldSerializeseconds_allowed() => __pbn__seconds_allowed != null;
        public void Resetseconds_allowed() => __pbn__seconds_allowed = null;
        private uint? __pbn__seconds_allowed;

    }

    [global::ProtoBuf.ProtoContract()]
    public partial class CTimedTrial_ResetPlaytime_Request : 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.ProtoContract()]
    public partial class CTimedTrial_ResetPlaytime_Response : 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 seconds_played
        {
            get => __pbn__seconds_played.GetValueOrDefault();
            set => __pbn__seconds_played = value;
        }
        public bool ShouldSerializeseconds_played() => __pbn__seconds_played != null;
        public void Resetseconds_played() => __pbn__seconds_played = null;
        private uint? __pbn__seconds_played;

        [global::ProtoBuf.ProtoMember(2)]
        public uint seconds_allowed
        {
            get => __pbn__seconds_allowed.GetValueOrDefault();
            set => __pbn__seconds_allowed = value;
        }
        public bool ShouldSerializeseconds_allowed() => __pbn__seconds_allowed != null;
        public void Resetseconds_allowed() => __pbn__seconds_allowed = null;
        private uint? __pbn__seconds_allowed;

    }

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

        public AsyncJob<SteamUnifiedMessages.ServiceMethodResponse<CTimedTrial_GetTimeRemaining_Response>> GetTimeRemaining( CTimedTrial_GetTimeRemaining_Request request )
        {
            return UnifiedMessages.SendMessage<CTimedTrial_GetTimeRemaining_Request, CTimedTrial_GetTimeRemaining_Response>( "TimedTrial.GetTimeRemaining#1", request );
        }

        public AsyncJob<SteamUnifiedMessages.ServiceMethodResponse<CTimedTrial_RecordPlaytime_Response>> RecordPlaytime( CTimedTrial_RecordPlaytime_Request request )
        {
            return UnifiedMessages.SendMessage<CTimedTrial_RecordPlaytime_Request, CTimedTrial_RecordPlaytime_Response>( "TimedTrial.RecordPlaytime#1", request );
        }

        public AsyncJob<SteamUnifiedMessages.ServiceMethodResponse<CTimedTrial_ResetPlaytime_Response>> ResetPlaytime( CTimedTrial_ResetPlaytime_Request request )
        {
            return UnifiedMessages.SendMessage<CTimedTrial_ResetPlaytime_Request, CTimedTrial_ResetPlaytime_Response>( "TimedTrial.ResetPlaytime#1", request );
        }

        public override void HandleResponseMsg( string methodName, PacketClientMsgProtobuf packetMsg )
        {
            switch ( methodName )
            {
                case "GetTimeRemaining":
                    PostResponseMsg<CTimedTrial_GetTimeRemaining_Response>( packetMsg );
                    break;
                case "RecordPlaytime":
                    PostResponseMsg<CTimedTrial_RecordPlaytime_Response>( packetMsg );
                    break;
                case "ResetPlaytime":
                    PostResponseMsg<CTimedTrial_ResetPlaytime_Response>( packetMsg );
                    break;
            }
        }

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

}

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