// <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_lobbymatchmaking.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 LobbyMatchmakingLegacy_GetLobbyStatus_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 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, DataFormat = global::ProtoBuf.DataFormat.FixedSize)]
        public ulong steamid_lobby
        {
            get => __pbn__steamid_lobby.GetValueOrDefault();
            set => __pbn__steamid_lobby = value;
        }
        public bool ShouldSerializesteamid_lobby() => __pbn__steamid_lobby != null;
        public void Resetsteamid_lobby() => __pbn__steamid_lobby = null;
        private ulong? __pbn__steamid_lobby;

        [global::ProtoBuf.ProtoMember(3)]
        public bool claim_ownership
        {
            get => __pbn__claim_ownership.GetValueOrDefault();
            set => __pbn__claim_ownership = value;
        }
        public bool ShouldSerializeclaim_ownership() => __pbn__claim_ownership != null;
        public void Resetclaim_ownership() => __pbn__claim_ownership = null;
        private bool? __pbn__claim_ownership;

        [global::ProtoBuf.ProtoMember(4)]
        public bool claim_membership
        {
            get => __pbn__claim_membership.GetValueOrDefault();
            set => __pbn__claim_membership = value;
        }
        public bool ShouldSerializeclaim_membership() => __pbn__claim_membership != null;
        public void Resetclaim_membership() => __pbn__claim_membership = null;
        private bool? __pbn__claim_membership;

        [global::ProtoBuf.ProtoMember(5)]
        public uint version_num
        {
            get => __pbn__version_num.GetValueOrDefault();
            set => __pbn__version_num = value;
        }
        public bool ShouldSerializeversion_num() => __pbn__version_num != null;
        public void Resetversion_num() => __pbn__version_num = null;
        private uint? __pbn__version_num;

    }

    [global::ProtoBuf.ProtoContract()]
    public partial class LobbyMatchmakingLegacy_GetLobbyStatus_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 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, DataFormat = global::ProtoBuf.DataFormat.FixedSize)]
        public ulong steamid_lobby
        {
            get => __pbn__steamid_lobby.GetValueOrDefault();
            set => __pbn__steamid_lobby = value;
        }
        public bool ShouldSerializesteamid_lobby() => __pbn__steamid_lobby != null;
        public void Resetsteamid_lobby() => __pbn__steamid_lobby = null;
        private ulong? __pbn__steamid_lobby;

        [global::ProtoBuf.ProtoMember(3)]
        [global::System.ComponentModel.DefaultValue(ELobbyStatus.k_ELobbyStatusInvalid)]
        public ELobbyStatus lobby_status
        {
            get => __pbn__lobby_status ?? ELobbyStatus.k_ELobbyStatusInvalid;
            set => __pbn__lobby_status = value;
        }
        public bool ShouldSerializelobby_status() => __pbn__lobby_status != null;
        public void Resetlobby_status() => __pbn__lobby_status = null;
        private ELobbyStatus? __pbn__lobby_status;

    }

    [global::ProtoBuf.ProtoContract()]
    public enum ELobbyStatus
    {
        k_ELobbyStatusInvalid = 0,
        k_ELobbyStatusExists = 1,
        k_ELobbyStatusDoesNotExist = 2,
        k_ELobbyStatusNotAMember = 3,
    }

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

        public AsyncJob<SteamUnifiedMessages.ServiceMethodResponse<LobbyMatchmakingLegacy_GetLobbyStatus_Response>> GetLobbyStatus( LobbyMatchmakingLegacy_GetLobbyStatus_Request request )
        {
            return UnifiedMessages.SendMessage<LobbyMatchmakingLegacy_GetLobbyStatus_Request, LobbyMatchmakingLegacy_GetLobbyStatus_Response>( "LobbyMatchmakingLegacy.GetLobbyStatus#1", request );
        }

        public override void HandleResponseMsg( string methodName, PacketClientMsgProtobuf packetMsg )
        {
            switch ( methodName )
            {
                case "GetLobbyStatus":
                    PostResponseMsg<LobbyMatchmakingLegacy_GetLobbyStatus_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
