// <auto-generated>
//     Generated by the protocol buffer compiler.  DO NOT EDIT!
//     source: galaxy_repository.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 ZB.MOM.WW.MxGateway.Contracts.Proto.Galaxy {

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

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

    static GalaxyRepositoryReflection() {
      byte[] descriptorData = global::System.Convert.FromBase64String(
          string.Concat(
            "ChdnYWxheHlfcmVwb3NpdG9yeS5wcm90bxIUZ2FsYXh5X3JlcG9zaXRvcnku",
            "djEaH2dvb2dsZS9wcm90b2J1Zi90aW1lc3RhbXAucHJvdG8aHmdvb2dsZS9w",
            "cm90b2J1Zi93cmFwcGVycy5wcm90byIXChVUZXN0Q29ubmVjdGlvblJlcXVl",
            "c3QiIQoTVGVzdENvbm5lY3Rpb25SZXBseRIKCgJvaxgBIAEoCCIaChhHZXRM",
            "YXN0RGVwbG95VGltZVJlcXVlc3QiYgoWR2V0TGFzdERlcGxveVRpbWVSZXBs",
            "eRIPCgdwcmVzZW50GAEgASgIEjcKE3RpbWVfb2ZfbGFzdF9kZXBsb3kYAiAB",
            "KAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wIocDChhEaXNjb3Zlckhp",
            "ZXJhcmNoeVJlcXVlc3QSEQoJcGFnZV9zaXplGAEgASgFEhIKCnBhZ2VfdG9r",
            "ZW4YAiABKAkSGQoPcm9vdF9nb2JqZWN0X2lkGAMgASgFSAASFwoNcm9vdF90",
            "YWdfbmFtZRgEIAEoCUgAEh0KE3Jvb3RfY29udGFpbmVkX3BhdGgYBSABKAlI",
            "ABIuCgltYXhfZGVwdGgYBiABKAsyGy5nb29nbGUucHJvdG9idWYuSW50MzJW",
            "YWx1ZRIUCgxjYXRlZ29yeV9pZHMYByADKAUSHwoXdGVtcGxhdGVfY2hhaW5f",
            "Y29udGFpbnMYCCADKAkSFQoNdGFnX25hbWVfZ2xvYhgJIAEoCRIfChJpbmNs",
            "dWRlX2F0dHJpYnV0ZXMYCiABKAhIAYgBARIaChJhbGFybV9iZWFyaW5nX29u",
            "bHkYCyABKAgSFwoPaGlzdG9yaXplZF9vbmx5GAwgASgIQgYKBHJvb3RCFQoT",
            "X2luY2x1ZGVfYXR0cmlidXRlcyKCAQoWRGlzY292ZXJIaWVyYXJjaHlSZXBs",
            "eRIzCgdvYmplY3RzGAEgAygLMiIuZ2FsYXh5X3JlcG9zaXRvcnkudjEuR2Fs",
            "YXh5T2JqZWN0EhcKD25leHRfcGFnZV90b2tlbhgCIAEoCRIaChJ0b3RhbF9v",
            "YmplY3RfY291bnQYAyABKAUiVQoYV2F0Y2hEZXBsb3lFdmVudHNSZXF1ZXN0",
            "EjkKFWxhc3Rfc2Vlbl9kZXBsb3lfdGltZRgBIAEoCzIaLmdvb2dsZS5wcm90",
            "b2J1Zi5UaW1lc3RhbXAi3QEKC0RlcGxveUV2ZW50EhAKCHNlcXVlbmNlGAEg",
            "ASgEEi8KC29ic2VydmVkX2F0GAIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRp",
            "bWVzdGFtcBI3ChN0aW1lX29mX2xhc3RfZGVwbG95GAMgASgLMhouZ29vZ2xl",
            "LnByb3RvYnVmLlRpbWVzdGFtcBIjCht0aW1lX29mX2xhc3RfZGVwbG95X3By",
            "ZXNlbnQYBCABKAgSFAoMb2JqZWN0X2NvdW50GAUgASgFEhcKD2F0dHJpYnV0",
            "ZV9jb3VudBgGIAEoBSKTAgoMR2FsYXh5T2JqZWN0EhIKCmdvYmplY3RfaWQY",
            "ASABKAUSEAoIdGFnX25hbWUYAiABKAkSFgoOY29udGFpbmVkX25hbWUYAyAB",
            "KAkSEwoLYnJvd3NlX25hbWUYBCABKAkSGQoRcGFyZW50X2dvYmplY3RfaWQY",
            "BSABKAUSDwoHaXNfYXJlYRgGIAEoCBITCgtjYXRlZ29yeV9pZBgHIAEoBRIc",
            "ChRob3N0ZWRfYnlfZ29iamVjdF9pZBgIIAEoBRIWCg50ZW1wbGF0ZV9jaGFp",
            "bhgJIAMoCRI5CgphdHRyaWJ1dGVzGAogAygLMiUuZ2FsYXh5X3JlcG9zaXRv",
            "cnkudjEuR2FsYXh5QXR0cmlidXRlIqgCCg9HYWxheHlBdHRyaWJ1dGUSFgoO",
            "YXR0cmlidXRlX25hbWUYASABKAkSGgoSZnVsbF90YWdfcmVmZXJlbmNlGAIg",
            "ASgJEhQKDG14X2RhdGFfdHlwZRgDIAEoBRIWCg5kYXRhX3R5cGVfbmFtZRgE",
            "IAEoCRIQCghpc19hcnJheRgFIAEoCBIXCg9hcnJheV9kaW1lbnNpb24YBiAB",
            "KAUSHwoXYXJyYXlfZGltZW5zaW9uX3ByZXNlbnQYByABKAgSHQoVbXhfYXR0",
            "cmlidXRlX2NhdGVnb3J5GAggASgFEh8KF3NlY3VyaXR5X2NsYXNzaWZpY2F0",
            "aW9uGAkgASgFEhUKDWlzX2hpc3Rvcml6ZWQYCiABKAgSEAoIaXNfYWxhcm0Y",
            "CyABKAgi3AIKFUJyb3dzZUNoaWxkcmVuUmVxdWVzdBIbChFwYXJlbnRfZ29i",
            "amVjdF9pZBgBIAEoBUgAEhkKD3BhcmVudF90YWdfbmFtZRgCIAEoCUgAEh8K",
            "FXBhcmVudF9jb250YWluZWRfcGF0aBgDIAEoCUgAEhEKCXBhZ2Vfc2l6ZRgE",
            "IAEoBRISCgpwYWdlX3Rva2VuGAUgASgJEhQKDGNhdGVnb3J5X2lkcxgGIAMo",
            "BRIfChd0ZW1wbGF0ZV9jaGFpbl9jb250YWlucxgHIAMoCRIVCg10YWdfbmFt",
            "ZV9nbG9iGAggASgJEh8KEmluY2x1ZGVfYXR0cmlidXRlcxgJIAEoCEgBiAEB",
            "EhoKEmFsYXJtX2JlYXJpbmdfb25seRgKIAEoCBIXCg9oaXN0b3JpemVkX29u",
            "bHkYCyABKAhCCAoGcGFyZW50QhUKE19pbmNsdWRlX2F0dHJpYnV0ZXMiswEK",
            "E0Jyb3dzZUNoaWxkcmVuUmVwbHkSNAoIY2hpbGRyZW4YASADKAsyIi5nYWxh",
            "eHlfcmVwb3NpdG9yeS52MS5HYWxheHlPYmplY3QSFwoPbmV4dF9wYWdlX3Rv",
            "a2VuGAIgASgJEhkKEXRvdGFsX2NoaWxkX2NvdW50GAMgASgFEhoKEmNoaWxk",
            "X2hhc19jaGlsZHJlbhgEIAMoCBIWCg5jYWNoZV9zZXF1ZW5jZRgFIAEoBDK2",
            "BAoQR2FsYXh5UmVwb3NpdG9yeRJoCg5UZXN0Q29ubmVjdGlvbhIrLmdhbGF4",
            "eV9yZXBvc2l0b3J5LnYxLlRlc3RDb25uZWN0aW9uUmVxdWVzdBopLmdhbGF4",
            "eV9yZXBvc2l0b3J5LnYxLlRlc3RDb25uZWN0aW9uUmVwbHkScQoRR2V0TGFz",
            "dERlcGxveVRpbWUSLi5nYWxheHlfcmVwb3NpdG9yeS52MS5HZXRMYXN0RGVw",
            "bG95VGltZVJlcXVlc3QaLC5nYWxheHlfcmVwb3NpdG9yeS52MS5HZXRMYXN0",
            "RGVwbG95VGltZVJlcGx5EnEKEURpc2NvdmVySGllcmFyY2h5Ei4uZ2FsYXh5",
            "X3JlcG9zaXRvcnkudjEuRGlzY292ZXJIaWVyYXJjaHlSZXF1ZXN0GiwuZ2Fs",
            "YXh5X3JlcG9zaXRvcnkudjEuRGlzY292ZXJIaWVyYXJjaHlSZXBseRJoChFX",
            "YXRjaERlcGxveUV2ZW50cxIuLmdhbGF4eV9yZXBvc2l0b3J5LnYxLldhdGNo",
            "RGVwbG95RXZlbnRzUmVxdWVzdBohLmdhbGF4eV9yZXBvc2l0b3J5LnYxLkRl",
            "cGxveUV2ZW50MAESaAoOQnJvd3NlQ2hpbGRyZW4SKy5nYWxheHlfcmVwb3Np",
            "dG9yeS52MS5Ccm93c2VDaGlsZHJlblJlcXVlc3QaKS5nYWxheHlfcmVwb3Np",
            "dG9yeS52MS5Ccm93c2VDaGlsZHJlblJlcGx5Qi2qAipaQi5NT00uV1cuTXhH",
            "YXRld2F5LkNvbnRyYWN0cy5Qcm90by5HYWxheHliBnByb3RvMw=="));
      descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
          new pbr::FileDescriptor[] { global::Google.Protobuf.WellKnownTypes.TimestampReflection.Descriptor, global::Google.Protobuf.WellKnownTypes.WrappersReflection.Descriptor, },
          new pbr::GeneratedClrTypeInfo(null, null, new pbr::GeneratedClrTypeInfo[] {
            new pbr::GeneratedClrTypeInfo(typeof(global::ZB.MOM.WW.MxGateway.Contracts.Proto.Galaxy.TestConnectionRequest), global::ZB.MOM.WW.MxGateway.Contracts.Proto.Galaxy.TestConnectionRequest.Parser, null, null, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::ZB.MOM.WW.MxGateway.Contracts.Proto.Galaxy.TestConnectionReply), global::ZB.MOM.WW.MxGateway.Contracts.Proto.Galaxy.TestConnectionReply.Parser, new[]{ "Ok" }, null, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::ZB.MOM.WW.MxGateway.Contracts.Proto.Galaxy.GetLastDeployTimeRequest), global::ZB.MOM.WW.MxGateway.Contracts.Proto.Galaxy.GetLastDeployTimeRequest.Parser, null, null, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::ZB.MOM.WW.MxGateway.Contracts.Proto.Galaxy.GetLastDeployTimeReply), global::ZB.MOM.WW.MxGateway.Contracts.Proto.Galaxy.GetLastDeployTimeReply.Parser, new[]{ "Present", "TimeOfLastDeploy" }, null, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::ZB.MOM.WW.MxGateway.Contracts.Proto.Galaxy.DiscoverHierarchyRequest), global::ZB.MOM.WW.MxGateway.Contracts.Proto.Galaxy.DiscoverHierarchyRequest.Parser, new[]{ "PageSize", "PageToken", "RootGobjectId", "RootTagName", "RootContainedPath", "MaxDepth", "CategoryIds", "TemplateChainContains", "TagNameGlob", "IncludeAttributes", "AlarmBearingOnly", "HistorizedOnly" }, new[]{ "Root", "IncludeAttributes" }, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::ZB.MOM.WW.MxGateway.Contracts.Proto.Galaxy.DiscoverHierarchyReply), global::ZB.MOM.WW.MxGateway.Contracts.Proto.Galaxy.DiscoverHierarchyReply.Parser, new[]{ "Objects", "NextPageToken", "TotalObjectCount" }, null, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::ZB.MOM.WW.MxGateway.Contracts.Proto.Galaxy.WatchDeployEventsRequest), global::ZB.MOM.WW.MxGateway.Contracts.Proto.Galaxy.WatchDeployEventsRequest.Parser, new[]{ "LastSeenDeployTime" }, null, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::ZB.MOM.WW.MxGateway.Contracts.Proto.Galaxy.DeployEvent), global::ZB.MOM.WW.MxGateway.Contracts.Proto.Galaxy.DeployEvent.Parser, new[]{ "Sequence", "ObservedAt", "TimeOfLastDeploy", "TimeOfLastDeployPresent", "ObjectCount", "AttributeCount" }, null, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::ZB.MOM.WW.MxGateway.Contracts.Proto.Galaxy.GalaxyObject), global::ZB.MOM.WW.MxGateway.Contracts.Proto.Galaxy.GalaxyObject.Parser, new[]{ "GobjectId", "TagName", "ContainedName", "BrowseName", "ParentGobjectId", "IsArea", "CategoryId", "HostedByGobjectId", "TemplateChain", "Attributes" }, null, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::ZB.MOM.WW.MxGateway.Contracts.Proto.Galaxy.GalaxyAttribute), global::ZB.MOM.WW.MxGateway.Contracts.Proto.Galaxy.GalaxyAttribute.Parser, new[]{ "AttributeName", "FullTagReference", "MxDataType", "DataTypeName", "IsArray", "ArrayDimension", "ArrayDimensionPresent", "MxAttributeCategory", "SecurityClassification", "IsHistorized", "IsAlarm" }, null, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::ZB.MOM.WW.MxGateway.Contracts.Proto.Galaxy.BrowseChildrenRequest), global::ZB.MOM.WW.MxGateway.Contracts.Proto.Galaxy.BrowseChildrenRequest.Parser, new[]{ "ParentGobjectId", "ParentTagName", "ParentContainedPath", "PageSize", "PageToken", "CategoryIds", "TemplateChainContains", "TagNameGlob", "IncludeAttributes", "AlarmBearingOnly", "HistorizedOnly" }, new[]{ "Parent", "IncludeAttributes" }, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::ZB.MOM.WW.MxGateway.Contracts.Proto.Galaxy.BrowseChildrenReply), global::ZB.MOM.WW.MxGateway.Contracts.Proto.Galaxy.BrowseChildrenReply.Parser, new[]{ "Children", "NextPageToken", "TotalChildCount", "ChildHasChildren", "CacheSequence" }, null, null, null, null)
          }));
    }
    #endregion

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::ZB.MOM.WW.MxGateway.Contracts.Proto.Galaxy.GalaxyRepositoryReflection.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 TestConnectionRequest() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public TestConnectionRequest(TestConnectionRequest other) : this() {
      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

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

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Equals(TestConnectionRequest other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      return Equals(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override int GetHashCode() {
      int hash = 1;
      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 (_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 (_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 (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(TestConnectionRequest other) {
      if (other == null) {
        return;
      }
      _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) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            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) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
            break;
        }
      }
    }
    #endif

  }

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::ZB.MOM.WW.MxGateway.Contracts.Proto.Galaxy.GalaxyRepositoryReflection.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 TestConnectionReply() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public TestConnectionReply(TestConnectionReply other) : this() {
      ok_ = other.ok_;
      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

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

    /// <summary>Field number for the "ok" field.</summary>
    public const int OkFieldNumber = 1;
    private bool ok_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Ok {
      get { return ok_; }
      set {
        ok_ = value;
      }
    }

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Equals(TestConnectionReply other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (Ok != other.Ok) 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 (Ok != false) hash ^= Ok.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 (Ok != false) {
        output.WriteRawTag(8);
        output.WriteBool(Ok);
      }
      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 (Ok != false) {
        output.WriteRawTag(8);
        output.WriteBool(Ok);
      }
      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 (Ok != false) {
        size += 1 + 1;
      }
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(TestConnectionReply other) {
      if (other == null) {
        return;
      }
      if (other.Ok != false) {
        Ok = other.Ok;
      }
      _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) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
          case 8: {
            Ok = input.ReadBool();
            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) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
            break;
          case 8: {
            Ok = input.ReadBool();
            break;
          }
        }
      }
    }
    #endif

  }

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::ZB.MOM.WW.MxGateway.Contracts.Proto.Galaxy.GalaxyRepositoryReflection.Descriptor.MessageTypes[2]; }
    }

    [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 GetLastDeployTimeRequest() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public GetLastDeployTimeRequest(GetLastDeployTimeRequest other) : this() {
      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

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

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Equals(GetLastDeployTimeRequest other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      return Equals(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override int GetHashCode() {
      int hash = 1;
      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 (_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 (_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 (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(GetLastDeployTimeRequest other) {
      if (other == null) {
        return;
      }
      _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) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            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) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
            break;
        }
      }
    }
    #endif

  }

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::ZB.MOM.WW.MxGateway.Contracts.Proto.Galaxy.GalaxyRepositoryReflection.Descriptor.MessageTypes[3]; }
    }

    [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 GetLastDeployTimeReply() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public GetLastDeployTimeReply(GetLastDeployTimeReply other) : this() {
      present_ = other.present_;
      timeOfLastDeploy_ = other.timeOfLastDeploy_ != null ? other.timeOfLastDeploy_.Clone() : null;
      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

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

    /// <summary>Field number for the "present" field.</summary>
    public const int PresentFieldNumber = 1;
    private bool present_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Present {
      get { return present_; }
      set {
        present_ = value;
      }
    }

    /// <summary>Field number for the "time_of_last_deploy" field.</summary>
    public const int TimeOfLastDeployFieldNumber = 2;
    private global::Google.Protobuf.WellKnownTypes.Timestamp timeOfLastDeploy_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::Google.Protobuf.WellKnownTypes.Timestamp TimeOfLastDeploy {
      get { return timeOfLastDeploy_; }
      set {
        timeOfLastDeploy_ = value;
      }
    }

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Equals(GetLastDeployTimeReply other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (Present != other.Present) return false;
      if (!object.Equals(TimeOfLastDeploy, other.TimeOfLastDeploy)) 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 (Present != false) hash ^= Present.GetHashCode();
      if (timeOfLastDeploy_ != null) hash ^= TimeOfLastDeploy.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 (Present != false) {
        output.WriteRawTag(8);
        output.WriteBool(Present);
      }
      if (timeOfLastDeploy_ != null) {
        output.WriteRawTag(18);
        output.WriteMessage(TimeOfLastDeploy);
      }
      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 (Present != false) {
        output.WriteRawTag(8);
        output.WriteBool(Present);
      }
      if (timeOfLastDeploy_ != null) {
        output.WriteRawTag(18);
        output.WriteMessage(TimeOfLastDeploy);
      }
      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 (Present != false) {
        size += 1 + 1;
      }
      if (timeOfLastDeploy_ != null) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(TimeOfLastDeploy);
      }
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(GetLastDeployTimeReply other) {
      if (other == null) {
        return;
      }
      if (other.Present != false) {
        Present = other.Present;
      }
      if (other.timeOfLastDeploy_ != null) {
        if (timeOfLastDeploy_ == null) {
          TimeOfLastDeploy = new global::Google.Protobuf.WellKnownTypes.Timestamp();
        }
        TimeOfLastDeploy.MergeFrom(other.TimeOfLastDeploy);
      }
      _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) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
          case 8: {
            Present = input.ReadBool();
            break;
          }
          case 18: {
            if (timeOfLastDeploy_ == null) {
              TimeOfLastDeploy = new global::Google.Protobuf.WellKnownTypes.Timestamp();
            }
            input.ReadMessage(TimeOfLastDeploy);
            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) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
            break;
          case 8: {
            Present = input.ReadBool();
            break;
          }
          case 18: {
            if (timeOfLastDeploy_ == null) {
              TimeOfLastDeploy = new global::Google.Protobuf.WellKnownTypes.Timestamp();
            }
            input.ReadMessage(TimeOfLastDeploy);
            break;
          }
        }
      }
    }
    #endif

  }

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::ZB.MOM.WW.MxGateway.Contracts.Proto.Galaxy.GalaxyRepositoryReflection.Descriptor.MessageTypes[4]; }
    }

    [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 DiscoverHierarchyRequest() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public DiscoverHierarchyRequest(DiscoverHierarchyRequest other) : this() {
      _hasBits0 = other._hasBits0;
      pageSize_ = other.pageSize_;
      pageToken_ = other.pageToken_;
      MaxDepth = other.MaxDepth;
      categoryIds_ = other.categoryIds_.Clone();
      templateChainContains_ = other.templateChainContains_.Clone();
      tagNameGlob_ = other.tagNameGlob_;
      includeAttributes_ = other.includeAttributes_;
      alarmBearingOnly_ = other.alarmBearingOnly_;
      historizedOnly_ = other.historizedOnly_;
      switch (other.RootCase) {
        case RootOneofCase.RootGobjectId:
          RootGobjectId = other.RootGobjectId;
          break;
        case RootOneofCase.RootTagName:
          RootTagName = other.RootTagName;
          break;
        case RootOneofCase.RootContainedPath:
          RootContainedPath = other.RootContainedPath;
          break;
      }

      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

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

    /// <summary>Field number for the "page_size" field.</summary>
    public const int PageSizeFieldNumber = 1;
    private int pageSize_;
    /// <summary>
    /// Maximum number of objects to return. The server applies its default when
    /// unset and rejects non-positive values.
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public int PageSize {
      get { return pageSize_; }
      set {
        pageSize_ = value;
      }
    }

    /// <summary>Field number for the "page_token" field.</summary>
    public const int PageTokenFieldNumber = 2;
    private string pageToken_ = "";
    /// <summary>
    /// Opaque token returned by a previous DiscoverHierarchy response.
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public string PageToken {
      get { return pageToken_; }
      set {
        pageToken_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    /// <summary>Field number for the "root_gobject_id" field.</summary>
    public const int RootGobjectIdFieldNumber = 3;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public int RootGobjectId {
      get { return HasRootGobjectId ? (int) root_ : 0; }
      set {
        root_ = value;
        rootCase_ = RootOneofCase.RootGobjectId;
      }
    }
    /// <summary>Gets whether the "root_gobject_id" field is set</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool HasRootGobjectId {
      get { return rootCase_ == RootOneofCase.RootGobjectId; }
    }
    /// <summary> Clears the value of the oneof if it's currently set to "root_gobject_id" </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void ClearRootGobjectId() {
      if (HasRootGobjectId) {
        ClearRoot();
      }
    }

    /// <summary>Field number for the "root_tag_name" field.</summary>
    public const int RootTagNameFieldNumber = 4;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public string RootTagName {
      get { return HasRootTagName ? (string) root_ : ""; }
      set {
        root_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
        rootCase_ = RootOneofCase.RootTagName;
      }
    }
    /// <summary>Gets whether the "root_tag_name" field is set</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool HasRootTagName {
      get { return rootCase_ == RootOneofCase.RootTagName; }
    }
    /// <summary> Clears the value of the oneof if it's currently set to "root_tag_name" </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void ClearRootTagName() {
      if (HasRootTagName) {
        ClearRoot();
      }
    }

    /// <summary>Field number for the "root_contained_path" field.</summary>
    public const int RootContainedPathFieldNumber = 5;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public string RootContainedPath {
      get { return HasRootContainedPath ? (string) root_ : ""; }
      set {
        root_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
        rootCase_ = RootOneofCase.RootContainedPath;
      }
    }
    /// <summary>Gets whether the "root_contained_path" field is set</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool HasRootContainedPath {
      get { return rootCase_ == RootOneofCase.RootContainedPath; }
    }
    /// <summary> Clears the value of the oneof if it's currently set to "root_contained_path" </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void ClearRootContainedPath() {
      if (HasRootContainedPath) {
        ClearRoot();
      }
    }

    /// <summary>Field number for the "max_depth" field.</summary>
    public const int MaxDepthFieldNumber = 6;
    private static readonly pb::FieldCodec<int?> _single_maxDepth_codec = pb::FieldCodec.ForStructWrapper<int>(50);
    private int? maxDepth_;
    /// <summary>
    /// Optional. Cap on descendant depth from root. Zero returns only the root.
    /// Unset means unlimited depth.
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public int? MaxDepth {
      get { return maxDepth_; }
      set {
        maxDepth_ = value;
      }
    }


    /// <summary>Field number for the "category_ids" field.</summary>
    public const int CategoryIdsFieldNumber = 7;
    private static readonly pb::FieldCodec<int> _repeated_categoryIds_codec
        = pb::FieldCodec.ForInt32(58);
    private readonly pbc::RepeatedField<int> categoryIds_ = new pbc::RepeatedField<int>();
    /// <summary>
    /// Optional object category id filters.
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public pbc::RepeatedField<int> CategoryIds {
      get { return categoryIds_; }
    }

    /// <summary>Field number for the "template_chain_contains" field.</summary>
    public const int TemplateChainContainsFieldNumber = 8;
    private static readonly pb::FieldCodec<string> _repeated_templateChainContains_codec
        = pb::FieldCodec.ForString(66);
    private readonly pbc::RepeatedField<string> templateChainContains_ = new pbc::RepeatedField<string>();
    /// <summary>
    /// Optional case-insensitive substring filters against template names.
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public pbc::RepeatedField<string> TemplateChainContains {
      get { return templateChainContains_; }
    }

    /// <summary>Field number for the "tag_name_glob" field.</summary>
    public const int TagNameGlobFieldNumber = 9;
    private string tagNameGlob_ = "";
    /// <summary>
    /// Optional anchored, case-insensitive glob over object tag_name.
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public string TagNameGlob {
      get { return tagNameGlob_; }
      set {
        tagNameGlob_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    /// <summary>Field number for the "include_attributes" field.</summary>
    public const int IncludeAttributesFieldNumber = 10;
    private readonly static bool IncludeAttributesDefaultValue = false;

    private bool includeAttributes_;
    /// <summary>
    /// Optional. Unset or true includes attributes. False returns object skeletons.
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool IncludeAttributes {
      get { if ((_hasBits0 & 1) != 0) { return includeAttributes_; } else { return IncludeAttributesDefaultValue; } }
      set {
        _hasBits0 |= 1;
        includeAttributes_ = value;
      }
    }
    /// <summary>Gets whether the "include_attributes" field is set</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool HasIncludeAttributes {
      get { return (_hasBits0 & 1) != 0; }
    }
    /// <summary>Clears the value of the "include_attributes" field</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void ClearIncludeAttributes() {
      _hasBits0 &= ~1;
    }

    /// <summary>Field number for the "alarm_bearing_only" field.</summary>
    public const int AlarmBearingOnlyFieldNumber = 11;
    private bool alarmBearingOnly_;
    /// <summary>
    /// Optional. Return only objects with at least one alarm-bearing attribute.
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool AlarmBearingOnly {
      get { return alarmBearingOnly_; }
      set {
        alarmBearingOnly_ = value;
      }
    }

    /// <summary>Field number for the "historized_only" field.</summary>
    public const int HistorizedOnlyFieldNumber = 12;
    private bool historizedOnly_;
    /// <summary>
    /// Optional. Return only objects with at least one historized attribute.
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool HistorizedOnly {
      get { return historizedOnly_; }
      set {
        historizedOnly_ = value;
      }
    }

    private object root_;
    /// <summary>Enum of possible cases for the "root" oneof.</summary>
    public enum RootOneofCase {
      None = 0,
      RootGobjectId = 3,
      RootTagName = 4,
      RootContainedPath = 5,
    }
    private RootOneofCase rootCase_ = RootOneofCase.None;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public RootOneofCase RootCase {
      get { return rootCase_; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void ClearRoot() {
      rootCase_ = RootOneofCase.None;
      root_ = null;
    }

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Equals(DiscoverHierarchyRequest other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (PageSize != other.PageSize) return false;
      if (PageToken != other.PageToken) return false;
      if (RootGobjectId != other.RootGobjectId) return false;
      if (RootTagName != other.RootTagName) return false;
      if (RootContainedPath != other.RootContainedPath) return false;
      if (MaxDepth != other.MaxDepth) return false;
      if(!categoryIds_.Equals(other.categoryIds_)) return false;
      if(!templateChainContains_.Equals(other.templateChainContains_)) return false;
      if (TagNameGlob != other.TagNameGlob) return false;
      if (IncludeAttributes != other.IncludeAttributes) return false;
      if (AlarmBearingOnly != other.AlarmBearingOnly) return false;
      if (HistorizedOnly != other.HistorizedOnly) return false;
      if (RootCase != other.RootCase) 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 (PageSize != 0) hash ^= PageSize.GetHashCode();
      if (PageToken.Length != 0) hash ^= PageToken.GetHashCode();
      if (HasRootGobjectId) hash ^= RootGobjectId.GetHashCode();
      if (HasRootTagName) hash ^= RootTagName.GetHashCode();
      if (HasRootContainedPath) hash ^= RootContainedPath.GetHashCode();
      if (maxDepth_ != null) hash ^= MaxDepth.GetHashCode();
      hash ^= categoryIds_.GetHashCode();
      hash ^= templateChainContains_.GetHashCode();
      if (TagNameGlob.Length != 0) hash ^= TagNameGlob.GetHashCode();
      if (HasIncludeAttributes) hash ^= IncludeAttributes.GetHashCode();
      if (AlarmBearingOnly != false) hash ^= AlarmBearingOnly.GetHashCode();
      if (HistorizedOnly != false) hash ^= HistorizedOnly.GetHashCode();
      hash ^= (int) rootCase_;
      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 (PageSize != 0) {
        output.WriteRawTag(8);
        output.WriteInt32(PageSize);
      }
      if (PageToken.Length != 0) {
        output.WriteRawTag(18);
        output.WriteString(PageToken);
      }
      if (HasRootGobjectId) {
        output.WriteRawTag(24);
        output.WriteInt32(RootGobjectId);
      }
      if (HasRootTagName) {
        output.WriteRawTag(34);
        output.WriteString(RootTagName);
      }
      if (HasRootContainedPath) {
        output.WriteRawTag(42);
        output.WriteString(RootContainedPath);
      }
      if (maxDepth_ != null) {
        _single_maxDepth_codec.WriteTagAndValue(output, MaxDepth);
      }
      categoryIds_.WriteTo(output, _repeated_categoryIds_codec);
      templateChainContains_.WriteTo(output, _repeated_templateChainContains_codec);
      if (TagNameGlob.Length != 0) {
        output.WriteRawTag(74);
        output.WriteString(TagNameGlob);
      }
      if (HasIncludeAttributes) {
        output.WriteRawTag(80);
        output.WriteBool(IncludeAttributes);
      }
      if (AlarmBearingOnly != false) {
        output.WriteRawTag(88);
        output.WriteBool(AlarmBearingOnly);
      }
      if (HistorizedOnly != false) {
        output.WriteRawTag(96);
        output.WriteBool(HistorizedOnly);
      }
      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 (PageSize != 0) {
        output.WriteRawTag(8);
        output.WriteInt32(PageSize);
      }
      if (PageToken.Length != 0) {
        output.WriteRawTag(18);
        output.WriteString(PageToken);
      }
      if (HasRootGobjectId) {
        output.WriteRawTag(24);
        output.WriteInt32(RootGobjectId);
      }
      if (HasRootTagName) {
        output.WriteRawTag(34);
        output.WriteString(RootTagName);
      }
      if (HasRootContainedPath) {
        output.WriteRawTag(42);
        output.WriteString(RootContainedPath);
      }
      if (maxDepth_ != null) {
        _single_maxDepth_codec.WriteTagAndValue(ref output, MaxDepth);
      }
      categoryIds_.WriteTo(ref output, _repeated_categoryIds_codec);
      templateChainContains_.WriteTo(ref output, _repeated_templateChainContains_codec);
      if (TagNameGlob.Length != 0) {
        output.WriteRawTag(74);
        output.WriteString(TagNameGlob);
      }
      if (HasIncludeAttributes) {
        output.WriteRawTag(80);
        output.WriteBool(IncludeAttributes);
      }
      if (AlarmBearingOnly != false) {
        output.WriteRawTag(88);
        output.WriteBool(AlarmBearingOnly);
      }
      if (HistorizedOnly != false) {
        output.WriteRawTag(96);
        output.WriteBool(HistorizedOnly);
      }
      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 (PageSize != 0) {
        size += 1 + pb::CodedOutputStream.ComputeInt32Size(PageSize);
      }
      if (PageToken.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(PageToken);
      }
      if (HasRootGobjectId) {
        size += 1 + pb::CodedOutputStream.ComputeInt32Size(RootGobjectId);
      }
      if (HasRootTagName) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(RootTagName);
      }
      if (HasRootContainedPath) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(RootContainedPath);
      }
      if (maxDepth_ != null) {
        size += _single_maxDepth_codec.CalculateSizeWithTag(MaxDepth);
      }
      size += categoryIds_.CalculateSize(_repeated_categoryIds_codec);
      size += templateChainContains_.CalculateSize(_repeated_templateChainContains_codec);
      if (TagNameGlob.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(TagNameGlob);
      }
      if (HasIncludeAttributes) {
        size += 1 + 1;
      }
      if (AlarmBearingOnly != false) {
        size += 1 + 1;
      }
      if (HistorizedOnly != false) {
        size += 1 + 1;
      }
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(DiscoverHierarchyRequest other) {
      if (other == null) {
        return;
      }
      if (other.PageSize != 0) {
        PageSize = other.PageSize;
      }
      if (other.PageToken.Length != 0) {
        PageToken = other.PageToken;
      }
      if (other.maxDepth_ != null) {
        if (maxDepth_ == null || other.MaxDepth != 0) {
          MaxDepth = other.MaxDepth;
        }
      }
      categoryIds_.Add(other.categoryIds_);
      templateChainContains_.Add(other.templateChainContains_);
      if (other.TagNameGlob.Length != 0) {
        TagNameGlob = other.TagNameGlob;
      }
      if (other.HasIncludeAttributes) {
        IncludeAttributes = other.IncludeAttributes;
      }
      if (other.AlarmBearingOnly != false) {
        AlarmBearingOnly = other.AlarmBearingOnly;
      }
      if (other.HistorizedOnly != false) {
        HistorizedOnly = other.HistorizedOnly;
      }
      switch (other.RootCase) {
        case RootOneofCase.RootGobjectId:
          RootGobjectId = other.RootGobjectId;
          break;
        case RootOneofCase.RootTagName:
          RootTagName = other.RootTagName;
          break;
        case RootOneofCase.RootContainedPath:
          RootContainedPath = other.RootContainedPath;
          break;
      }

      _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) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
          case 8: {
            PageSize = input.ReadInt32();
            break;
          }
          case 18: {
            PageToken = input.ReadString();
            break;
          }
          case 24: {
            RootGobjectId = input.ReadInt32();
            break;
          }
          case 34: {
            RootTagName = input.ReadString();
            break;
          }
          case 42: {
            RootContainedPath = input.ReadString();
            break;
          }
          case 50: {
            int? value = _single_maxDepth_codec.Read(input);
            if (maxDepth_ == null || value != 0) {
              MaxDepth = value;
            }
            break;
          }
          case 58:
          case 56: {
            categoryIds_.AddEntriesFrom(input, _repeated_categoryIds_codec);
            break;
          }
          case 66: {
            templateChainContains_.AddEntriesFrom(input, _repeated_templateChainContains_codec);
            break;
          }
          case 74: {
            TagNameGlob = input.ReadString();
            break;
          }
          case 80: {
            IncludeAttributes = input.ReadBool();
            break;
          }
          case 88: {
            AlarmBearingOnly = input.ReadBool();
            break;
          }
          case 96: {
            HistorizedOnly = input.ReadBool();
            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) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
            break;
          case 8: {
            PageSize = input.ReadInt32();
            break;
          }
          case 18: {
            PageToken = input.ReadString();
            break;
          }
          case 24: {
            RootGobjectId = input.ReadInt32();
            break;
          }
          case 34: {
            RootTagName = input.ReadString();
            break;
          }
          case 42: {
            RootContainedPath = input.ReadString();
            break;
          }
          case 50: {
            int? value = _single_maxDepth_codec.Read(ref input);
            if (maxDepth_ == null || value != 0) {
              MaxDepth = value;
            }
            break;
          }
          case 58:
          case 56: {
            categoryIds_.AddEntriesFrom(ref input, _repeated_categoryIds_codec);
            break;
          }
          case 66: {
            templateChainContains_.AddEntriesFrom(ref input, _repeated_templateChainContains_codec);
            break;
          }
          case 74: {
            TagNameGlob = input.ReadString();
            break;
          }
          case 80: {
            IncludeAttributes = input.ReadBool();
            break;
          }
          case 88: {
            AlarmBearingOnly = input.ReadBool();
            break;
          }
          case 96: {
            HistorizedOnly = input.ReadBool();
            break;
          }
        }
      }
    }
    #endif

  }

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::ZB.MOM.WW.MxGateway.Contracts.Proto.Galaxy.GalaxyRepositoryReflection.Descriptor.MessageTypes[5]; }
    }

    [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 DiscoverHierarchyReply() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public DiscoverHierarchyReply(DiscoverHierarchyReply other) : this() {
      objects_ = other.objects_.Clone();
      nextPageToken_ = other.nextPageToken_;
      totalObjectCount_ = other.totalObjectCount_;
      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

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

    /// <summary>Field number for the "objects" field.</summary>
    public const int ObjectsFieldNumber = 1;
    private static readonly pb::FieldCodec<global::ZB.MOM.WW.MxGateway.Contracts.Proto.Galaxy.GalaxyObject> _repeated_objects_codec
        = pb::FieldCodec.ForMessage(10, global::ZB.MOM.WW.MxGateway.Contracts.Proto.Galaxy.GalaxyObject.Parser);
    private readonly pbc::RepeatedField<global::ZB.MOM.WW.MxGateway.Contracts.Proto.Galaxy.GalaxyObject> objects_ = new pbc::RepeatedField<global::ZB.MOM.WW.MxGateway.Contracts.Proto.Galaxy.GalaxyObject>();
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public pbc::RepeatedField<global::ZB.MOM.WW.MxGateway.Contracts.Proto.Galaxy.GalaxyObject> Objects {
      get { return objects_; }
    }

    /// <summary>Field number for the "next_page_token" field.</summary>
    public const int NextPageTokenFieldNumber = 2;
    private string nextPageToken_ = "";
    /// <summary>
    /// Non-empty when another page is available.
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public string NextPageToken {
      get { return nextPageToken_; }
      set {
        nextPageToken_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    /// <summary>Field number for the "total_object_count" field.</summary>
    public const int TotalObjectCountFieldNumber = 3;
    private int totalObjectCount_;
    /// <summary>
    /// Total number of objects in the cached hierarchy at the time of the call.
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public int TotalObjectCount {
      get { return totalObjectCount_; }
      set {
        totalObjectCount_ = value;
      }
    }

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Equals(DiscoverHierarchyReply other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if(!objects_.Equals(other.objects_)) return false;
      if (NextPageToken != other.NextPageToken) return false;
      if (TotalObjectCount != other.TotalObjectCount) 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;
      hash ^= objects_.GetHashCode();
      if (NextPageToken.Length != 0) hash ^= NextPageToken.GetHashCode();
      if (TotalObjectCount != 0) hash ^= TotalObjectCount.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
      objects_.WriteTo(output, _repeated_objects_codec);
      if (NextPageToken.Length != 0) {
        output.WriteRawTag(18);
        output.WriteString(NextPageToken);
      }
      if (TotalObjectCount != 0) {
        output.WriteRawTag(24);
        output.WriteInt32(TotalObjectCount);
      }
      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) {
      objects_.WriteTo(ref output, _repeated_objects_codec);
      if (NextPageToken.Length != 0) {
        output.WriteRawTag(18);
        output.WriteString(NextPageToken);
      }
      if (TotalObjectCount != 0) {
        output.WriteRawTag(24);
        output.WriteInt32(TotalObjectCount);
      }
      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;
      size += objects_.CalculateSize(_repeated_objects_codec);
      if (NextPageToken.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(NextPageToken);
      }
      if (TotalObjectCount != 0) {
        size += 1 + pb::CodedOutputStream.ComputeInt32Size(TotalObjectCount);
      }
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(DiscoverHierarchyReply other) {
      if (other == null) {
        return;
      }
      objects_.Add(other.objects_);
      if (other.NextPageToken.Length != 0) {
        NextPageToken = other.NextPageToken;
      }
      if (other.TotalObjectCount != 0) {
        TotalObjectCount = other.TotalObjectCount;
      }
      _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) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
          case 10: {
            objects_.AddEntriesFrom(input, _repeated_objects_codec);
            break;
          }
          case 18: {
            NextPageToken = input.ReadString();
            break;
          }
          case 24: {
            TotalObjectCount = input.ReadInt32();
            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) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
            break;
          case 10: {
            objects_.AddEntriesFrom(ref input, _repeated_objects_codec);
            break;
          }
          case 18: {
            NextPageToken = input.ReadString();
            break;
          }
          case 24: {
            TotalObjectCount = input.ReadInt32();
            break;
          }
        }
      }
    }
    #endif

  }

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::ZB.MOM.WW.MxGateway.Contracts.Proto.Galaxy.GalaxyRepositoryReflection.Descriptor.MessageTypes[6]; }
    }

    [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 WatchDeployEventsRequest() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public WatchDeployEventsRequest(WatchDeployEventsRequest other) : this() {
      lastSeenDeployTime_ = other.lastSeenDeployTime_ != null ? other.lastSeenDeployTime_.Clone() : null;
      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

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

    /// <summary>Field number for the "last_seen_deploy_time" field.</summary>
    public const int LastSeenDeployTimeFieldNumber = 1;
    private global::Google.Protobuf.WellKnownTypes.Timestamp lastSeenDeployTime_;
    /// <summary>
    /// Optional. When set, the bootstrap event is suppressed if the cached deploy
    /// time matches this value. Future events are still emitted normally.
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::Google.Protobuf.WellKnownTypes.Timestamp LastSeenDeployTime {
      get { return lastSeenDeployTime_; }
      set {
        lastSeenDeployTime_ = value;
      }
    }

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Equals(WatchDeployEventsRequest other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (!object.Equals(LastSeenDeployTime, other.LastSeenDeployTime)) 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 (lastSeenDeployTime_ != null) hash ^= LastSeenDeployTime.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 (lastSeenDeployTime_ != null) {
        output.WriteRawTag(10);
        output.WriteMessage(LastSeenDeployTime);
      }
      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 (lastSeenDeployTime_ != null) {
        output.WriteRawTag(10);
        output.WriteMessage(LastSeenDeployTime);
      }
      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 (lastSeenDeployTime_ != null) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(LastSeenDeployTime);
      }
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(WatchDeployEventsRequest other) {
      if (other == null) {
        return;
      }
      if (other.lastSeenDeployTime_ != null) {
        if (lastSeenDeployTime_ == null) {
          LastSeenDeployTime = new global::Google.Protobuf.WellKnownTypes.Timestamp();
        }
        LastSeenDeployTime.MergeFrom(other.LastSeenDeployTime);
      }
      _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) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
          case 10: {
            if (lastSeenDeployTime_ == null) {
              LastSeenDeployTime = new global::Google.Protobuf.WellKnownTypes.Timestamp();
            }
            input.ReadMessage(LastSeenDeployTime);
            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) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
            break;
          case 10: {
            if (lastSeenDeployTime_ == null) {
              LastSeenDeployTime = new global::Google.Protobuf.WellKnownTypes.Timestamp();
            }
            input.ReadMessage(LastSeenDeployTime);
            break;
          }
        }
      }
    }
    #endif

  }

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::ZB.MOM.WW.MxGateway.Contracts.Proto.Galaxy.GalaxyRepositoryReflection.Descriptor.MessageTypes[7]; }
    }

    [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 DeployEvent() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public DeployEvent(DeployEvent other) : this() {
      sequence_ = other.sequence_;
      observedAt_ = other.observedAt_ != null ? other.observedAt_.Clone() : null;
      timeOfLastDeploy_ = other.timeOfLastDeploy_ != null ? other.timeOfLastDeploy_.Clone() : null;
      timeOfLastDeployPresent_ = other.timeOfLastDeployPresent_;
      objectCount_ = other.objectCount_;
      attributeCount_ = other.attributeCount_;
      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

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

    /// <summary>Field number for the "sequence" field.</summary>
    public const int SequenceFieldNumber = 1;
    private ulong sequence_;
    /// <summary>
    /// Monotonically increasing per server start. Gaps indicate dropped events.
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public ulong Sequence {
      get { return sequence_; }
      set {
        sequence_ = value;
      }
    }

    /// <summary>Field number for the "observed_at" field.</summary>
    public const int ObservedAtFieldNumber = 2;
    private global::Google.Protobuf.WellKnownTypes.Timestamp observedAt_;
    /// <summary>
    /// Server wall-clock when the cache observed the deploy.
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::Google.Protobuf.WellKnownTypes.Timestamp ObservedAt {
      get { return observedAt_; }
      set {
        observedAt_ = value;
      }
    }

    /// <summary>Field number for the "time_of_last_deploy" field.</summary>
    public const int TimeOfLastDeployFieldNumber = 3;
    private global::Google.Protobuf.WellKnownTypes.Timestamp timeOfLastDeploy_;
    /// <summary>
    /// Galaxy.time_of_last_deploy. Absent only when the Galaxy table reports null.
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::Google.Protobuf.WellKnownTypes.Timestamp TimeOfLastDeploy {
      get { return timeOfLastDeploy_; }
      set {
        timeOfLastDeploy_ = value;
      }
    }

    /// <summary>Field number for the "time_of_last_deploy_present" field.</summary>
    public const int TimeOfLastDeployPresentFieldNumber = 4;
    private bool timeOfLastDeployPresent_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool TimeOfLastDeployPresent {
      get { return timeOfLastDeployPresent_; }
      set {
        timeOfLastDeployPresent_ = value;
      }
    }

    /// <summary>Field number for the "object_count" field.</summary>
    public const int ObjectCountFieldNumber = 5;
    private int objectCount_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public int ObjectCount {
      get { return objectCount_; }
      set {
        objectCount_ = value;
      }
    }

    /// <summary>Field number for the "attribute_count" field.</summary>
    public const int AttributeCountFieldNumber = 6;
    private int attributeCount_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public int AttributeCount {
      get { return attributeCount_; }
      set {
        attributeCount_ = value;
      }
    }

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Equals(DeployEvent other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (Sequence != other.Sequence) return false;
      if (!object.Equals(ObservedAt, other.ObservedAt)) return false;
      if (!object.Equals(TimeOfLastDeploy, other.TimeOfLastDeploy)) return false;
      if (TimeOfLastDeployPresent != other.TimeOfLastDeployPresent) return false;
      if (ObjectCount != other.ObjectCount) return false;
      if (AttributeCount != other.AttributeCount) 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 (Sequence != 0UL) hash ^= Sequence.GetHashCode();
      if (observedAt_ != null) hash ^= ObservedAt.GetHashCode();
      if (timeOfLastDeploy_ != null) hash ^= TimeOfLastDeploy.GetHashCode();
      if (TimeOfLastDeployPresent != false) hash ^= TimeOfLastDeployPresent.GetHashCode();
      if (ObjectCount != 0) hash ^= ObjectCount.GetHashCode();
      if (AttributeCount != 0) hash ^= AttributeCount.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 (Sequence != 0UL) {
        output.WriteRawTag(8);
        output.WriteUInt64(Sequence);
      }
      if (observedAt_ != null) {
        output.WriteRawTag(18);
        output.WriteMessage(ObservedAt);
      }
      if (timeOfLastDeploy_ != null) {
        output.WriteRawTag(26);
        output.WriteMessage(TimeOfLastDeploy);
      }
      if (TimeOfLastDeployPresent != false) {
        output.WriteRawTag(32);
        output.WriteBool(TimeOfLastDeployPresent);
      }
      if (ObjectCount != 0) {
        output.WriteRawTag(40);
        output.WriteInt32(ObjectCount);
      }
      if (AttributeCount != 0) {
        output.WriteRawTag(48);
        output.WriteInt32(AttributeCount);
      }
      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 (Sequence != 0UL) {
        output.WriteRawTag(8);
        output.WriteUInt64(Sequence);
      }
      if (observedAt_ != null) {
        output.WriteRawTag(18);
        output.WriteMessage(ObservedAt);
      }
      if (timeOfLastDeploy_ != null) {
        output.WriteRawTag(26);
        output.WriteMessage(TimeOfLastDeploy);
      }
      if (TimeOfLastDeployPresent != false) {
        output.WriteRawTag(32);
        output.WriteBool(TimeOfLastDeployPresent);
      }
      if (ObjectCount != 0) {
        output.WriteRawTag(40);
        output.WriteInt32(ObjectCount);
      }
      if (AttributeCount != 0) {
        output.WriteRawTag(48);
        output.WriteInt32(AttributeCount);
      }
      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 (Sequence != 0UL) {
        size += 1 + pb::CodedOutputStream.ComputeUInt64Size(Sequence);
      }
      if (observedAt_ != null) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(ObservedAt);
      }
      if (timeOfLastDeploy_ != null) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(TimeOfLastDeploy);
      }
      if (TimeOfLastDeployPresent != false) {
        size += 1 + 1;
      }
      if (ObjectCount != 0) {
        size += 1 + pb::CodedOutputStream.ComputeInt32Size(ObjectCount);
      }
      if (AttributeCount != 0) {
        size += 1 + pb::CodedOutputStream.ComputeInt32Size(AttributeCount);
      }
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(DeployEvent other) {
      if (other == null) {
        return;
      }
      if (other.Sequence != 0UL) {
        Sequence = other.Sequence;
      }
      if (other.observedAt_ != null) {
        if (observedAt_ == null) {
          ObservedAt = new global::Google.Protobuf.WellKnownTypes.Timestamp();
        }
        ObservedAt.MergeFrom(other.ObservedAt);
      }
      if (other.timeOfLastDeploy_ != null) {
        if (timeOfLastDeploy_ == null) {
          TimeOfLastDeploy = new global::Google.Protobuf.WellKnownTypes.Timestamp();
        }
        TimeOfLastDeploy.MergeFrom(other.TimeOfLastDeploy);
      }
      if (other.TimeOfLastDeployPresent != false) {
        TimeOfLastDeployPresent = other.TimeOfLastDeployPresent;
      }
      if (other.ObjectCount != 0) {
        ObjectCount = other.ObjectCount;
      }
      if (other.AttributeCount != 0) {
        AttributeCount = other.AttributeCount;
      }
      _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) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
          case 8: {
            Sequence = input.ReadUInt64();
            break;
          }
          case 18: {
            if (observedAt_ == null) {
              ObservedAt = new global::Google.Protobuf.WellKnownTypes.Timestamp();
            }
            input.ReadMessage(ObservedAt);
            break;
          }
          case 26: {
            if (timeOfLastDeploy_ == null) {
              TimeOfLastDeploy = new global::Google.Protobuf.WellKnownTypes.Timestamp();
            }
            input.ReadMessage(TimeOfLastDeploy);
            break;
          }
          case 32: {
            TimeOfLastDeployPresent = input.ReadBool();
            break;
          }
          case 40: {
            ObjectCount = input.ReadInt32();
            break;
          }
          case 48: {
            AttributeCount = input.ReadInt32();
            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) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
            break;
          case 8: {
            Sequence = input.ReadUInt64();
            break;
          }
          case 18: {
            if (observedAt_ == null) {
              ObservedAt = new global::Google.Protobuf.WellKnownTypes.Timestamp();
            }
            input.ReadMessage(ObservedAt);
            break;
          }
          case 26: {
            if (timeOfLastDeploy_ == null) {
              TimeOfLastDeploy = new global::Google.Protobuf.WellKnownTypes.Timestamp();
            }
            input.ReadMessage(TimeOfLastDeploy);
            break;
          }
          case 32: {
            TimeOfLastDeployPresent = input.ReadBool();
            break;
          }
          case 40: {
            ObjectCount = input.ReadInt32();
            break;
          }
          case 48: {
            AttributeCount = input.ReadInt32();
            break;
          }
        }
      }
    }
    #endif

  }

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::ZB.MOM.WW.MxGateway.Contracts.Proto.Galaxy.GalaxyRepositoryReflection.Descriptor.MessageTypes[8]; }
    }

    [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 GalaxyObject() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public GalaxyObject(GalaxyObject other) : this() {
      gobjectId_ = other.gobjectId_;
      tagName_ = other.tagName_;
      containedName_ = other.containedName_;
      browseName_ = other.browseName_;
      parentGobjectId_ = other.parentGobjectId_;
      isArea_ = other.isArea_;
      categoryId_ = other.categoryId_;
      hostedByGobjectId_ = other.hostedByGobjectId_;
      templateChain_ = other.templateChain_.Clone();
      attributes_ = other.attributes_.Clone();
      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

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

    /// <summary>Field number for the "gobject_id" field.</summary>
    public const int GobjectIdFieldNumber = 1;
    private int gobjectId_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public int GobjectId {
      get { return gobjectId_; }
      set {
        gobjectId_ = value;
      }
    }

    /// <summary>Field number for the "tag_name" field.</summary>
    public const int TagNameFieldNumber = 2;
    private string tagName_ = "";
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public string TagName {
      get { return tagName_; }
      set {
        tagName_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    /// <summary>Field number for the "contained_name" field.</summary>
    public const int ContainedNameFieldNumber = 3;
    private string containedName_ = "";
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public string ContainedName {
      get { return containedName_; }
      set {
        containedName_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    /// <summary>Field number for the "browse_name" field.</summary>
    public const int BrowseNameFieldNumber = 4;
    private string browseName_ = "";
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public string BrowseName {
      get { return browseName_; }
      set {
        browseName_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    /// <summary>Field number for the "parent_gobject_id" field.</summary>
    public const int ParentGobjectIdFieldNumber = 5;
    private int parentGobjectId_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public int ParentGobjectId {
      get { return parentGobjectId_; }
      set {
        parentGobjectId_ = value;
      }
    }

    /// <summary>Field number for the "is_area" field.</summary>
    public const int IsAreaFieldNumber = 6;
    private bool isArea_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool IsArea {
      get { return isArea_; }
      set {
        isArea_ = value;
      }
    }

    /// <summary>Field number for the "category_id" field.</summary>
    public const int CategoryIdFieldNumber = 7;
    private int categoryId_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public int CategoryId {
      get { return categoryId_; }
      set {
        categoryId_ = value;
      }
    }

    /// <summary>Field number for the "hosted_by_gobject_id" field.</summary>
    public const int HostedByGobjectIdFieldNumber = 8;
    private int hostedByGobjectId_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public int HostedByGobjectId {
      get { return hostedByGobjectId_; }
      set {
        hostedByGobjectId_ = value;
      }
    }

    /// <summary>Field number for the "template_chain" field.</summary>
    public const int TemplateChainFieldNumber = 9;
    private static readonly pb::FieldCodec<string> _repeated_templateChain_codec
        = pb::FieldCodec.ForString(74);
    private readonly pbc::RepeatedField<string> templateChain_ = new pbc::RepeatedField<string>();
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public pbc::RepeatedField<string> TemplateChain {
      get { return templateChain_; }
    }

    /// <summary>Field number for the "attributes" field.</summary>
    public const int AttributesFieldNumber = 10;
    private static readonly pb::FieldCodec<global::ZB.MOM.WW.MxGateway.Contracts.Proto.Galaxy.GalaxyAttribute> _repeated_attributes_codec
        = pb::FieldCodec.ForMessage(82, global::ZB.MOM.WW.MxGateway.Contracts.Proto.Galaxy.GalaxyAttribute.Parser);
    private readonly pbc::RepeatedField<global::ZB.MOM.WW.MxGateway.Contracts.Proto.Galaxy.GalaxyAttribute> attributes_ = new pbc::RepeatedField<global::ZB.MOM.WW.MxGateway.Contracts.Proto.Galaxy.GalaxyAttribute>();
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public pbc::RepeatedField<global::ZB.MOM.WW.MxGateway.Contracts.Proto.Galaxy.GalaxyAttribute> Attributes {
      get { return attributes_; }
    }

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Equals(GalaxyObject other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (GobjectId != other.GobjectId) return false;
      if (TagName != other.TagName) return false;
      if (ContainedName != other.ContainedName) return false;
      if (BrowseName != other.BrowseName) return false;
      if (ParentGobjectId != other.ParentGobjectId) return false;
      if (IsArea != other.IsArea) return false;
      if (CategoryId != other.CategoryId) return false;
      if (HostedByGobjectId != other.HostedByGobjectId) return false;
      if(!templateChain_.Equals(other.templateChain_)) return false;
      if(!attributes_.Equals(other.attributes_)) 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 (GobjectId != 0) hash ^= GobjectId.GetHashCode();
      if (TagName.Length != 0) hash ^= TagName.GetHashCode();
      if (ContainedName.Length != 0) hash ^= ContainedName.GetHashCode();
      if (BrowseName.Length != 0) hash ^= BrowseName.GetHashCode();
      if (ParentGobjectId != 0) hash ^= ParentGobjectId.GetHashCode();
      if (IsArea != false) hash ^= IsArea.GetHashCode();
      if (CategoryId != 0) hash ^= CategoryId.GetHashCode();
      if (HostedByGobjectId != 0) hash ^= HostedByGobjectId.GetHashCode();
      hash ^= templateChain_.GetHashCode();
      hash ^= attributes_.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 (GobjectId != 0) {
        output.WriteRawTag(8);
        output.WriteInt32(GobjectId);
      }
      if (TagName.Length != 0) {
        output.WriteRawTag(18);
        output.WriteString(TagName);
      }
      if (ContainedName.Length != 0) {
        output.WriteRawTag(26);
        output.WriteString(ContainedName);
      }
      if (BrowseName.Length != 0) {
        output.WriteRawTag(34);
        output.WriteString(BrowseName);
      }
      if (ParentGobjectId != 0) {
        output.WriteRawTag(40);
        output.WriteInt32(ParentGobjectId);
      }
      if (IsArea != false) {
        output.WriteRawTag(48);
        output.WriteBool(IsArea);
      }
      if (CategoryId != 0) {
        output.WriteRawTag(56);
        output.WriteInt32(CategoryId);
      }
      if (HostedByGobjectId != 0) {
        output.WriteRawTag(64);
        output.WriteInt32(HostedByGobjectId);
      }
      templateChain_.WriteTo(output, _repeated_templateChain_codec);
      attributes_.WriteTo(output, _repeated_attributes_codec);
      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 (GobjectId != 0) {
        output.WriteRawTag(8);
        output.WriteInt32(GobjectId);
      }
      if (TagName.Length != 0) {
        output.WriteRawTag(18);
        output.WriteString(TagName);
      }
      if (ContainedName.Length != 0) {
        output.WriteRawTag(26);
        output.WriteString(ContainedName);
      }
      if (BrowseName.Length != 0) {
        output.WriteRawTag(34);
        output.WriteString(BrowseName);
      }
      if (ParentGobjectId != 0) {
        output.WriteRawTag(40);
        output.WriteInt32(ParentGobjectId);
      }
      if (IsArea != false) {
        output.WriteRawTag(48);
        output.WriteBool(IsArea);
      }
      if (CategoryId != 0) {
        output.WriteRawTag(56);
        output.WriteInt32(CategoryId);
      }
      if (HostedByGobjectId != 0) {
        output.WriteRawTag(64);
        output.WriteInt32(HostedByGobjectId);
      }
      templateChain_.WriteTo(ref output, _repeated_templateChain_codec);
      attributes_.WriteTo(ref output, _repeated_attributes_codec);
      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 (GobjectId != 0) {
        size += 1 + pb::CodedOutputStream.ComputeInt32Size(GobjectId);
      }
      if (TagName.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(TagName);
      }
      if (ContainedName.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(ContainedName);
      }
      if (BrowseName.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(BrowseName);
      }
      if (ParentGobjectId != 0) {
        size += 1 + pb::CodedOutputStream.ComputeInt32Size(ParentGobjectId);
      }
      if (IsArea != false) {
        size += 1 + 1;
      }
      if (CategoryId != 0) {
        size += 1 + pb::CodedOutputStream.ComputeInt32Size(CategoryId);
      }
      if (HostedByGobjectId != 0) {
        size += 1 + pb::CodedOutputStream.ComputeInt32Size(HostedByGobjectId);
      }
      size += templateChain_.CalculateSize(_repeated_templateChain_codec);
      size += attributes_.CalculateSize(_repeated_attributes_codec);
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(GalaxyObject other) {
      if (other == null) {
        return;
      }
      if (other.GobjectId != 0) {
        GobjectId = other.GobjectId;
      }
      if (other.TagName.Length != 0) {
        TagName = other.TagName;
      }
      if (other.ContainedName.Length != 0) {
        ContainedName = other.ContainedName;
      }
      if (other.BrowseName.Length != 0) {
        BrowseName = other.BrowseName;
      }
      if (other.ParentGobjectId != 0) {
        ParentGobjectId = other.ParentGobjectId;
      }
      if (other.IsArea != false) {
        IsArea = other.IsArea;
      }
      if (other.CategoryId != 0) {
        CategoryId = other.CategoryId;
      }
      if (other.HostedByGobjectId != 0) {
        HostedByGobjectId = other.HostedByGobjectId;
      }
      templateChain_.Add(other.templateChain_);
      attributes_.Add(other.attributes_);
      _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) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
          case 8: {
            GobjectId = input.ReadInt32();
            break;
          }
          case 18: {
            TagName = input.ReadString();
            break;
          }
          case 26: {
            ContainedName = input.ReadString();
            break;
          }
          case 34: {
            BrowseName = input.ReadString();
            break;
          }
          case 40: {
            ParentGobjectId = input.ReadInt32();
            break;
          }
          case 48: {
            IsArea = input.ReadBool();
            break;
          }
          case 56: {
            CategoryId = input.ReadInt32();
            break;
          }
          case 64: {
            HostedByGobjectId = input.ReadInt32();
            break;
          }
          case 74: {
            templateChain_.AddEntriesFrom(input, _repeated_templateChain_codec);
            break;
          }
          case 82: {
            attributes_.AddEntriesFrom(input, _repeated_attributes_codec);
            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) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
            break;
          case 8: {
            GobjectId = input.ReadInt32();
            break;
          }
          case 18: {
            TagName = input.ReadString();
            break;
          }
          case 26: {
            ContainedName = input.ReadString();
            break;
          }
          case 34: {
            BrowseName = input.ReadString();
            break;
          }
          case 40: {
            ParentGobjectId = input.ReadInt32();
            break;
          }
          case 48: {
            IsArea = input.ReadBool();
            break;
          }
          case 56: {
            CategoryId = input.ReadInt32();
            break;
          }
          case 64: {
            HostedByGobjectId = input.ReadInt32();
            break;
          }
          case 74: {
            templateChain_.AddEntriesFrom(ref input, _repeated_templateChain_codec);
            break;
          }
          case 82: {
            attributes_.AddEntriesFrom(ref input, _repeated_attributes_codec);
            break;
          }
        }
      }
    }
    #endif

  }

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::ZB.MOM.WW.MxGateway.Contracts.Proto.Galaxy.GalaxyRepositoryReflection.Descriptor.MessageTypes[9]; }
    }

    [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 GalaxyAttribute() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public GalaxyAttribute(GalaxyAttribute other) : this() {
      attributeName_ = other.attributeName_;
      fullTagReference_ = other.fullTagReference_;
      mxDataType_ = other.mxDataType_;
      dataTypeName_ = other.dataTypeName_;
      isArray_ = other.isArray_;
      arrayDimension_ = other.arrayDimension_;
      arrayDimensionPresent_ = other.arrayDimensionPresent_;
      mxAttributeCategory_ = other.mxAttributeCategory_;
      securityClassification_ = other.securityClassification_;
      isHistorized_ = other.isHistorized_;
      isAlarm_ = other.isAlarm_;
      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

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

    /// <summary>Field number for the "attribute_name" field.</summary>
    public const int AttributeNameFieldNumber = 1;
    private string attributeName_ = "";
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public string AttributeName {
      get { return attributeName_; }
      set {
        attributeName_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    /// <summary>Field number for the "full_tag_reference" field.</summary>
    public const int FullTagReferenceFieldNumber = 2;
    private string fullTagReference_ = "";
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public string FullTagReference {
      get { return fullTagReference_; }
      set {
        fullTagReference_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    /// <summary>Field number for the "mx_data_type" field.</summary>
    public const int MxDataTypeFieldNumber = 3;
    private int mxDataType_;
    /// <summary>
    /// Raw Galaxy SQL `dbo.data_type` identifier, passed through unchanged.
    /// This is NOT a member of `mxaccess_gateway.v1.MxDataType` — Galaxy's
    /// type enumeration is distinct from MXAccess's wire data-type enum and
    /// the two must not be cast or compared. The GalaxyRepository service is
    /// metadata-only and deliberately does not share types with
    /// mxaccess_gateway.proto. See docs/GalaxyRepository.md.
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public int MxDataType {
      get { return mxDataType_; }
      set {
        mxDataType_ = value;
      }
    }

    /// <summary>Field number for the "data_type_name" field.</summary>
    public const int DataTypeNameFieldNumber = 4;
    private string dataTypeName_ = "";
    /// <summary>
    /// Human-readable name from Galaxy's `dbo.data_type` table (e.g. "Float",
    /// "Integer", "Boolean"). Free-form Galaxy text; not a stable enum.
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public string DataTypeName {
      get { return dataTypeName_; }
      set {
        dataTypeName_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    /// <summary>Field number for the "is_array" field.</summary>
    public const int IsArrayFieldNumber = 5;
    private bool isArray_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool IsArray {
      get { return isArray_; }
      set {
        isArray_ = value;
      }
    }

    /// <summary>Field number for the "array_dimension" field.</summary>
    public const int ArrayDimensionFieldNumber = 6;
    private int arrayDimension_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public int ArrayDimension {
      get { return arrayDimension_; }
      set {
        arrayDimension_ = value;
      }
    }

    /// <summary>Field number for the "array_dimension_present" field.</summary>
    public const int ArrayDimensionPresentFieldNumber = 7;
    private bool arrayDimensionPresent_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool ArrayDimensionPresent {
      get { return arrayDimensionPresent_; }
      set {
        arrayDimensionPresent_ = value;
      }
    }

    /// <summary>Field number for the "mx_attribute_category" field.</summary>
    public const int MxAttributeCategoryFieldNumber = 8;
    private int mxAttributeCategory_;
    /// <summary>
    /// Raw Galaxy SQL attribute-category identifier, passed through unchanged.
    /// Galaxy-specific; not mapped to any gateway enum. See
    /// docs/GalaxyRepository.md.
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public int MxAttributeCategory {
      get { return mxAttributeCategory_; }
      set {
        mxAttributeCategory_ = value;
      }
    }

    /// <summary>Field number for the "security_classification" field.</summary>
    public const int SecurityClassificationFieldNumber = 9;
    private int securityClassification_;
    /// <summary>
    /// Raw Galaxy SQL security-classification identifier, passed through
    /// unchanged. Galaxy-specific; not mapped to any gateway enum. See
    /// docs/GalaxyRepository.md.
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public int SecurityClassification {
      get { return securityClassification_; }
      set {
        securityClassification_ = value;
      }
    }

    /// <summary>Field number for the "is_historized" field.</summary>
    public const int IsHistorizedFieldNumber = 10;
    private bool isHistorized_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool IsHistorized {
      get { return isHistorized_; }
      set {
        isHistorized_ = value;
      }
    }

    /// <summary>Field number for the "is_alarm" field.</summary>
    public const int IsAlarmFieldNumber = 11;
    private bool isAlarm_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool IsAlarm {
      get { return isAlarm_; }
      set {
        isAlarm_ = value;
      }
    }

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Equals(GalaxyAttribute other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (AttributeName != other.AttributeName) return false;
      if (FullTagReference != other.FullTagReference) return false;
      if (MxDataType != other.MxDataType) return false;
      if (DataTypeName != other.DataTypeName) return false;
      if (IsArray != other.IsArray) return false;
      if (ArrayDimension != other.ArrayDimension) return false;
      if (ArrayDimensionPresent != other.ArrayDimensionPresent) return false;
      if (MxAttributeCategory != other.MxAttributeCategory) return false;
      if (SecurityClassification != other.SecurityClassification) return false;
      if (IsHistorized != other.IsHistorized) return false;
      if (IsAlarm != other.IsAlarm) 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 (AttributeName.Length != 0) hash ^= AttributeName.GetHashCode();
      if (FullTagReference.Length != 0) hash ^= FullTagReference.GetHashCode();
      if (MxDataType != 0) hash ^= MxDataType.GetHashCode();
      if (DataTypeName.Length != 0) hash ^= DataTypeName.GetHashCode();
      if (IsArray != false) hash ^= IsArray.GetHashCode();
      if (ArrayDimension != 0) hash ^= ArrayDimension.GetHashCode();
      if (ArrayDimensionPresent != false) hash ^= ArrayDimensionPresent.GetHashCode();
      if (MxAttributeCategory != 0) hash ^= MxAttributeCategory.GetHashCode();
      if (SecurityClassification != 0) hash ^= SecurityClassification.GetHashCode();
      if (IsHistorized != false) hash ^= IsHistorized.GetHashCode();
      if (IsAlarm != false) hash ^= IsAlarm.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 (AttributeName.Length != 0) {
        output.WriteRawTag(10);
        output.WriteString(AttributeName);
      }
      if (FullTagReference.Length != 0) {
        output.WriteRawTag(18);
        output.WriteString(FullTagReference);
      }
      if (MxDataType != 0) {
        output.WriteRawTag(24);
        output.WriteInt32(MxDataType);
      }
      if (DataTypeName.Length != 0) {
        output.WriteRawTag(34);
        output.WriteString(DataTypeName);
      }
      if (IsArray != false) {
        output.WriteRawTag(40);
        output.WriteBool(IsArray);
      }
      if (ArrayDimension != 0) {
        output.WriteRawTag(48);
        output.WriteInt32(ArrayDimension);
      }
      if (ArrayDimensionPresent != false) {
        output.WriteRawTag(56);
        output.WriteBool(ArrayDimensionPresent);
      }
      if (MxAttributeCategory != 0) {
        output.WriteRawTag(64);
        output.WriteInt32(MxAttributeCategory);
      }
      if (SecurityClassification != 0) {
        output.WriteRawTag(72);
        output.WriteInt32(SecurityClassification);
      }
      if (IsHistorized != false) {
        output.WriteRawTag(80);
        output.WriteBool(IsHistorized);
      }
      if (IsAlarm != false) {
        output.WriteRawTag(88);
        output.WriteBool(IsAlarm);
      }
      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 (AttributeName.Length != 0) {
        output.WriteRawTag(10);
        output.WriteString(AttributeName);
      }
      if (FullTagReference.Length != 0) {
        output.WriteRawTag(18);
        output.WriteString(FullTagReference);
      }
      if (MxDataType != 0) {
        output.WriteRawTag(24);
        output.WriteInt32(MxDataType);
      }
      if (DataTypeName.Length != 0) {
        output.WriteRawTag(34);
        output.WriteString(DataTypeName);
      }
      if (IsArray != false) {
        output.WriteRawTag(40);
        output.WriteBool(IsArray);
      }
      if (ArrayDimension != 0) {
        output.WriteRawTag(48);
        output.WriteInt32(ArrayDimension);
      }
      if (ArrayDimensionPresent != false) {
        output.WriteRawTag(56);
        output.WriteBool(ArrayDimensionPresent);
      }
      if (MxAttributeCategory != 0) {
        output.WriteRawTag(64);
        output.WriteInt32(MxAttributeCategory);
      }
      if (SecurityClassification != 0) {
        output.WriteRawTag(72);
        output.WriteInt32(SecurityClassification);
      }
      if (IsHistorized != false) {
        output.WriteRawTag(80);
        output.WriteBool(IsHistorized);
      }
      if (IsAlarm != false) {
        output.WriteRawTag(88);
        output.WriteBool(IsAlarm);
      }
      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 (AttributeName.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(AttributeName);
      }
      if (FullTagReference.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(FullTagReference);
      }
      if (MxDataType != 0) {
        size += 1 + pb::CodedOutputStream.ComputeInt32Size(MxDataType);
      }
      if (DataTypeName.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(DataTypeName);
      }
      if (IsArray != false) {
        size += 1 + 1;
      }
      if (ArrayDimension != 0) {
        size += 1 + pb::CodedOutputStream.ComputeInt32Size(ArrayDimension);
      }
      if (ArrayDimensionPresent != false) {
        size += 1 + 1;
      }
      if (MxAttributeCategory != 0) {
        size += 1 + pb::CodedOutputStream.ComputeInt32Size(MxAttributeCategory);
      }
      if (SecurityClassification != 0) {
        size += 1 + pb::CodedOutputStream.ComputeInt32Size(SecurityClassification);
      }
      if (IsHistorized != false) {
        size += 1 + 1;
      }
      if (IsAlarm != false) {
        size += 1 + 1;
      }
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(GalaxyAttribute other) {
      if (other == null) {
        return;
      }
      if (other.AttributeName.Length != 0) {
        AttributeName = other.AttributeName;
      }
      if (other.FullTagReference.Length != 0) {
        FullTagReference = other.FullTagReference;
      }
      if (other.MxDataType != 0) {
        MxDataType = other.MxDataType;
      }
      if (other.DataTypeName.Length != 0) {
        DataTypeName = other.DataTypeName;
      }
      if (other.IsArray != false) {
        IsArray = other.IsArray;
      }
      if (other.ArrayDimension != 0) {
        ArrayDimension = other.ArrayDimension;
      }
      if (other.ArrayDimensionPresent != false) {
        ArrayDimensionPresent = other.ArrayDimensionPresent;
      }
      if (other.MxAttributeCategory != 0) {
        MxAttributeCategory = other.MxAttributeCategory;
      }
      if (other.SecurityClassification != 0) {
        SecurityClassification = other.SecurityClassification;
      }
      if (other.IsHistorized != false) {
        IsHistorized = other.IsHistorized;
      }
      if (other.IsAlarm != false) {
        IsAlarm = other.IsAlarm;
      }
      _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) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
          case 10: {
            AttributeName = input.ReadString();
            break;
          }
          case 18: {
            FullTagReference = input.ReadString();
            break;
          }
          case 24: {
            MxDataType = input.ReadInt32();
            break;
          }
          case 34: {
            DataTypeName = input.ReadString();
            break;
          }
          case 40: {
            IsArray = input.ReadBool();
            break;
          }
          case 48: {
            ArrayDimension = input.ReadInt32();
            break;
          }
          case 56: {
            ArrayDimensionPresent = input.ReadBool();
            break;
          }
          case 64: {
            MxAttributeCategory = input.ReadInt32();
            break;
          }
          case 72: {
            SecurityClassification = input.ReadInt32();
            break;
          }
          case 80: {
            IsHistorized = input.ReadBool();
            break;
          }
          case 88: {
            IsAlarm = input.ReadBool();
            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) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
            break;
          case 10: {
            AttributeName = input.ReadString();
            break;
          }
          case 18: {
            FullTagReference = input.ReadString();
            break;
          }
          case 24: {
            MxDataType = input.ReadInt32();
            break;
          }
          case 34: {
            DataTypeName = input.ReadString();
            break;
          }
          case 40: {
            IsArray = input.ReadBool();
            break;
          }
          case 48: {
            ArrayDimension = input.ReadInt32();
            break;
          }
          case 56: {
            ArrayDimensionPresent = input.ReadBool();
            break;
          }
          case 64: {
            MxAttributeCategory = input.ReadInt32();
            break;
          }
          case 72: {
            SecurityClassification = input.ReadInt32();
            break;
          }
          case 80: {
            IsHistorized = input.ReadBool();
            break;
          }
          case 88: {
            IsAlarm = input.ReadBool();
            break;
          }
        }
      }
    }
    #endif

  }

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::ZB.MOM.WW.MxGateway.Contracts.Proto.Galaxy.GalaxyRepositoryReflection.Descriptor.MessageTypes[10]; }
    }

    [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 BrowseChildrenRequest() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public BrowseChildrenRequest(BrowseChildrenRequest other) : this() {
      _hasBits0 = other._hasBits0;
      pageSize_ = other.pageSize_;
      pageToken_ = other.pageToken_;
      categoryIds_ = other.categoryIds_.Clone();
      templateChainContains_ = other.templateChainContains_.Clone();
      tagNameGlob_ = other.tagNameGlob_;
      includeAttributes_ = other.includeAttributes_;
      alarmBearingOnly_ = other.alarmBearingOnly_;
      historizedOnly_ = other.historizedOnly_;
      switch (other.ParentCase) {
        case ParentOneofCase.ParentGobjectId:
          ParentGobjectId = other.ParentGobjectId;
          break;
        case ParentOneofCase.ParentTagName:
          ParentTagName = other.ParentTagName;
          break;
        case ParentOneofCase.ParentContainedPath:
          ParentContainedPath = other.ParentContainedPath;
          break;
      }

      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

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

    /// <summary>Field number for the "parent_gobject_id" field.</summary>
    public const int ParentGobjectIdFieldNumber = 1;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public int ParentGobjectId {
      get { return HasParentGobjectId ? (int) parent_ : 0; }
      set {
        parent_ = value;
        parentCase_ = ParentOneofCase.ParentGobjectId;
      }
    }
    /// <summary>Gets whether the "parent_gobject_id" field is set</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool HasParentGobjectId {
      get { return parentCase_ == ParentOneofCase.ParentGobjectId; }
    }
    /// <summary> Clears the value of the oneof if it's currently set to "parent_gobject_id" </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void ClearParentGobjectId() {
      if (HasParentGobjectId) {
        ClearParent();
      }
    }

    /// <summary>Field number for the "parent_tag_name" field.</summary>
    public const int ParentTagNameFieldNumber = 2;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public string ParentTagName {
      get { return HasParentTagName ? (string) parent_ : ""; }
      set {
        parent_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
        parentCase_ = ParentOneofCase.ParentTagName;
      }
    }
    /// <summary>Gets whether the "parent_tag_name" field is set</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool HasParentTagName {
      get { return parentCase_ == ParentOneofCase.ParentTagName; }
    }
    /// <summary> Clears the value of the oneof if it's currently set to "parent_tag_name" </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void ClearParentTagName() {
      if (HasParentTagName) {
        ClearParent();
      }
    }

    /// <summary>Field number for the "parent_contained_path" field.</summary>
    public const int ParentContainedPathFieldNumber = 3;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public string ParentContainedPath {
      get { return HasParentContainedPath ? (string) parent_ : ""; }
      set {
        parent_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
        parentCase_ = ParentOneofCase.ParentContainedPath;
      }
    }
    /// <summary>Gets whether the "parent_contained_path" field is set</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool HasParentContainedPath {
      get { return parentCase_ == ParentOneofCase.ParentContainedPath; }
    }
    /// <summary> Clears the value of the oneof if it's currently set to "parent_contained_path" </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void ClearParentContainedPath() {
      if (HasParentContainedPath) {
        ClearParent();
      }
    }

    /// <summary>Field number for the "page_size" field.</summary>
    public const int PageSizeFieldNumber = 4;
    private int pageSize_;
    /// <summary>
    /// Maximum number of direct children to return. Server default 500; cap 5000.
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public int PageSize {
      get { return pageSize_; }
      set {
        pageSize_ = value;
      }
    }

    /// <summary>Field number for the "page_token" field.</summary>
    public const int PageTokenFieldNumber = 5;
    private string pageToken_ = "";
    /// <summary>
    /// Opaque token returned by a previous BrowseChildren response. Bound to the
    /// cache sequence, parent selector, and the filter set; a mismatch returns
    /// InvalidArgument.
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public string PageToken {
      get { return pageToken_; }
      set {
        pageToken_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    /// <summary>Field number for the "category_ids" field.</summary>
    public const int CategoryIdsFieldNumber = 6;
    private static readonly pb::FieldCodec<int> _repeated_categoryIds_codec
        = pb::FieldCodec.ForInt32(50);
    private readonly pbc::RepeatedField<int> categoryIds_ = new pbc::RepeatedField<int>();
    /// <summary>
    /// --- Filter parity with DiscoverHierarchy. AND-combined. ---
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public pbc::RepeatedField<int> CategoryIds {
      get { return categoryIds_; }
    }

    /// <summary>Field number for the "template_chain_contains" field.</summary>
    public const int TemplateChainContainsFieldNumber = 7;
    private static readonly pb::FieldCodec<string> _repeated_templateChainContains_codec
        = pb::FieldCodec.ForString(58);
    private readonly pbc::RepeatedField<string> templateChainContains_ = new pbc::RepeatedField<string>();
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public pbc::RepeatedField<string> TemplateChainContains {
      get { return templateChainContains_; }
    }

    /// <summary>Field number for the "tag_name_glob" field.</summary>
    public const int TagNameGlobFieldNumber = 8;
    private string tagNameGlob_ = "";
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public string TagNameGlob {
      get { return tagNameGlob_; }
      set {
        tagNameGlob_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    /// <summary>Field number for the "include_attributes" field.</summary>
    public const int IncludeAttributesFieldNumber = 9;
    private readonly static bool IncludeAttributesDefaultValue = false;

    private bool includeAttributes_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool IncludeAttributes {
      get { if ((_hasBits0 & 1) != 0) { return includeAttributes_; } else { return IncludeAttributesDefaultValue; } }
      set {
        _hasBits0 |= 1;
        includeAttributes_ = value;
      }
    }
    /// <summary>Gets whether the "include_attributes" field is set</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool HasIncludeAttributes {
      get { return (_hasBits0 & 1) != 0; }
    }
    /// <summary>Clears the value of the "include_attributes" field</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void ClearIncludeAttributes() {
      _hasBits0 &= ~1;
    }

    /// <summary>Field number for the "alarm_bearing_only" field.</summary>
    public const int AlarmBearingOnlyFieldNumber = 10;
    private bool alarmBearingOnly_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool AlarmBearingOnly {
      get { return alarmBearingOnly_; }
      set {
        alarmBearingOnly_ = value;
      }
    }

    /// <summary>Field number for the "historized_only" field.</summary>
    public const int HistorizedOnlyFieldNumber = 11;
    private bool historizedOnly_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool HistorizedOnly {
      get { return historizedOnly_; }
      set {
        historizedOnly_ = value;
      }
    }

    private object parent_;
    /// <summary>Enum of possible cases for the "parent" oneof.</summary>
    public enum ParentOneofCase {
      None = 0,
      ParentGobjectId = 1,
      ParentTagName = 2,
      ParentContainedPath = 3,
    }
    private ParentOneofCase parentCase_ = ParentOneofCase.None;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public ParentOneofCase ParentCase {
      get { return parentCase_; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void ClearParent() {
      parentCase_ = ParentOneofCase.None;
      parent_ = null;
    }

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Equals(BrowseChildrenRequest other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (ParentGobjectId != other.ParentGobjectId) return false;
      if (ParentTagName != other.ParentTagName) return false;
      if (ParentContainedPath != other.ParentContainedPath) return false;
      if (PageSize != other.PageSize) return false;
      if (PageToken != other.PageToken) return false;
      if(!categoryIds_.Equals(other.categoryIds_)) return false;
      if(!templateChainContains_.Equals(other.templateChainContains_)) return false;
      if (TagNameGlob != other.TagNameGlob) return false;
      if (IncludeAttributes != other.IncludeAttributes) return false;
      if (AlarmBearingOnly != other.AlarmBearingOnly) return false;
      if (HistorizedOnly != other.HistorizedOnly) return false;
      if (ParentCase != other.ParentCase) 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 (HasParentGobjectId) hash ^= ParentGobjectId.GetHashCode();
      if (HasParentTagName) hash ^= ParentTagName.GetHashCode();
      if (HasParentContainedPath) hash ^= ParentContainedPath.GetHashCode();
      if (PageSize != 0) hash ^= PageSize.GetHashCode();
      if (PageToken.Length != 0) hash ^= PageToken.GetHashCode();
      hash ^= categoryIds_.GetHashCode();
      hash ^= templateChainContains_.GetHashCode();
      if (TagNameGlob.Length != 0) hash ^= TagNameGlob.GetHashCode();
      if (HasIncludeAttributes) hash ^= IncludeAttributes.GetHashCode();
      if (AlarmBearingOnly != false) hash ^= AlarmBearingOnly.GetHashCode();
      if (HistorizedOnly != false) hash ^= HistorizedOnly.GetHashCode();
      hash ^= (int) parentCase_;
      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 (HasParentGobjectId) {
        output.WriteRawTag(8);
        output.WriteInt32(ParentGobjectId);
      }
      if (HasParentTagName) {
        output.WriteRawTag(18);
        output.WriteString(ParentTagName);
      }
      if (HasParentContainedPath) {
        output.WriteRawTag(26);
        output.WriteString(ParentContainedPath);
      }
      if (PageSize != 0) {
        output.WriteRawTag(32);
        output.WriteInt32(PageSize);
      }
      if (PageToken.Length != 0) {
        output.WriteRawTag(42);
        output.WriteString(PageToken);
      }
      categoryIds_.WriteTo(output, _repeated_categoryIds_codec);
      templateChainContains_.WriteTo(output, _repeated_templateChainContains_codec);
      if (TagNameGlob.Length != 0) {
        output.WriteRawTag(66);
        output.WriteString(TagNameGlob);
      }
      if (HasIncludeAttributes) {
        output.WriteRawTag(72);
        output.WriteBool(IncludeAttributes);
      }
      if (AlarmBearingOnly != false) {
        output.WriteRawTag(80);
        output.WriteBool(AlarmBearingOnly);
      }
      if (HistorizedOnly != false) {
        output.WriteRawTag(88);
        output.WriteBool(HistorizedOnly);
      }
      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 (HasParentGobjectId) {
        output.WriteRawTag(8);
        output.WriteInt32(ParentGobjectId);
      }
      if (HasParentTagName) {
        output.WriteRawTag(18);
        output.WriteString(ParentTagName);
      }
      if (HasParentContainedPath) {
        output.WriteRawTag(26);
        output.WriteString(ParentContainedPath);
      }
      if (PageSize != 0) {
        output.WriteRawTag(32);
        output.WriteInt32(PageSize);
      }
      if (PageToken.Length != 0) {
        output.WriteRawTag(42);
        output.WriteString(PageToken);
      }
      categoryIds_.WriteTo(ref output, _repeated_categoryIds_codec);
      templateChainContains_.WriteTo(ref output, _repeated_templateChainContains_codec);
      if (TagNameGlob.Length != 0) {
        output.WriteRawTag(66);
        output.WriteString(TagNameGlob);
      }
      if (HasIncludeAttributes) {
        output.WriteRawTag(72);
        output.WriteBool(IncludeAttributes);
      }
      if (AlarmBearingOnly != false) {
        output.WriteRawTag(80);
        output.WriteBool(AlarmBearingOnly);
      }
      if (HistorizedOnly != false) {
        output.WriteRawTag(88);
        output.WriteBool(HistorizedOnly);
      }
      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 (HasParentGobjectId) {
        size += 1 + pb::CodedOutputStream.ComputeInt32Size(ParentGobjectId);
      }
      if (HasParentTagName) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(ParentTagName);
      }
      if (HasParentContainedPath) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(ParentContainedPath);
      }
      if (PageSize != 0) {
        size += 1 + pb::CodedOutputStream.ComputeInt32Size(PageSize);
      }
      if (PageToken.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(PageToken);
      }
      size += categoryIds_.CalculateSize(_repeated_categoryIds_codec);
      size += templateChainContains_.CalculateSize(_repeated_templateChainContains_codec);
      if (TagNameGlob.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(TagNameGlob);
      }
      if (HasIncludeAttributes) {
        size += 1 + 1;
      }
      if (AlarmBearingOnly != false) {
        size += 1 + 1;
      }
      if (HistorizedOnly != false) {
        size += 1 + 1;
      }
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(BrowseChildrenRequest other) {
      if (other == null) {
        return;
      }
      if (other.PageSize != 0) {
        PageSize = other.PageSize;
      }
      if (other.PageToken.Length != 0) {
        PageToken = other.PageToken;
      }
      categoryIds_.Add(other.categoryIds_);
      templateChainContains_.Add(other.templateChainContains_);
      if (other.TagNameGlob.Length != 0) {
        TagNameGlob = other.TagNameGlob;
      }
      if (other.HasIncludeAttributes) {
        IncludeAttributes = other.IncludeAttributes;
      }
      if (other.AlarmBearingOnly != false) {
        AlarmBearingOnly = other.AlarmBearingOnly;
      }
      if (other.HistorizedOnly != false) {
        HistorizedOnly = other.HistorizedOnly;
      }
      switch (other.ParentCase) {
        case ParentOneofCase.ParentGobjectId:
          ParentGobjectId = other.ParentGobjectId;
          break;
        case ParentOneofCase.ParentTagName:
          ParentTagName = other.ParentTagName;
          break;
        case ParentOneofCase.ParentContainedPath:
          ParentContainedPath = other.ParentContainedPath;
          break;
      }

      _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) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
          case 8: {
            ParentGobjectId = input.ReadInt32();
            break;
          }
          case 18: {
            ParentTagName = input.ReadString();
            break;
          }
          case 26: {
            ParentContainedPath = input.ReadString();
            break;
          }
          case 32: {
            PageSize = input.ReadInt32();
            break;
          }
          case 42: {
            PageToken = input.ReadString();
            break;
          }
          case 50:
          case 48: {
            categoryIds_.AddEntriesFrom(input, _repeated_categoryIds_codec);
            break;
          }
          case 58: {
            templateChainContains_.AddEntriesFrom(input, _repeated_templateChainContains_codec);
            break;
          }
          case 66: {
            TagNameGlob = input.ReadString();
            break;
          }
          case 72: {
            IncludeAttributes = input.ReadBool();
            break;
          }
          case 80: {
            AlarmBearingOnly = input.ReadBool();
            break;
          }
          case 88: {
            HistorizedOnly = input.ReadBool();
            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) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
            break;
          case 8: {
            ParentGobjectId = input.ReadInt32();
            break;
          }
          case 18: {
            ParentTagName = input.ReadString();
            break;
          }
          case 26: {
            ParentContainedPath = input.ReadString();
            break;
          }
          case 32: {
            PageSize = input.ReadInt32();
            break;
          }
          case 42: {
            PageToken = input.ReadString();
            break;
          }
          case 50:
          case 48: {
            categoryIds_.AddEntriesFrom(ref input, _repeated_categoryIds_codec);
            break;
          }
          case 58: {
            templateChainContains_.AddEntriesFrom(ref input, _repeated_templateChainContains_codec);
            break;
          }
          case 66: {
            TagNameGlob = input.ReadString();
            break;
          }
          case 72: {
            IncludeAttributes = input.ReadBool();
            break;
          }
          case 80: {
            AlarmBearingOnly = input.ReadBool();
            break;
          }
          case 88: {
            HistorizedOnly = input.ReadBool();
            break;
          }
        }
      }
    }
    #endif

  }

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::ZB.MOM.WW.MxGateway.Contracts.Proto.Galaxy.GalaxyRepositoryReflection.Descriptor.MessageTypes[11]; }
    }

    [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 BrowseChildrenReply() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public BrowseChildrenReply(BrowseChildrenReply other) : this() {
      children_ = other.children_.Clone();
      nextPageToken_ = other.nextPageToken_;
      totalChildCount_ = other.totalChildCount_;
      childHasChildren_ = other.childHasChildren_.Clone();
      cacheSequence_ = other.cacheSequence_;
      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

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

    /// <summary>Field number for the "children" field.</summary>
    public const int ChildrenFieldNumber = 1;
    private static readonly pb::FieldCodec<global::ZB.MOM.WW.MxGateway.Contracts.Proto.Galaxy.GalaxyObject> _repeated_children_codec
        = pb::FieldCodec.ForMessage(10, global::ZB.MOM.WW.MxGateway.Contracts.Proto.Galaxy.GalaxyObject.Parser);
    private readonly pbc::RepeatedField<global::ZB.MOM.WW.MxGateway.Contracts.Proto.Galaxy.GalaxyObject> children_ = new pbc::RepeatedField<global::ZB.MOM.WW.MxGateway.Contracts.Proto.Galaxy.GalaxyObject>();
    /// <summary>
    /// Direct children matching the filter, sorted areas-first then by
    /// case-insensitive display name (same order as the dashboard tree).
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public pbc::RepeatedField<global::ZB.MOM.WW.MxGateway.Contracts.Proto.Galaxy.GalaxyObject> Children {
      get { return children_; }
    }

    /// <summary>Field number for the "next_page_token" field.</summary>
    public const int NextPageTokenFieldNumber = 2;
    private string nextPageToken_ = "";
    /// <summary>
    /// Non-empty when another page of siblings is available.
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public string NextPageToken {
      get { return nextPageToken_; }
      set {
        nextPageToken_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    /// <summary>Field number for the "total_child_count" field.</summary>
    public const int TotalChildCountFieldNumber = 3;
    private int totalChildCount_;
    /// <summary>
    /// Total matching direct children of the parent (post-filter).
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public int TotalChildCount {
      get { return totalChildCount_; }
      set {
        totalChildCount_ = value;
      }
    }

    /// <summary>Field number for the "child_has_children" field.</summary>
    public const int ChildHasChildrenFieldNumber = 4;
    private static readonly pb::FieldCodec<bool> _repeated_childHasChildren_codec
        = pb::FieldCodec.ForBool(34);
    private readonly pbc::RepeatedField<bool> childHasChildren_ = new pbc::RepeatedField<bool>();
    /// <summary>
    /// Parallel array, indexed with `children`. True when the child has at least
    /// one matching descendant under the same filter set. Lets a UI choose
    /// whether to draw an expand triangle without an extra round trip.
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public pbc::RepeatedField<bool> ChildHasChildren {
      get { return childHasChildren_; }
    }

    /// <summary>Field number for the "cache_sequence" field.</summary>
    public const int CacheSequenceFieldNumber = 5;
    private ulong cacheSequence_;
    /// <summary>
    /// Cache sequence this reply was projected from. Clients may pass it back as
    /// part of the page_token contract. Mismatch on the next page -> InvalidArgument.
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public ulong CacheSequence {
      get { return cacheSequence_; }
      set {
        cacheSequence_ = value;
      }
    }

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Equals(BrowseChildrenReply other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if(!children_.Equals(other.children_)) return false;
      if (NextPageToken != other.NextPageToken) return false;
      if (TotalChildCount != other.TotalChildCount) return false;
      if(!childHasChildren_.Equals(other.childHasChildren_)) return false;
      if (CacheSequence != other.CacheSequence) 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;
      hash ^= children_.GetHashCode();
      if (NextPageToken.Length != 0) hash ^= NextPageToken.GetHashCode();
      if (TotalChildCount != 0) hash ^= TotalChildCount.GetHashCode();
      hash ^= childHasChildren_.GetHashCode();
      if (CacheSequence != 0UL) hash ^= CacheSequence.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
      children_.WriteTo(output, _repeated_children_codec);
      if (NextPageToken.Length != 0) {
        output.WriteRawTag(18);
        output.WriteString(NextPageToken);
      }
      if (TotalChildCount != 0) {
        output.WriteRawTag(24);
        output.WriteInt32(TotalChildCount);
      }
      childHasChildren_.WriteTo(output, _repeated_childHasChildren_codec);
      if (CacheSequence != 0UL) {
        output.WriteRawTag(40);
        output.WriteUInt64(CacheSequence);
      }
      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) {
      children_.WriteTo(ref output, _repeated_children_codec);
      if (NextPageToken.Length != 0) {
        output.WriteRawTag(18);
        output.WriteString(NextPageToken);
      }
      if (TotalChildCount != 0) {
        output.WriteRawTag(24);
        output.WriteInt32(TotalChildCount);
      }
      childHasChildren_.WriteTo(ref output, _repeated_childHasChildren_codec);
      if (CacheSequence != 0UL) {
        output.WriteRawTag(40);
        output.WriteUInt64(CacheSequence);
      }
      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;
      size += children_.CalculateSize(_repeated_children_codec);
      if (NextPageToken.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(NextPageToken);
      }
      if (TotalChildCount != 0) {
        size += 1 + pb::CodedOutputStream.ComputeInt32Size(TotalChildCount);
      }
      size += childHasChildren_.CalculateSize(_repeated_childHasChildren_codec);
      if (CacheSequence != 0UL) {
        size += 1 + pb::CodedOutputStream.ComputeUInt64Size(CacheSequence);
      }
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(BrowseChildrenReply other) {
      if (other == null) {
        return;
      }
      children_.Add(other.children_);
      if (other.NextPageToken.Length != 0) {
        NextPageToken = other.NextPageToken;
      }
      if (other.TotalChildCount != 0) {
        TotalChildCount = other.TotalChildCount;
      }
      childHasChildren_.Add(other.childHasChildren_);
      if (other.CacheSequence != 0UL) {
        CacheSequence = other.CacheSequence;
      }
      _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) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
          case 10: {
            children_.AddEntriesFrom(input, _repeated_children_codec);
            break;
          }
          case 18: {
            NextPageToken = input.ReadString();
            break;
          }
          case 24: {
            TotalChildCount = input.ReadInt32();
            break;
          }
          case 34:
          case 32: {
            childHasChildren_.AddEntriesFrom(input, _repeated_childHasChildren_codec);
            break;
          }
          case 40: {
            CacheSequence = input.ReadUInt64();
            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) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
            break;
          case 10: {
            children_.AddEntriesFrom(ref input, _repeated_children_codec);
            break;
          }
          case 18: {
            NextPageToken = input.ReadString();
            break;
          }
          case 24: {
            TotalChildCount = input.ReadInt32();
            break;
          }
          case 34:
          case 32: {
            childHasChildren_.AddEntriesFrom(ref input, _repeated_childHasChildren_codec);
            break;
          }
          case 40: {
            CacheSequence = input.ReadUInt64();
            break;
          }
        }
      }
    }
    #endif

  }

  #endregion

}

#endregion Designer generated code
