// <auto-generated>
//     Generated by the protocol buffer compiler.  DO NOT EDIT!
//     source: meta/meta.proto
// </auto-generated>
#pragma warning disable 1591, 0612, 3021, 8981
#region Designer generated code

using pb = global::Google.Protobuf;
using pbc = global::Google.Protobuf.Collections;
using pbr = global::Google.Protobuf.Reflection;
using scg = global::System.Collections.Generic;
namespace Chirpstack.Meta {

  /// <summary>Holder for reflection information generated from meta/meta.proto</summary>
  public static partial class MetaReflection {

    #region Descriptor
    /// <summary>File descriptor for meta/meta.proto</summary>
    public static pbr::FileDescriptor Descriptor {
      get { return descriptor; }
    }
    private static pbr::FileDescriptor descriptor;

    static MetaReflection() {
      byte[] descriptorData = global::System.Convert.FromBase64String(
          string.Concat(
            "Cg9tZXRhL21ldGEucHJvdG8SBG1ldGEaE2NvbW1vbi9jb21tb24ucHJvdG8a",
            "C2d3L2d3LnByb3RvIvABCgpVcGxpbmtNZXRhEg8KB2Rldl9ldWkYASABKAkS",
            "IQoHdHhfaW5mbxgCIAEoCzIQLmd3LlVwbGlua1R4SW5mbxIhCgdyeF9pbmZv",
            "GAMgAygLMhAuZ3cuVXBsaW5rUnhJbmZvEh4KFnBoeV9wYXlsb2FkX2J5dGVf",
            "Y291bnQYBCABKA0SHgoWbWFjX2NvbW1hbmRfYnl0ZV9jb3VudBgFIAEoDRIm",
            "Ch5hcHBsaWNhdGlvbl9wYXlsb2FkX2J5dGVfY291bnQYBiABKA0SIwoMbWVz",
            "c2FnZV90eXBlGAcgASgOMg0uY29tbW9uLk1UeXBlIoECCgxEb3dubGlua01l",
            "dGESDwoHZGV2X2V1aRgBIAEoCRIaChJtdWx0aWNhc3RfZ3JvdXBfaWQYAiAB",
            "KAkSIwoHdHhfaW5mbxgDIAEoCzISLmd3LkRvd25saW5rVHhJbmZvEh4KFnBo",
            "eV9wYXlsb2FkX2J5dGVfY291bnQYBCABKA0SHgoWbWFjX2NvbW1hbmRfYnl0",
            "ZV9jb3VudBgFIAEoDRImCh5hcHBsaWNhdGlvbl9wYXlsb2FkX2J5dGVfY291",
            "bnQYBiABKA0SIwoMbWVzc2FnZV90eXBlGAcgASgOMg0uY29tbW9uLk1UeXBl",
            "EhIKCmdhdGV3YXlfaWQYCCABKAlCaAoWaW8uY2hpcnBzdGFjay5hcGkubWV0",
            "YUIJTWV0YVByb3RvUAFaL2dpdGh1Yi5jb20vY2hpcnBzdGFjay9jaGlycHN0",
            "YWNrL2FwaS9nby92NC9tZXRhqgIPQ2hpcnBzdGFjay5NZXRhYgZwcm90bzM="));
      descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
          new pbr::FileDescriptor[] { global::Chirpstack.Common.CommonReflection.Descriptor, global::Chirpstack.Gateway.GwReflection.Descriptor, },
          new pbr::GeneratedClrTypeInfo(null, null, new pbr::GeneratedClrTypeInfo[] {
            new pbr::GeneratedClrTypeInfo(typeof(global::Chirpstack.Meta.UplinkMeta), global::Chirpstack.Meta.UplinkMeta.Parser, new[]{ "DevEui", "TxInfo", "RxInfo", "PhyPayloadByteCount", "MacCommandByteCount", "ApplicationPayloadByteCount", "MessageType" }, null, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::Chirpstack.Meta.DownlinkMeta), global::Chirpstack.Meta.DownlinkMeta.Parser, new[]{ "DevEui", "MulticastGroupId", "TxInfo", "PhyPayloadByteCount", "MacCommandByteCount", "ApplicationPayloadByteCount", "MessageType", "GatewayId" }, null, null, null, null)
          }));
    }
    #endregion

  }
  #region Messages
  public sealed partial class UplinkMeta : pb::IMessage<UplinkMeta>
  #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      , pb::IBufferMessage
  #endif
  {
    private static readonly pb::MessageParser<UplinkMeta> _parser = new pb::MessageParser<UplinkMeta>(() => new UplinkMeta());
    private pb::UnknownFieldSet _unknownFields;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pb::MessageParser<UplinkMeta> Parser { get { return _parser; } }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::Chirpstack.Meta.MetaReflection.Descriptor.MessageTypes[0]; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    pbr::MessageDescriptor pb::IMessage.Descriptor {
      get { return Descriptor; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public UplinkMeta() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public UplinkMeta(UplinkMeta other) : this() {
      devEui_ = other.devEui_;
      txInfo_ = other.txInfo_ != null ? other.txInfo_.Clone() : null;
      rxInfo_ = other.rxInfo_.Clone();
      phyPayloadByteCount_ = other.phyPayloadByteCount_;
      macCommandByteCount_ = other.macCommandByteCount_;
      applicationPayloadByteCount_ = other.applicationPayloadByteCount_;
      messageType_ = other.messageType_;
      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public UplinkMeta Clone() {
      return new UplinkMeta(this);
    }

    /// <summary>Field number for the "dev_eui" field.</summary>
    public const int DevEuiFieldNumber = 1;
    private string devEui_ = "";
    /// <summary>
    /// Device EUI (EUI64).
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public string DevEui {
      get { return devEui_; }
      set {
        devEui_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    /// <summary>Field number for the "tx_info" field.</summary>
    public const int TxInfoFieldNumber = 2;
    private global::Chirpstack.Gateway.UplinkTxInfo txInfo_;
    /// <summary>
    /// TX meta-data.
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::Chirpstack.Gateway.UplinkTxInfo TxInfo {
      get { return txInfo_; }
      set {
        txInfo_ = value;
      }
    }

    /// <summary>Field number for the "rx_info" field.</summary>
    public const int RxInfoFieldNumber = 3;
    private static readonly pb::FieldCodec<global::Chirpstack.Gateway.UplinkRxInfo> _repeated_rxInfo_codec
        = pb::FieldCodec.ForMessage(26, global::Chirpstack.Gateway.UplinkRxInfo.Parser);
    private readonly pbc::RepeatedField<global::Chirpstack.Gateway.UplinkRxInfo> rxInfo_ = new pbc::RepeatedField<global::Chirpstack.Gateway.UplinkRxInfo>();
    /// <summary>
    /// RX meta-data.
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public pbc::RepeatedField<global::Chirpstack.Gateway.UplinkRxInfo> RxInfo {
      get { return rxInfo_; }
    }

    /// <summary>Field number for the "phy_payload_byte_count" field.</summary>
    public const int PhyPayloadByteCountFieldNumber = 4;
    private uint phyPayloadByteCount_;
    /// <summary>
    /// PHYPayload byte count.
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public uint PhyPayloadByteCount {
      get { return phyPayloadByteCount_; }
      set {
        phyPayloadByteCount_ = value;
      }
    }

    /// <summary>Field number for the "mac_command_byte_count" field.</summary>
    public const int MacCommandByteCountFieldNumber = 5;
    private uint macCommandByteCount_;
    /// <summary>
    /// MAC-Command byte count.
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public uint MacCommandByteCount {
      get { return macCommandByteCount_; }
      set {
        macCommandByteCount_ = value;
      }
    }

    /// <summary>Field number for the "application_payload_byte_count" field.</summary>
    public const int ApplicationPayloadByteCountFieldNumber = 6;
    private uint applicationPayloadByteCount_;
    /// <summary>
    /// Application payload byte count.
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public uint ApplicationPayloadByteCount {
      get { return applicationPayloadByteCount_; }
      set {
        applicationPayloadByteCount_ = value;
      }
    }

    /// <summary>Field number for the "message_type" field.</summary>
    public const int MessageTypeFieldNumber = 7;
    private global::Chirpstack.Common.MType messageType_ = global::Chirpstack.Common.MType.JoinRequest;
    /// <summary>
    /// Message type.
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::Chirpstack.Common.MType MessageType {
      get { return messageType_; }
      set {
        messageType_ = value;
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override bool Equals(object other) {
      return Equals(other as UplinkMeta);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Equals(UplinkMeta other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (DevEui != other.DevEui) return false;
      if (!object.Equals(TxInfo, other.TxInfo)) return false;
      if(!rxInfo_.Equals(other.rxInfo_)) return false;
      if (PhyPayloadByteCount != other.PhyPayloadByteCount) return false;
      if (MacCommandByteCount != other.MacCommandByteCount) return false;
      if (ApplicationPayloadByteCount != other.ApplicationPayloadByteCount) return false;
      if (MessageType != other.MessageType) return false;
      return Equals(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override int GetHashCode() {
      int hash = 1;
      if (DevEui.Length != 0) hash ^= DevEui.GetHashCode();
      if (txInfo_ != null) hash ^= TxInfo.GetHashCode();
      hash ^= rxInfo_.GetHashCode();
      if (PhyPayloadByteCount != 0) hash ^= PhyPayloadByteCount.GetHashCode();
      if (MacCommandByteCount != 0) hash ^= MacCommandByteCount.GetHashCode();
      if (ApplicationPayloadByteCount != 0) hash ^= ApplicationPayloadByteCount.GetHashCode();
      if (MessageType != global::Chirpstack.Common.MType.JoinRequest) hash ^= MessageType.GetHashCode();
      if (_unknownFields != null) {
        hash ^= _unknownFields.GetHashCode();
      }
      return hash;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override string ToString() {
      return pb::JsonFormatter.ToDiagnosticString(this);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void WriteTo(pb::CodedOutputStream output) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      output.WriteRawMessage(this);
    #else
      if (DevEui.Length != 0) {
        output.WriteRawTag(10);
        output.WriteString(DevEui);
      }
      if (txInfo_ != null) {
        output.WriteRawTag(18);
        output.WriteMessage(TxInfo);
      }
      rxInfo_.WriteTo(output, _repeated_rxInfo_codec);
      if (PhyPayloadByteCount != 0) {
        output.WriteRawTag(32);
        output.WriteUInt32(PhyPayloadByteCount);
      }
      if (MacCommandByteCount != 0) {
        output.WriteRawTag(40);
        output.WriteUInt32(MacCommandByteCount);
      }
      if (ApplicationPayloadByteCount != 0) {
        output.WriteRawTag(48);
        output.WriteUInt32(ApplicationPayloadByteCount);
      }
      if (MessageType != global::Chirpstack.Common.MType.JoinRequest) {
        output.WriteRawTag(56);
        output.WriteEnum((int) MessageType);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(output);
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
      if (DevEui.Length != 0) {
        output.WriteRawTag(10);
        output.WriteString(DevEui);
      }
      if (txInfo_ != null) {
        output.WriteRawTag(18);
        output.WriteMessage(TxInfo);
      }
      rxInfo_.WriteTo(ref output, _repeated_rxInfo_codec);
      if (PhyPayloadByteCount != 0) {
        output.WriteRawTag(32);
        output.WriteUInt32(PhyPayloadByteCount);
      }
      if (MacCommandByteCount != 0) {
        output.WriteRawTag(40);
        output.WriteUInt32(MacCommandByteCount);
      }
      if (ApplicationPayloadByteCount != 0) {
        output.WriteRawTag(48);
        output.WriteUInt32(ApplicationPayloadByteCount);
      }
      if (MessageType != global::Chirpstack.Common.MType.JoinRequest) {
        output.WriteRawTag(56);
        output.WriteEnum((int) MessageType);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(ref output);
      }
    }
    #endif

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public int CalculateSize() {
      int size = 0;
      if (DevEui.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(DevEui);
      }
      if (txInfo_ != null) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(TxInfo);
      }
      size += rxInfo_.CalculateSize(_repeated_rxInfo_codec);
      if (PhyPayloadByteCount != 0) {
        size += 1 + pb::CodedOutputStream.ComputeUInt32Size(PhyPayloadByteCount);
      }
      if (MacCommandByteCount != 0) {
        size += 1 + pb::CodedOutputStream.ComputeUInt32Size(MacCommandByteCount);
      }
      if (ApplicationPayloadByteCount != 0) {
        size += 1 + pb::CodedOutputStream.ComputeUInt32Size(ApplicationPayloadByteCount);
      }
      if (MessageType != global::Chirpstack.Common.MType.JoinRequest) {
        size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) MessageType);
      }
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(UplinkMeta other) {
      if (other == null) {
        return;
      }
      if (other.DevEui.Length != 0) {
        DevEui = other.DevEui;
      }
      if (other.txInfo_ != null) {
        if (txInfo_ == null) {
          TxInfo = new global::Chirpstack.Gateway.UplinkTxInfo();
        }
        TxInfo.MergeFrom(other.TxInfo);
      }
      rxInfo_.Add(other.rxInfo_);
      if (other.PhyPayloadByteCount != 0) {
        PhyPayloadByteCount = other.PhyPayloadByteCount;
      }
      if (other.MacCommandByteCount != 0) {
        MacCommandByteCount = other.MacCommandByteCount;
      }
      if (other.ApplicationPayloadByteCount != 0) {
        ApplicationPayloadByteCount = other.ApplicationPayloadByteCount;
      }
      if (other.MessageType != global::Chirpstack.Common.MType.JoinRequest) {
        MessageType = other.MessageType;
      }
      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(pb::CodedInputStream input) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      input.ReadRawMessage(this);
    #else
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
          case 10: {
            DevEui = input.ReadString();
            break;
          }
          case 18: {
            if (txInfo_ == null) {
              TxInfo = new global::Chirpstack.Gateway.UplinkTxInfo();
            }
            input.ReadMessage(TxInfo);
            break;
          }
          case 26: {
            rxInfo_.AddEntriesFrom(input, _repeated_rxInfo_codec);
            break;
          }
          case 32: {
            PhyPayloadByteCount = input.ReadUInt32();
            break;
          }
          case 40: {
            MacCommandByteCount = input.ReadUInt32();
            break;
          }
          case 48: {
            ApplicationPayloadByteCount = input.ReadUInt32();
            break;
          }
          case 56: {
            MessageType = (global::Chirpstack.Common.MType) input.ReadEnum();
            break;
          }
        }
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
            break;
          case 10: {
            DevEui = input.ReadString();
            break;
          }
          case 18: {
            if (txInfo_ == null) {
              TxInfo = new global::Chirpstack.Gateway.UplinkTxInfo();
            }
            input.ReadMessage(TxInfo);
            break;
          }
          case 26: {
            rxInfo_.AddEntriesFrom(ref input, _repeated_rxInfo_codec);
            break;
          }
          case 32: {
            PhyPayloadByteCount = input.ReadUInt32();
            break;
          }
          case 40: {
            MacCommandByteCount = input.ReadUInt32();
            break;
          }
          case 48: {
            ApplicationPayloadByteCount = input.ReadUInt32();
            break;
          }
          case 56: {
            MessageType = (global::Chirpstack.Common.MType) input.ReadEnum();
            break;
          }
        }
      }
    }
    #endif

  }

  public sealed partial class DownlinkMeta : pb::IMessage<DownlinkMeta>
  #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      , pb::IBufferMessage
  #endif
  {
    private static readonly pb::MessageParser<DownlinkMeta> _parser = new pb::MessageParser<DownlinkMeta>(() => new DownlinkMeta());
    private pb::UnknownFieldSet _unknownFields;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pb::MessageParser<DownlinkMeta> Parser { get { return _parser; } }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::Chirpstack.Meta.MetaReflection.Descriptor.MessageTypes[1]; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    pbr::MessageDescriptor pb::IMessage.Descriptor {
      get { return Descriptor; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public DownlinkMeta() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public DownlinkMeta(DownlinkMeta other) : this() {
      devEui_ = other.devEui_;
      multicastGroupId_ = other.multicastGroupId_;
      txInfo_ = other.txInfo_ != null ? other.txInfo_.Clone() : null;
      phyPayloadByteCount_ = other.phyPayloadByteCount_;
      macCommandByteCount_ = other.macCommandByteCount_;
      applicationPayloadByteCount_ = other.applicationPayloadByteCount_;
      messageType_ = other.messageType_;
      gatewayId_ = other.gatewayId_;
      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public DownlinkMeta Clone() {
      return new DownlinkMeta(this);
    }

    /// <summary>Field number for the "dev_eui" field.</summary>
    public const int DevEuiFieldNumber = 1;
    private string devEui_ = "";
    /// <summary>
    /// Device EUI (EUI64).
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public string DevEui {
      get { return devEui_; }
      set {
        devEui_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    /// <summary>Field number for the "multicast_group_id" field.</summary>
    public const int MulticastGroupIdFieldNumber = 2;
    private string multicastGroupId_ = "";
    /// <summary>
    /// Multicast Group ID (UUID).
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public string MulticastGroupId {
      get { return multicastGroupId_; }
      set {
        multicastGroupId_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    /// <summary>Field number for the "tx_info" field.</summary>
    public const int TxInfoFieldNumber = 3;
    private global::Chirpstack.Gateway.DownlinkTxInfo txInfo_;
    /// <summary>
    /// TX meta-data.
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::Chirpstack.Gateway.DownlinkTxInfo TxInfo {
      get { return txInfo_; }
      set {
        txInfo_ = value;
      }
    }

    /// <summary>Field number for the "phy_payload_byte_count" field.</summary>
    public const int PhyPayloadByteCountFieldNumber = 4;
    private uint phyPayloadByteCount_;
    /// <summary>
    /// PHYPayload byte count.
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public uint PhyPayloadByteCount {
      get { return phyPayloadByteCount_; }
      set {
        phyPayloadByteCount_ = value;
      }
    }

    /// <summary>Field number for the "mac_command_byte_count" field.</summary>
    public const int MacCommandByteCountFieldNumber = 5;
    private uint macCommandByteCount_;
    /// <summary>
    /// MAC-Command byte count.
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public uint MacCommandByteCount {
      get { return macCommandByteCount_; }
      set {
        macCommandByteCount_ = value;
      }
    }

    /// <summary>Field number for the "application_payload_byte_count" field.</summary>
    public const int ApplicationPayloadByteCountFieldNumber = 6;
    private uint applicationPayloadByteCount_;
    /// <summary>
    /// Application payload byte count.
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public uint ApplicationPayloadByteCount {
      get { return applicationPayloadByteCount_; }
      set {
        applicationPayloadByteCount_ = value;
      }
    }

    /// <summary>Field number for the "message_type" field.</summary>
    public const int MessageTypeFieldNumber = 7;
    private global::Chirpstack.Common.MType messageType_ = global::Chirpstack.Common.MType.JoinRequest;
    /// <summary>
    /// Message type.
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::Chirpstack.Common.MType MessageType {
      get { return messageType_; }
      set {
        messageType_ = value;
      }
    }

    /// <summary>Field number for the "gateway_id" field.</summary>
    public const int GatewayIdFieldNumber = 8;
    private string gatewayId_ = "";
    /// <summary>
    /// Gateway ID (EUI64).
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public string GatewayId {
      get { return gatewayId_; }
      set {
        gatewayId_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override bool Equals(object other) {
      return Equals(other as DownlinkMeta);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Equals(DownlinkMeta other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (DevEui != other.DevEui) return false;
      if (MulticastGroupId != other.MulticastGroupId) return false;
      if (!object.Equals(TxInfo, other.TxInfo)) return false;
      if (PhyPayloadByteCount != other.PhyPayloadByteCount) return false;
      if (MacCommandByteCount != other.MacCommandByteCount) return false;
      if (ApplicationPayloadByteCount != other.ApplicationPayloadByteCount) return false;
      if (MessageType != other.MessageType) return false;
      if (GatewayId != other.GatewayId) return false;
      return Equals(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override int GetHashCode() {
      int hash = 1;
      if (DevEui.Length != 0) hash ^= DevEui.GetHashCode();
      if (MulticastGroupId.Length != 0) hash ^= MulticastGroupId.GetHashCode();
      if (txInfo_ != null) hash ^= TxInfo.GetHashCode();
      if (PhyPayloadByteCount != 0) hash ^= PhyPayloadByteCount.GetHashCode();
      if (MacCommandByteCount != 0) hash ^= MacCommandByteCount.GetHashCode();
      if (ApplicationPayloadByteCount != 0) hash ^= ApplicationPayloadByteCount.GetHashCode();
      if (MessageType != global::Chirpstack.Common.MType.JoinRequest) hash ^= MessageType.GetHashCode();
      if (GatewayId.Length != 0) hash ^= GatewayId.GetHashCode();
      if (_unknownFields != null) {
        hash ^= _unknownFields.GetHashCode();
      }
      return hash;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override string ToString() {
      return pb::JsonFormatter.ToDiagnosticString(this);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void WriteTo(pb::CodedOutputStream output) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      output.WriteRawMessage(this);
    #else
      if (DevEui.Length != 0) {
        output.WriteRawTag(10);
        output.WriteString(DevEui);
      }
      if (MulticastGroupId.Length != 0) {
        output.WriteRawTag(18);
        output.WriteString(MulticastGroupId);
      }
      if (txInfo_ != null) {
        output.WriteRawTag(26);
        output.WriteMessage(TxInfo);
      }
      if (PhyPayloadByteCount != 0) {
        output.WriteRawTag(32);
        output.WriteUInt32(PhyPayloadByteCount);
      }
      if (MacCommandByteCount != 0) {
        output.WriteRawTag(40);
        output.WriteUInt32(MacCommandByteCount);
      }
      if (ApplicationPayloadByteCount != 0) {
        output.WriteRawTag(48);
        output.WriteUInt32(ApplicationPayloadByteCount);
      }
      if (MessageType != global::Chirpstack.Common.MType.JoinRequest) {
        output.WriteRawTag(56);
        output.WriteEnum((int) MessageType);
      }
      if (GatewayId.Length != 0) {
        output.WriteRawTag(66);
        output.WriteString(GatewayId);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(output);
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
      if (DevEui.Length != 0) {
        output.WriteRawTag(10);
        output.WriteString(DevEui);
      }
      if (MulticastGroupId.Length != 0) {
        output.WriteRawTag(18);
        output.WriteString(MulticastGroupId);
      }
      if (txInfo_ != null) {
        output.WriteRawTag(26);
        output.WriteMessage(TxInfo);
      }
      if (PhyPayloadByteCount != 0) {
        output.WriteRawTag(32);
        output.WriteUInt32(PhyPayloadByteCount);
      }
      if (MacCommandByteCount != 0) {
        output.WriteRawTag(40);
        output.WriteUInt32(MacCommandByteCount);
      }
      if (ApplicationPayloadByteCount != 0) {
        output.WriteRawTag(48);
        output.WriteUInt32(ApplicationPayloadByteCount);
      }
      if (MessageType != global::Chirpstack.Common.MType.JoinRequest) {
        output.WriteRawTag(56);
        output.WriteEnum((int) MessageType);
      }
      if (GatewayId.Length != 0) {
        output.WriteRawTag(66);
        output.WriteString(GatewayId);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(ref output);
      }
    }
    #endif

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public int CalculateSize() {
      int size = 0;
      if (DevEui.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(DevEui);
      }
      if (MulticastGroupId.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(MulticastGroupId);
      }
      if (txInfo_ != null) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(TxInfo);
      }
      if (PhyPayloadByteCount != 0) {
        size += 1 + pb::CodedOutputStream.ComputeUInt32Size(PhyPayloadByteCount);
      }
      if (MacCommandByteCount != 0) {
        size += 1 + pb::CodedOutputStream.ComputeUInt32Size(MacCommandByteCount);
      }
      if (ApplicationPayloadByteCount != 0) {
        size += 1 + pb::CodedOutputStream.ComputeUInt32Size(ApplicationPayloadByteCount);
      }
      if (MessageType != global::Chirpstack.Common.MType.JoinRequest) {
        size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) MessageType);
      }
      if (GatewayId.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(GatewayId);
      }
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(DownlinkMeta other) {
      if (other == null) {
        return;
      }
      if (other.DevEui.Length != 0) {
        DevEui = other.DevEui;
      }
      if (other.MulticastGroupId.Length != 0) {
        MulticastGroupId = other.MulticastGroupId;
      }
      if (other.txInfo_ != null) {
        if (txInfo_ == null) {
          TxInfo = new global::Chirpstack.Gateway.DownlinkTxInfo();
        }
        TxInfo.MergeFrom(other.TxInfo);
      }
      if (other.PhyPayloadByteCount != 0) {
        PhyPayloadByteCount = other.PhyPayloadByteCount;
      }
      if (other.MacCommandByteCount != 0) {
        MacCommandByteCount = other.MacCommandByteCount;
      }
      if (other.ApplicationPayloadByteCount != 0) {
        ApplicationPayloadByteCount = other.ApplicationPayloadByteCount;
      }
      if (other.MessageType != global::Chirpstack.Common.MType.JoinRequest) {
        MessageType = other.MessageType;
      }
      if (other.GatewayId.Length != 0) {
        GatewayId = other.GatewayId;
      }
      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(pb::CodedInputStream input) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      input.ReadRawMessage(this);
    #else
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
          case 10: {
            DevEui = input.ReadString();
            break;
          }
          case 18: {
            MulticastGroupId = input.ReadString();
            break;
          }
          case 26: {
            if (txInfo_ == null) {
              TxInfo = new global::Chirpstack.Gateway.DownlinkTxInfo();
            }
            input.ReadMessage(TxInfo);
            break;
          }
          case 32: {
            PhyPayloadByteCount = input.ReadUInt32();
            break;
          }
          case 40: {
            MacCommandByteCount = input.ReadUInt32();
            break;
          }
          case 48: {
            ApplicationPayloadByteCount = input.ReadUInt32();
            break;
          }
          case 56: {
            MessageType = (global::Chirpstack.Common.MType) input.ReadEnum();
            break;
          }
          case 66: {
            GatewayId = input.ReadString();
            break;
          }
        }
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
            break;
          case 10: {
            DevEui = input.ReadString();
            break;
          }
          case 18: {
            MulticastGroupId = input.ReadString();
            break;
          }
          case 26: {
            if (txInfo_ == null) {
              TxInfo = new global::Chirpstack.Gateway.DownlinkTxInfo();
            }
            input.ReadMessage(TxInfo);
            break;
          }
          case 32: {
            PhyPayloadByteCount = input.ReadUInt32();
            break;
          }
          case 40: {
            MacCommandByteCount = input.ReadUInt32();
            break;
          }
          case 48: {
            ApplicationPayloadByteCount = input.ReadUInt32();
            break;
          }
          case 56: {
            MessageType = (global::Chirpstack.Common.MType) input.ReadEnum();
            break;
          }
          case 66: {
            GatewayId = input.ReadString();
            break;
          }
        }
      }
    }
    #endif

  }

  #endregion

}

#endregion Designer generated code
