// Generated by the protocol buffer compiler.  DO NOT EDIT!
// NO CHECKED-IN PROTOBUF GENCODE
// source: galaxy_repository.proto
// Protobuf Java Version: 4.33.1

package galaxy_repository.v1;

@com.google.protobuf.Generated
public final class GalaxyRepositoryOuterClass extends com.google.protobuf.GeneratedFile {
  private GalaxyRepositoryOuterClass() {}
  static {
    com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
      com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
      /* major= */ 4,
      /* minor= */ 33,
      /* patch= */ 1,
      /* suffix= */ "",
      "GalaxyRepositoryOuterClass");
  }
  public static void registerAllExtensions(
      com.google.protobuf.ExtensionRegistryLite registry) {
  }

  public static void registerAllExtensions(
      com.google.protobuf.ExtensionRegistry registry) {
    registerAllExtensions(
        (com.google.protobuf.ExtensionRegistryLite) registry);
  }
  public interface TestConnectionRequestOrBuilder extends
      // @@protoc_insertion_point(interface_extends:galaxy_repository.v1.TestConnectionRequest)
      com.google.protobuf.MessageOrBuilder {
  }
  /**
   * Protobuf type {@code galaxy_repository.v1.TestConnectionRequest}
   */
  public static final class TestConnectionRequest extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:galaxy_repository.v1.TestConnectionRequest)
      TestConnectionRequestOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 1,
        /* suffix= */ "",
        "TestConnectionRequest");
    }
    // Use TestConnectionRequest.newBuilder() to construct.
    private TestConnectionRequest(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
    }
    private TestConnectionRequest() {
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return galaxy_repository.v1.GalaxyRepositoryOuterClass.internal_static_galaxy_repository_v1_TestConnectionRequest_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return galaxy_repository.v1.GalaxyRepositoryOuterClass.internal_static_galaxy_repository_v1_TestConnectionRequest_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              galaxy_repository.v1.GalaxyRepositoryOuterClass.TestConnectionRequest.class, galaxy_repository.v1.GalaxyRepositoryOuterClass.TestConnectionRequest.Builder.class);
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof galaxy_repository.v1.GalaxyRepositoryOuterClass.TestConnectionRequest)) {
        return super.equals(obj);
      }
      galaxy_repository.v1.GalaxyRepositoryOuterClass.TestConnectionRequest other = (galaxy_repository.v1.GalaxyRepositoryOuterClass.TestConnectionRequest) obj;

      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static galaxy_repository.v1.GalaxyRepositoryOuterClass.TestConnectionRequest parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static galaxy_repository.v1.GalaxyRepositoryOuterClass.TestConnectionRequest parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static galaxy_repository.v1.GalaxyRepositoryOuterClass.TestConnectionRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static galaxy_repository.v1.GalaxyRepositoryOuterClass.TestConnectionRequest parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static galaxy_repository.v1.GalaxyRepositoryOuterClass.TestConnectionRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static galaxy_repository.v1.GalaxyRepositoryOuterClass.TestConnectionRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static galaxy_repository.v1.GalaxyRepositoryOuterClass.TestConnectionRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static galaxy_repository.v1.GalaxyRepositoryOuterClass.TestConnectionRequest parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static galaxy_repository.v1.GalaxyRepositoryOuterClass.TestConnectionRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static galaxy_repository.v1.GalaxyRepositoryOuterClass.TestConnectionRequest parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static galaxy_repository.v1.GalaxyRepositoryOuterClass.TestConnectionRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static galaxy_repository.v1.GalaxyRepositoryOuterClass.TestConnectionRequest parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(galaxy_repository.v1.GalaxyRepositoryOuterClass.TestConnectionRequest prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code galaxy_repository.v1.TestConnectionRequest}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:galaxy_repository.v1.TestConnectionRequest)
        galaxy_repository.v1.GalaxyRepositoryOuterClass.TestConnectionRequestOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return galaxy_repository.v1.GalaxyRepositoryOuterClass.internal_static_galaxy_repository_v1_TestConnectionRequest_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return galaxy_repository.v1.GalaxyRepositoryOuterClass.internal_static_galaxy_repository_v1_TestConnectionRequest_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                galaxy_repository.v1.GalaxyRepositoryOuterClass.TestConnectionRequest.class, galaxy_repository.v1.GalaxyRepositoryOuterClass.TestConnectionRequest.Builder.class);
      }

      // Construct using galaxy_repository.v1.GalaxyRepositoryOuterClass.TestConnectionRequest.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return galaxy_repository.v1.GalaxyRepositoryOuterClass.internal_static_galaxy_repository_v1_TestConnectionRequest_descriptor;
      }

      @java.lang.Override
      public galaxy_repository.v1.GalaxyRepositoryOuterClass.TestConnectionRequest getDefaultInstanceForType() {
        return galaxy_repository.v1.GalaxyRepositoryOuterClass.TestConnectionRequest.getDefaultInstance();
      }

      @java.lang.Override
      public galaxy_repository.v1.GalaxyRepositoryOuterClass.TestConnectionRequest build() {
        galaxy_repository.v1.GalaxyRepositoryOuterClass.TestConnectionRequest result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public galaxy_repository.v1.GalaxyRepositoryOuterClass.TestConnectionRequest buildPartial() {
        galaxy_repository.v1.GalaxyRepositoryOuterClass.TestConnectionRequest result = new galaxy_repository.v1.GalaxyRepositoryOuterClass.TestConnectionRequest(this);
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof galaxy_repository.v1.GalaxyRepositoryOuterClass.TestConnectionRequest) {
          return mergeFrom((galaxy_repository.v1.GalaxyRepositoryOuterClass.TestConnectionRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(galaxy_repository.v1.GalaxyRepositoryOuterClass.TestConnectionRequest other) {
        if (other == galaxy_repository.v1.GalaxyRepositoryOuterClass.TestConnectionRequest.getDefaultInstance()) return this;
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }

      // @@protoc_insertion_point(builder_scope:galaxy_repository.v1.TestConnectionRequest)
    }

    // @@protoc_insertion_point(class_scope:galaxy_repository.v1.TestConnectionRequest)
    private static final galaxy_repository.v1.GalaxyRepositoryOuterClass.TestConnectionRequest DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new galaxy_repository.v1.GalaxyRepositoryOuterClass.TestConnectionRequest();
    }

    public static galaxy_repository.v1.GalaxyRepositoryOuterClass.TestConnectionRequest getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<TestConnectionRequest>
        PARSER = new com.google.protobuf.AbstractParser<TestConnectionRequest>() {
      @java.lang.Override
      public TestConnectionRequest parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<TestConnectionRequest> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<TestConnectionRequest> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public galaxy_repository.v1.GalaxyRepositoryOuterClass.TestConnectionRequest getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface TestConnectionReplyOrBuilder extends
      // @@protoc_insertion_point(interface_extends:galaxy_repository.v1.TestConnectionReply)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>bool ok = 1;</code>
     * @return The ok.
     */
    boolean getOk();
  }
  /**
   * Protobuf type {@code galaxy_repository.v1.TestConnectionReply}
   */
  public static final class TestConnectionReply extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:galaxy_repository.v1.TestConnectionReply)
      TestConnectionReplyOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 1,
        /* suffix= */ "",
        "TestConnectionReply");
    }
    // Use TestConnectionReply.newBuilder() to construct.
    private TestConnectionReply(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
    }
    private TestConnectionReply() {
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return galaxy_repository.v1.GalaxyRepositoryOuterClass.internal_static_galaxy_repository_v1_TestConnectionReply_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return galaxy_repository.v1.GalaxyRepositoryOuterClass.internal_static_galaxy_repository_v1_TestConnectionReply_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              galaxy_repository.v1.GalaxyRepositoryOuterClass.TestConnectionReply.class, galaxy_repository.v1.GalaxyRepositoryOuterClass.TestConnectionReply.Builder.class);
    }

    public static final int OK_FIELD_NUMBER = 1;
    private boolean ok_ = false;
    /**
     * <code>bool ok = 1;</code>
     * @return The ok.
     */
    @java.lang.Override
    public boolean getOk() {
      return ok_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (ok_ != false) {
        output.writeBool(1, ok_);
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (ok_ != false) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(1, ok_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof galaxy_repository.v1.GalaxyRepositoryOuterClass.TestConnectionReply)) {
        return super.equals(obj);
      }
      galaxy_repository.v1.GalaxyRepositoryOuterClass.TestConnectionReply other = (galaxy_repository.v1.GalaxyRepositoryOuterClass.TestConnectionReply) obj;

      if (getOk()
          != other.getOk()) return false;
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + OK_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
          getOk());
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static galaxy_repository.v1.GalaxyRepositoryOuterClass.TestConnectionReply parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static galaxy_repository.v1.GalaxyRepositoryOuterClass.TestConnectionReply parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static galaxy_repository.v1.GalaxyRepositoryOuterClass.TestConnectionReply parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static galaxy_repository.v1.GalaxyRepositoryOuterClass.TestConnectionReply parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static galaxy_repository.v1.GalaxyRepositoryOuterClass.TestConnectionReply parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static galaxy_repository.v1.GalaxyRepositoryOuterClass.TestConnectionReply parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static galaxy_repository.v1.GalaxyRepositoryOuterClass.TestConnectionReply parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static galaxy_repository.v1.GalaxyRepositoryOuterClass.TestConnectionReply parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static galaxy_repository.v1.GalaxyRepositoryOuterClass.TestConnectionReply parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static galaxy_repository.v1.GalaxyRepositoryOuterClass.TestConnectionReply parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static galaxy_repository.v1.GalaxyRepositoryOuterClass.TestConnectionReply parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static galaxy_repository.v1.GalaxyRepositoryOuterClass.TestConnectionReply parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(galaxy_repository.v1.GalaxyRepositoryOuterClass.TestConnectionReply prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code galaxy_repository.v1.TestConnectionReply}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:galaxy_repository.v1.TestConnectionReply)
        galaxy_repository.v1.GalaxyRepositoryOuterClass.TestConnectionReplyOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return galaxy_repository.v1.GalaxyRepositoryOuterClass.internal_static_galaxy_repository_v1_TestConnectionReply_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return galaxy_repository.v1.GalaxyRepositoryOuterClass.internal_static_galaxy_repository_v1_TestConnectionReply_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                galaxy_repository.v1.GalaxyRepositoryOuterClass.TestConnectionReply.class, galaxy_repository.v1.GalaxyRepositoryOuterClass.TestConnectionReply.Builder.class);
      }

      // Construct using galaxy_repository.v1.GalaxyRepositoryOuterClass.TestConnectionReply.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        ok_ = false;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return galaxy_repository.v1.GalaxyRepositoryOuterClass.internal_static_galaxy_repository_v1_TestConnectionReply_descriptor;
      }

      @java.lang.Override
      public galaxy_repository.v1.GalaxyRepositoryOuterClass.TestConnectionReply getDefaultInstanceForType() {
        return galaxy_repository.v1.GalaxyRepositoryOuterClass.TestConnectionReply.getDefaultInstance();
      }

      @java.lang.Override
      public galaxy_repository.v1.GalaxyRepositoryOuterClass.TestConnectionReply build() {
        galaxy_repository.v1.GalaxyRepositoryOuterClass.TestConnectionReply result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public galaxy_repository.v1.GalaxyRepositoryOuterClass.TestConnectionReply buildPartial() {
        galaxy_repository.v1.GalaxyRepositoryOuterClass.TestConnectionReply result = new galaxy_repository.v1.GalaxyRepositoryOuterClass.TestConnectionReply(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(galaxy_repository.v1.GalaxyRepositoryOuterClass.TestConnectionReply result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.ok_ = ok_;
        }
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof galaxy_repository.v1.GalaxyRepositoryOuterClass.TestConnectionReply) {
          return mergeFrom((galaxy_repository.v1.GalaxyRepositoryOuterClass.TestConnectionReply)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(galaxy_repository.v1.GalaxyRepositoryOuterClass.TestConnectionReply other) {
        if (other == galaxy_repository.v1.GalaxyRepositoryOuterClass.TestConnectionReply.getDefaultInstance()) return this;
        if (other.getOk() != false) {
          setOk(other.getOk());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 8: {
                ok_ = input.readBool();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private boolean ok_ ;
      /**
       * <code>bool ok = 1;</code>
       * @return The ok.
       */
      @java.lang.Override
      public boolean getOk() {
        return ok_;
      }
      /**
       * <code>bool ok = 1;</code>
       * @param value The ok to set.
       * @return This builder for chaining.
       */
      public Builder setOk(boolean value) {

        ok_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>bool ok = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearOk() {
        bitField0_ = (bitField0_ & ~0x00000001);
        ok_ = false;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:galaxy_repository.v1.TestConnectionReply)
    }

    // @@protoc_insertion_point(class_scope:galaxy_repository.v1.TestConnectionReply)
    private static final galaxy_repository.v1.GalaxyRepositoryOuterClass.TestConnectionReply DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new galaxy_repository.v1.GalaxyRepositoryOuterClass.TestConnectionReply();
    }

    public static galaxy_repository.v1.GalaxyRepositoryOuterClass.TestConnectionReply getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<TestConnectionReply>
        PARSER = new com.google.protobuf.AbstractParser<TestConnectionReply>() {
      @java.lang.Override
      public TestConnectionReply parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<TestConnectionReply> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<TestConnectionReply> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public galaxy_repository.v1.GalaxyRepositoryOuterClass.TestConnectionReply getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface GetLastDeployTimeRequestOrBuilder extends
      // @@protoc_insertion_point(interface_extends:galaxy_repository.v1.GetLastDeployTimeRequest)
      com.google.protobuf.MessageOrBuilder {
  }
  /**
   * Protobuf type {@code galaxy_repository.v1.GetLastDeployTimeRequest}
   */
  public static final class GetLastDeployTimeRequest extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:galaxy_repository.v1.GetLastDeployTimeRequest)
      GetLastDeployTimeRequestOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 1,
        /* suffix= */ "",
        "GetLastDeployTimeRequest");
    }
    // Use GetLastDeployTimeRequest.newBuilder() to construct.
    private GetLastDeployTimeRequest(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
    }
    private GetLastDeployTimeRequest() {
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return galaxy_repository.v1.GalaxyRepositoryOuterClass.internal_static_galaxy_repository_v1_GetLastDeployTimeRequest_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return galaxy_repository.v1.GalaxyRepositoryOuterClass.internal_static_galaxy_repository_v1_GetLastDeployTimeRequest_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              galaxy_repository.v1.GalaxyRepositoryOuterClass.GetLastDeployTimeRequest.class, galaxy_repository.v1.GalaxyRepositoryOuterClass.GetLastDeployTimeRequest.Builder.class);
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof galaxy_repository.v1.GalaxyRepositoryOuterClass.GetLastDeployTimeRequest)) {
        return super.equals(obj);
      }
      galaxy_repository.v1.GalaxyRepositoryOuterClass.GetLastDeployTimeRequest other = (galaxy_repository.v1.GalaxyRepositoryOuterClass.GetLastDeployTimeRequest) obj;

      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static galaxy_repository.v1.GalaxyRepositoryOuterClass.GetLastDeployTimeRequest parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static galaxy_repository.v1.GalaxyRepositoryOuterClass.GetLastDeployTimeRequest parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static galaxy_repository.v1.GalaxyRepositoryOuterClass.GetLastDeployTimeRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static galaxy_repository.v1.GalaxyRepositoryOuterClass.GetLastDeployTimeRequest parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static galaxy_repository.v1.GalaxyRepositoryOuterClass.GetLastDeployTimeRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static galaxy_repository.v1.GalaxyRepositoryOuterClass.GetLastDeployTimeRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static galaxy_repository.v1.GalaxyRepositoryOuterClass.GetLastDeployTimeRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static galaxy_repository.v1.GalaxyRepositoryOuterClass.GetLastDeployTimeRequest parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static galaxy_repository.v1.GalaxyRepositoryOuterClass.GetLastDeployTimeRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static galaxy_repository.v1.GalaxyRepositoryOuterClass.GetLastDeployTimeRequest parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static galaxy_repository.v1.GalaxyRepositoryOuterClass.GetLastDeployTimeRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static galaxy_repository.v1.GalaxyRepositoryOuterClass.GetLastDeployTimeRequest parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(galaxy_repository.v1.GalaxyRepositoryOuterClass.GetLastDeployTimeRequest prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code galaxy_repository.v1.GetLastDeployTimeRequest}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:galaxy_repository.v1.GetLastDeployTimeRequest)
        galaxy_repository.v1.GalaxyRepositoryOuterClass.GetLastDeployTimeRequestOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return galaxy_repository.v1.GalaxyRepositoryOuterClass.internal_static_galaxy_repository_v1_GetLastDeployTimeRequest_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return galaxy_repository.v1.GalaxyRepositoryOuterClass.internal_static_galaxy_repository_v1_GetLastDeployTimeRequest_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                galaxy_repository.v1.GalaxyRepositoryOuterClass.GetLastDeployTimeRequest.class, galaxy_repository.v1.GalaxyRepositoryOuterClass.GetLastDeployTimeRequest.Builder.class);
      }

      // Construct using galaxy_repository.v1.GalaxyRepositoryOuterClass.GetLastDeployTimeRequest.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return galaxy_repository.v1.GalaxyRepositoryOuterClass.internal_static_galaxy_repository_v1_GetLastDeployTimeRequest_descriptor;
      }

      @java.lang.Override
      public galaxy_repository.v1.GalaxyRepositoryOuterClass.GetLastDeployTimeRequest getDefaultInstanceForType() {
        return galaxy_repository.v1.GalaxyRepositoryOuterClass.GetLastDeployTimeRequest.getDefaultInstance();
      }

      @java.lang.Override
      public galaxy_repository.v1.GalaxyRepositoryOuterClass.GetLastDeployTimeRequest build() {
        galaxy_repository.v1.GalaxyRepositoryOuterClass.GetLastDeployTimeRequest result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public galaxy_repository.v1.GalaxyRepositoryOuterClass.GetLastDeployTimeRequest buildPartial() {
        galaxy_repository.v1.GalaxyRepositoryOuterClass.GetLastDeployTimeRequest result = new galaxy_repository.v1.GalaxyRepositoryOuterClass.GetLastDeployTimeRequest(this);
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof galaxy_repository.v1.GalaxyRepositoryOuterClass.GetLastDeployTimeRequest) {
          return mergeFrom((galaxy_repository.v1.GalaxyRepositoryOuterClass.GetLastDeployTimeRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(galaxy_repository.v1.GalaxyRepositoryOuterClass.GetLastDeployTimeRequest other) {
        if (other == galaxy_repository.v1.GalaxyRepositoryOuterClass.GetLastDeployTimeRequest.getDefaultInstance()) return this;
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }

      // @@protoc_insertion_point(builder_scope:galaxy_repository.v1.GetLastDeployTimeRequest)
    }

    // @@protoc_insertion_point(class_scope:galaxy_repository.v1.GetLastDeployTimeRequest)
    private static final galaxy_repository.v1.GalaxyRepositoryOuterClass.GetLastDeployTimeRequest DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new galaxy_repository.v1.GalaxyRepositoryOuterClass.GetLastDeployTimeRequest();
    }

    public static galaxy_repository.v1.GalaxyRepositoryOuterClass.GetLastDeployTimeRequest getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<GetLastDeployTimeRequest>
        PARSER = new com.google.protobuf.AbstractParser<GetLastDeployTimeRequest>() {
      @java.lang.Override
      public GetLastDeployTimeRequest parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<GetLastDeployTimeRequest> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<GetLastDeployTimeRequest> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public galaxy_repository.v1.GalaxyRepositoryOuterClass.GetLastDeployTimeRequest getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface GetLastDeployTimeReplyOrBuilder extends
      // @@protoc_insertion_point(interface_extends:galaxy_repository.v1.GetLastDeployTimeReply)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>bool present = 1;</code>
     * @return The present.
     */
    boolean getPresent();

    /**
     * <code>.google.protobuf.Timestamp time_of_last_deploy = 2;</code>
     * @return Whether the timeOfLastDeploy field is set.
     */
    boolean hasTimeOfLastDeploy();
    /**
     * <code>.google.protobuf.Timestamp time_of_last_deploy = 2;</code>
     * @return The timeOfLastDeploy.
     */
    com.google.protobuf.Timestamp getTimeOfLastDeploy();
    /**
     * <code>.google.protobuf.Timestamp time_of_last_deploy = 2;</code>
     */
    com.google.protobuf.TimestampOrBuilder getTimeOfLastDeployOrBuilder();
  }
  /**
   * Protobuf type {@code galaxy_repository.v1.GetLastDeployTimeReply}
   */
  public static final class GetLastDeployTimeReply extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:galaxy_repository.v1.GetLastDeployTimeReply)
      GetLastDeployTimeReplyOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 1,
        /* suffix= */ "",
        "GetLastDeployTimeReply");
    }
    // Use GetLastDeployTimeReply.newBuilder() to construct.
    private GetLastDeployTimeReply(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
    }
    private GetLastDeployTimeReply() {
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return galaxy_repository.v1.GalaxyRepositoryOuterClass.internal_static_galaxy_repository_v1_GetLastDeployTimeReply_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return galaxy_repository.v1.GalaxyRepositoryOuterClass.internal_static_galaxy_repository_v1_GetLastDeployTimeReply_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              galaxy_repository.v1.GalaxyRepositoryOuterClass.GetLastDeployTimeReply.class, galaxy_repository.v1.GalaxyRepositoryOuterClass.GetLastDeployTimeReply.Builder.class);
    }

    private int bitField0_;
    public static final int PRESENT_FIELD_NUMBER = 1;
    private boolean present_ = false;
    /**
     * <code>bool present = 1;</code>
     * @return The present.
     */
    @java.lang.Override
    public boolean getPresent() {
      return present_;
    }

    public static final int TIME_OF_LAST_DEPLOY_FIELD_NUMBER = 2;
    private com.google.protobuf.Timestamp timeOfLastDeploy_;
    /**
     * <code>.google.protobuf.Timestamp time_of_last_deploy = 2;</code>
     * @return Whether the timeOfLastDeploy field is set.
     */
    @java.lang.Override
    public boolean hasTimeOfLastDeploy() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>.google.protobuf.Timestamp time_of_last_deploy = 2;</code>
     * @return The timeOfLastDeploy.
     */
    @java.lang.Override
    public com.google.protobuf.Timestamp getTimeOfLastDeploy() {
      return timeOfLastDeploy_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : timeOfLastDeploy_;
    }
    /**
     * <code>.google.protobuf.Timestamp time_of_last_deploy = 2;</code>
     */
    @java.lang.Override
    public com.google.protobuf.TimestampOrBuilder getTimeOfLastDeployOrBuilder() {
      return timeOfLastDeploy_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : timeOfLastDeploy_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (present_ != false) {
        output.writeBool(1, present_);
      }
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeMessage(2, getTimeOfLastDeploy());
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (present_ != false) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(1, present_);
      }
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, getTimeOfLastDeploy());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof galaxy_repository.v1.GalaxyRepositoryOuterClass.GetLastDeployTimeReply)) {
        return super.equals(obj);
      }
      galaxy_repository.v1.GalaxyRepositoryOuterClass.GetLastDeployTimeReply other = (galaxy_repository.v1.GalaxyRepositoryOuterClass.GetLastDeployTimeReply) obj;

      if (getPresent()
          != other.getPresent()) return false;
      if (hasTimeOfLastDeploy() != other.hasTimeOfLastDeploy()) return false;
      if (hasTimeOfLastDeploy()) {
        if (!getTimeOfLastDeploy()
            .equals(other.getTimeOfLastDeploy())) return false;
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + PRESENT_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
          getPresent());
      if (hasTimeOfLastDeploy()) {
        hash = (37 * hash) + TIME_OF_LAST_DEPLOY_FIELD_NUMBER;
        hash = (53 * hash) + getTimeOfLastDeploy().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static galaxy_repository.v1.GalaxyRepositoryOuterClass.GetLastDeployTimeReply parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static galaxy_repository.v1.GalaxyRepositoryOuterClass.GetLastDeployTimeReply parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static galaxy_repository.v1.GalaxyRepositoryOuterClass.GetLastDeployTimeReply parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static galaxy_repository.v1.GalaxyRepositoryOuterClass.GetLastDeployTimeReply parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static galaxy_repository.v1.GalaxyRepositoryOuterClass.GetLastDeployTimeReply parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static galaxy_repository.v1.GalaxyRepositoryOuterClass.GetLastDeployTimeReply parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static galaxy_repository.v1.GalaxyRepositoryOuterClass.GetLastDeployTimeReply parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static galaxy_repository.v1.GalaxyRepositoryOuterClass.GetLastDeployTimeReply parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static galaxy_repository.v1.GalaxyRepositoryOuterClass.GetLastDeployTimeReply parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static galaxy_repository.v1.GalaxyRepositoryOuterClass.GetLastDeployTimeReply parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static galaxy_repository.v1.GalaxyRepositoryOuterClass.GetLastDeployTimeReply parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static galaxy_repository.v1.GalaxyRepositoryOuterClass.GetLastDeployTimeReply parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(galaxy_repository.v1.GalaxyRepositoryOuterClass.GetLastDeployTimeReply prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code galaxy_repository.v1.GetLastDeployTimeReply}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:galaxy_repository.v1.GetLastDeployTimeReply)
        galaxy_repository.v1.GalaxyRepositoryOuterClass.GetLastDeployTimeReplyOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return galaxy_repository.v1.GalaxyRepositoryOuterClass.internal_static_galaxy_repository_v1_GetLastDeployTimeReply_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return galaxy_repository.v1.GalaxyRepositoryOuterClass.internal_static_galaxy_repository_v1_GetLastDeployTimeReply_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                galaxy_repository.v1.GalaxyRepositoryOuterClass.GetLastDeployTimeReply.class, galaxy_repository.v1.GalaxyRepositoryOuterClass.GetLastDeployTimeReply.Builder.class);
      }

      // Construct using galaxy_repository.v1.GalaxyRepositoryOuterClass.GetLastDeployTimeReply.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage
                .alwaysUseFieldBuilders) {
          internalGetTimeOfLastDeployFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        present_ = false;
        timeOfLastDeploy_ = null;
        if (timeOfLastDeployBuilder_ != null) {
          timeOfLastDeployBuilder_.dispose();
          timeOfLastDeployBuilder_ = null;
        }
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return galaxy_repository.v1.GalaxyRepositoryOuterClass.internal_static_galaxy_repository_v1_GetLastDeployTimeReply_descriptor;
      }

      @java.lang.Override
      public galaxy_repository.v1.GalaxyRepositoryOuterClass.GetLastDeployTimeReply getDefaultInstanceForType() {
        return galaxy_repository.v1.GalaxyRepositoryOuterClass.GetLastDeployTimeReply.getDefaultInstance();
      }

      @java.lang.Override
      public galaxy_repository.v1.GalaxyRepositoryOuterClass.GetLastDeployTimeReply build() {
        galaxy_repository.v1.GalaxyRepositoryOuterClass.GetLastDeployTimeReply result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public galaxy_repository.v1.GalaxyRepositoryOuterClass.GetLastDeployTimeReply buildPartial() {
        galaxy_repository.v1.GalaxyRepositoryOuterClass.GetLastDeployTimeReply result = new galaxy_repository.v1.GalaxyRepositoryOuterClass.GetLastDeployTimeReply(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(galaxy_repository.v1.GalaxyRepositoryOuterClass.GetLastDeployTimeReply result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.present_ = present_;
        }
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.timeOfLastDeploy_ = timeOfLastDeployBuilder_ == null
              ? timeOfLastDeploy_
              : timeOfLastDeployBuilder_.build();
          to_bitField0_ |= 0x00000001;
        }
        result.bitField0_ |= to_bitField0_;
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof galaxy_repository.v1.GalaxyRepositoryOuterClass.GetLastDeployTimeReply) {
          return mergeFrom((galaxy_repository.v1.GalaxyRepositoryOuterClass.GetLastDeployTimeReply)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(galaxy_repository.v1.GalaxyRepositoryOuterClass.GetLastDeployTimeReply other) {
        if (other == galaxy_repository.v1.GalaxyRepositoryOuterClass.GetLastDeployTimeReply.getDefaultInstance()) return this;
        if (other.getPresent() != false) {
          setPresent(other.getPresent());
        }
        if (other.hasTimeOfLastDeploy()) {
          mergeTimeOfLastDeploy(other.getTimeOfLastDeploy());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 8: {
                present_ = input.readBool();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 18: {
                input.readMessage(
                    internalGetTimeOfLastDeployFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00000002;
                break;
              } // case 18
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private boolean present_ ;
      /**
       * <code>bool present = 1;</code>
       * @return The present.
       */
      @java.lang.Override
      public boolean getPresent() {
        return present_;
      }
      /**
       * <code>bool present = 1;</code>
       * @param value The present to set.
       * @return This builder for chaining.
       */
      public Builder setPresent(boolean value) {

        present_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>bool present = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearPresent() {
        bitField0_ = (bitField0_ & ~0x00000001);
        present_ = false;
        onChanged();
        return this;
      }

      private com.google.protobuf.Timestamp timeOfLastDeploy_;
      private com.google.protobuf.SingleFieldBuilder<
          com.google.protobuf.Timestamp, com.google.protobuf.Timestamp.Builder, com.google.protobuf.TimestampOrBuilder> timeOfLastDeployBuilder_;
      /**
       * <code>.google.protobuf.Timestamp time_of_last_deploy = 2;</code>
       * @return Whether the timeOfLastDeploy field is set.
       */
      public boolean hasTimeOfLastDeploy() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>.google.protobuf.Timestamp time_of_last_deploy = 2;</code>
       * @return The timeOfLastDeploy.
       */
      public com.google.protobuf.Timestamp getTimeOfLastDeploy() {
        if (timeOfLastDeployBuilder_ == null) {
          return timeOfLastDeploy_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : timeOfLastDeploy_;
        } else {
          return timeOfLastDeployBuilder_.getMessage();
        }
      }
      /**
       * <code>.google.protobuf.Timestamp time_of_last_deploy = 2;</code>
       */
      public Builder setTimeOfLastDeploy(com.google.protobuf.Timestamp value) {
        if (timeOfLastDeployBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          timeOfLastDeploy_ = value;
        } else {
          timeOfLastDeployBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>.google.protobuf.Timestamp time_of_last_deploy = 2;</code>
       */
      public Builder setTimeOfLastDeploy(
          com.google.protobuf.Timestamp.Builder builderForValue) {
        if (timeOfLastDeployBuilder_ == null) {
          timeOfLastDeploy_ = builderForValue.build();
        } else {
          timeOfLastDeployBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>.google.protobuf.Timestamp time_of_last_deploy = 2;</code>
       */
      public Builder mergeTimeOfLastDeploy(com.google.protobuf.Timestamp value) {
        if (timeOfLastDeployBuilder_ == null) {
          if (((bitField0_ & 0x00000002) != 0) &&
            timeOfLastDeploy_ != null &&
            timeOfLastDeploy_ != com.google.protobuf.Timestamp.getDefaultInstance()) {
            getTimeOfLastDeployBuilder().mergeFrom(value);
          } else {
            timeOfLastDeploy_ = value;
          }
        } else {
          timeOfLastDeployBuilder_.mergeFrom(value);
        }
        if (timeOfLastDeploy_ != null) {
          bitField0_ |= 0x00000002;
          onChanged();
        }
        return this;
      }
      /**
       * <code>.google.protobuf.Timestamp time_of_last_deploy = 2;</code>
       */
      public Builder clearTimeOfLastDeploy() {
        bitField0_ = (bitField0_ & ~0x00000002);
        timeOfLastDeploy_ = null;
        if (timeOfLastDeployBuilder_ != null) {
          timeOfLastDeployBuilder_.dispose();
          timeOfLastDeployBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <code>.google.protobuf.Timestamp time_of_last_deploy = 2;</code>
       */
      public com.google.protobuf.Timestamp.Builder getTimeOfLastDeployBuilder() {
        bitField0_ |= 0x00000002;
        onChanged();
        return internalGetTimeOfLastDeployFieldBuilder().getBuilder();
      }
      /**
       * <code>.google.protobuf.Timestamp time_of_last_deploy = 2;</code>
       */
      public com.google.protobuf.TimestampOrBuilder getTimeOfLastDeployOrBuilder() {
        if (timeOfLastDeployBuilder_ != null) {
          return timeOfLastDeployBuilder_.getMessageOrBuilder();
        } else {
          return timeOfLastDeploy_ == null ?
              com.google.protobuf.Timestamp.getDefaultInstance() : timeOfLastDeploy_;
        }
      }
      /**
       * <code>.google.protobuf.Timestamp time_of_last_deploy = 2;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          com.google.protobuf.Timestamp, com.google.protobuf.Timestamp.Builder, com.google.protobuf.TimestampOrBuilder> 
          internalGetTimeOfLastDeployFieldBuilder() {
        if (timeOfLastDeployBuilder_ == null) {
          timeOfLastDeployBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              com.google.protobuf.Timestamp, com.google.protobuf.Timestamp.Builder, com.google.protobuf.TimestampOrBuilder>(
                  getTimeOfLastDeploy(),
                  getParentForChildren(),
                  isClean());
          timeOfLastDeploy_ = null;
        }
        return timeOfLastDeployBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:galaxy_repository.v1.GetLastDeployTimeReply)
    }

    // @@protoc_insertion_point(class_scope:galaxy_repository.v1.GetLastDeployTimeReply)
    private static final galaxy_repository.v1.GalaxyRepositoryOuterClass.GetLastDeployTimeReply DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new galaxy_repository.v1.GalaxyRepositoryOuterClass.GetLastDeployTimeReply();
    }

    public static galaxy_repository.v1.GalaxyRepositoryOuterClass.GetLastDeployTimeReply getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<GetLastDeployTimeReply>
        PARSER = new com.google.protobuf.AbstractParser<GetLastDeployTimeReply>() {
      @java.lang.Override
      public GetLastDeployTimeReply parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<GetLastDeployTimeReply> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<GetLastDeployTimeReply> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public galaxy_repository.v1.GalaxyRepositoryOuterClass.GetLastDeployTimeReply getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface DiscoverHierarchyRequestOrBuilder extends
      // @@protoc_insertion_point(interface_extends:galaxy_repository.v1.DiscoverHierarchyRequest)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     * Maximum number of objects to return. The server applies its default when
     * unset and rejects non-positive values.
     * </pre>
     *
     * <code>int32 page_size = 1;</code>
     * @return The pageSize.
     */
    int getPageSize();

    /**
     * <pre>
     * Opaque token returned by a previous DiscoverHierarchy response.
     * </pre>
     *
     * <code>string page_token = 2;</code>
     * @return The pageToken.
     */
    java.lang.String getPageToken();
    /**
     * <pre>
     * Opaque token returned by a previous DiscoverHierarchy response.
     * </pre>
     *
     * <code>string page_token = 2;</code>
     * @return The bytes for pageToken.
     */
    com.google.protobuf.ByteString
        getPageTokenBytes();

    /**
     * <code>int32 root_gobject_id = 3;</code>
     * @return Whether the rootGobjectId field is set.
     */
    boolean hasRootGobjectId();
    /**
     * <code>int32 root_gobject_id = 3;</code>
     * @return The rootGobjectId.
     */
    int getRootGobjectId();

    /**
     * <code>string root_tag_name = 4;</code>
     * @return Whether the rootTagName field is set.
     */
    boolean hasRootTagName();
    /**
     * <code>string root_tag_name = 4;</code>
     * @return The rootTagName.
     */
    java.lang.String getRootTagName();
    /**
     * <code>string root_tag_name = 4;</code>
     * @return The bytes for rootTagName.
     */
    com.google.protobuf.ByteString
        getRootTagNameBytes();

    /**
     * <code>string root_contained_path = 5;</code>
     * @return Whether the rootContainedPath field is set.
     */
    boolean hasRootContainedPath();
    /**
     * <code>string root_contained_path = 5;</code>
     * @return The rootContainedPath.
     */
    java.lang.String getRootContainedPath();
    /**
     * <code>string root_contained_path = 5;</code>
     * @return The bytes for rootContainedPath.
     */
    com.google.protobuf.ByteString
        getRootContainedPathBytes();

    /**
     * <pre>
     * Optional. Cap on descendant depth from root. Zero returns only the root.
     * Unset means unlimited depth.
     * </pre>
     *
     * <code>.google.protobuf.Int32Value max_depth = 6;</code>
     * @return Whether the maxDepth field is set.
     */
    boolean hasMaxDepth();
    /**
     * <pre>
     * Optional. Cap on descendant depth from root. Zero returns only the root.
     * Unset means unlimited depth.
     * </pre>
     *
     * <code>.google.protobuf.Int32Value max_depth = 6;</code>
     * @return The maxDepth.
     */
    com.google.protobuf.Int32Value getMaxDepth();
    /**
     * <pre>
     * Optional. Cap on descendant depth from root. Zero returns only the root.
     * Unset means unlimited depth.
     * </pre>
     *
     * <code>.google.protobuf.Int32Value max_depth = 6;</code>
     */
    com.google.protobuf.Int32ValueOrBuilder getMaxDepthOrBuilder();

    /**
     * <pre>
     * Optional object category id filters.
     * </pre>
     *
     * <code>repeated int32 category_ids = 7;</code>
     * @return A list containing the categoryIds.
     */
    java.util.List<java.lang.Integer> getCategoryIdsList();
    /**
     * <pre>
     * Optional object category id filters.
     * </pre>
     *
     * <code>repeated int32 category_ids = 7;</code>
     * @return The count of categoryIds.
     */
    int getCategoryIdsCount();
    /**
     * <pre>
     * Optional object category id filters.
     * </pre>
     *
     * <code>repeated int32 category_ids = 7;</code>
     * @param index The index of the element to return.
     * @return The categoryIds at the given index.
     */
    int getCategoryIds(int index);

    /**
     * <pre>
     * Optional case-insensitive substring filters against template names.
     * </pre>
     *
     * <code>repeated string template_chain_contains = 8;</code>
     * @return A list containing the templateChainContains.
     */
    java.util.List<java.lang.String>
        getTemplateChainContainsList();
    /**
     * <pre>
     * Optional case-insensitive substring filters against template names.
     * </pre>
     *
     * <code>repeated string template_chain_contains = 8;</code>
     * @return The count of templateChainContains.
     */
    int getTemplateChainContainsCount();
    /**
     * <pre>
     * Optional case-insensitive substring filters against template names.
     * </pre>
     *
     * <code>repeated string template_chain_contains = 8;</code>
     * @param index The index of the element to return.
     * @return The templateChainContains at the given index.
     */
    java.lang.String getTemplateChainContains(int index);
    /**
     * <pre>
     * Optional case-insensitive substring filters against template names.
     * </pre>
     *
     * <code>repeated string template_chain_contains = 8;</code>
     * @param index The index of the value to return.
     * @return The bytes of the templateChainContains at the given index.
     */
    com.google.protobuf.ByteString
        getTemplateChainContainsBytes(int index);

    /**
     * <pre>
     * Optional anchored, case-insensitive glob over object tag_name.
     * </pre>
     *
     * <code>string tag_name_glob = 9;</code>
     * @return The tagNameGlob.
     */
    java.lang.String getTagNameGlob();
    /**
     * <pre>
     * Optional anchored, case-insensitive glob over object tag_name.
     * </pre>
     *
     * <code>string tag_name_glob = 9;</code>
     * @return The bytes for tagNameGlob.
     */
    com.google.protobuf.ByteString
        getTagNameGlobBytes();

    /**
     * <pre>
     * Optional. Unset or true includes attributes. False returns object skeletons.
     * </pre>
     *
     * <code>optional bool include_attributes = 10;</code>
     * @return Whether the includeAttributes field is set.
     */
    boolean hasIncludeAttributes();
    /**
     * <pre>
     * Optional. Unset or true includes attributes. False returns object skeletons.
     * </pre>
     *
     * <code>optional bool include_attributes = 10;</code>
     * @return The includeAttributes.
     */
    boolean getIncludeAttributes();

    /**
     * <pre>
     * Optional. Return only objects with at least one alarm-bearing attribute.
     * </pre>
     *
     * <code>bool alarm_bearing_only = 11;</code>
     * @return The alarmBearingOnly.
     */
    boolean getAlarmBearingOnly();

    /**
     * <pre>
     * Optional. Return only objects with at least one historized attribute.
     * </pre>
     *
     * <code>bool historized_only = 12;</code>
     * @return The historizedOnly.
     */
    boolean getHistorizedOnly();

    galaxy_repository.v1.GalaxyRepositoryOuterClass.DiscoverHierarchyRequest.RootCase getRootCase();
  }
  /**
   * Protobuf type {@code galaxy_repository.v1.DiscoverHierarchyRequest}
   */
  public static final class DiscoverHierarchyRequest extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:galaxy_repository.v1.DiscoverHierarchyRequest)
      DiscoverHierarchyRequestOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 1,
        /* suffix= */ "",
        "DiscoverHierarchyRequest");
    }
    // Use DiscoverHierarchyRequest.newBuilder() to construct.
    private DiscoverHierarchyRequest(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
    }
    private DiscoverHierarchyRequest() {
      pageToken_ = "";
      categoryIds_ = emptyIntList();
      templateChainContains_ =
          com.google.protobuf.LazyStringArrayList.emptyList();
      tagNameGlob_ = "";
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return galaxy_repository.v1.GalaxyRepositoryOuterClass.internal_static_galaxy_repository_v1_DiscoverHierarchyRequest_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return galaxy_repository.v1.GalaxyRepositoryOuterClass.internal_static_galaxy_repository_v1_DiscoverHierarchyRequest_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              galaxy_repository.v1.GalaxyRepositoryOuterClass.DiscoverHierarchyRequest.class, galaxy_repository.v1.GalaxyRepositoryOuterClass.DiscoverHierarchyRequest.Builder.class);
    }

    private int bitField0_;
    private int rootCase_ = 0;
    @SuppressWarnings("serial")
    private java.lang.Object root_;
    public enum RootCase
        implements com.google.protobuf.Internal.EnumLite,
            com.google.protobuf.AbstractMessage.InternalOneOfEnum {
      ROOT_GOBJECT_ID(3),
      ROOT_TAG_NAME(4),
      ROOT_CONTAINED_PATH(5),
      ROOT_NOT_SET(0);
      private final int value;
      private RootCase(int value) {
        this.value = value;
      }
      /**
       * @param value The number of the enum to look for.
       * @return The enum associated with the given number.
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static RootCase valueOf(int value) {
        return forNumber(value);
      }

      public static RootCase forNumber(int value) {
        switch (value) {
          case 3: return ROOT_GOBJECT_ID;
          case 4: return ROOT_TAG_NAME;
          case 5: return ROOT_CONTAINED_PATH;
          case 0: return ROOT_NOT_SET;
          default: return null;
        }
      }
      public int getNumber() {
        return this.value;
      }
    };

    public RootCase
    getRootCase() {
      return RootCase.forNumber(
          rootCase_);
    }

    public static final int PAGE_SIZE_FIELD_NUMBER = 1;
    private int pageSize_ = 0;
    /**
     * <pre>
     * Maximum number of objects to return. The server applies its default when
     * unset and rejects non-positive values.
     * </pre>
     *
     * <code>int32 page_size = 1;</code>
     * @return The pageSize.
     */
    @java.lang.Override
    public int getPageSize() {
      return pageSize_;
    }

    public static final int PAGE_TOKEN_FIELD_NUMBER = 2;
    @SuppressWarnings("serial")
    private volatile java.lang.Object pageToken_ = "";
    /**
     * <pre>
     * Opaque token returned by a previous DiscoverHierarchy response.
     * </pre>
     *
     * <code>string page_token = 2;</code>
     * @return The pageToken.
     */
    @java.lang.Override
    public java.lang.String getPageToken() {
      java.lang.Object ref = pageToken_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        pageToken_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * Opaque token returned by a previous DiscoverHierarchy response.
     * </pre>
     *
     * <code>string page_token = 2;</code>
     * @return The bytes for pageToken.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getPageTokenBytes() {
      java.lang.Object ref = pageToken_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        pageToken_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int ROOT_GOBJECT_ID_FIELD_NUMBER = 3;
    /**
     * <code>int32 root_gobject_id = 3;</code>
     * @return Whether the rootGobjectId field is set.
     */
    @java.lang.Override
    public boolean hasRootGobjectId() {
      return rootCase_ == 3;
    }
    /**
     * <code>int32 root_gobject_id = 3;</code>
     * @return The rootGobjectId.
     */
    @java.lang.Override
    public int getRootGobjectId() {
      if (rootCase_ == 3) {
        return (java.lang.Integer) root_;
      }
      return 0;
    }

    public static final int ROOT_TAG_NAME_FIELD_NUMBER = 4;
    /**
     * <code>string root_tag_name = 4;</code>
     * @return Whether the rootTagName field is set.
     */
    public boolean hasRootTagName() {
      return rootCase_ == 4;
    }
    /**
     * <code>string root_tag_name = 4;</code>
     * @return The rootTagName.
     */
    public java.lang.String getRootTagName() {
      java.lang.Object ref = "";
      if (rootCase_ == 4) {
        ref = root_;
      }
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (rootCase_ == 4) {
          root_ = s;
        }
        return s;
      }
    }
    /**
     * <code>string root_tag_name = 4;</code>
     * @return The bytes for rootTagName.
     */
    public com.google.protobuf.ByteString
        getRootTagNameBytes() {
      java.lang.Object ref = "";
      if (rootCase_ == 4) {
        ref = root_;
      }
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        if (rootCase_ == 4) {
          root_ = b;
        }
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int ROOT_CONTAINED_PATH_FIELD_NUMBER = 5;
    /**
     * <code>string root_contained_path = 5;</code>
     * @return Whether the rootContainedPath field is set.
     */
    public boolean hasRootContainedPath() {
      return rootCase_ == 5;
    }
    /**
     * <code>string root_contained_path = 5;</code>
     * @return The rootContainedPath.
     */
    public java.lang.String getRootContainedPath() {
      java.lang.Object ref = "";
      if (rootCase_ == 5) {
        ref = root_;
      }
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (rootCase_ == 5) {
          root_ = s;
        }
        return s;
      }
    }
    /**
     * <code>string root_contained_path = 5;</code>
     * @return The bytes for rootContainedPath.
     */
    public com.google.protobuf.ByteString
        getRootContainedPathBytes() {
      java.lang.Object ref = "";
      if (rootCase_ == 5) {
        ref = root_;
      }
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        if (rootCase_ == 5) {
          root_ = b;
        }
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int MAX_DEPTH_FIELD_NUMBER = 6;
    private com.google.protobuf.Int32Value maxDepth_;
    /**
     * <pre>
     * Optional. Cap on descendant depth from root. Zero returns only the root.
     * Unset means unlimited depth.
     * </pre>
     *
     * <code>.google.protobuf.Int32Value max_depth = 6;</code>
     * @return Whether the maxDepth field is set.
     */
    @java.lang.Override
    public boolean hasMaxDepth() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <pre>
     * Optional. Cap on descendant depth from root. Zero returns only the root.
     * Unset means unlimited depth.
     * </pre>
     *
     * <code>.google.protobuf.Int32Value max_depth = 6;</code>
     * @return The maxDepth.
     */
    @java.lang.Override
    public com.google.protobuf.Int32Value getMaxDepth() {
      return maxDepth_ == null ? com.google.protobuf.Int32Value.getDefaultInstance() : maxDepth_;
    }
    /**
     * <pre>
     * Optional. Cap on descendant depth from root. Zero returns only the root.
     * Unset means unlimited depth.
     * </pre>
     *
     * <code>.google.protobuf.Int32Value max_depth = 6;</code>
     */
    @java.lang.Override
    public com.google.protobuf.Int32ValueOrBuilder getMaxDepthOrBuilder() {
      return maxDepth_ == null ? com.google.protobuf.Int32Value.getDefaultInstance() : maxDepth_;
    }

    public static final int CATEGORY_IDS_FIELD_NUMBER = 7;
    @SuppressWarnings("serial")
    private com.google.protobuf.Internal.IntList categoryIds_ =
        emptyIntList();
    /**
     * <pre>
     * Optional object category id filters.
     * </pre>
     *
     * <code>repeated int32 category_ids = 7;</code>
     * @return A list containing the categoryIds.
     */
    @java.lang.Override
    public java.util.List<java.lang.Integer>
        getCategoryIdsList() {
      return categoryIds_;
    }
    /**
     * <pre>
     * Optional object category id filters.
     * </pre>
     *
     * <code>repeated int32 category_ids = 7;</code>
     * @return The count of categoryIds.
     */
    public int getCategoryIdsCount() {
      return categoryIds_.size();
    }
    /**
     * <pre>
     * Optional object category id filters.
     * </pre>
     *
     * <code>repeated int32 category_ids = 7;</code>
     * @param index The index of the element to return.
     * @return The categoryIds at the given index.
     */
    public int getCategoryIds(int index) {
      return categoryIds_.getInt(index);
    }
    private int categoryIdsMemoizedSerializedSize = -1;

    public static final int TEMPLATE_CHAIN_CONTAINS_FIELD_NUMBER = 8;
    @SuppressWarnings("serial")
    private com.google.protobuf.LazyStringArrayList templateChainContains_ =
        com.google.protobuf.LazyStringArrayList.emptyList();
    /**
     * <pre>
     * Optional case-insensitive substring filters against template names.
     * </pre>
     *
     * <code>repeated string template_chain_contains = 8;</code>
     * @return A list containing the templateChainContains.
     */
    public com.google.protobuf.ProtocolStringList
        getTemplateChainContainsList() {
      return templateChainContains_;
    }
    /**
     * <pre>
     * Optional case-insensitive substring filters against template names.
     * </pre>
     *
     * <code>repeated string template_chain_contains = 8;</code>
     * @return The count of templateChainContains.
     */
    public int getTemplateChainContainsCount() {
      return templateChainContains_.size();
    }
    /**
     * <pre>
     * Optional case-insensitive substring filters against template names.
     * </pre>
     *
     * <code>repeated string template_chain_contains = 8;</code>
     * @param index The index of the element to return.
     * @return The templateChainContains at the given index.
     */
    public java.lang.String getTemplateChainContains(int index) {
      return templateChainContains_.get(index);
    }
    /**
     * <pre>
     * Optional case-insensitive substring filters against template names.
     * </pre>
     *
     * <code>repeated string template_chain_contains = 8;</code>
     * @param index The index of the value to return.
     * @return The bytes of the templateChainContains at the given index.
     */
    public com.google.protobuf.ByteString
        getTemplateChainContainsBytes(int index) {
      return templateChainContains_.getByteString(index);
    }

    public static final int TAG_NAME_GLOB_FIELD_NUMBER = 9;
    @SuppressWarnings("serial")
    private volatile java.lang.Object tagNameGlob_ = "";
    /**
     * <pre>
     * Optional anchored, case-insensitive glob over object tag_name.
     * </pre>
     *
     * <code>string tag_name_glob = 9;</code>
     * @return The tagNameGlob.
     */
    @java.lang.Override
    public java.lang.String getTagNameGlob() {
      java.lang.Object ref = tagNameGlob_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        tagNameGlob_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * Optional anchored, case-insensitive glob over object tag_name.
     * </pre>
     *
     * <code>string tag_name_glob = 9;</code>
     * @return The bytes for tagNameGlob.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getTagNameGlobBytes() {
      java.lang.Object ref = tagNameGlob_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        tagNameGlob_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int INCLUDE_ATTRIBUTES_FIELD_NUMBER = 10;
    private boolean includeAttributes_ = false;
    /**
     * <pre>
     * Optional. Unset or true includes attributes. False returns object skeletons.
     * </pre>
     *
     * <code>optional bool include_attributes = 10;</code>
     * @return Whether the includeAttributes field is set.
     */
    @java.lang.Override
    public boolean hasIncludeAttributes() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <pre>
     * Optional. Unset or true includes attributes. False returns object skeletons.
     * </pre>
     *
     * <code>optional bool include_attributes = 10;</code>
     * @return The includeAttributes.
     */
    @java.lang.Override
    public boolean getIncludeAttributes() {
      return includeAttributes_;
    }

    public static final int ALARM_BEARING_ONLY_FIELD_NUMBER = 11;
    private boolean alarmBearingOnly_ = false;
    /**
     * <pre>
     * Optional. Return only objects with at least one alarm-bearing attribute.
     * </pre>
     *
     * <code>bool alarm_bearing_only = 11;</code>
     * @return The alarmBearingOnly.
     */
    @java.lang.Override
    public boolean getAlarmBearingOnly() {
      return alarmBearingOnly_;
    }

    public static final int HISTORIZED_ONLY_FIELD_NUMBER = 12;
    private boolean historizedOnly_ = false;
    /**
     * <pre>
     * Optional. Return only objects with at least one historized attribute.
     * </pre>
     *
     * <code>bool historized_only = 12;</code>
     * @return The historizedOnly.
     */
    @java.lang.Override
    public boolean getHistorizedOnly() {
      return historizedOnly_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (pageSize_ != 0) {
        output.writeInt32(1, pageSize_);
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(pageToken_)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 2, pageToken_);
      }
      if (rootCase_ == 3) {
        output.writeInt32(
            3, (int)((java.lang.Integer) root_));
      }
      if (rootCase_ == 4) {
        com.google.protobuf.GeneratedMessage.writeString(output, 4, root_);
      }
      if (rootCase_ == 5) {
        com.google.protobuf.GeneratedMessage.writeString(output, 5, root_);
      }
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeMessage(6, getMaxDepth());
      }
      if (getCategoryIdsList().size() > 0) {
        output.writeUInt32NoTag(58);
        output.writeUInt32NoTag(categoryIdsMemoizedSerializedSize);
      }
      for (int i = 0; i < categoryIds_.size(); i++) {
        output.writeInt32NoTag(categoryIds_.getInt(i));
      }
      for (int i = 0; i < templateChainContains_.size(); i++) {
        com.google.protobuf.GeneratedMessage.writeString(output, 8, templateChainContains_.getRaw(i));
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(tagNameGlob_)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 9, tagNameGlob_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeBool(10, includeAttributes_);
      }
      if (alarmBearingOnly_ != false) {
        output.writeBool(11, alarmBearingOnly_);
      }
      if (historizedOnly_ != false) {
        output.writeBool(12, historizedOnly_);
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (pageSize_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, pageSize_);
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(pageToken_)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(2, pageToken_);
      }
      if (rootCase_ == 3) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(
              3, (int)((java.lang.Integer) root_));
      }
      if (rootCase_ == 4) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(4, root_);
      }
      if (rootCase_ == 5) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(5, root_);
      }
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(6, getMaxDepth());
      }
      {
        int dataSize = 0;
        for (int i = 0; i < categoryIds_.size(); i++) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeInt32SizeNoTag(categoryIds_.getInt(i));
        }
        size += dataSize;
        if (!getCategoryIdsList().isEmpty()) {
          size += 1;
          size += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(dataSize);
        }
        categoryIdsMemoizedSerializedSize = dataSize;
      }
      {
        int dataSize = 0;
        for (int i = 0; i < templateChainContains_.size(); i++) {
          dataSize += computeStringSizeNoTag(templateChainContains_.getRaw(i));
        }
        size += dataSize;
        size += 1 * getTemplateChainContainsList().size();
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(tagNameGlob_)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(9, tagNameGlob_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(10, includeAttributes_);
      }
      if (alarmBearingOnly_ != false) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(11, alarmBearingOnly_);
      }
      if (historizedOnly_ != false) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(12, historizedOnly_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof galaxy_repository.v1.GalaxyRepositoryOuterClass.DiscoverHierarchyRequest)) {
        return super.equals(obj);
      }
      galaxy_repository.v1.GalaxyRepositoryOuterClass.DiscoverHierarchyRequest other = (galaxy_repository.v1.GalaxyRepositoryOuterClass.DiscoverHierarchyRequest) obj;

      if (getPageSize()
          != other.getPageSize()) return false;
      if (!getPageToken()
          .equals(other.getPageToken())) return false;
      if (hasMaxDepth() != other.hasMaxDepth()) return false;
      if (hasMaxDepth()) {
        if (!getMaxDepth()
            .equals(other.getMaxDepth())) return false;
      }
      if (!getCategoryIdsList()
          .equals(other.getCategoryIdsList())) return false;
      if (!getTemplateChainContainsList()
          .equals(other.getTemplateChainContainsList())) return false;
      if (!getTagNameGlob()
          .equals(other.getTagNameGlob())) return false;
      if (hasIncludeAttributes() != other.hasIncludeAttributes()) return false;
      if (hasIncludeAttributes()) {
        if (getIncludeAttributes()
            != other.getIncludeAttributes()) return false;
      }
      if (getAlarmBearingOnly()
          != other.getAlarmBearingOnly()) return false;
      if (getHistorizedOnly()
          != other.getHistorizedOnly()) return false;
      if (!getRootCase().equals(other.getRootCase())) return false;
      switch (rootCase_) {
        case 3:
          if (getRootGobjectId()
              != other.getRootGobjectId()) return false;
          break;
        case 4:
          if (!getRootTagName()
              .equals(other.getRootTagName())) return false;
          break;
        case 5:
          if (!getRootContainedPath()
              .equals(other.getRootContainedPath())) return false;
          break;
        case 0:
        default:
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + PAGE_SIZE_FIELD_NUMBER;
      hash = (53 * hash) + getPageSize();
      hash = (37 * hash) + PAGE_TOKEN_FIELD_NUMBER;
      hash = (53 * hash) + getPageToken().hashCode();
      if (hasMaxDepth()) {
        hash = (37 * hash) + MAX_DEPTH_FIELD_NUMBER;
        hash = (53 * hash) + getMaxDepth().hashCode();
      }
      if (getCategoryIdsCount() > 0) {
        hash = (37 * hash) + CATEGORY_IDS_FIELD_NUMBER;
        hash = (53 * hash) + getCategoryIdsList().hashCode();
      }
      if (getTemplateChainContainsCount() > 0) {
        hash = (37 * hash) + TEMPLATE_CHAIN_CONTAINS_FIELD_NUMBER;
        hash = (53 * hash) + getTemplateChainContainsList().hashCode();
      }
      hash = (37 * hash) + TAG_NAME_GLOB_FIELD_NUMBER;
      hash = (53 * hash) + getTagNameGlob().hashCode();
      if (hasIncludeAttributes()) {
        hash = (37 * hash) + INCLUDE_ATTRIBUTES_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
            getIncludeAttributes());
      }
      hash = (37 * hash) + ALARM_BEARING_ONLY_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
          getAlarmBearingOnly());
      hash = (37 * hash) + HISTORIZED_ONLY_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
          getHistorizedOnly());
      switch (rootCase_) {
        case 3:
          hash = (37 * hash) + ROOT_GOBJECT_ID_FIELD_NUMBER;
          hash = (53 * hash) + getRootGobjectId();
          break;
        case 4:
          hash = (37 * hash) + ROOT_TAG_NAME_FIELD_NUMBER;
          hash = (53 * hash) + getRootTagName().hashCode();
          break;
        case 5:
          hash = (37 * hash) + ROOT_CONTAINED_PATH_FIELD_NUMBER;
          hash = (53 * hash) + getRootContainedPath().hashCode();
          break;
        case 0:
        default:
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static galaxy_repository.v1.GalaxyRepositoryOuterClass.DiscoverHierarchyRequest parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static galaxy_repository.v1.GalaxyRepositoryOuterClass.DiscoverHierarchyRequest parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static galaxy_repository.v1.GalaxyRepositoryOuterClass.DiscoverHierarchyRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static galaxy_repository.v1.GalaxyRepositoryOuterClass.DiscoverHierarchyRequest parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static galaxy_repository.v1.GalaxyRepositoryOuterClass.DiscoverHierarchyRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static galaxy_repository.v1.GalaxyRepositoryOuterClass.DiscoverHierarchyRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static galaxy_repository.v1.GalaxyRepositoryOuterClass.DiscoverHierarchyRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static galaxy_repository.v1.GalaxyRepositoryOuterClass.DiscoverHierarchyRequest parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static galaxy_repository.v1.GalaxyRepositoryOuterClass.DiscoverHierarchyRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static galaxy_repository.v1.GalaxyRepositoryOuterClass.DiscoverHierarchyRequest parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static galaxy_repository.v1.GalaxyRepositoryOuterClass.DiscoverHierarchyRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static galaxy_repository.v1.GalaxyRepositoryOuterClass.DiscoverHierarchyRequest parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(galaxy_repository.v1.GalaxyRepositoryOuterClass.DiscoverHierarchyRequest prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code galaxy_repository.v1.DiscoverHierarchyRequest}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:galaxy_repository.v1.DiscoverHierarchyRequest)
        galaxy_repository.v1.GalaxyRepositoryOuterClass.DiscoverHierarchyRequestOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return galaxy_repository.v1.GalaxyRepositoryOuterClass.internal_static_galaxy_repository_v1_DiscoverHierarchyRequest_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return galaxy_repository.v1.GalaxyRepositoryOuterClass.internal_static_galaxy_repository_v1_DiscoverHierarchyRequest_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                galaxy_repository.v1.GalaxyRepositoryOuterClass.DiscoverHierarchyRequest.class, galaxy_repository.v1.GalaxyRepositoryOuterClass.DiscoverHierarchyRequest.Builder.class);
      }

      // Construct using galaxy_repository.v1.GalaxyRepositoryOuterClass.DiscoverHierarchyRequest.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage
                .alwaysUseFieldBuilders) {
          internalGetMaxDepthFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        pageSize_ = 0;
        pageToken_ = "";
        maxDepth_ = null;
        if (maxDepthBuilder_ != null) {
          maxDepthBuilder_.dispose();
          maxDepthBuilder_ = null;
        }
        categoryIds_ = emptyIntList();
        templateChainContains_ =
            com.google.protobuf.LazyStringArrayList.emptyList();
        tagNameGlob_ = "";
        includeAttributes_ = false;
        alarmBearingOnly_ = false;
        historizedOnly_ = false;
        rootCase_ = 0;
        root_ = null;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return galaxy_repository.v1.GalaxyRepositoryOuterClass.internal_static_galaxy_repository_v1_DiscoverHierarchyRequest_descriptor;
      }

      @java.lang.Override
      public galaxy_repository.v1.GalaxyRepositoryOuterClass.DiscoverHierarchyRequest getDefaultInstanceForType() {
        return galaxy_repository.v1.GalaxyRepositoryOuterClass.DiscoverHierarchyRequest.getDefaultInstance();
      }

      @java.lang.Override
      public galaxy_repository.v1.GalaxyRepositoryOuterClass.DiscoverHierarchyRequest build() {
        galaxy_repository.v1.GalaxyRepositoryOuterClass.DiscoverHierarchyRequest result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public galaxy_repository.v1.GalaxyRepositoryOuterClass.DiscoverHierarchyRequest buildPartial() {
        galaxy_repository.v1.GalaxyRepositoryOuterClass.DiscoverHierarchyRequest result = new galaxy_repository.v1.GalaxyRepositoryOuterClass.DiscoverHierarchyRequest(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        buildPartialOneofs(result);
        onBuilt();
        return result;
      }

      private void buildPartial0(galaxy_repository.v1.GalaxyRepositoryOuterClass.DiscoverHierarchyRequest result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.pageSize_ = pageSize_;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.pageToken_ = pageToken_;
        }
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000020) != 0)) {
          result.maxDepth_ = maxDepthBuilder_ == null
              ? maxDepth_
              : maxDepthBuilder_.build();
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000040) != 0)) {
          categoryIds_.makeImmutable();
          result.categoryIds_ = categoryIds_;
        }
        if (((from_bitField0_ & 0x00000080) != 0)) {
          templateChainContains_.makeImmutable();
          result.templateChainContains_ = templateChainContains_;
        }
        if (((from_bitField0_ & 0x00000100) != 0)) {
          result.tagNameGlob_ = tagNameGlob_;
        }
        if (((from_bitField0_ & 0x00000200) != 0)) {
          result.includeAttributes_ = includeAttributes_;
          to_bitField0_ |= 0x00000002;
        }
        if (((from_bitField0_ & 0x00000400) != 0)) {
          result.alarmBearingOnly_ = alarmBearingOnly_;
        }
        if (((from_bitField0_ & 0x00000800) != 0)) {
          result.historizedOnly_ = historizedOnly_;
        }
        result.bitField0_ |= to_bitField0_;
      }

      private void buildPartialOneofs(galaxy_repository.v1.GalaxyRepositoryOuterClass.DiscoverHierarchyRequest result) {
        result.rootCase_ = rootCase_;
        result.root_ = this.root_;
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof galaxy_repository.v1.GalaxyRepositoryOuterClass.DiscoverHierarchyRequest) {
          return mergeFrom((galaxy_repository.v1.GalaxyRepositoryOuterClass.DiscoverHierarchyRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(galaxy_repository.v1.GalaxyRepositoryOuterClass.DiscoverHierarchyRequest other) {
        if (other == galaxy_repository.v1.GalaxyRepositoryOuterClass.DiscoverHierarchyRequest.getDefaultInstance()) return this;
        if (other.getPageSize() != 0) {
          setPageSize(other.getPageSize());
        }
        if (!other.getPageToken().isEmpty()) {
          pageToken_ = other.pageToken_;
          bitField0_ |= 0x00000002;
          onChanged();
        }
        if (other.hasMaxDepth()) {
          mergeMaxDepth(other.getMaxDepth());
        }
        if (!other.categoryIds_.isEmpty()) {
          if (categoryIds_.isEmpty()) {
            categoryIds_ = other.categoryIds_;
            categoryIds_.makeImmutable();
            bitField0_ |= 0x00000040;
          } else {
            ensureCategoryIdsIsMutable();
            categoryIds_.addAll(other.categoryIds_);
          }
          onChanged();
        }
        if (!other.templateChainContains_.isEmpty()) {
          if (templateChainContains_.isEmpty()) {
            templateChainContains_ = other.templateChainContains_;
            bitField0_ |= 0x00000080;
          } else {
            ensureTemplateChainContainsIsMutable();
            templateChainContains_.addAll(other.templateChainContains_);
          }
          onChanged();
        }
        if (!other.getTagNameGlob().isEmpty()) {
          tagNameGlob_ = other.tagNameGlob_;
          bitField0_ |= 0x00000100;
          onChanged();
        }
        if (other.hasIncludeAttributes()) {
          setIncludeAttributes(other.getIncludeAttributes());
        }
        if (other.getAlarmBearingOnly() != false) {
          setAlarmBearingOnly(other.getAlarmBearingOnly());
        }
        if (other.getHistorizedOnly() != false) {
          setHistorizedOnly(other.getHistorizedOnly());
        }
        switch (other.getRootCase()) {
          case ROOT_GOBJECT_ID: {
            setRootGobjectId(other.getRootGobjectId());
            break;
          }
          case ROOT_TAG_NAME: {
            rootCase_ = 4;
            root_ = other.root_;
            onChanged();
            break;
          }
          case ROOT_CONTAINED_PATH: {
            rootCase_ = 5;
            root_ = other.root_;
            onChanged();
            break;
          }
          case ROOT_NOT_SET: {
            break;
          }
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 8: {
                pageSize_ = input.readInt32();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 18: {
                pageToken_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000002;
                break;
              } // case 18
              case 24: {
                root_ = input.readInt32();
                rootCase_ = 3;
                break;
              } // case 24
              case 34: {
                java.lang.String s = input.readStringRequireUtf8();
                rootCase_ = 4;
                root_ = s;
                break;
              } // case 34
              case 42: {
                java.lang.String s = input.readStringRequireUtf8();
                rootCase_ = 5;
                root_ = s;
                break;
              } // case 42
              case 50: {
                input.readMessage(
                    internalGetMaxDepthFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00000020;
                break;
              } // case 50
              case 56: {
                int v = input.readInt32();
                ensureCategoryIdsIsMutable();
                categoryIds_.addInt(v);
                break;
              } // case 56
              case 58: {
                int length = input.readRawVarint32();
                int limit = input.pushLimit(length);
                ensureCategoryIdsIsMutable();
                while (input.getBytesUntilLimit() > 0) {
                  categoryIds_.addInt(input.readInt32());
                }
                input.popLimit(limit);
                break;
              } // case 58
              case 66: {
                java.lang.String s = input.readStringRequireUtf8();
                ensureTemplateChainContainsIsMutable();
                templateChainContains_.add(s);
                break;
              } // case 66
              case 74: {
                tagNameGlob_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000100;
                break;
              } // case 74
              case 80: {
                includeAttributes_ = input.readBool();
                bitField0_ |= 0x00000200;
                break;
              } // case 80
              case 88: {
                alarmBearingOnly_ = input.readBool();
                bitField0_ |= 0x00000400;
                break;
              } // case 88
              case 96: {
                historizedOnly_ = input.readBool();
                bitField0_ |= 0x00000800;
                break;
              } // case 96
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int rootCase_ = 0;
      private java.lang.Object root_;
      public RootCase
          getRootCase() {
        return RootCase.forNumber(
            rootCase_);
      }

      public Builder clearRoot() {
        rootCase_ = 0;
        root_ = null;
        onChanged();
        return this;
      }

      private int bitField0_;

      private int pageSize_ ;
      /**
       * <pre>
       * Maximum number of objects to return. The server applies its default when
       * unset and rejects non-positive values.
       * </pre>
       *
       * <code>int32 page_size = 1;</code>
       * @return The pageSize.
       */
      @java.lang.Override
      public int getPageSize() {
        return pageSize_;
      }
      /**
       * <pre>
       * Maximum number of objects to return. The server applies its default when
       * unset and rejects non-positive values.
       * </pre>
       *
       * <code>int32 page_size = 1;</code>
       * @param value The pageSize to set.
       * @return This builder for chaining.
       */
      public Builder setPageSize(int value) {

        pageSize_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Maximum number of objects to return. The server applies its default when
       * unset and rejects non-positive values.
       * </pre>
       *
       * <code>int32 page_size = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearPageSize() {
        bitField0_ = (bitField0_ & ~0x00000001);
        pageSize_ = 0;
        onChanged();
        return this;
      }

      private java.lang.Object pageToken_ = "";
      /**
       * <pre>
       * Opaque token returned by a previous DiscoverHierarchy response.
       * </pre>
       *
       * <code>string page_token = 2;</code>
       * @return The pageToken.
       */
      public java.lang.String getPageToken() {
        java.lang.Object ref = pageToken_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          pageToken_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * Opaque token returned by a previous DiscoverHierarchy response.
       * </pre>
       *
       * <code>string page_token = 2;</code>
       * @return The bytes for pageToken.
       */
      public com.google.protobuf.ByteString
          getPageTokenBytes() {
        java.lang.Object ref = pageToken_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          pageToken_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * Opaque token returned by a previous DiscoverHierarchy response.
       * </pre>
       *
       * <code>string page_token = 2;</code>
       * @param value The pageToken to set.
       * @return This builder for chaining.
       */
      public Builder setPageToken(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        pageToken_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Opaque token returned by a previous DiscoverHierarchy response.
       * </pre>
       *
       * <code>string page_token = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearPageToken() {
        pageToken_ = getDefaultInstance().getPageToken();
        bitField0_ = (bitField0_ & ~0x00000002);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Opaque token returned by a previous DiscoverHierarchy response.
       * </pre>
       *
       * <code>string page_token = 2;</code>
       * @param value The bytes for pageToken to set.
       * @return This builder for chaining.
       */
      public Builder setPageTokenBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        pageToken_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }

      /**
       * <code>int32 root_gobject_id = 3;</code>
       * @return Whether the rootGobjectId field is set.
       */
      public boolean hasRootGobjectId() {
        return rootCase_ == 3;
      }
      /**
       * <code>int32 root_gobject_id = 3;</code>
       * @return The rootGobjectId.
       */
      public int getRootGobjectId() {
        if (rootCase_ == 3) {
          return (java.lang.Integer) root_;
        }
        return 0;
      }
      /**
       * <code>int32 root_gobject_id = 3;</code>
       * @param value The rootGobjectId to set.
       * @return This builder for chaining.
       */
      public Builder setRootGobjectId(int value) {

        rootCase_ = 3;
        root_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>int32 root_gobject_id = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearRootGobjectId() {
        if (rootCase_ == 3) {
          rootCase_ = 0;
          root_ = null;
          onChanged();
        }
        return this;
      }

      /**
       * <code>string root_tag_name = 4;</code>
       * @return Whether the rootTagName field is set.
       */
      @java.lang.Override
      public boolean hasRootTagName() {
        return rootCase_ == 4;
      }
      /**
       * <code>string root_tag_name = 4;</code>
       * @return The rootTagName.
       */
      @java.lang.Override
      public java.lang.String getRootTagName() {
        java.lang.Object ref = "";
        if (rootCase_ == 4) {
          ref = root_;
        }
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (rootCase_ == 4) {
            root_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>string root_tag_name = 4;</code>
       * @return The bytes for rootTagName.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getRootTagNameBytes() {
        java.lang.Object ref = "";
        if (rootCase_ == 4) {
          ref = root_;
        }
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          if (rootCase_ == 4) {
            root_ = b;
          }
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string root_tag_name = 4;</code>
       * @param value The rootTagName to set.
       * @return This builder for chaining.
       */
      public Builder setRootTagName(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        rootCase_ = 4;
        root_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>string root_tag_name = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearRootTagName() {
        if (rootCase_ == 4) {
          rootCase_ = 0;
          root_ = null;
          onChanged();
        }
        return this;
      }
      /**
       * <code>string root_tag_name = 4;</code>
       * @param value The bytes for rootTagName to set.
       * @return This builder for chaining.
       */
      public Builder setRootTagNameBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        rootCase_ = 4;
        root_ = value;
        onChanged();
        return this;
      }

      /**
       * <code>string root_contained_path = 5;</code>
       * @return Whether the rootContainedPath field is set.
       */
      @java.lang.Override
      public boolean hasRootContainedPath() {
        return rootCase_ == 5;
      }
      /**
       * <code>string root_contained_path = 5;</code>
       * @return The rootContainedPath.
       */
      @java.lang.Override
      public java.lang.String getRootContainedPath() {
        java.lang.Object ref = "";
        if (rootCase_ == 5) {
          ref = root_;
        }
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (rootCase_ == 5) {
            root_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>string root_contained_path = 5;</code>
       * @return The bytes for rootContainedPath.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getRootContainedPathBytes() {
        java.lang.Object ref = "";
        if (rootCase_ == 5) {
          ref = root_;
        }
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          if (rootCase_ == 5) {
            root_ = b;
          }
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string root_contained_path = 5;</code>
       * @param value The rootContainedPath to set.
       * @return This builder for chaining.
       */
      public Builder setRootContainedPath(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        rootCase_ = 5;
        root_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>string root_contained_path = 5;</code>
       * @return This builder for chaining.
       */
      public Builder clearRootContainedPath() {
        if (rootCase_ == 5) {
          rootCase_ = 0;
          root_ = null;
          onChanged();
        }
        return this;
      }
      /**
       * <code>string root_contained_path = 5;</code>
       * @param value The bytes for rootContainedPath to set.
       * @return This builder for chaining.
       */
      public Builder setRootContainedPathBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        rootCase_ = 5;
        root_ = value;
        onChanged();
        return this;
      }

      private com.google.protobuf.Int32Value maxDepth_;
      private com.google.protobuf.SingleFieldBuilder<
          com.google.protobuf.Int32Value, com.google.protobuf.Int32Value.Builder, com.google.protobuf.Int32ValueOrBuilder> maxDepthBuilder_;
      /**
       * <pre>
       * Optional. Cap on descendant depth from root. Zero returns only the root.
       * Unset means unlimited depth.
       * </pre>
       *
       * <code>.google.protobuf.Int32Value max_depth = 6;</code>
       * @return Whether the maxDepth field is set.
       */
      public boolean hasMaxDepth() {
        return ((bitField0_ & 0x00000020) != 0);
      }
      /**
       * <pre>
       * Optional. Cap on descendant depth from root. Zero returns only the root.
       * Unset means unlimited depth.
       * </pre>
       *
       * <code>.google.protobuf.Int32Value max_depth = 6;</code>
       * @return The maxDepth.
       */
      public com.google.protobuf.Int32Value getMaxDepth() {
        if (maxDepthBuilder_ == null) {
          return maxDepth_ == null ? com.google.protobuf.Int32Value.getDefaultInstance() : maxDepth_;
        } else {
          return maxDepthBuilder_.getMessage();
        }
      }
      /**
       * <pre>
       * Optional. Cap on descendant depth from root. Zero returns only the root.
       * Unset means unlimited depth.
       * </pre>
       *
       * <code>.google.protobuf.Int32Value max_depth = 6;</code>
       */
      public Builder setMaxDepth(com.google.protobuf.Int32Value value) {
        if (maxDepthBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          maxDepth_ = value;
        } else {
          maxDepthBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000020;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Optional. Cap on descendant depth from root. Zero returns only the root.
       * Unset means unlimited depth.
       * </pre>
       *
       * <code>.google.protobuf.Int32Value max_depth = 6;</code>
       */
      public Builder setMaxDepth(
          com.google.protobuf.Int32Value.Builder builderForValue) {
        if (maxDepthBuilder_ == null) {
          maxDepth_ = builderForValue.build();
        } else {
          maxDepthBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000020;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Optional. Cap on descendant depth from root. Zero returns only the root.
       * Unset means unlimited depth.
       * </pre>
       *
       * <code>.google.protobuf.Int32Value max_depth = 6;</code>
       */
      public Builder mergeMaxDepth(com.google.protobuf.Int32Value value) {
        if (maxDepthBuilder_ == null) {
          if (((bitField0_ & 0x00000020) != 0) &&
            maxDepth_ != null &&
            maxDepth_ != com.google.protobuf.Int32Value.getDefaultInstance()) {
            getMaxDepthBuilder().mergeFrom(value);
          } else {
            maxDepth_ = value;
          }
        } else {
          maxDepthBuilder_.mergeFrom(value);
        }
        if (maxDepth_ != null) {
          bitField0_ |= 0x00000020;
          onChanged();
        }
        return this;
      }
      /**
       * <pre>
       * Optional. Cap on descendant depth from root. Zero returns only the root.
       * Unset means unlimited depth.
       * </pre>
       *
       * <code>.google.protobuf.Int32Value max_depth = 6;</code>
       */
      public Builder clearMaxDepth() {
        bitField0_ = (bitField0_ & ~0x00000020);
        maxDepth_ = null;
        if (maxDepthBuilder_ != null) {
          maxDepthBuilder_.dispose();
          maxDepthBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Optional. Cap on descendant depth from root. Zero returns only the root.
       * Unset means unlimited depth.
       * </pre>
       *
       * <code>.google.protobuf.Int32Value max_depth = 6;</code>
       */
      public com.google.protobuf.Int32Value.Builder getMaxDepthBuilder() {
        bitField0_ |= 0x00000020;
        onChanged();
        return internalGetMaxDepthFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       * Optional. Cap on descendant depth from root. Zero returns only the root.
       * Unset means unlimited depth.
       * </pre>
       *
       * <code>.google.protobuf.Int32Value max_depth = 6;</code>
       */
      public com.google.protobuf.Int32ValueOrBuilder getMaxDepthOrBuilder() {
        if (maxDepthBuilder_ != null) {
          return maxDepthBuilder_.getMessageOrBuilder();
        } else {
          return maxDepth_ == null ?
              com.google.protobuf.Int32Value.getDefaultInstance() : maxDepth_;
        }
      }
      /**
       * <pre>
       * Optional. Cap on descendant depth from root. Zero returns only the root.
       * Unset means unlimited depth.
       * </pre>
       *
       * <code>.google.protobuf.Int32Value max_depth = 6;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          com.google.protobuf.Int32Value, com.google.protobuf.Int32Value.Builder, com.google.protobuf.Int32ValueOrBuilder> 
          internalGetMaxDepthFieldBuilder() {
        if (maxDepthBuilder_ == null) {
          maxDepthBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              com.google.protobuf.Int32Value, com.google.protobuf.Int32Value.Builder, com.google.protobuf.Int32ValueOrBuilder>(
                  getMaxDepth(),
                  getParentForChildren(),
                  isClean());
          maxDepth_ = null;
        }
        return maxDepthBuilder_;
      }

      private com.google.protobuf.Internal.IntList categoryIds_ = emptyIntList();
      private void ensureCategoryIdsIsMutable() {
        if (!categoryIds_.isModifiable()) {
          categoryIds_ = makeMutableCopy(categoryIds_);
        }
        bitField0_ |= 0x00000040;
      }
      /**
       * <pre>
       * Optional object category id filters.
       * </pre>
       *
       * <code>repeated int32 category_ids = 7;</code>
       * @return A list containing the categoryIds.
       */
      public java.util.List<java.lang.Integer>
          getCategoryIdsList() {
        categoryIds_.makeImmutable();
        return categoryIds_;
      }
      /**
       * <pre>
       * Optional object category id filters.
       * </pre>
       *
       * <code>repeated int32 category_ids = 7;</code>
       * @return The count of categoryIds.
       */
      public int getCategoryIdsCount() {
        return categoryIds_.size();
      }
      /**
       * <pre>
       * Optional object category id filters.
       * </pre>
       *
       * <code>repeated int32 category_ids = 7;</code>
       * @param index The index of the element to return.
       * @return The categoryIds at the given index.
       */
      public int getCategoryIds(int index) {
        return categoryIds_.getInt(index);
      }
      /**
       * <pre>
       * Optional object category id filters.
       * </pre>
       *
       * <code>repeated int32 category_ids = 7;</code>
       * @param index The index to set the value at.
       * @param value The categoryIds to set.
       * @return This builder for chaining.
       */
      public Builder setCategoryIds(
          int index, int value) {

        ensureCategoryIdsIsMutable();
        categoryIds_.setInt(index, value);
        bitField0_ |= 0x00000040;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Optional object category id filters.
       * </pre>
       *
       * <code>repeated int32 category_ids = 7;</code>
       * @param value The categoryIds to add.
       * @return This builder for chaining.
       */
      public Builder addCategoryIds(int value) {

        ensureCategoryIdsIsMutable();
        categoryIds_.addInt(value);
        bitField0_ |= 0x00000040;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Optional object category id filters.
       * </pre>
       *
       * <code>repeated int32 category_ids = 7;</code>
       * @param values The categoryIds to add.
       * @return This builder for chaining.
       */
      public Builder addAllCategoryIds(
          java.lang.Iterable<? extends java.lang.Integer> values) {
        ensureCategoryIdsIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, categoryIds_);
        bitField0_ |= 0x00000040;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Optional object category id filters.
       * </pre>
       *
       * <code>repeated int32 category_ids = 7;</code>
       * @return This builder for chaining.
       */
      public Builder clearCategoryIds() {
        categoryIds_ = emptyIntList();
        bitField0_ = (bitField0_ & ~0x00000040);
        onChanged();
        return this;
      }

      private com.google.protobuf.LazyStringArrayList templateChainContains_ =
          com.google.protobuf.LazyStringArrayList.emptyList();
      private void ensureTemplateChainContainsIsMutable() {
        if (!templateChainContains_.isModifiable()) {
          templateChainContains_ = new com.google.protobuf.LazyStringArrayList(templateChainContains_);
        }
        bitField0_ |= 0x00000080;
      }
      /**
       * <pre>
       * Optional case-insensitive substring filters against template names.
       * </pre>
       *
       * <code>repeated string template_chain_contains = 8;</code>
       * @return A list containing the templateChainContains.
       */
      public com.google.protobuf.ProtocolStringList
          getTemplateChainContainsList() {
        templateChainContains_.makeImmutable();
        return templateChainContains_;
      }
      /**
       * <pre>
       * Optional case-insensitive substring filters against template names.
       * </pre>
       *
       * <code>repeated string template_chain_contains = 8;</code>
       * @return The count of templateChainContains.
       */
      public int getTemplateChainContainsCount() {
        return templateChainContains_.size();
      }
      /**
       * <pre>
       * Optional case-insensitive substring filters against template names.
       * </pre>
       *
       * <code>repeated string template_chain_contains = 8;</code>
       * @param index The index of the element to return.
       * @return The templateChainContains at the given index.
       */
      public java.lang.String getTemplateChainContains(int index) {
        return templateChainContains_.get(index);
      }
      /**
       * <pre>
       * Optional case-insensitive substring filters against template names.
       * </pre>
       *
       * <code>repeated string template_chain_contains = 8;</code>
       * @param index The index of the value to return.
       * @return The bytes of the templateChainContains at the given index.
       */
      public com.google.protobuf.ByteString
          getTemplateChainContainsBytes(int index) {
        return templateChainContains_.getByteString(index);
      }
      /**
       * <pre>
       * Optional case-insensitive substring filters against template names.
       * </pre>
       *
       * <code>repeated string template_chain_contains = 8;</code>
       * @param index The index to set the value at.
       * @param value The templateChainContains to set.
       * @return This builder for chaining.
       */
      public Builder setTemplateChainContains(
          int index, java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        ensureTemplateChainContainsIsMutable();
        templateChainContains_.set(index, value);
        bitField0_ |= 0x00000080;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Optional case-insensitive substring filters against template names.
       * </pre>
       *
       * <code>repeated string template_chain_contains = 8;</code>
       * @param value The templateChainContains to add.
       * @return This builder for chaining.
       */
      public Builder addTemplateChainContains(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        ensureTemplateChainContainsIsMutable();
        templateChainContains_.add(value);
        bitField0_ |= 0x00000080;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Optional case-insensitive substring filters against template names.
       * </pre>
       *
       * <code>repeated string template_chain_contains = 8;</code>
       * @param values The templateChainContains to add.
       * @return This builder for chaining.
       */
      public Builder addAllTemplateChainContains(
          java.lang.Iterable<java.lang.String> values) {
        ensureTemplateChainContainsIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, templateChainContains_);
        bitField0_ |= 0x00000080;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Optional case-insensitive substring filters against template names.
       * </pre>
       *
       * <code>repeated string template_chain_contains = 8;</code>
       * @return This builder for chaining.
       */
      public Builder clearTemplateChainContains() {
        templateChainContains_ =
          com.google.protobuf.LazyStringArrayList.emptyList();
        bitField0_ = (bitField0_ & ~0x00000080);;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Optional case-insensitive substring filters against template names.
       * </pre>
       *
       * <code>repeated string template_chain_contains = 8;</code>
       * @param value The bytes of the templateChainContains to add.
       * @return This builder for chaining.
       */
      public Builder addTemplateChainContainsBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        ensureTemplateChainContainsIsMutable();
        templateChainContains_.add(value);
        bitField0_ |= 0x00000080;
        onChanged();
        return this;
      }

      private java.lang.Object tagNameGlob_ = "";
      /**
       * <pre>
       * Optional anchored, case-insensitive glob over object tag_name.
       * </pre>
       *
       * <code>string tag_name_glob = 9;</code>
       * @return The tagNameGlob.
       */
      public java.lang.String getTagNameGlob() {
        java.lang.Object ref = tagNameGlob_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          tagNameGlob_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * Optional anchored, case-insensitive glob over object tag_name.
       * </pre>
       *
       * <code>string tag_name_glob = 9;</code>
       * @return The bytes for tagNameGlob.
       */
      public com.google.protobuf.ByteString
          getTagNameGlobBytes() {
        java.lang.Object ref = tagNameGlob_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          tagNameGlob_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * Optional anchored, case-insensitive glob over object tag_name.
       * </pre>
       *
       * <code>string tag_name_glob = 9;</code>
       * @param value The tagNameGlob to set.
       * @return This builder for chaining.
       */
      public Builder setTagNameGlob(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        tagNameGlob_ = value;
        bitField0_ |= 0x00000100;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Optional anchored, case-insensitive glob over object tag_name.
       * </pre>
       *
       * <code>string tag_name_glob = 9;</code>
       * @return This builder for chaining.
       */
      public Builder clearTagNameGlob() {
        tagNameGlob_ = getDefaultInstance().getTagNameGlob();
        bitField0_ = (bitField0_ & ~0x00000100);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Optional anchored, case-insensitive glob over object tag_name.
       * </pre>
       *
       * <code>string tag_name_glob = 9;</code>
       * @param value The bytes for tagNameGlob to set.
       * @return This builder for chaining.
       */
      public Builder setTagNameGlobBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        tagNameGlob_ = value;
        bitField0_ |= 0x00000100;
        onChanged();
        return this;
      }

      private boolean includeAttributes_ ;
      /**
       * <pre>
       * Optional. Unset or true includes attributes. False returns object skeletons.
       * </pre>
       *
       * <code>optional bool include_attributes = 10;</code>
       * @return Whether the includeAttributes field is set.
       */
      @java.lang.Override
      public boolean hasIncludeAttributes() {
        return ((bitField0_ & 0x00000200) != 0);
      }
      /**
       * <pre>
       * Optional. Unset or true includes attributes. False returns object skeletons.
       * </pre>
       *
       * <code>optional bool include_attributes = 10;</code>
       * @return The includeAttributes.
       */
      @java.lang.Override
      public boolean getIncludeAttributes() {
        return includeAttributes_;
      }
      /**
       * <pre>
       * Optional. Unset or true includes attributes. False returns object skeletons.
       * </pre>
       *
       * <code>optional bool include_attributes = 10;</code>
       * @param value The includeAttributes to set.
       * @return This builder for chaining.
       */
      public Builder setIncludeAttributes(boolean value) {

        includeAttributes_ = value;
        bitField0_ |= 0x00000200;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Optional. Unset or true includes attributes. False returns object skeletons.
       * </pre>
       *
       * <code>optional bool include_attributes = 10;</code>
       * @return This builder for chaining.
       */
      public Builder clearIncludeAttributes() {
        bitField0_ = (bitField0_ & ~0x00000200);
        includeAttributes_ = false;
        onChanged();
        return this;
      }

      private boolean alarmBearingOnly_ ;
      /**
       * <pre>
       * Optional. Return only objects with at least one alarm-bearing attribute.
       * </pre>
       *
       * <code>bool alarm_bearing_only = 11;</code>
       * @return The alarmBearingOnly.
       */
      @java.lang.Override
      public boolean getAlarmBearingOnly() {
        return alarmBearingOnly_;
      }
      /**
       * <pre>
       * Optional. Return only objects with at least one alarm-bearing attribute.
       * </pre>
       *
       * <code>bool alarm_bearing_only = 11;</code>
       * @param value The alarmBearingOnly to set.
       * @return This builder for chaining.
       */
      public Builder setAlarmBearingOnly(boolean value) {

        alarmBearingOnly_ = value;
        bitField0_ |= 0x00000400;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Optional. Return only objects with at least one alarm-bearing attribute.
       * </pre>
       *
       * <code>bool alarm_bearing_only = 11;</code>
       * @return This builder for chaining.
       */
      public Builder clearAlarmBearingOnly() {
        bitField0_ = (bitField0_ & ~0x00000400);
        alarmBearingOnly_ = false;
        onChanged();
        return this;
      }

      private boolean historizedOnly_ ;
      /**
       * <pre>
       * Optional. Return only objects with at least one historized attribute.
       * </pre>
       *
       * <code>bool historized_only = 12;</code>
       * @return The historizedOnly.
       */
      @java.lang.Override
      public boolean getHistorizedOnly() {
        return historizedOnly_;
      }
      /**
       * <pre>
       * Optional. Return only objects with at least one historized attribute.
       * </pre>
       *
       * <code>bool historized_only = 12;</code>
       * @param value The historizedOnly to set.
       * @return This builder for chaining.
       */
      public Builder setHistorizedOnly(boolean value) {

        historizedOnly_ = value;
        bitField0_ |= 0x00000800;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Optional. Return only objects with at least one historized attribute.
       * </pre>
       *
       * <code>bool historized_only = 12;</code>
       * @return This builder for chaining.
       */
      public Builder clearHistorizedOnly() {
        bitField0_ = (bitField0_ & ~0x00000800);
        historizedOnly_ = false;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:galaxy_repository.v1.DiscoverHierarchyRequest)
    }

    // @@protoc_insertion_point(class_scope:galaxy_repository.v1.DiscoverHierarchyRequest)
    private static final galaxy_repository.v1.GalaxyRepositoryOuterClass.DiscoverHierarchyRequest DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new galaxy_repository.v1.GalaxyRepositoryOuterClass.DiscoverHierarchyRequest();
    }

    public static galaxy_repository.v1.GalaxyRepositoryOuterClass.DiscoverHierarchyRequest getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<DiscoverHierarchyRequest>
        PARSER = new com.google.protobuf.AbstractParser<DiscoverHierarchyRequest>() {
      @java.lang.Override
      public DiscoverHierarchyRequest parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<DiscoverHierarchyRequest> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<DiscoverHierarchyRequest> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public galaxy_repository.v1.GalaxyRepositoryOuterClass.DiscoverHierarchyRequest getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface DiscoverHierarchyReplyOrBuilder extends
      // @@protoc_insertion_point(interface_extends:galaxy_repository.v1.DiscoverHierarchyReply)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>repeated .galaxy_repository.v1.GalaxyObject objects = 1;</code>
     */
    java.util.List<galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyObject> 
        getObjectsList();
    /**
     * <code>repeated .galaxy_repository.v1.GalaxyObject objects = 1;</code>
     */
    galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyObject getObjects(int index);
    /**
     * <code>repeated .galaxy_repository.v1.GalaxyObject objects = 1;</code>
     */
    int getObjectsCount();
    /**
     * <code>repeated .galaxy_repository.v1.GalaxyObject objects = 1;</code>
     */
    java.util.List<? extends galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyObjectOrBuilder> 
        getObjectsOrBuilderList();
    /**
     * <code>repeated .galaxy_repository.v1.GalaxyObject objects = 1;</code>
     */
    galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyObjectOrBuilder getObjectsOrBuilder(
        int index);

    /**
     * <pre>
     * Non-empty when another page is available.
     * </pre>
     *
     * <code>string next_page_token = 2;</code>
     * @return The nextPageToken.
     */
    java.lang.String getNextPageToken();
    /**
     * <pre>
     * Non-empty when another page is available.
     * </pre>
     *
     * <code>string next_page_token = 2;</code>
     * @return The bytes for nextPageToken.
     */
    com.google.protobuf.ByteString
        getNextPageTokenBytes();

    /**
     * <pre>
     * Total number of objects in the cached hierarchy at the time of the call.
     * </pre>
     *
     * <code>int32 total_object_count = 3;</code>
     * @return The totalObjectCount.
     */
    int getTotalObjectCount();
  }
  /**
   * Protobuf type {@code galaxy_repository.v1.DiscoverHierarchyReply}
   */
  public static final class DiscoverHierarchyReply extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:galaxy_repository.v1.DiscoverHierarchyReply)
      DiscoverHierarchyReplyOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 1,
        /* suffix= */ "",
        "DiscoverHierarchyReply");
    }
    // Use DiscoverHierarchyReply.newBuilder() to construct.
    private DiscoverHierarchyReply(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
    }
    private DiscoverHierarchyReply() {
      objects_ = java.util.Collections.emptyList();
      nextPageToken_ = "";
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return galaxy_repository.v1.GalaxyRepositoryOuterClass.internal_static_galaxy_repository_v1_DiscoverHierarchyReply_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return galaxy_repository.v1.GalaxyRepositoryOuterClass.internal_static_galaxy_repository_v1_DiscoverHierarchyReply_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              galaxy_repository.v1.GalaxyRepositoryOuterClass.DiscoverHierarchyReply.class, galaxy_repository.v1.GalaxyRepositoryOuterClass.DiscoverHierarchyReply.Builder.class);
    }

    public static final int OBJECTS_FIELD_NUMBER = 1;
    @SuppressWarnings("serial")
    private java.util.List<galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyObject> objects_;
    /**
     * <code>repeated .galaxy_repository.v1.GalaxyObject objects = 1;</code>
     */
    @java.lang.Override
    public java.util.List<galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyObject> getObjectsList() {
      return objects_;
    }
    /**
     * <code>repeated .galaxy_repository.v1.GalaxyObject objects = 1;</code>
     */
    @java.lang.Override
    public java.util.List<? extends galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyObjectOrBuilder> 
        getObjectsOrBuilderList() {
      return objects_;
    }
    /**
     * <code>repeated .galaxy_repository.v1.GalaxyObject objects = 1;</code>
     */
    @java.lang.Override
    public int getObjectsCount() {
      return objects_.size();
    }
    /**
     * <code>repeated .galaxy_repository.v1.GalaxyObject objects = 1;</code>
     */
    @java.lang.Override
    public galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyObject getObjects(int index) {
      return objects_.get(index);
    }
    /**
     * <code>repeated .galaxy_repository.v1.GalaxyObject objects = 1;</code>
     */
    @java.lang.Override
    public galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyObjectOrBuilder getObjectsOrBuilder(
        int index) {
      return objects_.get(index);
    }

    public static final int NEXT_PAGE_TOKEN_FIELD_NUMBER = 2;
    @SuppressWarnings("serial")
    private volatile java.lang.Object nextPageToken_ = "";
    /**
     * <pre>
     * Non-empty when another page is available.
     * </pre>
     *
     * <code>string next_page_token = 2;</code>
     * @return The nextPageToken.
     */
    @java.lang.Override
    public java.lang.String getNextPageToken() {
      java.lang.Object ref = nextPageToken_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        nextPageToken_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * Non-empty when another page is available.
     * </pre>
     *
     * <code>string next_page_token = 2;</code>
     * @return The bytes for nextPageToken.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getNextPageTokenBytes() {
      java.lang.Object ref = nextPageToken_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        nextPageToken_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int TOTAL_OBJECT_COUNT_FIELD_NUMBER = 3;
    private int totalObjectCount_ = 0;
    /**
     * <pre>
     * Total number of objects in the cached hierarchy at the time of the call.
     * </pre>
     *
     * <code>int32 total_object_count = 3;</code>
     * @return The totalObjectCount.
     */
    @java.lang.Override
    public int getTotalObjectCount() {
      return totalObjectCount_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      for (int i = 0; i < objects_.size(); i++) {
        output.writeMessage(1, objects_.get(i));
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(nextPageToken_)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 2, nextPageToken_);
      }
      if (totalObjectCount_ != 0) {
        output.writeInt32(3, totalObjectCount_);
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      for (int i = 0; i < objects_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, objects_.get(i));
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(nextPageToken_)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(2, nextPageToken_);
      }
      if (totalObjectCount_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(3, totalObjectCount_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof galaxy_repository.v1.GalaxyRepositoryOuterClass.DiscoverHierarchyReply)) {
        return super.equals(obj);
      }
      galaxy_repository.v1.GalaxyRepositoryOuterClass.DiscoverHierarchyReply other = (galaxy_repository.v1.GalaxyRepositoryOuterClass.DiscoverHierarchyReply) obj;

      if (!getObjectsList()
          .equals(other.getObjectsList())) return false;
      if (!getNextPageToken()
          .equals(other.getNextPageToken())) return false;
      if (getTotalObjectCount()
          != other.getTotalObjectCount()) return false;
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (getObjectsCount() > 0) {
        hash = (37 * hash) + OBJECTS_FIELD_NUMBER;
        hash = (53 * hash) + getObjectsList().hashCode();
      }
      hash = (37 * hash) + NEXT_PAGE_TOKEN_FIELD_NUMBER;
      hash = (53 * hash) + getNextPageToken().hashCode();
      hash = (37 * hash) + TOTAL_OBJECT_COUNT_FIELD_NUMBER;
      hash = (53 * hash) + getTotalObjectCount();
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static galaxy_repository.v1.GalaxyRepositoryOuterClass.DiscoverHierarchyReply parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static galaxy_repository.v1.GalaxyRepositoryOuterClass.DiscoverHierarchyReply parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static galaxy_repository.v1.GalaxyRepositoryOuterClass.DiscoverHierarchyReply parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static galaxy_repository.v1.GalaxyRepositoryOuterClass.DiscoverHierarchyReply parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static galaxy_repository.v1.GalaxyRepositoryOuterClass.DiscoverHierarchyReply parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static galaxy_repository.v1.GalaxyRepositoryOuterClass.DiscoverHierarchyReply parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static galaxy_repository.v1.GalaxyRepositoryOuterClass.DiscoverHierarchyReply parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static galaxy_repository.v1.GalaxyRepositoryOuterClass.DiscoverHierarchyReply parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static galaxy_repository.v1.GalaxyRepositoryOuterClass.DiscoverHierarchyReply parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static galaxy_repository.v1.GalaxyRepositoryOuterClass.DiscoverHierarchyReply parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static galaxy_repository.v1.GalaxyRepositoryOuterClass.DiscoverHierarchyReply parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static galaxy_repository.v1.GalaxyRepositoryOuterClass.DiscoverHierarchyReply parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(galaxy_repository.v1.GalaxyRepositoryOuterClass.DiscoverHierarchyReply prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code galaxy_repository.v1.DiscoverHierarchyReply}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:galaxy_repository.v1.DiscoverHierarchyReply)
        galaxy_repository.v1.GalaxyRepositoryOuterClass.DiscoverHierarchyReplyOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return galaxy_repository.v1.GalaxyRepositoryOuterClass.internal_static_galaxy_repository_v1_DiscoverHierarchyReply_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return galaxy_repository.v1.GalaxyRepositoryOuterClass.internal_static_galaxy_repository_v1_DiscoverHierarchyReply_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                galaxy_repository.v1.GalaxyRepositoryOuterClass.DiscoverHierarchyReply.class, galaxy_repository.v1.GalaxyRepositoryOuterClass.DiscoverHierarchyReply.Builder.class);
      }

      // Construct using galaxy_repository.v1.GalaxyRepositoryOuterClass.DiscoverHierarchyReply.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        if (objectsBuilder_ == null) {
          objects_ = java.util.Collections.emptyList();
        } else {
          objects_ = null;
          objectsBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        nextPageToken_ = "";
        totalObjectCount_ = 0;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return galaxy_repository.v1.GalaxyRepositoryOuterClass.internal_static_galaxy_repository_v1_DiscoverHierarchyReply_descriptor;
      }

      @java.lang.Override
      public galaxy_repository.v1.GalaxyRepositoryOuterClass.DiscoverHierarchyReply getDefaultInstanceForType() {
        return galaxy_repository.v1.GalaxyRepositoryOuterClass.DiscoverHierarchyReply.getDefaultInstance();
      }

      @java.lang.Override
      public galaxy_repository.v1.GalaxyRepositoryOuterClass.DiscoverHierarchyReply build() {
        galaxy_repository.v1.GalaxyRepositoryOuterClass.DiscoverHierarchyReply result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public galaxy_repository.v1.GalaxyRepositoryOuterClass.DiscoverHierarchyReply buildPartial() {
        galaxy_repository.v1.GalaxyRepositoryOuterClass.DiscoverHierarchyReply result = new galaxy_repository.v1.GalaxyRepositoryOuterClass.DiscoverHierarchyReply(this);
        buildPartialRepeatedFields(result);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartialRepeatedFields(galaxy_repository.v1.GalaxyRepositoryOuterClass.DiscoverHierarchyReply result) {
        if (objectsBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0)) {
            objects_ = java.util.Collections.unmodifiableList(objects_);
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          result.objects_ = objects_;
        } else {
          result.objects_ = objectsBuilder_.build();
        }
      }

      private void buildPartial0(galaxy_repository.v1.GalaxyRepositoryOuterClass.DiscoverHierarchyReply result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.nextPageToken_ = nextPageToken_;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.totalObjectCount_ = totalObjectCount_;
        }
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof galaxy_repository.v1.GalaxyRepositoryOuterClass.DiscoverHierarchyReply) {
          return mergeFrom((galaxy_repository.v1.GalaxyRepositoryOuterClass.DiscoverHierarchyReply)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(galaxy_repository.v1.GalaxyRepositoryOuterClass.DiscoverHierarchyReply other) {
        if (other == galaxy_repository.v1.GalaxyRepositoryOuterClass.DiscoverHierarchyReply.getDefaultInstance()) return this;
        if (objectsBuilder_ == null) {
          if (!other.objects_.isEmpty()) {
            if (objects_.isEmpty()) {
              objects_ = other.objects_;
              bitField0_ = (bitField0_ & ~0x00000001);
            } else {
              ensureObjectsIsMutable();
              objects_.addAll(other.objects_);
            }
            onChanged();
          }
        } else {
          if (!other.objects_.isEmpty()) {
            if (objectsBuilder_.isEmpty()) {
              objectsBuilder_.dispose();
              objectsBuilder_ = null;
              objects_ = other.objects_;
              bitField0_ = (bitField0_ & ~0x00000001);
              objectsBuilder_ = 
                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                   internalGetObjectsFieldBuilder() : null;
            } else {
              objectsBuilder_.addAllMessages(other.objects_);
            }
          }
        }
        if (!other.getNextPageToken().isEmpty()) {
          nextPageToken_ = other.nextPageToken_;
          bitField0_ |= 0x00000002;
          onChanged();
        }
        if (other.getTotalObjectCount() != 0) {
          setTotalObjectCount(other.getTotalObjectCount());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 10: {
                galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyObject m =
                    input.readMessage(
                        galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyObject.parser(),
                        extensionRegistry);
                if (objectsBuilder_ == null) {
                  ensureObjectsIsMutable();
                  objects_.add(m);
                } else {
                  objectsBuilder_.addMessage(m);
                }
                break;
              } // case 10
              case 18: {
                nextPageToken_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000002;
                break;
              } // case 18
              case 24: {
                totalObjectCount_ = input.readInt32();
                bitField0_ |= 0x00000004;
                break;
              } // case 24
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private java.util.List<galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyObject> objects_ =
        java.util.Collections.emptyList();
      private void ensureObjectsIsMutable() {
        if (!((bitField0_ & 0x00000001) != 0)) {
          objects_ = new java.util.ArrayList<galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyObject>(objects_);
          bitField0_ |= 0x00000001;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilder<
          galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyObject, galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyObject.Builder, galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyObjectOrBuilder> objectsBuilder_;

      /**
       * <code>repeated .galaxy_repository.v1.GalaxyObject objects = 1;</code>
       */
      public java.util.List<galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyObject> getObjectsList() {
        if (objectsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(objects_);
        } else {
          return objectsBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .galaxy_repository.v1.GalaxyObject objects = 1;</code>
       */
      public int getObjectsCount() {
        if (objectsBuilder_ == null) {
          return objects_.size();
        } else {
          return objectsBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .galaxy_repository.v1.GalaxyObject objects = 1;</code>
       */
      public galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyObject getObjects(int index) {
        if (objectsBuilder_ == null) {
          return objects_.get(index);
        } else {
          return objectsBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .galaxy_repository.v1.GalaxyObject objects = 1;</code>
       */
      public Builder setObjects(
          int index, galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyObject value) {
        if (objectsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureObjectsIsMutable();
          objects_.set(index, value);
          onChanged();
        } else {
          objectsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .galaxy_repository.v1.GalaxyObject objects = 1;</code>
       */
      public Builder setObjects(
          int index, galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyObject.Builder builderForValue) {
        if (objectsBuilder_ == null) {
          ensureObjectsIsMutable();
          objects_.set(index, builderForValue.build());
          onChanged();
        } else {
          objectsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .galaxy_repository.v1.GalaxyObject objects = 1;</code>
       */
      public Builder addObjects(galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyObject value) {
        if (objectsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureObjectsIsMutable();
          objects_.add(value);
          onChanged();
        } else {
          objectsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .galaxy_repository.v1.GalaxyObject objects = 1;</code>
       */
      public Builder addObjects(
          int index, galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyObject value) {
        if (objectsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureObjectsIsMutable();
          objects_.add(index, value);
          onChanged();
        } else {
          objectsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .galaxy_repository.v1.GalaxyObject objects = 1;</code>
       */
      public Builder addObjects(
          galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyObject.Builder builderForValue) {
        if (objectsBuilder_ == null) {
          ensureObjectsIsMutable();
          objects_.add(builderForValue.build());
          onChanged();
        } else {
          objectsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .galaxy_repository.v1.GalaxyObject objects = 1;</code>
       */
      public Builder addObjects(
          int index, galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyObject.Builder builderForValue) {
        if (objectsBuilder_ == null) {
          ensureObjectsIsMutable();
          objects_.add(index, builderForValue.build());
          onChanged();
        } else {
          objectsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .galaxy_repository.v1.GalaxyObject objects = 1;</code>
       */
      public Builder addAllObjects(
          java.lang.Iterable<? extends galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyObject> values) {
        if (objectsBuilder_ == null) {
          ensureObjectsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, objects_);
          onChanged();
        } else {
          objectsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .galaxy_repository.v1.GalaxyObject objects = 1;</code>
       */
      public Builder clearObjects() {
        if (objectsBuilder_ == null) {
          objects_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
        } else {
          objectsBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .galaxy_repository.v1.GalaxyObject objects = 1;</code>
       */
      public Builder removeObjects(int index) {
        if (objectsBuilder_ == null) {
          ensureObjectsIsMutable();
          objects_.remove(index);
          onChanged();
        } else {
          objectsBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .galaxy_repository.v1.GalaxyObject objects = 1;</code>
       */
      public galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyObject.Builder getObjectsBuilder(
          int index) {
        return internalGetObjectsFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .galaxy_repository.v1.GalaxyObject objects = 1;</code>
       */
      public galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyObjectOrBuilder getObjectsOrBuilder(
          int index) {
        if (objectsBuilder_ == null) {
          return objects_.get(index);  } else {
          return objectsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .galaxy_repository.v1.GalaxyObject objects = 1;</code>
       */
      public java.util.List<? extends galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyObjectOrBuilder> 
           getObjectsOrBuilderList() {
        if (objectsBuilder_ != null) {
          return objectsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(objects_);
        }
      }
      /**
       * <code>repeated .galaxy_repository.v1.GalaxyObject objects = 1;</code>
       */
      public galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyObject.Builder addObjectsBuilder() {
        return internalGetObjectsFieldBuilder().addBuilder(
            galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyObject.getDefaultInstance());
      }
      /**
       * <code>repeated .galaxy_repository.v1.GalaxyObject objects = 1;</code>
       */
      public galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyObject.Builder addObjectsBuilder(
          int index) {
        return internalGetObjectsFieldBuilder().addBuilder(
            index, galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyObject.getDefaultInstance());
      }
      /**
       * <code>repeated .galaxy_repository.v1.GalaxyObject objects = 1;</code>
       */
      public java.util.List<galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyObject.Builder> 
           getObjectsBuilderList() {
        return internalGetObjectsFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilder<
          galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyObject, galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyObject.Builder, galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyObjectOrBuilder> 
          internalGetObjectsFieldBuilder() {
        if (objectsBuilder_ == null) {
          objectsBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
              galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyObject, galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyObject.Builder, galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyObjectOrBuilder>(
                  objects_,
                  ((bitField0_ & 0x00000001) != 0),
                  getParentForChildren(),
                  isClean());
          objects_ = null;
        }
        return objectsBuilder_;
      }

      private java.lang.Object nextPageToken_ = "";
      /**
       * <pre>
       * Non-empty when another page is available.
       * </pre>
       *
       * <code>string next_page_token = 2;</code>
       * @return The nextPageToken.
       */
      public java.lang.String getNextPageToken() {
        java.lang.Object ref = nextPageToken_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          nextPageToken_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * Non-empty when another page is available.
       * </pre>
       *
       * <code>string next_page_token = 2;</code>
       * @return The bytes for nextPageToken.
       */
      public com.google.protobuf.ByteString
          getNextPageTokenBytes() {
        java.lang.Object ref = nextPageToken_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          nextPageToken_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * Non-empty when another page is available.
       * </pre>
       *
       * <code>string next_page_token = 2;</code>
       * @param value The nextPageToken to set.
       * @return This builder for chaining.
       */
      public Builder setNextPageToken(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        nextPageToken_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Non-empty when another page is available.
       * </pre>
       *
       * <code>string next_page_token = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearNextPageToken() {
        nextPageToken_ = getDefaultInstance().getNextPageToken();
        bitField0_ = (bitField0_ & ~0x00000002);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Non-empty when another page is available.
       * </pre>
       *
       * <code>string next_page_token = 2;</code>
       * @param value The bytes for nextPageToken to set.
       * @return This builder for chaining.
       */
      public Builder setNextPageTokenBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        nextPageToken_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }

      private int totalObjectCount_ ;
      /**
       * <pre>
       * Total number of objects in the cached hierarchy at the time of the call.
       * </pre>
       *
       * <code>int32 total_object_count = 3;</code>
       * @return The totalObjectCount.
       */
      @java.lang.Override
      public int getTotalObjectCount() {
        return totalObjectCount_;
      }
      /**
       * <pre>
       * Total number of objects in the cached hierarchy at the time of the call.
       * </pre>
       *
       * <code>int32 total_object_count = 3;</code>
       * @param value The totalObjectCount to set.
       * @return This builder for chaining.
       */
      public Builder setTotalObjectCount(int value) {

        totalObjectCount_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Total number of objects in the cached hierarchy at the time of the call.
       * </pre>
       *
       * <code>int32 total_object_count = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearTotalObjectCount() {
        bitField0_ = (bitField0_ & ~0x00000004);
        totalObjectCount_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:galaxy_repository.v1.DiscoverHierarchyReply)
    }

    // @@protoc_insertion_point(class_scope:galaxy_repository.v1.DiscoverHierarchyReply)
    private static final galaxy_repository.v1.GalaxyRepositoryOuterClass.DiscoverHierarchyReply DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new galaxy_repository.v1.GalaxyRepositoryOuterClass.DiscoverHierarchyReply();
    }

    public static galaxy_repository.v1.GalaxyRepositoryOuterClass.DiscoverHierarchyReply getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<DiscoverHierarchyReply>
        PARSER = new com.google.protobuf.AbstractParser<DiscoverHierarchyReply>() {
      @java.lang.Override
      public DiscoverHierarchyReply parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<DiscoverHierarchyReply> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<DiscoverHierarchyReply> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public galaxy_repository.v1.GalaxyRepositoryOuterClass.DiscoverHierarchyReply getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface WatchDeployEventsRequestOrBuilder extends
      // @@protoc_insertion_point(interface_extends:galaxy_repository.v1.WatchDeployEventsRequest)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     * Optional. When set, the bootstrap event is suppressed if the cached deploy
     * time matches this value. Future events are still emitted normally.
     * </pre>
     *
     * <code>.google.protobuf.Timestamp last_seen_deploy_time = 1;</code>
     * @return Whether the lastSeenDeployTime field is set.
     */
    boolean hasLastSeenDeployTime();
    /**
     * <pre>
     * Optional. When set, the bootstrap event is suppressed if the cached deploy
     * time matches this value. Future events are still emitted normally.
     * </pre>
     *
     * <code>.google.protobuf.Timestamp last_seen_deploy_time = 1;</code>
     * @return The lastSeenDeployTime.
     */
    com.google.protobuf.Timestamp getLastSeenDeployTime();
    /**
     * <pre>
     * Optional. When set, the bootstrap event is suppressed if the cached deploy
     * time matches this value. Future events are still emitted normally.
     * </pre>
     *
     * <code>.google.protobuf.Timestamp last_seen_deploy_time = 1;</code>
     */
    com.google.protobuf.TimestampOrBuilder getLastSeenDeployTimeOrBuilder();
  }
  /**
   * Protobuf type {@code galaxy_repository.v1.WatchDeployEventsRequest}
   */
  public static final class WatchDeployEventsRequest extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:galaxy_repository.v1.WatchDeployEventsRequest)
      WatchDeployEventsRequestOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 1,
        /* suffix= */ "",
        "WatchDeployEventsRequest");
    }
    // Use WatchDeployEventsRequest.newBuilder() to construct.
    private WatchDeployEventsRequest(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
    }
    private WatchDeployEventsRequest() {
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return galaxy_repository.v1.GalaxyRepositoryOuterClass.internal_static_galaxy_repository_v1_WatchDeployEventsRequest_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return galaxy_repository.v1.GalaxyRepositoryOuterClass.internal_static_galaxy_repository_v1_WatchDeployEventsRequest_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              galaxy_repository.v1.GalaxyRepositoryOuterClass.WatchDeployEventsRequest.class, galaxy_repository.v1.GalaxyRepositoryOuterClass.WatchDeployEventsRequest.Builder.class);
    }

    private int bitField0_;
    public static final int LAST_SEEN_DEPLOY_TIME_FIELD_NUMBER = 1;
    private com.google.protobuf.Timestamp lastSeenDeployTime_;
    /**
     * <pre>
     * Optional. When set, the bootstrap event is suppressed if the cached deploy
     * time matches this value. Future events are still emitted normally.
     * </pre>
     *
     * <code>.google.protobuf.Timestamp last_seen_deploy_time = 1;</code>
     * @return Whether the lastSeenDeployTime field is set.
     */
    @java.lang.Override
    public boolean hasLastSeenDeployTime() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <pre>
     * Optional. When set, the bootstrap event is suppressed if the cached deploy
     * time matches this value. Future events are still emitted normally.
     * </pre>
     *
     * <code>.google.protobuf.Timestamp last_seen_deploy_time = 1;</code>
     * @return The lastSeenDeployTime.
     */
    @java.lang.Override
    public com.google.protobuf.Timestamp getLastSeenDeployTime() {
      return lastSeenDeployTime_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : lastSeenDeployTime_;
    }
    /**
     * <pre>
     * Optional. When set, the bootstrap event is suppressed if the cached deploy
     * time matches this value. Future events are still emitted normally.
     * </pre>
     *
     * <code>.google.protobuf.Timestamp last_seen_deploy_time = 1;</code>
     */
    @java.lang.Override
    public com.google.protobuf.TimestampOrBuilder getLastSeenDeployTimeOrBuilder() {
      return lastSeenDeployTime_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : lastSeenDeployTime_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeMessage(1, getLastSeenDeployTime());
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, getLastSeenDeployTime());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof galaxy_repository.v1.GalaxyRepositoryOuterClass.WatchDeployEventsRequest)) {
        return super.equals(obj);
      }
      galaxy_repository.v1.GalaxyRepositoryOuterClass.WatchDeployEventsRequest other = (galaxy_repository.v1.GalaxyRepositoryOuterClass.WatchDeployEventsRequest) obj;

      if (hasLastSeenDeployTime() != other.hasLastSeenDeployTime()) return false;
      if (hasLastSeenDeployTime()) {
        if (!getLastSeenDeployTime()
            .equals(other.getLastSeenDeployTime())) return false;
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasLastSeenDeployTime()) {
        hash = (37 * hash) + LAST_SEEN_DEPLOY_TIME_FIELD_NUMBER;
        hash = (53 * hash) + getLastSeenDeployTime().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static galaxy_repository.v1.GalaxyRepositoryOuterClass.WatchDeployEventsRequest parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static galaxy_repository.v1.GalaxyRepositoryOuterClass.WatchDeployEventsRequest parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static galaxy_repository.v1.GalaxyRepositoryOuterClass.WatchDeployEventsRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static galaxy_repository.v1.GalaxyRepositoryOuterClass.WatchDeployEventsRequest parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static galaxy_repository.v1.GalaxyRepositoryOuterClass.WatchDeployEventsRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static galaxy_repository.v1.GalaxyRepositoryOuterClass.WatchDeployEventsRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static galaxy_repository.v1.GalaxyRepositoryOuterClass.WatchDeployEventsRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static galaxy_repository.v1.GalaxyRepositoryOuterClass.WatchDeployEventsRequest parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static galaxy_repository.v1.GalaxyRepositoryOuterClass.WatchDeployEventsRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static galaxy_repository.v1.GalaxyRepositoryOuterClass.WatchDeployEventsRequest parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static galaxy_repository.v1.GalaxyRepositoryOuterClass.WatchDeployEventsRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static galaxy_repository.v1.GalaxyRepositoryOuterClass.WatchDeployEventsRequest parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(galaxy_repository.v1.GalaxyRepositoryOuterClass.WatchDeployEventsRequest prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code galaxy_repository.v1.WatchDeployEventsRequest}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:galaxy_repository.v1.WatchDeployEventsRequest)
        galaxy_repository.v1.GalaxyRepositoryOuterClass.WatchDeployEventsRequestOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return galaxy_repository.v1.GalaxyRepositoryOuterClass.internal_static_galaxy_repository_v1_WatchDeployEventsRequest_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return galaxy_repository.v1.GalaxyRepositoryOuterClass.internal_static_galaxy_repository_v1_WatchDeployEventsRequest_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                galaxy_repository.v1.GalaxyRepositoryOuterClass.WatchDeployEventsRequest.class, galaxy_repository.v1.GalaxyRepositoryOuterClass.WatchDeployEventsRequest.Builder.class);
      }

      // Construct using galaxy_repository.v1.GalaxyRepositoryOuterClass.WatchDeployEventsRequest.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage
                .alwaysUseFieldBuilders) {
          internalGetLastSeenDeployTimeFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        lastSeenDeployTime_ = null;
        if (lastSeenDeployTimeBuilder_ != null) {
          lastSeenDeployTimeBuilder_.dispose();
          lastSeenDeployTimeBuilder_ = null;
        }
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return galaxy_repository.v1.GalaxyRepositoryOuterClass.internal_static_galaxy_repository_v1_WatchDeployEventsRequest_descriptor;
      }

      @java.lang.Override
      public galaxy_repository.v1.GalaxyRepositoryOuterClass.WatchDeployEventsRequest getDefaultInstanceForType() {
        return galaxy_repository.v1.GalaxyRepositoryOuterClass.WatchDeployEventsRequest.getDefaultInstance();
      }

      @java.lang.Override
      public galaxy_repository.v1.GalaxyRepositoryOuterClass.WatchDeployEventsRequest build() {
        galaxy_repository.v1.GalaxyRepositoryOuterClass.WatchDeployEventsRequest result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public galaxy_repository.v1.GalaxyRepositoryOuterClass.WatchDeployEventsRequest buildPartial() {
        galaxy_repository.v1.GalaxyRepositoryOuterClass.WatchDeployEventsRequest result = new galaxy_repository.v1.GalaxyRepositoryOuterClass.WatchDeployEventsRequest(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(galaxy_repository.v1.GalaxyRepositoryOuterClass.WatchDeployEventsRequest result) {
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.lastSeenDeployTime_ = lastSeenDeployTimeBuilder_ == null
              ? lastSeenDeployTime_
              : lastSeenDeployTimeBuilder_.build();
          to_bitField0_ |= 0x00000001;
        }
        result.bitField0_ |= to_bitField0_;
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof galaxy_repository.v1.GalaxyRepositoryOuterClass.WatchDeployEventsRequest) {
          return mergeFrom((galaxy_repository.v1.GalaxyRepositoryOuterClass.WatchDeployEventsRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(galaxy_repository.v1.GalaxyRepositoryOuterClass.WatchDeployEventsRequest other) {
        if (other == galaxy_repository.v1.GalaxyRepositoryOuterClass.WatchDeployEventsRequest.getDefaultInstance()) return this;
        if (other.hasLastSeenDeployTime()) {
          mergeLastSeenDeployTime(other.getLastSeenDeployTime());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 10: {
                input.readMessage(
                    internalGetLastSeenDeployTimeFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00000001;
                break;
              } // case 10
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private com.google.protobuf.Timestamp lastSeenDeployTime_;
      private com.google.protobuf.SingleFieldBuilder<
          com.google.protobuf.Timestamp, com.google.protobuf.Timestamp.Builder, com.google.protobuf.TimestampOrBuilder> lastSeenDeployTimeBuilder_;
      /**
       * <pre>
       * Optional. When set, the bootstrap event is suppressed if the cached deploy
       * time matches this value. Future events are still emitted normally.
       * </pre>
       *
       * <code>.google.protobuf.Timestamp last_seen_deploy_time = 1;</code>
       * @return Whether the lastSeenDeployTime field is set.
       */
      public boolean hasLastSeenDeployTime() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <pre>
       * Optional. When set, the bootstrap event is suppressed if the cached deploy
       * time matches this value. Future events are still emitted normally.
       * </pre>
       *
       * <code>.google.protobuf.Timestamp last_seen_deploy_time = 1;</code>
       * @return The lastSeenDeployTime.
       */
      public com.google.protobuf.Timestamp getLastSeenDeployTime() {
        if (lastSeenDeployTimeBuilder_ == null) {
          return lastSeenDeployTime_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : lastSeenDeployTime_;
        } else {
          return lastSeenDeployTimeBuilder_.getMessage();
        }
      }
      /**
       * <pre>
       * Optional. When set, the bootstrap event is suppressed if the cached deploy
       * time matches this value. Future events are still emitted normally.
       * </pre>
       *
       * <code>.google.protobuf.Timestamp last_seen_deploy_time = 1;</code>
       */
      public Builder setLastSeenDeployTime(com.google.protobuf.Timestamp value) {
        if (lastSeenDeployTimeBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          lastSeenDeployTime_ = value;
        } else {
          lastSeenDeployTimeBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Optional. When set, the bootstrap event is suppressed if the cached deploy
       * time matches this value. Future events are still emitted normally.
       * </pre>
       *
       * <code>.google.protobuf.Timestamp last_seen_deploy_time = 1;</code>
       */
      public Builder setLastSeenDeployTime(
          com.google.protobuf.Timestamp.Builder builderForValue) {
        if (lastSeenDeployTimeBuilder_ == null) {
          lastSeenDeployTime_ = builderForValue.build();
        } else {
          lastSeenDeployTimeBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Optional. When set, the bootstrap event is suppressed if the cached deploy
       * time matches this value. Future events are still emitted normally.
       * </pre>
       *
       * <code>.google.protobuf.Timestamp last_seen_deploy_time = 1;</code>
       */
      public Builder mergeLastSeenDeployTime(com.google.protobuf.Timestamp value) {
        if (lastSeenDeployTimeBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0) &&
            lastSeenDeployTime_ != null &&
            lastSeenDeployTime_ != com.google.protobuf.Timestamp.getDefaultInstance()) {
            getLastSeenDeployTimeBuilder().mergeFrom(value);
          } else {
            lastSeenDeployTime_ = value;
          }
        } else {
          lastSeenDeployTimeBuilder_.mergeFrom(value);
        }
        if (lastSeenDeployTime_ != null) {
          bitField0_ |= 0x00000001;
          onChanged();
        }
        return this;
      }
      /**
       * <pre>
       * Optional. When set, the bootstrap event is suppressed if the cached deploy
       * time matches this value. Future events are still emitted normally.
       * </pre>
       *
       * <code>.google.protobuf.Timestamp last_seen_deploy_time = 1;</code>
       */
      public Builder clearLastSeenDeployTime() {
        bitField0_ = (bitField0_ & ~0x00000001);
        lastSeenDeployTime_ = null;
        if (lastSeenDeployTimeBuilder_ != null) {
          lastSeenDeployTimeBuilder_.dispose();
          lastSeenDeployTimeBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Optional. When set, the bootstrap event is suppressed if the cached deploy
       * time matches this value. Future events are still emitted normally.
       * </pre>
       *
       * <code>.google.protobuf.Timestamp last_seen_deploy_time = 1;</code>
       */
      public com.google.protobuf.Timestamp.Builder getLastSeenDeployTimeBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return internalGetLastSeenDeployTimeFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       * Optional. When set, the bootstrap event is suppressed if the cached deploy
       * time matches this value. Future events are still emitted normally.
       * </pre>
       *
       * <code>.google.protobuf.Timestamp last_seen_deploy_time = 1;</code>
       */
      public com.google.protobuf.TimestampOrBuilder getLastSeenDeployTimeOrBuilder() {
        if (lastSeenDeployTimeBuilder_ != null) {
          return lastSeenDeployTimeBuilder_.getMessageOrBuilder();
        } else {
          return lastSeenDeployTime_ == null ?
              com.google.protobuf.Timestamp.getDefaultInstance() : lastSeenDeployTime_;
        }
      }
      /**
       * <pre>
       * Optional. When set, the bootstrap event is suppressed if the cached deploy
       * time matches this value. Future events are still emitted normally.
       * </pre>
       *
       * <code>.google.protobuf.Timestamp last_seen_deploy_time = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          com.google.protobuf.Timestamp, com.google.protobuf.Timestamp.Builder, com.google.protobuf.TimestampOrBuilder> 
          internalGetLastSeenDeployTimeFieldBuilder() {
        if (lastSeenDeployTimeBuilder_ == null) {
          lastSeenDeployTimeBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              com.google.protobuf.Timestamp, com.google.protobuf.Timestamp.Builder, com.google.protobuf.TimestampOrBuilder>(
                  getLastSeenDeployTime(),
                  getParentForChildren(),
                  isClean());
          lastSeenDeployTime_ = null;
        }
        return lastSeenDeployTimeBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:galaxy_repository.v1.WatchDeployEventsRequest)
    }

    // @@protoc_insertion_point(class_scope:galaxy_repository.v1.WatchDeployEventsRequest)
    private static final galaxy_repository.v1.GalaxyRepositoryOuterClass.WatchDeployEventsRequest DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new galaxy_repository.v1.GalaxyRepositoryOuterClass.WatchDeployEventsRequest();
    }

    public static galaxy_repository.v1.GalaxyRepositoryOuterClass.WatchDeployEventsRequest getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<WatchDeployEventsRequest>
        PARSER = new com.google.protobuf.AbstractParser<WatchDeployEventsRequest>() {
      @java.lang.Override
      public WatchDeployEventsRequest parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<WatchDeployEventsRequest> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<WatchDeployEventsRequest> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public galaxy_repository.v1.GalaxyRepositoryOuterClass.WatchDeployEventsRequest getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface DeployEventOrBuilder extends
      // @@protoc_insertion_point(interface_extends:galaxy_repository.v1.DeployEvent)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     * Monotonically increasing per server start. Gaps indicate dropped events.
     * </pre>
     *
     * <code>uint64 sequence = 1;</code>
     * @return The sequence.
     */
    long getSequence();

    /**
     * <pre>
     * Server wall-clock when the cache observed the deploy.
     * </pre>
     *
     * <code>.google.protobuf.Timestamp observed_at = 2;</code>
     * @return Whether the observedAt field is set.
     */
    boolean hasObservedAt();
    /**
     * <pre>
     * Server wall-clock when the cache observed the deploy.
     * </pre>
     *
     * <code>.google.protobuf.Timestamp observed_at = 2;</code>
     * @return The observedAt.
     */
    com.google.protobuf.Timestamp getObservedAt();
    /**
     * <pre>
     * Server wall-clock when the cache observed the deploy.
     * </pre>
     *
     * <code>.google.protobuf.Timestamp observed_at = 2;</code>
     */
    com.google.protobuf.TimestampOrBuilder getObservedAtOrBuilder();

    /**
     * <pre>
     * Galaxy.time_of_last_deploy. Absent only when the Galaxy table reports null.
     * </pre>
     *
     * <code>.google.protobuf.Timestamp time_of_last_deploy = 3;</code>
     * @return Whether the timeOfLastDeploy field is set.
     */
    boolean hasTimeOfLastDeploy();
    /**
     * <pre>
     * Galaxy.time_of_last_deploy. Absent only when the Galaxy table reports null.
     * </pre>
     *
     * <code>.google.protobuf.Timestamp time_of_last_deploy = 3;</code>
     * @return The timeOfLastDeploy.
     */
    com.google.protobuf.Timestamp getTimeOfLastDeploy();
    /**
     * <pre>
     * Galaxy.time_of_last_deploy. Absent only when the Galaxy table reports null.
     * </pre>
     *
     * <code>.google.protobuf.Timestamp time_of_last_deploy = 3;</code>
     */
    com.google.protobuf.TimestampOrBuilder getTimeOfLastDeployOrBuilder();

    /**
     * <code>bool time_of_last_deploy_present = 4;</code>
     * @return The timeOfLastDeployPresent.
     */
    boolean getTimeOfLastDeployPresent();

    /**
     * <code>int32 object_count = 5;</code>
     * @return The objectCount.
     */
    int getObjectCount();

    /**
     * <code>int32 attribute_count = 6;</code>
     * @return The attributeCount.
     */
    int getAttributeCount();
  }
  /**
   * Protobuf type {@code galaxy_repository.v1.DeployEvent}
   */
  public static final class DeployEvent extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:galaxy_repository.v1.DeployEvent)
      DeployEventOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 1,
        /* suffix= */ "",
        "DeployEvent");
    }
    // Use DeployEvent.newBuilder() to construct.
    private DeployEvent(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
    }
    private DeployEvent() {
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return galaxy_repository.v1.GalaxyRepositoryOuterClass.internal_static_galaxy_repository_v1_DeployEvent_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return galaxy_repository.v1.GalaxyRepositoryOuterClass.internal_static_galaxy_repository_v1_DeployEvent_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              galaxy_repository.v1.GalaxyRepositoryOuterClass.DeployEvent.class, galaxy_repository.v1.GalaxyRepositoryOuterClass.DeployEvent.Builder.class);
    }

    private int bitField0_;
    public static final int SEQUENCE_FIELD_NUMBER = 1;
    private long sequence_ = 0L;
    /**
     * <pre>
     * Monotonically increasing per server start. Gaps indicate dropped events.
     * </pre>
     *
     * <code>uint64 sequence = 1;</code>
     * @return The sequence.
     */
    @java.lang.Override
    public long getSequence() {
      return sequence_;
    }

    public static final int OBSERVED_AT_FIELD_NUMBER = 2;
    private com.google.protobuf.Timestamp observedAt_;
    /**
     * <pre>
     * Server wall-clock when the cache observed the deploy.
     * </pre>
     *
     * <code>.google.protobuf.Timestamp observed_at = 2;</code>
     * @return Whether the observedAt field is set.
     */
    @java.lang.Override
    public boolean hasObservedAt() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <pre>
     * Server wall-clock when the cache observed the deploy.
     * </pre>
     *
     * <code>.google.protobuf.Timestamp observed_at = 2;</code>
     * @return The observedAt.
     */
    @java.lang.Override
    public com.google.protobuf.Timestamp getObservedAt() {
      return observedAt_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : observedAt_;
    }
    /**
     * <pre>
     * Server wall-clock when the cache observed the deploy.
     * </pre>
     *
     * <code>.google.protobuf.Timestamp observed_at = 2;</code>
     */
    @java.lang.Override
    public com.google.protobuf.TimestampOrBuilder getObservedAtOrBuilder() {
      return observedAt_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : observedAt_;
    }

    public static final int TIME_OF_LAST_DEPLOY_FIELD_NUMBER = 3;
    private com.google.protobuf.Timestamp timeOfLastDeploy_;
    /**
     * <pre>
     * Galaxy.time_of_last_deploy. Absent only when the Galaxy table reports null.
     * </pre>
     *
     * <code>.google.protobuf.Timestamp time_of_last_deploy = 3;</code>
     * @return Whether the timeOfLastDeploy field is set.
     */
    @java.lang.Override
    public boolean hasTimeOfLastDeploy() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <pre>
     * Galaxy.time_of_last_deploy. Absent only when the Galaxy table reports null.
     * </pre>
     *
     * <code>.google.protobuf.Timestamp time_of_last_deploy = 3;</code>
     * @return The timeOfLastDeploy.
     */
    @java.lang.Override
    public com.google.protobuf.Timestamp getTimeOfLastDeploy() {
      return timeOfLastDeploy_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : timeOfLastDeploy_;
    }
    /**
     * <pre>
     * Galaxy.time_of_last_deploy. Absent only when the Galaxy table reports null.
     * </pre>
     *
     * <code>.google.protobuf.Timestamp time_of_last_deploy = 3;</code>
     */
    @java.lang.Override
    public com.google.protobuf.TimestampOrBuilder getTimeOfLastDeployOrBuilder() {
      return timeOfLastDeploy_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : timeOfLastDeploy_;
    }

    public static final int TIME_OF_LAST_DEPLOY_PRESENT_FIELD_NUMBER = 4;
    private boolean timeOfLastDeployPresent_ = false;
    /**
     * <code>bool time_of_last_deploy_present = 4;</code>
     * @return The timeOfLastDeployPresent.
     */
    @java.lang.Override
    public boolean getTimeOfLastDeployPresent() {
      return timeOfLastDeployPresent_;
    }

    public static final int OBJECT_COUNT_FIELD_NUMBER = 5;
    private int objectCount_ = 0;
    /**
     * <code>int32 object_count = 5;</code>
     * @return The objectCount.
     */
    @java.lang.Override
    public int getObjectCount() {
      return objectCount_;
    }

    public static final int ATTRIBUTE_COUNT_FIELD_NUMBER = 6;
    private int attributeCount_ = 0;
    /**
     * <code>int32 attribute_count = 6;</code>
     * @return The attributeCount.
     */
    @java.lang.Override
    public int getAttributeCount() {
      return attributeCount_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (sequence_ != 0L) {
        output.writeUInt64(1, sequence_);
      }
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeMessage(2, getObservedAt());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeMessage(3, getTimeOfLastDeploy());
      }
      if (timeOfLastDeployPresent_ != false) {
        output.writeBool(4, timeOfLastDeployPresent_);
      }
      if (objectCount_ != 0) {
        output.writeInt32(5, objectCount_);
      }
      if (attributeCount_ != 0) {
        output.writeInt32(6, attributeCount_);
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (sequence_ != 0L) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt64Size(1, sequence_);
      }
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, getObservedAt());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, getTimeOfLastDeploy());
      }
      if (timeOfLastDeployPresent_ != false) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(4, timeOfLastDeployPresent_);
      }
      if (objectCount_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(5, objectCount_);
      }
      if (attributeCount_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(6, attributeCount_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof galaxy_repository.v1.GalaxyRepositoryOuterClass.DeployEvent)) {
        return super.equals(obj);
      }
      galaxy_repository.v1.GalaxyRepositoryOuterClass.DeployEvent other = (galaxy_repository.v1.GalaxyRepositoryOuterClass.DeployEvent) obj;

      if (getSequence()
          != other.getSequence()) return false;
      if (hasObservedAt() != other.hasObservedAt()) return false;
      if (hasObservedAt()) {
        if (!getObservedAt()
            .equals(other.getObservedAt())) return false;
      }
      if (hasTimeOfLastDeploy() != other.hasTimeOfLastDeploy()) return false;
      if (hasTimeOfLastDeploy()) {
        if (!getTimeOfLastDeploy()
            .equals(other.getTimeOfLastDeploy())) return false;
      }
      if (getTimeOfLastDeployPresent()
          != other.getTimeOfLastDeployPresent()) return false;
      if (getObjectCount()
          != other.getObjectCount()) return false;
      if (getAttributeCount()
          != other.getAttributeCount()) return false;
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + SEQUENCE_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          getSequence());
      if (hasObservedAt()) {
        hash = (37 * hash) + OBSERVED_AT_FIELD_NUMBER;
        hash = (53 * hash) + getObservedAt().hashCode();
      }
      if (hasTimeOfLastDeploy()) {
        hash = (37 * hash) + TIME_OF_LAST_DEPLOY_FIELD_NUMBER;
        hash = (53 * hash) + getTimeOfLastDeploy().hashCode();
      }
      hash = (37 * hash) + TIME_OF_LAST_DEPLOY_PRESENT_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
          getTimeOfLastDeployPresent());
      hash = (37 * hash) + OBJECT_COUNT_FIELD_NUMBER;
      hash = (53 * hash) + getObjectCount();
      hash = (37 * hash) + ATTRIBUTE_COUNT_FIELD_NUMBER;
      hash = (53 * hash) + getAttributeCount();
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static galaxy_repository.v1.GalaxyRepositoryOuterClass.DeployEvent parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static galaxy_repository.v1.GalaxyRepositoryOuterClass.DeployEvent parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static galaxy_repository.v1.GalaxyRepositoryOuterClass.DeployEvent parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static galaxy_repository.v1.GalaxyRepositoryOuterClass.DeployEvent parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static galaxy_repository.v1.GalaxyRepositoryOuterClass.DeployEvent parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static galaxy_repository.v1.GalaxyRepositoryOuterClass.DeployEvent parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static galaxy_repository.v1.GalaxyRepositoryOuterClass.DeployEvent parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static galaxy_repository.v1.GalaxyRepositoryOuterClass.DeployEvent parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static galaxy_repository.v1.GalaxyRepositoryOuterClass.DeployEvent parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static galaxy_repository.v1.GalaxyRepositoryOuterClass.DeployEvent parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static galaxy_repository.v1.GalaxyRepositoryOuterClass.DeployEvent parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static galaxy_repository.v1.GalaxyRepositoryOuterClass.DeployEvent parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(galaxy_repository.v1.GalaxyRepositoryOuterClass.DeployEvent prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code galaxy_repository.v1.DeployEvent}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:galaxy_repository.v1.DeployEvent)
        galaxy_repository.v1.GalaxyRepositoryOuterClass.DeployEventOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return galaxy_repository.v1.GalaxyRepositoryOuterClass.internal_static_galaxy_repository_v1_DeployEvent_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return galaxy_repository.v1.GalaxyRepositoryOuterClass.internal_static_galaxy_repository_v1_DeployEvent_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                galaxy_repository.v1.GalaxyRepositoryOuterClass.DeployEvent.class, galaxy_repository.v1.GalaxyRepositoryOuterClass.DeployEvent.Builder.class);
      }

      // Construct using galaxy_repository.v1.GalaxyRepositoryOuterClass.DeployEvent.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage
                .alwaysUseFieldBuilders) {
          internalGetObservedAtFieldBuilder();
          internalGetTimeOfLastDeployFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        sequence_ = 0L;
        observedAt_ = null;
        if (observedAtBuilder_ != null) {
          observedAtBuilder_.dispose();
          observedAtBuilder_ = null;
        }
        timeOfLastDeploy_ = null;
        if (timeOfLastDeployBuilder_ != null) {
          timeOfLastDeployBuilder_.dispose();
          timeOfLastDeployBuilder_ = null;
        }
        timeOfLastDeployPresent_ = false;
        objectCount_ = 0;
        attributeCount_ = 0;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return galaxy_repository.v1.GalaxyRepositoryOuterClass.internal_static_galaxy_repository_v1_DeployEvent_descriptor;
      }

      @java.lang.Override
      public galaxy_repository.v1.GalaxyRepositoryOuterClass.DeployEvent getDefaultInstanceForType() {
        return galaxy_repository.v1.GalaxyRepositoryOuterClass.DeployEvent.getDefaultInstance();
      }

      @java.lang.Override
      public galaxy_repository.v1.GalaxyRepositoryOuterClass.DeployEvent build() {
        galaxy_repository.v1.GalaxyRepositoryOuterClass.DeployEvent result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public galaxy_repository.v1.GalaxyRepositoryOuterClass.DeployEvent buildPartial() {
        galaxy_repository.v1.GalaxyRepositoryOuterClass.DeployEvent result = new galaxy_repository.v1.GalaxyRepositoryOuterClass.DeployEvent(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(galaxy_repository.v1.GalaxyRepositoryOuterClass.DeployEvent result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.sequence_ = sequence_;
        }
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.observedAt_ = observedAtBuilder_ == null
              ? observedAt_
              : observedAtBuilder_.build();
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.timeOfLastDeploy_ = timeOfLastDeployBuilder_ == null
              ? timeOfLastDeploy_
              : timeOfLastDeployBuilder_.build();
          to_bitField0_ |= 0x00000002;
        }
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.timeOfLastDeployPresent_ = timeOfLastDeployPresent_;
        }
        if (((from_bitField0_ & 0x00000010) != 0)) {
          result.objectCount_ = objectCount_;
        }
        if (((from_bitField0_ & 0x00000020) != 0)) {
          result.attributeCount_ = attributeCount_;
        }
        result.bitField0_ |= to_bitField0_;
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof galaxy_repository.v1.GalaxyRepositoryOuterClass.DeployEvent) {
          return mergeFrom((galaxy_repository.v1.GalaxyRepositoryOuterClass.DeployEvent)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(galaxy_repository.v1.GalaxyRepositoryOuterClass.DeployEvent other) {
        if (other == galaxy_repository.v1.GalaxyRepositoryOuterClass.DeployEvent.getDefaultInstance()) return this;
        if (other.getSequence() != 0L) {
          setSequence(other.getSequence());
        }
        if (other.hasObservedAt()) {
          mergeObservedAt(other.getObservedAt());
        }
        if (other.hasTimeOfLastDeploy()) {
          mergeTimeOfLastDeploy(other.getTimeOfLastDeploy());
        }
        if (other.getTimeOfLastDeployPresent() != false) {
          setTimeOfLastDeployPresent(other.getTimeOfLastDeployPresent());
        }
        if (other.getObjectCount() != 0) {
          setObjectCount(other.getObjectCount());
        }
        if (other.getAttributeCount() != 0) {
          setAttributeCount(other.getAttributeCount());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 8: {
                sequence_ = input.readUInt64();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 18: {
                input.readMessage(
                    internalGetObservedAtFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00000002;
                break;
              } // case 18
              case 26: {
                input.readMessage(
                    internalGetTimeOfLastDeployFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00000004;
                break;
              } // case 26
              case 32: {
                timeOfLastDeployPresent_ = input.readBool();
                bitField0_ |= 0x00000008;
                break;
              } // case 32
              case 40: {
                objectCount_ = input.readInt32();
                bitField0_ |= 0x00000010;
                break;
              } // case 40
              case 48: {
                attributeCount_ = input.readInt32();
                bitField0_ |= 0x00000020;
                break;
              } // case 48
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private long sequence_ ;
      /**
       * <pre>
       * Monotonically increasing per server start. Gaps indicate dropped events.
       * </pre>
       *
       * <code>uint64 sequence = 1;</code>
       * @return The sequence.
       */
      @java.lang.Override
      public long getSequence() {
        return sequence_;
      }
      /**
       * <pre>
       * Monotonically increasing per server start. Gaps indicate dropped events.
       * </pre>
       *
       * <code>uint64 sequence = 1;</code>
       * @param value The sequence to set.
       * @return This builder for chaining.
       */
      public Builder setSequence(long value) {

        sequence_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Monotonically increasing per server start. Gaps indicate dropped events.
       * </pre>
       *
       * <code>uint64 sequence = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearSequence() {
        bitField0_ = (bitField0_ & ~0x00000001);
        sequence_ = 0L;
        onChanged();
        return this;
      }

      private com.google.protobuf.Timestamp observedAt_;
      private com.google.protobuf.SingleFieldBuilder<
          com.google.protobuf.Timestamp, com.google.protobuf.Timestamp.Builder, com.google.protobuf.TimestampOrBuilder> observedAtBuilder_;
      /**
       * <pre>
       * Server wall-clock when the cache observed the deploy.
       * </pre>
       *
       * <code>.google.protobuf.Timestamp observed_at = 2;</code>
       * @return Whether the observedAt field is set.
       */
      public boolean hasObservedAt() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <pre>
       * Server wall-clock when the cache observed the deploy.
       * </pre>
       *
       * <code>.google.protobuf.Timestamp observed_at = 2;</code>
       * @return The observedAt.
       */
      public com.google.protobuf.Timestamp getObservedAt() {
        if (observedAtBuilder_ == null) {
          return observedAt_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : observedAt_;
        } else {
          return observedAtBuilder_.getMessage();
        }
      }
      /**
       * <pre>
       * Server wall-clock when the cache observed the deploy.
       * </pre>
       *
       * <code>.google.protobuf.Timestamp observed_at = 2;</code>
       */
      public Builder setObservedAt(com.google.protobuf.Timestamp value) {
        if (observedAtBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          observedAt_ = value;
        } else {
          observedAtBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Server wall-clock when the cache observed the deploy.
       * </pre>
       *
       * <code>.google.protobuf.Timestamp observed_at = 2;</code>
       */
      public Builder setObservedAt(
          com.google.protobuf.Timestamp.Builder builderForValue) {
        if (observedAtBuilder_ == null) {
          observedAt_ = builderForValue.build();
        } else {
          observedAtBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Server wall-clock when the cache observed the deploy.
       * </pre>
       *
       * <code>.google.protobuf.Timestamp observed_at = 2;</code>
       */
      public Builder mergeObservedAt(com.google.protobuf.Timestamp value) {
        if (observedAtBuilder_ == null) {
          if (((bitField0_ & 0x00000002) != 0) &&
            observedAt_ != null &&
            observedAt_ != com.google.protobuf.Timestamp.getDefaultInstance()) {
            getObservedAtBuilder().mergeFrom(value);
          } else {
            observedAt_ = value;
          }
        } else {
          observedAtBuilder_.mergeFrom(value);
        }
        if (observedAt_ != null) {
          bitField0_ |= 0x00000002;
          onChanged();
        }
        return this;
      }
      /**
       * <pre>
       * Server wall-clock when the cache observed the deploy.
       * </pre>
       *
       * <code>.google.protobuf.Timestamp observed_at = 2;</code>
       */
      public Builder clearObservedAt() {
        bitField0_ = (bitField0_ & ~0x00000002);
        observedAt_ = null;
        if (observedAtBuilder_ != null) {
          observedAtBuilder_.dispose();
          observedAtBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Server wall-clock when the cache observed the deploy.
       * </pre>
       *
       * <code>.google.protobuf.Timestamp observed_at = 2;</code>
       */
      public com.google.protobuf.Timestamp.Builder getObservedAtBuilder() {
        bitField0_ |= 0x00000002;
        onChanged();
        return internalGetObservedAtFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       * Server wall-clock when the cache observed the deploy.
       * </pre>
       *
       * <code>.google.protobuf.Timestamp observed_at = 2;</code>
       */
      public com.google.protobuf.TimestampOrBuilder getObservedAtOrBuilder() {
        if (observedAtBuilder_ != null) {
          return observedAtBuilder_.getMessageOrBuilder();
        } else {
          return observedAt_ == null ?
              com.google.protobuf.Timestamp.getDefaultInstance() : observedAt_;
        }
      }
      /**
       * <pre>
       * Server wall-clock when the cache observed the deploy.
       * </pre>
       *
       * <code>.google.protobuf.Timestamp observed_at = 2;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          com.google.protobuf.Timestamp, com.google.protobuf.Timestamp.Builder, com.google.protobuf.TimestampOrBuilder> 
          internalGetObservedAtFieldBuilder() {
        if (observedAtBuilder_ == null) {
          observedAtBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              com.google.protobuf.Timestamp, com.google.protobuf.Timestamp.Builder, com.google.protobuf.TimestampOrBuilder>(
                  getObservedAt(),
                  getParentForChildren(),
                  isClean());
          observedAt_ = null;
        }
        return observedAtBuilder_;
      }

      private com.google.protobuf.Timestamp timeOfLastDeploy_;
      private com.google.protobuf.SingleFieldBuilder<
          com.google.protobuf.Timestamp, com.google.protobuf.Timestamp.Builder, com.google.protobuf.TimestampOrBuilder> timeOfLastDeployBuilder_;
      /**
       * <pre>
       * Galaxy.time_of_last_deploy. Absent only when the Galaxy table reports null.
       * </pre>
       *
       * <code>.google.protobuf.Timestamp time_of_last_deploy = 3;</code>
       * @return Whether the timeOfLastDeploy field is set.
       */
      public boolean hasTimeOfLastDeploy() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <pre>
       * Galaxy.time_of_last_deploy. Absent only when the Galaxy table reports null.
       * </pre>
       *
       * <code>.google.protobuf.Timestamp time_of_last_deploy = 3;</code>
       * @return The timeOfLastDeploy.
       */
      public com.google.protobuf.Timestamp getTimeOfLastDeploy() {
        if (timeOfLastDeployBuilder_ == null) {
          return timeOfLastDeploy_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : timeOfLastDeploy_;
        } else {
          return timeOfLastDeployBuilder_.getMessage();
        }
      }
      /**
       * <pre>
       * Galaxy.time_of_last_deploy. Absent only when the Galaxy table reports null.
       * </pre>
       *
       * <code>.google.protobuf.Timestamp time_of_last_deploy = 3;</code>
       */
      public Builder setTimeOfLastDeploy(com.google.protobuf.Timestamp value) {
        if (timeOfLastDeployBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          timeOfLastDeploy_ = value;
        } else {
          timeOfLastDeployBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Galaxy.time_of_last_deploy. Absent only when the Galaxy table reports null.
       * </pre>
       *
       * <code>.google.protobuf.Timestamp time_of_last_deploy = 3;</code>
       */
      public Builder setTimeOfLastDeploy(
          com.google.protobuf.Timestamp.Builder builderForValue) {
        if (timeOfLastDeployBuilder_ == null) {
          timeOfLastDeploy_ = builderForValue.build();
        } else {
          timeOfLastDeployBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Galaxy.time_of_last_deploy. Absent only when the Galaxy table reports null.
       * </pre>
       *
       * <code>.google.protobuf.Timestamp time_of_last_deploy = 3;</code>
       */
      public Builder mergeTimeOfLastDeploy(com.google.protobuf.Timestamp value) {
        if (timeOfLastDeployBuilder_ == null) {
          if (((bitField0_ & 0x00000004) != 0) &&
            timeOfLastDeploy_ != null &&
            timeOfLastDeploy_ != com.google.protobuf.Timestamp.getDefaultInstance()) {
            getTimeOfLastDeployBuilder().mergeFrom(value);
          } else {
            timeOfLastDeploy_ = value;
          }
        } else {
          timeOfLastDeployBuilder_.mergeFrom(value);
        }
        if (timeOfLastDeploy_ != null) {
          bitField0_ |= 0x00000004;
          onChanged();
        }
        return this;
      }
      /**
       * <pre>
       * Galaxy.time_of_last_deploy. Absent only when the Galaxy table reports null.
       * </pre>
       *
       * <code>.google.protobuf.Timestamp time_of_last_deploy = 3;</code>
       */
      public Builder clearTimeOfLastDeploy() {
        bitField0_ = (bitField0_ & ~0x00000004);
        timeOfLastDeploy_ = null;
        if (timeOfLastDeployBuilder_ != null) {
          timeOfLastDeployBuilder_.dispose();
          timeOfLastDeployBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Galaxy.time_of_last_deploy. Absent only when the Galaxy table reports null.
       * </pre>
       *
       * <code>.google.protobuf.Timestamp time_of_last_deploy = 3;</code>
       */
      public com.google.protobuf.Timestamp.Builder getTimeOfLastDeployBuilder() {
        bitField0_ |= 0x00000004;
        onChanged();
        return internalGetTimeOfLastDeployFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       * Galaxy.time_of_last_deploy. Absent only when the Galaxy table reports null.
       * </pre>
       *
       * <code>.google.protobuf.Timestamp time_of_last_deploy = 3;</code>
       */
      public com.google.protobuf.TimestampOrBuilder getTimeOfLastDeployOrBuilder() {
        if (timeOfLastDeployBuilder_ != null) {
          return timeOfLastDeployBuilder_.getMessageOrBuilder();
        } else {
          return timeOfLastDeploy_ == null ?
              com.google.protobuf.Timestamp.getDefaultInstance() : timeOfLastDeploy_;
        }
      }
      /**
       * <pre>
       * Galaxy.time_of_last_deploy. Absent only when the Galaxy table reports null.
       * </pre>
       *
       * <code>.google.protobuf.Timestamp time_of_last_deploy = 3;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          com.google.protobuf.Timestamp, com.google.protobuf.Timestamp.Builder, com.google.protobuf.TimestampOrBuilder> 
          internalGetTimeOfLastDeployFieldBuilder() {
        if (timeOfLastDeployBuilder_ == null) {
          timeOfLastDeployBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              com.google.protobuf.Timestamp, com.google.protobuf.Timestamp.Builder, com.google.protobuf.TimestampOrBuilder>(
                  getTimeOfLastDeploy(),
                  getParentForChildren(),
                  isClean());
          timeOfLastDeploy_ = null;
        }
        return timeOfLastDeployBuilder_;
      }

      private boolean timeOfLastDeployPresent_ ;
      /**
       * <code>bool time_of_last_deploy_present = 4;</code>
       * @return The timeOfLastDeployPresent.
       */
      @java.lang.Override
      public boolean getTimeOfLastDeployPresent() {
        return timeOfLastDeployPresent_;
      }
      /**
       * <code>bool time_of_last_deploy_present = 4;</code>
       * @param value The timeOfLastDeployPresent to set.
       * @return This builder for chaining.
       */
      public Builder setTimeOfLastDeployPresent(boolean value) {

        timeOfLastDeployPresent_ = value;
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * <code>bool time_of_last_deploy_present = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearTimeOfLastDeployPresent() {
        bitField0_ = (bitField0_ & ~0x00000008);
        timeOfLastDeployPresent_ = false;
        onChanged();
        return this;
      }

      private int objectCount_ ;
      /**
       * <code>int32 object_count = 5;</code>
       * @return The objectCount.
       */
      @java.lang.Override
      public int getObjectCount() {
        return objectCount_;
      }
      /**
       * <code>int32 object_count = 5;</code>
       * @param value The objectCount to set.
       * @return This builder for chaining.
       */
      public Builder setObjectCount(int value) {

        objectCount_ = value;
        bitField0_ |= 0x00000010;
        onChanged();
        return this;
      }
      /**
       * <code>int32 object_count = 5;</code>
       * @return This builder for chaining.
       */
      public Builder clearObjectCount() {
        bitField0_ = (bitField0_ & ~0x00000010);
        objectCount_ = 0;
        onChanged();
        return this;
      }

      private int attributeCount_ ;
      /**
       * <code>int32 attribute_count = 6;</code>
       * @return The attributeCount.
       */
      @java.lang.Override
      public int getAttributeCount() {
        return attributeCount_;
      }
      /**
       * <code>int32 attribute_count = 6;</code>
       * @param value The attributeCount to set.
       * @return This builder for chaining.
       */
      public Builder setAttributeCount(int value) {

        attributeCount_ = value;
        bitField0_ |= 0x00000020;
        onChanged();
        return this;
      }
      /**
       * <code>int32 attribute_count = 6;</code>
       * @return This builder for chaining.
       */
      public Builder clearAttributeCount() {
        bitField0_ = (bitField0_ & ~0x00000020);
        attributeCount_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:galaxy_repository.v1.DeployEvent)
    }

    // @@protoc_insertion_point(class_scope:galaxy_repository.v1.DeployEvent)
    private static final galaxy_repository.v1.GalaxyRepositoryOuterClass.DeployEvent DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new galaxy_repository.v1.GalaxyRepositoryOuterClass.DeployEvent();
    }

    public static galaxy_repository.v1.GalaxyRepositoryOuterClass.DeployEvent getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<DeployEvent>
        PARSER = new com.google.protobuf.AbstractParser<DeployEvent>() {
      @java.lang.Override
      public DeployEvent parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<DeployEvent> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<DeployEvent> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public galaxy_repository.v1.GalaxyRepositoryOuterClass.DeployEvent getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface GalaxyObjectOrBuilder extends
      // @@protoc_insertion_point(interface_extends:galaxy_repository.v1.GalaxyObject)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>int32 gobject_id = 1;</code>
     * @return The gobjectId.
     */
    int getGobjectId();

    /**
     * <code>string tag_name = 2;</code>
     * @return The tagName.
     */
    java.lang.String getTagName();
    /**
     * <code>string tag_name = 2;</code>
     * @return The bytes for tagName.
     */
    com.google.protobuf.ByteString
        getTagNameBytes();

    /**
     * <code>string contained_name = 3;</code>
     * @return The containedName.
     */
    java.lang.String getContainedName();
    /**
     * <code>string contained_name = 3;</code>
     * @return The bytes for containedName.
     */
    com.google.protobuf.ByteString
        getContainedNameBytes();

    /**
     * <code>string browse_name = 4;</code>
     * @return The browseName.
     */
    java.lang.String getBrowseName();
    /**
     * <code>string browse_name = 4;</code>
     * @return The bytes for browseName.
     */
    com.google.protobuf.ByteString
        getBrowseNameBytes();

    /**
     * <code>int32 parent_gobject_id = 5;</code>
     * @return The parentGobjectId.
     */
    int getParentGobjectId();

    /**
     * <code>bool is_area = 6;</code>
     * @return The isArea.
     */
    boolean getIsArea();

    /**
     * <code>int32 category_id = 7;</code>
     * @return The categoryId.
     */
    int getCategoryId();

    /**
     * <code>int32 hosted_by_gobject_id = 8;</code>
     * @return The hostedByGobjectId.
     */
    int getHostedByGobjectId();

    /**
     * <code>repeated string template_chain = 9;</code>
     * @return A list containing the templateChain.
     */
    java.util.List<java.lang.String>
        getTemplateChainList();
    /**
     * <code>repeated string template_chain = 9;</code>
     * @return The count of templateChain.
     */
    int getTemplateChainCount();
    /**
     * <code>repeated string template_chain = 9;</code>
     * @param index The index of the element to return.
     * @return The templateChain at the given index.
     */
    java.lang.String getTemplateChain(int index);
    /**
     * <code>repeated string template_chain = 9;</code>
     * @param index The index of the value to return.
     * @return The bytes of the templateChain at the given index.
     */
    com.google.protobuf.ByteString
        getTemplateChainBytes(int index);

    /**
     * <code>repeated .galaxy_repository.v1.GalaxyAttribute attributes = 10;</code>
     */
    java.util.List<galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyAttribute> 
        getAttributesList();
    /**
     * <code>repeated .galaxy_repository.v1.GalaxyAttribute attributes = 10;</code>
     */
    galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyAttribute getAttributes(int index);
    /**
     * <code>repeated .galaxy_repository.v1.GalaxyAttribute attributes = 10;</code>
     */
    int getAttributesCount();
    /**
     * <code>repeated .galaxy_repository.v1.GalaxyAttribute attributes = 10;</code>
     */
    java.util.List<? extends galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyAttributeOrBuilder> 
        getAttributesOrBuilderList();
    /**
     * <code>repeated .galaxy_repository.v1.GalaxyAttribute attributes = 10;</code>
     */
    galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyAttributeOrBuilder getAttributesOrBuilder(
        int index);
  }
  /**
   * Protobuf type {@code galaxy_repository.v1.GalaxyObject}
   */
  public static final class GalaxyObject extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:galaxy_repository.v1.GalaxyObject)
      GalaxyObjectOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 1,
        /* suffix= */ "",
        "GalaxyObject");
    }
    // Use GalaxyObject.newBuilder() to construct.
    private GalaxyObject(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
    }
    private GalaxyObject() {
      tagName_ = "";
      containedName_ = "";
      browseName_ = "";
      templateChain_ =
          com.google.protobuf.LazyStringArrayList.emptyList();
      attributes_ = java.util.Collections.emptyList();
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return galaxy_repository.v1.GalaxyRepositoryOuterClass.internal_static_galaxy_repository_v1_GalaxyObject_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return galaxy_repository.v1.GalaxyRepositoryOuterClass.internal_static_galaxy_repository_v1_GalaxyObject_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyObject.class, galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyObject.Builder.class);
    }

    public static final int GOBJECT_ID_FIELD_NUMBER = 1;
    private int gobjectId_ = 0;
    /**
     * <code>int32 gobject_id = 1;</code>
     * @return The gobjectId.
     */
    @java.lang.Override
    public int getGobjectId() {
      return gobjectId_;
    }

    public static final int TAG_NAME_FIELD_NUMBER = 2;
    @SuppressWarnings("serial")
    private volatile java.lang.Object tagName_ = "";
    /**
     * <code>string tag_name = 2;</code>
     * @return The tagName.
     */
    @java.lang.Override
    public java.lang.String getTagName() {
      java.lang.Object ref = tagName_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        tagName_ = s;
        return s;
      }
    }
    /**
     * <code>string tag_name = 2;</code>
     * @return The bytes for tagName.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getTagNameBytes() {
      java.lang.Object ref = tagName_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        tagName_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int CONTAINED_NAME_FIELD_NUMBER = 3;
    @SuppressWarnings("serial")
    private volatile java.lang.Object containedName_ = "";
    /**
     * <code>string contained_name = 3;</code>
     * @return The containedName.
     */
    @java.lang.Override
    public java.lang.String getContainedName() {
      java.lang.Object ref = containedName_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        containedName_ = s;
        return s;
      }
    }
    /**
     * <code>string contained_name = 3;</code>
     * @return The bytes for containedName.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getContainedNameBytes() {
      java.lang.Object ref = containedName_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        containedName_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int BROWSE_NAME_FIELD_NUMBER = 4;
    @SuppressWarnings("serial")
    private volatile java.lang.Object browseName_ = "";
    /**
     * <code>string browse_name = 4;</code>
     * @return The browseName.
     */
    @java.lang.Override
    public java.lang.String getBrowseName() {
      java.lang.Object ref = browseName_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        browseName_ = s;
        return s;
      }
    }
    /**
     * <code>string browse_name = 4;</code>
     * @return The bytes for browseName.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getBrowseNameBytes() {
      java.lang.Object ref = browseName_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        browseName_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int PARENT_GOBJECT_ID_FIELD_NUMBER = 5;
    private int parentGobjectId_ = 0;
    /**
     * <code>int32 parent_gobject_id = 5;</code>
     * @return The parentGobjectId.
     */
    @java.lang.Override
    public int getParentGobjectId() {
      return parentGobjectId_;
    }

    public static final int IS_AREA_FIELD_NUMBER = 6;
    private boolean isArea_ = false;
    /**
     * <code>bool is_area = 6;</code>
     * @return The isArea.
     */
    @java.lang.Override
    public boolean getIsArea() {
      return isArea_;
    }

    public static final int CATEGORY_ID_FIELD_NUMBER = 7;
    private int categoryId_ = 0;
    /**
     * <code>int32 category_id = 7;</code>
     * @return The categoryId.
     */
    @java.lang.Override
    public int getCategoryId() {
      return categoryId_;
    }

    public static final int HOSTED_BY_GOBJECT_ID_FIELD_NUMBER = 8;
    private int hostedByGobjectId_ = 0;
    /**
     * <code>int32 hosted_by_gobject_id = 8;</code>
     * @return The hostedByGobjectId.
     */
    @java.lang.Override
    public int getHostedByGobjectId() {
      return hostedByGobjectId_;
    }

    public static final int TEMPLATE_CHAIN_FIELD_NUMBER = 9;
    @SuppressWarnings("serial")
    private com.google.protobuf.LazyStringArrayList templateChain_ =
        com.google.protobuf.LazyStringArrayList.emptyList();
    /**
     * <code>repeated string template_chain = 9;</code>
     * @return A list containing the templateChain.
     */
    public com.google.protobuf.ProtocolStringList
        getTemplateChainList() {
      return templateChain_;
    }
    /**
     * <code>repeated string template_chain = 9;</code>
     * @return The count of templateChain.
     */
    public int getTemplateChainCount() {
      return templateChain_.size();
    }
    /**
     * <code>repeated string template_chain = 9;</code>
     * @param index The index of the element to return.
     * @return The templateChain at the given index.
     */
    public java.lang.String getTemplateChain(int index) {
      return templateChain_.get(index);
    }
    /**
     * <code>repeated string template_chain = 9;</code>
     * @param index The index of the value to return.
     * @return The bytes of the templateChain at the given index.
     */
    public com.google.protobuf.ByteString
        getTemplateChainBytes(int index) {
      return templateChain_.getByteString(index);
    }

    public static final int ATTRIBUTES_FIELD_NUMBER = 10;
    @SuppressWarnings("serial")
    private java.util.List<galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyAttribute> attributes_;
    /**
     * <code>repeated .galaxy_repository.v1.GalaxyAttribute attributes = 10;</code>
     */
    @java.lang.Override
    public java.util.List<galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyAttribute> getAttributesList() {
      return attributes_;
    }
    /**
     * <code>repeated .galaxy_repository.v1.GalaxyAttribute attributes = 10;</code>
     */
    @java.lang.Override
    public java.util.List<? extends galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyAttributeOrBuilder> 
        getAttributesOrBuilderList() {
      return attributes_;
    }
    /**
     * <code>repeated .galaxy_repository.v1.GalaxyAttribute attributes = 10;</code>
     */
    @java.lang.Override
    public int getAttributesCount() {
      return attributes_.size();
    }
    /**
     * <code>repeated .galaxy_repository.v1.GalaxyAttribute attributes = 10;</code>
     */
    @java.lang.Override
    public galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyAttribute getAttributes(int index) {
      return attributes_.get(index);
    }
    /**
     * <code>repeated .galaxy_repository.v1.GalaxyAttribute attributes = 10;</code>
     */
    @java.lang.Override
    public galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyAttributeOrBuilder getAttributesOrBuilder(
        int index) {
      return attributes_.get(index);
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (gobjectId_ != 0) {
        output.writeInt32(1, gobjectId_);
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(tagName_)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 2, tagName_);
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(containedName_)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 3, containedName_);
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(browseName_)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 4, browseName_);
      }
      if (parentGobjectId_ != 0) {
        output.writeInt32(5, parentGobjectId_);
      }
      if (isArea_ != false) {
        output.writeBool(6, isArea_);
      }
      if (categoryId_ != 0) {
        output.writeInt32(7, categoryId_);
      }
      if (hostedByGobjectId_ != 0) {
        output.writeInt32(8, hostedByGobjectId_);
      }
      for (int i = 0; i < templateChain_.size(); i++) {
        com.google.protobuf.GeneratedMessage.writeString(output, 9, templateChain_.getRaw(i));
      }
      for (int i = 0; i < attributes_.size(); i++) {
        output.writeMessage(10, attributes_.get(i));
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (gobjectId_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, gobjectId_);
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(tagName_)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(2, tagName_);
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(containedName_)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(3, containedName_);
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(browseName_)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(4, browseName_);
      }
      if (parentGobjectId_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(5, parentGobjectId_);
      }
      if (isArea_ != false) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(6, isArea_);
      }
      if (categoryId_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(7, categoryId_);
      }
      if (hostedByGobjectId_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(8, hostedByGobjectId_);
      }
      {
        int dataSize = 0;
        for (int i = 0; i < templateChain_.size(); i++) {
          dataSize += computeStringSizeNoTag(templateChain_.getRaw(i));
        }
        size += dataSize;
        size += 1 * getTemplateChainList().size();
      }
      for (int i = 0; i < attributes_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(10, attributes_.get(i));
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyObject)) {
        return super.equals(obj);
      }
      galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyObject other = (galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyObject) obj;

      if (getGobjectId()
          != other.getGobjectId()) return false;
      if (!getTagName()
          .equals(other.getTagName())) return false;
      if (!getContainedName()
          .equals(other.getContainedName())) return false;
      if (!getBrowseName()
          .equals(other.getBrowseName())) return false;
      if (getParentGobjectId()
          != other.getParentGobjectId()) return false;
      if (getIsArea()
          != other.getIsArea()) return false;
      if (getCategoryId()
          != other.getCategoryId()) return false;
      if (getHostedByGobjectId()
          != other.getHostedByGobjectId()) return false;
      if (!getTemplateChainList()
          .equals(other.getTemplateChainList())) return false;
      if (!getAttributesList()
          .equals(other.getAttributesList())) return false;
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + GOBJECT_ID_FIELD_NUMBER;
      hash = (53 * hash) + getGobjectId();
      hash = (37 * hash) + TAG_NAME_FIELD_NUMBER;
      hash = (53 * hash) + getTagName().hashCode();
      hash = (37 * hash) + CONTAINED_NAME_FIELD_NUMBER;
      hash = (53 * hash) + getContainedName().hashCode();
      hash = (37 * hash) + BROWSE_NAME_FIELD_NUMBER;
      hash = (53 * hash) + getBrowseName().hashCode();
      hash = (37 * hash) + PARENT_GOBJECT_ID_FIELD_NUMBER;
      hash = (53 * hash) + getParentGobjectId();
      hash = (37 * hash) + IS_AREA_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
          getIsArea());
      hash = (37 * hash) + CATEGORY_ID_FIELD_NUMBER;
      hash = (53 * hash) + getCategoryId();
      hash = (37 * hash) + HOSTED_BY_GOBJECT_ID_FIELD_NUMBER;
      hash = (53 * hash) + getHostedByGobjectId();
      if (getTemplateChainCount() > 0) {
        hash = (37 * hash) + TEMPLATE_CHAIN_FIELD_NUMBER;
        hash = (53 * hash) + getTemplateChainList().hashCode();
      }
      if (getAttributesCount() > 0) {
        hash = (37 * hash) + ATTRIBUTES_FIELD_NUMBER;
        hash = (53 * hash) + getAttributesList().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyObject parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyObject parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyObject parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyObject parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyObject parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyObject parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyObject parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyObject parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyObject parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyObject parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyObject parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyObject parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyObject prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code galaxy_repository.v1.GalaxyObject}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:galaxy_repository.v1.GalaxyObject)
        galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyObjectOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return galaxy_repository.v1.GalaxyRepositoryOuterClass.internal_static_galaxy_repository_v1_GalaxyObject_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return galaxy_repository.v1.GalaxyRepositoryOuterClass.internal_static_galaxy_repository_v1_GalaxyObject_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyObject.class, galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyObject.Builder.class);
      }

      // Construct using galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyObject.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        gobjectId_ = 0;
        tagName_ = "";
        containedName_ = "";
        browseName_ = "";
        parentGobjectId_ = 0;
        isArea_ = false;
        categoryId_ = 0;
        hostedByGobjectId_ = 0;
        templateChain_ =
            com.google.protobuf.LazyStringArrayList.emptyList();
        if (attributesBuilder_ == null) {
          attributes_ = java.util.Collections.emptyList();
        } else {
          attributes_ = null;
          attributesBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000200);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return galaxy_repository.v1.GalaxyRepositoryOuterClass.internal_static_galaxy_repository_v1_GalaxyObject_descriptor;
      }

      @java.lang.Override
      public galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyObject getDefaultInstanceForType() {
        return galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyObject.getDefaultInstance();
      }

      @java.lang.Override
      public galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyObject build() {
        galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyObject result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyObject buildPartial() {
        galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyObject result = new galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyObject(this);
        buildPartialRepeatedFields(result);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartialRepeatedFields(galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyObject result) {
        if (attributesBuilder_ == null) {
          if (((bitField0_ & 0x00000200) != 0)) {
            attributes_ = java.util.Collections.unmodifiableList(attributes_);
            bitField0_ = (bitField0_ & ~0x00000200);
          }
          result.attributes_ = attributes_;
        } else {
          result.attributes_ = attributesBuilder_.build();
        }
      }

      private void buildPartial0(galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyObject result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.gobjectId_ = gobjectId_;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.tagName_ = tagName_;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.containedName_ = containedName_;
        }
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.browseName_ = browseName_;
        }
        if (((from_bitField0_ & 0x00000010) != 0)) {
          result.parentGobjectId_ = parentGobjectId_;
        }
        if (((from_bitField0_ & 0x00000020) != 0)) {
          result.isArea_ = isArea_;
        }
        if (((from_bitField0_ & 0x00000040) != 0)) {
          result.categoryId_ = categoryId_;
        }
        if (((from_bitField0_ & 0x00000080) != 0)) {
          result.hostedByGobjectId_ = hostedByGobjectId_;
        }
        if (((from_bitField0_ & 0x00000100) != 0)) {
          templateChain_.makeImmutable();
          result.templateChain_ = templateChain_;
        }
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyObject) {
          return mergeFrom((galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyObject)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyObject other) {
        if (other == galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyObject.getDefaultInstance()) return this;
        if (other.getGobjectId() != 0) {
          setGobjectId(other.getGobjectId());
        }
        if (!other.getTagName().isEmpty()) {
          tagName_ = other.tagName_;
          bitField0_ |= 0x00000002;
          onChanged();
        }
        if (!other.getContainedName().isEmpty()) {
          containedName_ = other.containedName_;
          bitField0_ |= 0x00000004;
          onChanged();
        }
        if (!other.getBrowseName().isEmpty()) {
          browseName_ = other.browseName_;
          bitField0_ |= 0x00000008;
          onChanged();
        }
        if (other.getParentGobjectId() != 0) {
          setParentGobjectId(other.getParentGobjectId());
        }
        if (other.getIsArea() != false) {
          setIsArea(other.getIsArea());
        }
        if (other.getCategoryId() != 0) {
          setCategoryId(other.getCategoryId());
        }
        if (other.getHostedByGobjectId() != 0) {
          setHostedByGobjectId(other.getHostedByGobjectId());
        }
        if (!other.templateChain_.isEmpty()) {
          if (templateChain_.isEmpty()) {
            templateChain_ = other.templateChain_;
            bitField0_ |= 0x00000100;
          } else {
            ensureTemplateChainIsMutable();
            templateChain_.addAll(other.templateChain_);
          }
          onChanged();
        }
        if (attributesBuilder_ == null) {
          if (!other.attributes_.isEmpty()) {
            if (attributes_.isEmpty()) {
              attributes_ = other.attributes_;
              bitField0_ = (bitField0_ & ~0x00000200);
            } else {
              ensureAttributesIsMutable();
              attributes_.addAll(other.attributes_);
            }
            onChanged();
          }
        } else {
          if (!other.attributes_.isEmpty()) {
            if (attributesBuilder_.isEmpty()) {
              attributesBuilder_.dispose();
              attributesBuilder_ = null;
              attributes_ = other.attributes_;
              bitField0_ = (bitField0_ & ~0x00000200);
              attributesBuilder_ = 
                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                   internalGetAttributesFieldBuilder() : null;
            } else {
              attributesBuilder_.addAllMessages(other.attributes_);
            }
          }
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 8: {
                gobjectId_ = input.readInt32();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 18: {
                tagName_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000002;
                break;
              } // case 18
              case 26: {
                containedName_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000004;
                break;
              } // case 26
              case 34: {
                browseName_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000008;
                break;
              } // case 34
              case 40: {
                parentGobjectId_ = input.readInt32();
                bitField0_ |= 0x00000010;
                break;
              } // case 40
              case 48: {
                isArea_ = input.readBool();
                bitField0_ |= 0x00000020;
                break;
              } // case 48
              case 56: {
                categoryId_ = input.readInt32();
                bitField0_ |= 0x00000040;
                break;
              } // case 56
              case 64: {
                hostedByGobjectId_ = input.readInt32();
                bitField0_ |= 0x00000080;
                break;
              } // case 64
              case 74: {
                java.lang.String s = input.readStringRequireUtf8();
                ensureTemplateChainIsMutable();
                templateChain_.add(s);
                break;
              } // case 74
              case 82: {
                galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyAttribute m =
                    input.readMessage(
                        galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyAttribute.parser(),
                        extensionRegistry);
                if (attributesBuilder_ == null) {
                  ensureAttributesIsMutable();
                  attributes_.add(m);
                } else {
                  attributesBuilder_.addMessage(m);
                }
                break;
              } // case 82
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private int gobjectId_ ;
      /**
       * <code>int32 gobject_id = 1;</code>
       * @return The gobjectId.
       */
      @java.lang.Override
      public int getGobjectId() {
        return gobjectId_;
      }
      /**
       * <code>int32 gobject_id = 1;</code>
       * @param value The gobjectId to set.
       * @return This builder for chaining.
       */
      public Builder setGobjectId(int value) {

        gobjectId_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>int32 gobject_id = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearGobjectId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        gobjectId_ = 0;
        onChanged();
        return this;
      }

      private java.lang.Object tagName_ = "";
      /**
       * <code>string tag_name = 2;</code>
       * @return The tagName.
       */
      public java.lang.String getTagName() {
        java.lang.Object ref = tagName_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          tagName_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>string tag_name = 2;</code>
       * @return The bytes for tagName.
       */
      public com.google.protobuf.ByteString
          getTagNameBytes() {
        java.lang.Object ref = tagName_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          tagName_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string tag_name = 2;</code>
       * @param value The tagName to set.
       * @return This builder for chaining.
       */
      public Builder setTagName(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        tagName_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>string tag_name = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearTagName() {
        tagName_ = getDefaultInstance().getTagName();
        bitField0_ = (bitField0_ & ~0x00000002);
        onChanged();
        return this;
      }
      /**
       * <code>string tag_name = 2;</code>
       * @param value The bytes for tagName to set.
       * @return This builder for chaining.
       */
      public Builder setTagNameBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        tagName_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }

      private java.lang.Object containedName_ = "";
      /**
       * <code>string contained_name = 3;</code>
       * @return The containedName.
       */
      public java.lang.String getContainedName() {
        java.lang.Object ref = containedName_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          containedName_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>string contained_name = 3;</code>
       * @return The bytes for containedName.
       */
      public com.google.protobuf.ByteString
          getContainedNameBytes() {
        java.lang.Object ref = containedName_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          containedName_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string contained_name = 3;</code>
       * @param value The containedName to set.
       * @return This builder for chaining.
       */
      public Builder setContainedName(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        containedName_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <code>string contained_name = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearContainedName() {
        containedName_ = getDefaultInstance().getContainedName();
        bitField0_ = (bitField0_ & ~0x00000004);
        onChanged();
        return this;
      }
      /**
       * <code>string contained_name = 3;</code>
       * @param value The bytes for containedName to set.
       * @return This builder for chaining.
       */
      public Builder setContainedNameBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        containedName_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }

      private java.lang.Object browseName_ = "";
      /**
       * <code>string browse_name = 4;</code>
       * @return The browseName.
       */
      public java.lang.String getBrowseName() {
        java.lang.Object ref = browseName_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          browseName_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>string browse_name = 4;</code>
       * @return The bytes for browseName.
       */
      public com.google.protobuf.ByteString
          getBrowseNameBytes() {
        java.lang.Object ref = browseName_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          browseName_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string browse_name = 4;</code>
       * @param value The browseName to set.
       * @return This builder for chaining.
       */
      public Builder setBrowseName(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        browseName_ = value;
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * <code>string browse_name = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearBrowseName() {
        browseName_ = getDefaultInstance().getBrowseName();
        bitField0_ = (bitField0_ & ~0x00000008);
        onChanged();
        return this;
      }
      /**
       * <code>string browse_name = 4;</code>
       * @param value The bytes for browseName to set.
       * @return This builder for chaining.
       */
      public Builder setBrowseNameBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        browseName_ = value;
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }

      private int parentGobjectId_ ;
      /**
       * <code>int32 parent_gobject_id = 5;</code>
       * @return The parentGobjectId.
       */
      @java.lang.Override
      public int getParentGobjectId() {
        return parentGobjectId_;
      }
      /**
       * <code>int32 parent_gobject_id = 5;</code>
       * @param value The parentGobjectId to set.
       * @return This builder for chaining.
       */
      public Builder setParentGobjectId(int value) {

        parentGobjectId_ = value;
        bitField0_ |= 0x00000010;
        onChanged();
        return this;
      }
      /**
       * <code>int32 parent_gobject_id = 5;</code>
       * @return This builder for chaining.
       */
      public Builder clearParentGobjectId() {
        bitField0_ = (bitField0_ & ~0x00000010);
        parentGobjectId_ = 0;
        onChanged();
        return this;
      }

      private boolean isArea_ ;
      /**
       * <code>bool is_area = 6;</code>
       * @return The isArea.
       */
      @java.lang.Override
      public boolean getIsArea() {
        return isArea_;
      }
      /**
       * <code>bool is_area = 6;</code>
       * @param value The isArea to set.
       * @return This builder for chaining.
       */
      public Builder setIsArea(boolean value) {

        isArea_ = value;
        bitField0_ |= 0x00000020;
        onChanged();
        return this;
      }
      /**
       * <code>bool is_area = 6;</code>
       * @return This builder for chaining.
       */
      public Builder clearIsArea() {
        bitField0_ = (bitField0_ & ~0x00000020);
        isArea_ = false;
        onChanged();
        return this;
      }

      private int categoryId_ ;
      /**
       * <code>int32 category_id = 7;</code>
       * @return The categoryId.
       */
      @java.lang.Override
      public int getCategoryId() {
        return categoryId_;
      }
      /**
       * <code>int32 category_id = 7;</code>
       * @param value The categoryId to set.
       * @return This builder for chaining.
       */
      public Builder setCategoryId(int value) {

        categoryId_ = value;
        bitField0_ |= 0x00000040;
        onChanged();
        return this;
      }
      /**
       * <code>int32 category_id = 7;</code>
       * @return This builder for chaining.
       */
      public Builder clearCategoryId() {
        bitField0_ = (bitField0_ & ~0x00000040);
        categoryId_ = 0;
        onChanged();
        return this;
      }

      private int hostedByGobjectId_ ;
      /**
       * <code>int32 hosted_by_gobject_id = 8;</code>
       * @return The hostedByGobjectId.
       */
      @java.lang.Override
      public int getHostedByGobjectId() {
        return hostedByGobjectId_;
      }
      /**
       * <code>int32 hosted_by_gobject_id = 8;</code>
       * @param value The hostedByGobjectId to set.
       * @return This builder for chaining.
       */
      public Builder setHostedByGobjectId(int value) {

        hostedByGobjectId_ = value;
        bitField0_ |= 0x00000080;
        onChanged();
        return this;
      }
      /**
       * <code>int32 hosted_by_gobject_id = 8;</code>
       * @return This builder for chaining.
       */
      public Builder clearHostedByGobjectId() {
        bitField0_ = (bitField0_ & ~0x00000080);
        hostedByGobjectId_ = 0;
        onChanged();
        return this;
      }

      private com.google.protobuf.LazyStringArrayList templateChain_ =
          com.google.protobuf.LazyStringArrayList.emptyList();
      private void ensureTemplateChainIsMutable() {
        if (!templateChain_.isModifiable()) {
          templateChain_ = new com.google.protobuf.LazyStringArrayList(templateChain_);
        }
        bitField0_ |= 0x00000100;
      }
      /**
       * <code>repeated string template_chain = 9;</code>
       * @return A list containing the templateChain.
       */
      public com.google.protobuf.ProtocolStringList
          getTemplateChainList() {
        templateChain_.makeImmutable();
        return templateChain_;
      }
      /**
       * <code>repeated string template_chain = 9;</code>
       * @return The count of templateChain.
       */
      public int getTemplateChainCount() {
        return templateChain_.size();
      }
      /**
       * <code>repeated string template_chain = 9;</code>
       * @param index The index of the element to return.
       * @return The templateChain at the given index.
       */
      public java.lang.String getTemplateChain(int index) {
        return templateChain_.get(index);
      }
      /**
       * <code>repeated string template_chain = 9;</code>
       * @param index The index of the value to return.
       * @return The bytes of the templateChain at the given index.
       */
      public com.google.protobuf.ByteString
          getTemplateChainBytes(int index) {
        return templateChain_.getByteString(index);
      }
      /**
       * <code>repeated string template_chain = 9;</code>
       * @param index The index to set the value at.
       * @param value The templateChain to set.
       * @return This builder for chaining.
       */
      public Builder setTemplateChain(
          int index, java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        ensureTemplateChainIsMutable();
        templateChain_.set(index, value);
        bitField0_ |= 0x00000100;
        onChanged();
        return this;
      }
      /**
       * <code>repeated string template_chain = 9;</code>
       * @param value The templateChain to add.
       * @return This builder for chaining.
       */
      public Builder addTemplateChain(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        ensureTemplateChainIsMutable();
        templateChain_.add(value);
        bitField0_ |= 0x00000100;
        onChanged();
        return this;
      }
      /**
       * <code>repeated string template_chain = 9;</code>
       * @param values The templateChain to add.
       * @return This builder for chaining.
       */
      public Builder addAllTemplateChain(
          java.lang.Iterable<java.lang.String> values) {
        ensureTemplateChainIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, templateChain_);
        bitField0_ |= 0x00000100;
        onChanged();
        return this;
      }
      /**
       * <code>repeated string template_chain = 9;</code>
       * @return This builder for chaining.
       */
      public Builder clearTemplateChain() {
        templateChain_ =
          com.google.protobuf.LazyStringArrayList.emptyList();
        bitField0_ = (bitField0_ & ~0x00000100);;
        onChanged();
        return this;
      }
      /**
       * <code>repeated string template_chain = 9;</code>
       * @param value The bytes of the templateChain to add.
       * @return This builder for chaining.
       */
      public Builder addTemplateChainBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        ensureTemplateChainIsMutable();
        templateChain_.add(value);
        bitField0_ |= 0x00000100;
        onChanged();
        return this;
      }

      private java.util.List<galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyAttribute> attributes_ =
        java.util.Collections.emptyList();
      private void ensureAttributesIsMutable() {
        if (!((bitField0_ & 0x00000200) != 0)) {
          attributes_ = new java.util.ArrayList<galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyAttribute>(attributes_);
          bitField0_ |= 0x00000200;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilder<
          galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyAttribute, galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyAttribute.Builder, galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyAttributeOrBuilder> attributesBuilder_;

      /**
       * <code>repeated .galaxy_repository.v1.GalaxyAttribute attributes = 10;</code>
       */
      public java.util.List<galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyAttribute> getAttributesList() {
        if (attributesBuilder_ == null) {
          return java.util.Collections.unmodifiableList(attributes_);
        } else {
          return attributesBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .galaxy_repository.v1.GalaxyAttribute attributes = 10;</code>
       */
      public int getAttributesCount() {
        if (attributesBuilder_ == null) {
          return attributes_.size();
        } else {
          return attributesBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .galaxy_repository.v1.GalaxyAttribute attributes = 10;</code>
       */
      public galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyAttribute getAttributes(int index) {
        if (attributesBuilder_ == null) {
          return attributes_.get(index);
        } else {
          return attributesBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .galaxy_repository.v1.GalaxyAttribute attributes = 10;</code>
       */
      public Builder setAttributes(
          int index, galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyAttribute value) {
        if (attributesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureAttributesIsMutable();
          attributes_.set(index, value);
          onChanged();
        } else {
          attributesBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .galaxy_repository.v1.GalaxyAttribute attributes = 10;</code>
       */
      public Builder setAttributes(
          int index, galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyAttribute.Builder builderForValue) {
        if (attributesBuilder_ == null) {
          ensureAttributesIsMutable();
          attributes_.set(index, builderForValue.build());
          onChanged();
        } else {
          attributesBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .galaxy_repository.v1.GalaxyAttribute attributes = 10;</code>
       */
      public Builder addAttributes(galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyAttribute value) {
        if (attributesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureAttributesIsMutable();
          attributes_.add(value);
          onChanged();
        } else {
          attributesBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .galaxy_repository.v1.GalaxyAttribute attributes = 10;</code>
       */
      public Builder addAttributes(
          int index, galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyAttribute value) {
        if (attributesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureAttributesIsMutable();
          attributes_.add(index, value);
          onChanged();
        } else {
          attributesBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .galaxy_repository.v1.GalaxyAttribute attributes = 10;</code>
       */
      public Builder addAttributes(
          galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyAttribute.Builder builderForValue) {
        if (attributesBuilder_ == null) {
          ensureAttributesIsMutable();
          attributes_.add(builderForValue.build());
          onChanged();
        } else {
          attributesBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .galaxy_repository.v1.GalaxyAttribute attributes = 10;</code>
       */
      public Builder addAttributes(
          int index, galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyAttribute.Builder builderForValue) {
        if (attributesBuilder_ == null) {
          ensureAttributesIsMutable();
          attributes_.add(index, builderForValue.build());
          onChanged();
        } else {
          attributesBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .galaxy_repository.v1.GalaxyAttribute attributes = 10;</code>
       */
      public Builder addAllAttributes(
          java.lang.Iterable<? extends galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyAttribute> values) {
        if (attributesBuilder_ == null) {
          ensureAttributesIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, attributes_);
          onChanged();
        } else {
          attributesBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .galaxy_repository.v1.GalaxyAttribute attributes = 10;</code>
       */
      public Builder clearAttributes() {
        if (attributesBuilder_ == null) {
          attributes_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000200);
          onChanged();
        } else {
          attributesBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .galaxy_repository.v1.GalaxyAttribute attributes = 10;</code>
       */
      public Builder removeAttributes(int index) {
        if (attributesBuilder_ == null) {
          ensureAttributesIsMutable();
          attributes_.remove(index);
          onChanged();
        } else {
          attributesBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .galaxy_repository.v1.GalaxyAttribute attributes = 10;</code>
       */
      public galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyAttribute.Builder getAttributesBuilder(
          int index) {
        return internalGetAttributesFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .galaxy_repository.v1.GalaxyAttribute attributes = 10;</code>
       */
      public galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyAttributeOrBuilder getAttributesOrBuilder(
          int index) {
        if (attributesBuilder_ == null) {
          return attributes_.get(index);  } else {
          return attributesBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .galaxy_repository.v1.GalaxyAttribute attributes = 10;</code>
       */
      public java.util.List<? extends galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyAttributeOrBuilder> 
           getAttributesOrBuilderList() {
        if (attributesBuilder_ != null) {
          return attributesBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(attributes_);
        }
      }
      /**
       * <code>repeated .galaxy_repository.v1.GalaxyAttribute attributes = 10;</code>
       */
      public galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyAttribute.Builder addAttributesBuilder() {
        return internalGetAttributesFieldBuilder().addBuilder(
            galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyAttribute.getDefaultInstance());
      }
      /**
       * <code>repeated .galaxy_repository.v1.GalaxyAttribute attributes = 10;</code>
       */
      public galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyAttribute.Builder addAttributesBuilder(
          int index) {
        return internalGetAttributesFieldBuilder().addBuilder(
            index, galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyAttribute.getDefaultInstance());
      }
      /**
       * <code>repeated .galaxy_repository.v1.GalaxyAttribute attributes = 10;</code>
       */
      public java.util.List<galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyAttribute.Builder> 
           getAttributesBuilderList() {
        return internalGetAttributesFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilder<
          galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyAttribute, galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyAttribute.Builder, galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyAttributeOrBuilder> 
          internalGetAttributesFieldBuilder() {
        if (attributesBuilder_ == null) {
          attributesBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
              galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyAttribute, galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyAttribute.Builder, galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyAttributeOrBuilder>(
                  attributes_,
                  ((bitField0_ & 0x00000200) != 0),
                  getParentForChildren(),
                  isClean());
          attributes_ = null;
        }
        return attributesBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:galaxy_repository.v1.GalaxyObject)
    }

    // @@protoc_insertion_point(class_scope:galaxy_repository.v1.GalaxyObject)
    private static final galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyObject DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyObject();
    }

    public static galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyObject getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<GalaxyObject>
        PARSER = new com.google.protobuf.AbstractParser<GalaxyObject>() {
      @java.lang.Override
      public GalaxyObject parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<GalaxyObject> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<GalaxyObject> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyObject getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface GalaxyAttributeOrBuilder extends
      // @@protoc_insertion_point(interface_extends:galaxy_repository.v1.GalaxyAttribute)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>string attribute_name = 1;</code>
     * @return The attributeName.
     */
    java.lang.String getAttributeName();
    /**
     * <code>string attribute_name = 1;</code>
     * @return The bytes for attributeName.
     */
    com.google.protobuf.ByteString
        getAttributeNameBytes();

    /**
     * <code>string full_tag_reference = 2;</code>
     * @return The fullTagReference.
     */
    java.lang.String getFullTagReference();
    /**
     * <code>string full_tag_reference = 2;</code>
     * @return The bytes for fullTagReference.
     */
    com.google.protobuf.ByteString
        getFullTagReferenceBytes();

    /**
     * <pre>
     * 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.
     * </pre>
     *
     * <code>int32 mx_data_type = 3;</code>
     * @return The mxDataType.
     */
    int getMxDataType();

    /**
     * <pre>
     * Human-readable name from Galaxy's `dbo.data_type` table (e.g. "Float",
     * "Integer", "Boolean"). Free-form Galaxy text; not a stable enum.
     * </pre>
     *
     * <code>string data_type_name = 4;</code>
     * @return The dataTypeName.
     */
    java.lang.String getDataTypeName();
    /**
     * <pre>
     * Human-readable name from Galaxy's `dbo.data_type` table (e.g. "Float",
     * "Integer", "Boolean"). Free-form Galaxy text; not a stable enum.
     * </pre>
     *
     * <code>string data_type_name = 4;</code>
     * @return The bytes for dataTypeName.
     */
    com.google.protobuf.ByteString
        getDataTypeNameBytes();

    /**
     * <code>bool is_array = 5;</code>
     * @return The isArray.
     */
    boolean getIsArray();

    /**
     * <code>int32 array_dimension = 6;</code>
     * @return The arrayDimension.
     */
    int getArrayDimension();

    /**
     * <code>bool array_dimension_present = 7;</code>
     * @return The arrayDimensionPresent.
     */
    boolean getArrayDimensionPresent();

    /**
     * <pre>
     * Raw Galaxy SQL attribute-category identifier, passed through unchanged.
     * Galaxy-specific; not mapped to any gateway enum. See
     * docs/GalaxyRepository.md.
     * </pre>
     *
     * <code>int32 mx_attribute_category = 8;</code>
     * @return The mxAttributeCategory.
     */
    int getMxAttributeCategory();

    /**
     * <pre>
     * Raw Galaxy SQL security-classification identifier, passed through
     * unchanged. Galaxy-specific; not mapped to any gateway enum. See
     * docs/GalaxyRepository.md.
     * </pre>
     *
     * <code>int32 security_classification = 9;</code>
     * @return The securityClassification.
     */
    int getSecurityClassification();

    /**
     * <code>bool is_historized = 10;</code>
     * @return The isHistorized.
     */
    boolean getIsHistorized();

    /**
     * <code>bool is_alarm = 11;</code>
     * @return The isAlarm.
     */
    boolean getIsAlarm();
  }
  /**
   * Protobuf type {@code galaxy_repository.v1.GalaxyAttribute}
   */
  public static final class GalaxyAttribute extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:galaxy_repository.v1.GalaxyAttribute)
      GalaxyAttributeOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 1,
        /* suffix= */ "",
        "GalaxyAttribute");
    }
    // Use GalaxyAttribute.newBuilder() to construct.
    private GalaxyAttribute(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
    }
    private GalaxyAttribute() {
      attributeName_ = "";
      fullTagReference_ = "";
      dataTypeName_ = "";
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return galaxy_repository.v1.GalaxyRepositoryOuterClass.internal_static_galaxy_repository_v1_GalaxyAttribute_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return galaxy_repository.v1.GalaxyRepositoryOuterClass.internal_static_galaxy_repository_v1_GalaxyAttribute_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyAttribute.class, galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyAttribute.Builder.class);
    }

    public static final int ATTRIBUTE_NAME_FIELD_NUMBER = 1;
    @SuppressWarnings("serial")
    private volatile java.lang.Object attributeName_ = "";
    /**
     * <code>string attribute_name = 1;</code>
     * @return The attributeName.
     */
    @java.lang.Override
    public java.lang.String getAttributeName() {
      java.lang.Object ref = attributeName_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        attributeName_ = s;
        return s;
      }
    }
    /**
     * <code>string attribute_name = 1;</code>
     * @return The bytes for attributeName.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getAttributeNameBytes() {
      java.lang.Object ref = attributeName_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        attributeName_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int FULL_TAG_REFERENCE_FIELD_NUMBER = 2;
    @SuppressWarnings("serial")
    private volatile java.lang.Object fullTagReference_ = "";
    /**
     * <code>string full_tag_reference = 2;</code>
     * @return The fullTagReference.
     */
    @java.lang.Override
    public java.lang.String getFullTagReference() {
      java.lang.Object ref = fullTagReference_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        fullTagReference_ = s;
        return s;
      }
    }
    /**
     * <code>string full_tag_reference = 2;</code>
     * @return The bytes for fullTagReference.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getFullTagReferenceBytes() {
      java.lang.Object ref = fullTagReference_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        fullTagReference_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int MX_DATA_TYPE_FIELD_NUMBER = 3;
    private int mxDataType_ = 0;
    /**
     * <pre>
     * 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.
     * </pre>
     *
     * <code>int32 mx_data_type = 3;</code>
     * @return The mxDataType.
     */
    @java.lang.Override
    public int getMxDataType() {
      return mxDataType_;
    }

    public static final int DATA_TYPE_NAME_FIELD_NUMBER = 4;
    @SuppressWarnings("serial")
    private volatile java.lang.Object dataTypeName_ = "";
    /**
     * <pre>
     * Human-readable name from Galaxy's `dbo.data_type` table (e.g. "Float",
     * "Integer", "Boolean"). Free-form Galaxy text; not a stable enum.
     * </pre>
     *
     * <code>string data_type_name = 4;</code>
     * @return The dataTypeName.
     */
    @java.lang.Override
    public java.lang.String getDataTypeName() {
      java.lang.Object ref = dataTypeName_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        dataTypeName_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * Human-readable name from Galaxy's `dbo.data_type` table (e.g. "Float",
     * "Integer", "Boolean"). Free-form Galaxy text; not a stable enum.
     * </pre>
     *
     * <code>string data_type_name = 4;</code>
     * @return The bytes for dataTypeName.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getDataTypeNameBytes() {
      java.lang.Object ref = dataTypeName_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        dataTypeName_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int IS_ARRAY_FIELD_NUMBER = 5;
    private boolean isArray_ = false;
    /**
     * <code>bool is_array = 5;</code>
     * @return The isArray.
     */
    @java.lang.Override
    public boolean getIsArray() {
      return isArray_;
    }

    public static final int ARRAY_DIMENSION_FIELD_NUMBER = 6;
    private int arrayDimension_ = 0;
    /**
     * <code>int32 array_dimension = 6;</code>
     * @return The arrayDimension.
     */
    @java.lang.Override
    public int getArrayDimension() {
      return arrayDimension_;
    }

    public static final int ARRAY_DIMENSION_PRESENT_FIELD_NUMBER = 7;
    private boolean arrayDimensionPresent_ = false;
    /**
     * <code>bool array_dimension_present = 7;</code>
     * @return The arrayDimensionPresent.
     */
    @java.lang.Override
    public boolean getArrayDimensionPresent() {
      return arrayDimensionPresent_;
    }

    public static final int MX_ATTRIBUTE_CATEGORY_FIELD_NUMBER = 8;
    private int mxAttributeCategory_ = 0;
    /**
     * <pre>
     * Raw Galaxy SQL attribute-category identifier, passed through unchanged.
     * Galaxy-specific; not mapped to any gateway enum. See
     * docs/GalaxyRepository.md.
     * </pre>
     *
     * <code>int32 mx_attribute_category = 8;</code>
     * @return The mxAttributeCategory.
     */
    @java.lang.Override
    public int getMxAttributeCategory() {
      return mxAttributeCategory_;
    }

    public static final int SECURITY_CLASSIFICATION_FIELD_NUMBER = 9;
    private int securityClassification_ = 0;
    /**
     * <pre>
     * Raw Galaxy SQL security-classification identifier, passed through
     * unchanged. Galaxy-specific; not mapped to any gateway enum. See
     * docs/GalaxyRepository.md.
     * </pre>
     *
     * <code>int32 security_classification = 9;</code>
     * @return The securityClassification.
     */
    @java.lang.Override
    public int getSecurityClassification() {
      return securityClassification_;
    }

    public static final int IS_HISTORIZED_FIELD_NUMBER = 10;
    private boolean isHistorized_ = false;
    /**
     * <code>bool is_historized = 10;</code>
     * @return The isHistorized.
     */
    @java.lang.Override
    public boolean getIsHistorized() {
      return isHistorized_;
    }

    public static final int IS_ALARM_FIELD_NUMBER = 11;
    private boolean isAlarm_ = false;
    /**
     * <code>bool is_alarm = 11;</code>
     * @return The isAlarm.
     */
    @java.lang.Override
    public boolean getIsAlarm() {
      return isAlarm_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(attributeName_)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 1, attributeName_);
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(fullTagReference_)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 2, fullTagReference_);
      }
      if (mxDataType_ != 0) {
        output.writeInt32(3, mxDataType_);
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(dataTypeName_)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 4, dataTypeName_);
      }
      if (isArray_ != false) {
        output.writeBool(5, isArray_);
      }
      if (arrayDimension_ != 0) {
        output.writeInt32(6, arrayDimension_);
      }
      if (arrayDimensionPresent_ != false) {
        output.writeBool(7, arrayDimensionPresent_);
      }
      if (mxAttributeCategory_ != 0) {
        output.writeInt32(8, mxAttributeCategory_);
      }
      if (securityClassification_ != 0) {
        output.writeInt32(9, securityClassification_);
      }
      if (isHistorized_ != false) {
        output.writeBool(10, isHistorized_);
      }
      if (isAlarm_ != false) {
        output.writeBool(11, isAlarm_);
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(attributeName_)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(1, attributeName_);
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(fullTagReference_)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(2, fullTagReference_);
      }
      if (mxDataType_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(3, mxDataType_);
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(dataTypeName_)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(4, dataTypeName_);
      }
      if (isArray_ != false) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(5, isArray_);
      }
      if (arrayDimension_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(6, arrayDimension_);
      }
      if (arrayDimensionPresent_ != false) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(7, arrayDimensionPresent_);
      }
      if (mxAttributeCategory_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(8, mxAttributeCategory_);
      }
      if (securityClassification_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(9, securityClassification_);
      }
      if (isHistorized_ != false) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(10, isHistorized_);
      }
      if (isAlarm_ != false) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(11, isAlarm_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyAttribute)) {
        return super.equals(obj);
      }
      galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyAttribute other = (galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyAttribute) obj;

      if (!getAttributeName()
          .equals(other.getAttributeName())) return false;
      if (!getFullTagReference()
          .equals(other.getFullTagReference())) return false;
      if (getMxDataType()
          != other.getMxDataType()) return false;
      if (!getDataTypeName()
          .equals(other.getDataTypeName())) return false;
      if (getIsArray()
          != other.getIsArray()) return false;
      if (getArrayDimension()
          != other.getArrayDimension()) return false;
      if (getArrayDimensionPresent()
          != other.getArrayDimensionPresent()) return false;
      if (getMxAttributeCategory()
          != other.getMxAttributeCategory()) return false;
      if (getSecurityClassification()
          != other.getSecurityClassification()) return false;
      if (getIsHistorized()
          != other.getIsHistorized()) return false;
      if (getIsAlarm()
          != other.getIsAlarm()) return false;
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + ATTRIBUTE_NAME_FIELD_NUMBER;
      hash = (53 * hash) + getAttributeName().hashCode();
      hash = (37 * hash) + FULL_TAG_REFERENCE_FIELD_NUMBER;
      hash = (53 * hash) + getFullTagReference().hashCode();
      hash = (37 * hash) + MX_DATA_TYPE_FIELD_NUMBER;
      hash = (53 * hash) + getMxDataType();
      hash = (37 * hash) + DATA_TYPE_NAME_FIELD_NUMBER;
      hash = (53 * hash) + getDataTypeName().hashCode();
      hash = (37 * hash) + IS_ARRAY_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
          getIsArray());
      hash = (37 * hash) + ARRAY_DIMENSION_FIELD_NUMBER;
      hash = (53 * hash) + getArrayDimension();
      hash = (37 * hash) + ARRAY_DIMENSION_PRESENT_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
          getArrayDimensionPresent());
      hash = (37 * hash) + MX_ATTRIBUTE_CATEGORY_FIELD_NUMBER;
      hash = (53 * hash) + getMxAttributeCategory();
      hash = (37 * hash) + SECURITY_CLASSIFICATION_FIELD_NUMBER;
      hash = (53 * hash) + getSecurityClassification();
      hash = (37 * hash) + IS_HISTORIZED_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
          getIsHistorized());
      hash = (37 * hash) + IS_ALARM_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
          getIsAlarm());
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyAttribute parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyAttribute parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyAttribute parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyAttribute parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyAttribute parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyAttribute parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyAttribute parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyAttribute parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyAttribute parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyAttribute parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyAttribute parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyAttribute parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyAttribute prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code galaxy_repository.v1.GalaxyAttribute}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:galaxy_repository.v1.GalaxyAttribute)
        galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyAttributeOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return galaxy_repository.v1.GalaxyRepositoryOuterClass.internal_static_galaxy_repository_v1_GalaxyAttribute_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return galaxy_repository.v1.GalaxyRepositoryOuterClass.internal_static_galaxy_repository_v1_GalaxyAttribute_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyAttribute.class, galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyAttribute.Builder.class);
      }

      // Construct using galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyAttribute.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        attributeName_ = "";
        fullTagReference_ = "";
        mxDataType_ = 0;
        dataTypeName_ = "";
        isArray_ = false;
        arrayDimension_ = 0;
        arrayDimensionPresent_ = false;
        mxAttributeCategory_ = 0;
        securityClassification_ = 0;
        isHistorized_ = false;
        isAlarm_ = false;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return galaxy_repository.v1.GalaxyRepositoryOuterClass.internal_static_galaxy_repository_v1_GalaxyAttribute_descriptor;
      }

      @java.lang.Override
      public galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyAttribute getDefaultInstanceForType() {
        return galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyAttribute.getDefaultInstance();
      }

      @java.lang.Override
      public galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyAttribute build() {
        galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyAttribute result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyAttribute buildPartial() {
        galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyAttribute result = new galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyAttribute(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyAttribute result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.attributeName_ = attributeName_;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.fullTagReference_ = fullTagReference_;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.mxDataType_ = mxDataType_;
        }
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.dataTypeName_ = dataTypeName_;
        }
        if (((from_bitField0_ & 0x00000010) != 0)) {
          result.isArray_ = isArray_;
        }
        if (((from_bitField0_ & 0x00000020) != 0)) {
          result.arrayDimension_ = arrayDimension_;
        }
        if (((from_bitField0_ & 0x00000040) != 0)) {
          result.arrayDimensionPresent_ = arrayDimensionPresent_;
        }
        if (((from_bitField0_ & 0x00000080) != 0)) {
          result.mxAttributeCategory_ = mxAttributeCategory_;
        }
        if (((from_bitField0_ & 0x00000100) != 0)) {
          result.securityClassification_ = securityClassification_;
        }
        if (((from_bitField0_ & 0x00000200) != 0)) {
          result.isHistorized_ = isHistorized_;
        }
        if (((from_bitField0_ & 0x00000400) != 0)) {
          result.isAlarm_ = isAlarm_;
        }
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyAttribute) {
          return mergeFrom((galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyAttribute)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyAttribute other) {
        if (other == galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyAttribute.getDefaultInstance()) return this;
        if (!other.getAttributeName().isEmpty()) {
          attributeName_ = other.attributeName_;
          bitField0_ |= 0x00000001;
          onChanged();
        }
        if (!other.getFullTagReference().isEmpty()) {
          fullTagReference_ = other.fullTagReference_;
          bitField0_ |= 0x00000002;
          onChanged();
        }
        if (other.getMxDataType() != 0) {
          setMxDataType(other.getMxDataType());
        }
        if (!other.getDataTypeName().isEmpty()) {
          dataTypeName_ = other.dataTypeName_;
          bitField0_ |= 0x00000008;
          onChanged();
        }
        if (other.getIsArray() != false) {
          setIsArray(other.getIsArray());
        }
        if (other.getArrayDimension() != 0) {
          setArrayDimension(other.getArrayDimension());
        }
        if (other.getArrayDimensionPresent() != false) {
          setArrayDimensionPresent(other.getArrayDimensionPresent());
        }
        if (other.getMxAttributeCategory() != 0) {
          setMxAttributeCategory(other.getMxAttributeCategory());
        }
        if (other.getSecurityClassification() != 0) {
          setSecurityClassification(other.getSecurityClassification());
        }
        if (other.getIsHistorized() != false) {
          setIsHistorized(other.getIsHistorized());
        }
        if (other.getIsAlarm() != false) {
          setIsAlarm(other.getIsAlarm());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 10: {
                attributeName_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000001;
                break;
              } // case 10
              case 18: {
                fullTagReference_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000002;
                break;
              } // case 18
              case 24: {
                mxDataType_ = input.readInt32();
                bitField0_ |= 0x00000004;
                break;
              } // case 24
              case 34: {
                dataTypeName_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000008;
                break;
              } // case 34
              case 40: {
                isArray_ = input.readBool();
                bitField0_ |= 0x00000010;
                break;
              } // case 40
              case 48: {
                arrayDimension_ = input.readInt32();
                bitField0_ |= 0x00000020;
                break;
              } // case 48
              case 56: {
                arrayDimensionPresent_ = input.readBool();
                bitField0_ |= 0x00000040;
                break;
              } // case 56
              case 64: {
                mxAttributeCategory_ = input.readInt32();
                bitField0_ |= 0x00000080;
                break;
              } // case 64
              case 72: {
                securityClassification_ = input.readInt32();
                bitField0_ |= 0x00000100;
                break;
              } // case 72
              case 80: {
                isHistorized_ = input.readBool();
                bitField0_ |= 0x00000200;
                break;
              } // case 80
              case 88: {
                isAlarm_ = input.readBool();
                bitField0_ |= 0x00000400;
                break;
              } // case 88
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private java.lang.Object attributeName_ = "";
      /**
       * <code>string attribute_name = 1;</code>
       * @return The attributeName.
       */
      public java.lang.String getAttributeName() {
        java.lang.Object ref = attributeName_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          attributeName_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>string attribute_name = 1;</code>
       * @return The bytes for attributeName.
       */
      public com.google.protobuf.ByteString
          getAttributeNameBytes() {
        java.lang.Object ref = attributeName_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          attributeName_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string attribute_name = 1;</code>
       * @param value The attributeName to set.
       * @return This builder for chaining.
       */
      public Builder setAttributeName(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        attributeName_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>string attribute_name = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearAttributeName() {
        attributeName_ = getDefaultInstance().getAttributeName();
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
        return this;
      }
      /**
       * <code>string attribute_name = 1;</code>
       * @param value The bytes for attributeName to set.
       * @return This builder for chaining.
       */
      public Builder setAttributeNameBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        attributeName_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }

      private java.lang.Object fullTagReference_ = "";
      /**
       * <code>string full_tag_reference = 2;</code>
       * @return The fullTagReference.
       */
      public java.lang.String getFullTagReference() {
        java.lang.Object ref = fullTagReference_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          fullTagReference_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>string full_tag_reference = 2;</code>
       * @return The bytes for fullTagReference.
       */
      public com.google.protobuf.ByteString
          getFullTagReferenceBytes() {
        java.lang.Object ref = fullTagReference_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          fullTagReference_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string full_tag_reference = 2;</code>
       * @param value The fullTagReference to set.
       * @return This builder for chaining.
       */
      public Builder setFullTagReference(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        fullTagReference_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>string full_tag_reference = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearFullTagReference() {
        fullTagReference_ = getDefaultInstance().getFullTagReference();
        bitField0_ = (bitField0_ & ~0x00000002);
        onChanged();
        return this;
      }
      /**
       * <code>string full_tag_reference = 2;</code>
       * @param value The bytes for fullTagReference to set.
       * @return This builder for chaining.
       */
      public Builder setFullTagReferenceBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        fullTagReference_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }

      private int mxDataType_ ;
      /**
       * <pre>
       * 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.
       * </pre>
       *
       * <code>int32 mx_data_type = 3;</code>
       * @return The mxDataType.
       */
      @java.lang.Override
      public int getMxDataType() {
        return mxDataType_;
      }
      /**
       * <pre>
       * 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.
       * </pre>
       *
       * <code>int32 mx_data_type = 3;</code>
       * @param value The mxDataType to set.
       * @return This builder for chaining.
       */
      public Builder setMxDataType(int value) {

        mxDataType_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * 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.
       * </pre>
       *
       * <code>int32 mx_data_type = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearMxDataType() {
        bitField0_ = (bitField0_ & ~0x00000004);
        mxDataType_ = 0;
        onChanged();
        return this;
      }

      private java.lang.Object dataTypeName_ = "";
      /**
       * <pre>
       * Human-readable name from Galaxy's `dbo.data_type` table (e.g. "Float",
       * "Integer", "Boolean"). Free-form Galaxy text; not a stable enum.
       * </pre>
       *
       * <code>string data_type_name = 4;</code>
       * @return The dataTypeName.
       */
      public java.lang.String getDataTypeName() {
        java.lang.Object ref = dataTypeName_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          dataTypeName_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * Human-readable name from Galaxy's `dbo.data_type` table (e.g. "Float",
       * "Integer", "Boolean"). Free-form Galaxy text; not a stable enum.
       * </pre>
       *
       * <code>string data_type_name = 4;</code>
       * @return The bytes for dataTypeName.
       */
      public com.google.protobuf.ByteString
          getDataTypeNameBytes() {
        java.lang.Object ref = dataTypeName_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          dataTypeName_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * Human-readable name from Galaxy's `dbo.data_type` table (e.g. "Float",
       * "Integer", "Boolean"). Free-form Galaxy text; not a stable enum.
       * </pre>
       *
       * <code>string data_type_name = 4;</code>
       * @param value The dataTypeName to set.
       * @return This builder for chaining.
       */
      public Builder setDataTypeName(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        dataTypeName_ = value;
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Human-readable name from Galaxy's `dbo.data_type` table (e.g. "Float",
       * "Integer", "Boolean"). Free-form Galaxy text; not a stable enum.
       * </pre>
       *
       * <code>string data_type_name = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearDataTypeName() {
        dataTypeName_ = getDefaultInstance().getDataTypeName();
        bitField0_ = (bitField0_ & ~0x00000008);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Human-readable name from Galaxy's `dbo.data_type` table (e.g. "Float",
       * "Integer", "Boolean"). Free-form Galaxy text; not a stable enum.
       * </pre>
       *
       * <code>string data_type_name = 4;</code>
       * @param value The bytes for dataTypeName to set.
       * @return This builder for chaining.
       */
      public Builder setDataTypeNameBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        dataTypeName_ = value;
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }

      private boolean isArray_ ;
      /**
       * <code>bool is_array = 5;</code>
       * @return The isArray.
       */
      @java.lang.Override
      public boolean getIsArray() {
        return isArray_;
      }
      /**
       * <code>bool is_array = 5;</code>
       * @param value The isArray to set.
       * @return This builder for chaining.
       */
      public Builder setIsArray(boolean value) {

        isArray_ = value;
        bitField0_ |= 0x00000010;
        onChanged();
        return this;
      }
      /**
       * <code>bool is_array = 5;</code>
       * @return This builder for chaining.
       */
      public Builder clearIsArray() {
        bitField0_ = (bitField0_ & ~0x00000010);
        isArray_ = false;
        onChanged();
        return this;
      }

      private int arrayDimension_ ;
      /**
       * <code>int32 array_dimension = 6;</code>
       * @return The arrayDimension.
       */
      @java.lang.Override
      public int getArrayDimension() {
        return arrayDimension_;
      }
      /**
       * <code>int32 array_dimension = 6;</code>
       * @param value The arrayDimension to set.
       * @return This builder for chaining.
       */
      public Builder setArrayDimension(int value) {

        arrayDimension_ = value;
        bitField0_ |= 0x00000020;
        onChanged();
        return this;
      }
      /**
       * <code>int32 array_dimension = 6;</code>
       * @return This builder for chaining.
       */
      public Builder clearArrayDimension() {
        bitField0_ = (bitField0_ & ~0x00000020);
        arrayDimension_ = 0;
        onChanged();
        return this;
      }

      private boolean arrayDimensionPresent_ ;
      /**
       * <code>bool array_dimension_present = 7;</code>
       * @return The arrayDimensionPresent.
       */
      @java.lang.Override
      public boolean getArrayDimensionPresent() {
        return arrayDimensionPresent_;
      }
      /**
       * <code>bool array_dimension_present = 7;</code>
       * @param value The arrayDimensionPresent to set.
       * @return This builder for chaining.
       */
      public Builder setArrayDimensionPresent(boolean value) {

        arrayDimensionPresent_ = value;
        bitField0_ |= 0x00000040;
        onChanged();
        return this;
      }
      /**
       * <code>bool array_dimension_present = 7;</code>
       * @return This builder for chaining.
       */
      public Builder clearArrayDimensionPresent() {
        bitField0_ = (bitField0_ & ~0x00000040);
        arrayDimensionPresent_ = false;
        onChanged();
        return this;
      }

      private int mxAttributeCategory_ ;
      /**
       * <pre>
       * Raw Galaxy SQL attribute-category identifier, passed through unchanged.
       * Galaxy-specific; not mapped to any gateway enum. See
       * docs/GalaxyRepository.md.
       * </pre>
       *
       * <code>int32 mx_attribute_category = 8;</code>
       * @return The mxAttributeCategory.
       */
      @java.lang.Override
      public int getMxAttributeCategory() {
        return mxAttributeCategory_;
      }
      /**
       * <pre>
       * Raw Galaxy SQL attribute-category identifier, passed through unchanged.
       * Galaxy-specific; not mapped to any gateway enum. See
       * docs/GalaxyRepository.md.
       * </pre>
       *
       * <code>int32 mx_attribute_category = 8;</code>
       * @param value The mxAttributeCategory to set.
       * @return This builder for chaining.
       */
      public Builder setMxAttributeCategory(int value) {

        mxAttributeCategory_ = value;
        bitField0_ |= 0x00000080;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Raw Galaxy SQL attribute-category identifier, passed through unchanged.
       * Galaxy-specific; not mapped to any gateway enum. See
       * docs/GalaxyRepository.md.
       * </pre>
       *
       * <code>int32 mx_attribute_category = 8;</code>
       * @return This builder for chaining.
       */
      public Builder clearMxAttributeCategory() {
        bitField0_ = (bitField0_ & ~0x00000080);
        mxAttributeCategory_ = 0;
        onChanged();
        return this;
      }

      private int securityClassification_ ;
      /**
       * <pre>
       * Raw Galaxy SQL security-classification identifier, passed through
       * unchanged. Galaxy-specific; not mapped to any gateway enum. See
       * docs/GalaxyRepository.md.
       * </pre>
       *
       * <code>int32 security_classification = 9;</code>
       * @return The securityClassification.
       */
      @java.lang.Override
      public int getSecurityClassification() {
        return securityClassification_;
      }
      /**
       * <pre>
       * Raw Galaxy SQL security-classification identifier, passed through
       * unchanged. Galaxy-specific; not mapped to any gateway enum. See
       * docs/GalaxyRepository.md.
       * </pre>
       *
       * <code>int32 security_classification = 9;</code>
       * @param value The securityClassification to set.
       * @return This builder for chaining.
       */
      public Builder setSecurityClassification(int value) {

        securityClassification_ = value;
        bitField0_ |= 0x00000100;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Raw Galaxy SQL security-classification identifier, passed through
       * unchanged. Galaxy-specific; not mapped to any gateway enum. See
       * docs/GalaxyRepository.md.
       * </pre>
       *
       * <code>int32 security_classification = 9;</code>
       * @return This builder for chaining.
       */
      public Builder clearSecurityClassification() {
        bitField0_ = (bitField0_ & ~0x00000100);
        securityClassification_ = 0;
        onChanged();
        return this;
      }

      private boolean isHistorized_ ;
      /**
       * <code>bool is_historized = 10;</code>
       * @return The isHistorized.
       */
      @java.lang.Override
      public boolean getIsHistorized() {
        return isHistorized_;
      }
      /**
       * <code>bool is_historized = 10;</code>
       * @param value The isHistorized to set.
       * @return This builder for chaining.
       */
      public Builder setIsHistorized(boolean value) {

        isHistorized_ = value;
        bitField0_ |= 0x00000200;
        onChanged();
        return this;
      }
      /**
       * <code>bool is_historized = 10;</code>
       * @return This builder for chaining.
       */
      public Builder clearIsHistorized() {
        bitField0_ = (bitField0_ & ~0x00000200);
        isHistorized_ = false;
        onChanged();
        return this;
      }

      private boolean isAlarm_ ;
      /**
       * <code>bool is_alarm = 11;</code>
       * @return The isAlarm.
       */
      @java.lang.Override
      public boolean getIsAlarm() {
        return isAlarm_;
      }
      /**
       * <code>bool is_alarm = 11;</code>
       * @param value The isAlarm to set.
       * @return This builder for chaining.
       */
      public Builder setIsAlarm(boolean value) {

        isAlarm_ = value;
        bitField0_ |= 0x00000400;
        onChanged();
        return this;
      }
      /**
       * <code>bool is_alarm = 11;</code>
       * @return This builder for chaining.
       */
      public Builder clearIsAlarm() {
        bitField0_ = (bitField0_ & ~0x00000400);
        isAlarm_ = false;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:galaxy_repository.v1.GalaxyAttribute)
    }

    // @@protoc_insertion_point(class_scope:galaxy_repository.v1.GalaxyAttribute)
    private static final galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyAttribute DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyAttribute();
    }

    public static galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyAttribute getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<GalaxyAttribute>
        PARSER = new com.google.protobuf.AbstractParser<GalaxyAttribute>() {
      @java.lang.Override
      public GalaxyAttribute parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<GalaxyAttribute> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<GalaxyAttribute> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyAttribute getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface BrowseChildrenRequestOrBuilder extends
      // @@protoc_insertion_point(interface_extends:galaxy_repository.v1.BrowseChildrenRequest)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>int32 parent_gobject_id = 1;</code>
     * @return Whether the parentGobjectId field is set.
     */
    boolean hasParentGobjectId();
    /**
     * <code>int32 parent_gobject_id = 1;</code>
     * @return The parentGobjectId.
     */
    int getParentGobjectId();

    /**
     * <code>string parent_tag_name = 2;</code>
     * @return Whether the parentTagName field is set.
     */
    boolean hasParentTagName();
    /**
     * <code>string parent_tag_name = 2;</code>
     * @return The parentTagName.
     */
    java.lang.String getParentTagName();
    /**
     * <code>string parent_tag_name = 2;</code>
     * @return The bytes for parentTagName.
     */
    com.google.protobuf.ByteString
        getParentTagNameBytes();

    /**
     * <code>string parent_contained_path = 3;</code>
     * @return Whether the parentContainedPath field is set.
     */
    boolean hasParentContainedPath();
    /**
     * <code>string parent_contained_path = 3;</code>
     * @return The parentContainedPath.
     */
    java.lang.String getParentContainedPath();
    /**
     * <code>string parent_contained_path = 3;</code>
     * @return The bytes for parentContainedPath.
     */
    com.google.protobuf.ByteString
        getParentContainedPathBytes();

    /**
     * <pre>
     * Maximum number of direct children to return. Server default 500; cap 5000.
     * </pre>
     *
     * <code>int32 page_size = 4;</code>
     * @return The pageSize.
     */
    int getPageSize();

    /**
     * <pre>
     * Opaque token returned by a previous BrowseChildren response. Bound to the
     * cache sequence, parent selector, and the filter set; a mismatch returns
     * InvalidArgument.
     * </pre>
     *
     * <code>string page_token = 5;</code>
     * @return The pageToken.
     */
    java.lang.String getPageToken();
    /**
     * <pre>
     * Opaque token returned by a previous BrowseChildren response. Bound to the
     * cache sequence, parent selector, and the filter set; a mismatch returns
     * InvalidArgument.
     * </pre>
     *
     * <code>string page_token = 5;</code>
     * @return The bytes for pageToken.
     */
    com.google.protobuf.ByteString
        getPageTokenBytes();

    /**
     * <pre>
     * --- Filter parity with DiscoverHierarchy. AND-combined. ---
     * </pre>
     *
     * <code>repeated int32 category_ids = 6;</code>
     * @return A list containing the categoryIds.
     */
    java.util.List<java.lang.Integer> getCategoryIdsList();
    /**
     * <pre>
     * --- Filter parity with DiscoverHierarchy. AND-combined. ---
     * </pre>
     *
     * <code>repeated int32 category_ids = 6;</code>
     * @return The count of categoryIds.
     */
    int getCategoryIdsCount();
    /**
     * <pre>
     * --- Filter parity with DiscoverHierarchy. AND-combined. ---
     * </pre>
     *
     * <code>repeated int32 category_ids = 6;</code>
     * @param index The index of the element to return.
     * @return The categoryIds at the given index.
     */
    int getCategoryIds(int index);

    /**
     * <code>repeated string template_chain_contains = 7;</code>
     * @return A list containing the templateChainContains.
     */
    java.util.List<java.lang.String>
        getTemplateChainContainsList();
    /**
     * <code>repeated string template_chain_contains = 7;</code>
     * @return The count of templateChainContains.
     */
    int getTemplateChainContainsCount();
    /**
     * <code>repeated string template_chain_contains = 7;</code>
     * @param index The index of the element to return.
     * @return The templateChainContains at the given index.
     */
    java.lang.String getTemplateChainContains(int index);
    /**
     * <code>repeated string template_chain_contains = 7;</code>
     * @param index The index of the value to return.
     * @return The bytes of the templateChainContains at the given index.
     */
    com.google.protobuf.ByteString
        getTemplateChainContainsBytes(int index);

    /**
     * <code>string tag_name_glob = 8;</code>
     * @return The tagNameGlob.
     */
    java.lang.String getTagNameGlob();
    /**
     * <code>string tag_name_glob = 8;</code>
     * @return The bytes for tagNameGlob.
     */
    com.google.protobuf.ByteString
        getTagNameGlobBytes();

    /**
     * <code>optional bool include_attributes = 9;</code>
     * @return Whether the includeAttributes field is set.
     */
    boolean hasIncludeAttributes();
    /**
     * <code>optional bool include_attributes = 9;</code>
     * @return The includeAttributes.
     */
    boolean getIncludeAttributes();

    /**
     * <code>bool alarm_bearing_only = 10;</code>
     * @return The alarmBearingOnly.
     */
    boolean getAlarmBearingOnly();

    /**
     * <code>bool historized_only = 11;</code>
     * @return The historizedOnly.
     */
    boolean getHistorizedOnly();

    galaxy_repository.v1.GalaxyRepositoryOuterClass.BrowseChildrenRequest.ParentCase getParentCase();
  }
  /**
   * Protobuf type {@code galaxy_repository.v1.BrowseChildrenRequest}
   */
  public static final class BrowseChildrenRequest extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:galaxy_repository.v1.BrowseChildrenRequest)
      BrowseChildrenRequestOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 1,
        /* suffix= */ "",
        "BrowseChildrenRequest");
    }
    // Use BrowseChildrenRequest.newBuilder() to construct.
    private BrowseChildrenRequest(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
    }
    private BrowseChildrenRequest() {
      pageToken_ = "";
      categoryIds_ = emptyIntList();
      templateChainContains_ =
          com.google.protobuf.LazyStringArrayList.emptyList();
      tagNameGlob_ = "";
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return galaxy_repository.v1.GalaxyRepositoryOuterClass.internal_static_galaxy_repository_v1_BrowseChildrenRequest_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return galaxy_repository.v1.GalaxyRepositoryOuterClass.internal_static_galaxy_repository_v1_BrowseChildrenRequest_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              galaxy_repository.v1.GalaxyRepositoryOuterClass.BrowseChildrenRequest.class, galaxy_repository.v1.GalaxyRepositoryOuterClass.BrowseChildrenRequest.Builder.class);
    }

    private int bitField0_;
    private int parentCase_ = 0;
    @SuppressWarnings("serial")
    private java.lang.Object parent_;
    public enum ParentCase
        implements com.google.protobuf.Internal.EnumLite,
            com.google.protobuf.AbstractMessage.InternalOneOfEnum {
      PARENT_GOBJECT_ID(1),
      PARENT_TAG_NAME(2),
      PARENT_CONTAINED_PATH(3),
      PARENT_NOT_SET(0);
      private final int value;
      private ParentCase(int value) {
        this.value = value;
      }
      /**
       * @param value The number of the enum to look for.
       * @return The enum associated with the given number.
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static ParentCase valueOf(int value) {
        return forNumber(value);
      }

      public static ParentCase forNumber(int value) {
        switch (value) {
          case 1: return PARENT_GOBJECT_ID;
          case 2: return PARENT_TAG_NAME;
          case 3: return PARENT_CONTAINED_PATH;
          case 0: return PARENT_NOT_SET;
          default: return null;
        }
      }
      public int getNumber() {
        return this.value;
      }
    };

    public ParentCase
    getParentCase() {
      return ParentCase.forNumber(
          parentCase_);
    }

    public static final int PARENT_GOBJECT_ID_FIELD_NUMBER = 1;
    /**
     * <code>int32 parent_gobject_id = 1;</code>
     * @return Whether the parentGobjectId field is set.
     */
    @java.lang.Override
    public boolean hasParentGobjectId() {
      return parentCase_ == 1;
    }
    /**
     * <code>int32 parent_gobject_id = 1;</code>
     * @return The parentGobjectId.
     */
    @java.lang.Override
    public int getParentGobjectId() {
      if (parentCase_ == 1) {
        return (java.lang.Integer) parent_;
      }
      return 0;
    }

    public static final int PARENT_TAG_NAME_FIELD_NUMBER = 2;
    /**
     * <code>string parent_tag_name = 2;</code>
     * @return Whether the parentTagName field is set.
     */
    public boolean hasParentTagName() {
      return parentCase_ == 2;
    }
    /**
     * <code>string parent_tag_name = 2;</code>
     * @return The parentTagName.
     */
    public java.lang.String getParentTagName() {
      java.lang.Object ref = "";
      if (parentCase_ == 2) {
        ref = parent_;
      }
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (parentCase_ == 2) {
          parent_ = s;
        }
        return s;
      }
    }
    /**
     * <code>string parent_tag_name = 2;</code>
     * @return The bytes for parentTagName.
     */
    public com.google.protobuf.ByteString
        getParentTagNameBytes() {
      java.lang.Object ref = "";
      if (parentCase_ == 2) {
        ref = parent_;
      }
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        if (parentCase_ == 2) {
          parent_ = b;
        }
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int PARENT_CONTAINED_PATH_FIELD_NUMBER = 3;
    /**
     * <code>string parent_contained_path = 3;</code>
     * @return Whether the parentContainedPath field is set.
     */
    public boolean hasParentContainedPath() {
      return parentCase_ == 3;
    }
    /**
     * <code>string parent_contained_path = 3;</code>
     * @return The parentContainedPath.
     */
    public java.lang.String getParentContainedPath() {
      java.lang.Object ref = "";
      if (parentCase_ == 3) {
        ref = parent_;
      }
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (parentCase_ == 3) {
          parent_ = s;
        }
        return s;
      }
    }
    /**
     * <code>string parent_contained_path = 3;</code>
     * @return The bytes for parentContainedPath.
     */
    public com.google.protobuf.ByteString
        getParentContainedPathBytes() {
      java.lang.Object ref = "";
      if (parentCase_ == 3) {
        ref = parent_;
      }
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        if (parentCase_ == 3) {
          parent_ = b;
        }
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int PAGE_SIZE_FIELD_NUMBER = 4;
    private int pageSize_ = 0;
    /**
     * <pre>
     * Maximum number of direct children to return. Server default 500; cap 5000.
     * </pre>
     *
     * <code>int32 page_size = 4;</code>
     * @return The pageSize.
     */
    @java.lang.Override
    public int getPageSize() {
      return pageSize_;
    }

    public static final int PAGE_TOKEN_FIELD_NUMBER = 5;
    @SuppressWarnings("serial")
    private volatile java.lang.Object pageToken_ = "";
    /**
     * <pre>
     * Opaque token returned by a previous BrowseChildren response. Bound to the
     * cache sequence, parent selector, and the filter set; a mismatch returns
     * InvalidArgument.
     * </pre>
     *
     * <code>string page_token = 5;</code>
     * @return The pageToken.
     */
    @java.lang.Override
    public java.lang.String getPageToken() {
      java.lang.Object ref = pageToken_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        pageToken_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * Opaque token returned by a previous BrowseChildren response. Bound to the
     * cache sequence, parent selector, and the filter set; a mismatch returns
     * InvalidArgument.
     * </pre>
     *
     * <code>string page_token = 5;</code>
     * @return The bytes for pageToken.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getPageTokenBytes() {
      java.lang.Object ref = pageToken_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        pageToken_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int CATEGORY_IDS_FIELD_NUMBER = 6;
    @SuppressWarnings("serial")
    private com.google.protobuf.Internal.IntList categoryIds_ =
        emptyIntList();
    /**
     * <pre>
     * --- Filter parity with DiscoverHierarchy. AND-combined. ---
     * </pre>
     *
     * <code>repeated int32 category_ids = 6;</code>
     * @return A list containing the categoryIds.
     */
    @java.lang.Override
    public java.util.List<java.lang.Integer>
        getCategoryIdsList() {
      return categoryIds_;
    }
    /**
     * <pre>
     * --- Filter parity with DiscoverHierarchy. AND-combined. ---
     * </pre>
     *
     * <code>repeated int32 category_ids = 6;</code>
     * @return The count of categoryIds.
     */
    public int getCategoryIdsCount() {
      return categoryIds_.size();
    }
    /**
     * <pre>
     * --- Filter parity with DiscoverHierarchy. AND-combined. ---
     * </pre>
     *
     * <code>repeated int32 category_ids = 6;</code>
     * @param index The index of the element to return.
     * @return The categoryIds at the given index.
     */
    public int getCategoryIds(int index) {
      return categoryIds_.getInt(index);
    }
    private int categoryIdsMemoizedSerializedSize = -1;

    public static final int TEMPLATE_CHAIN_CONTAINS_FIELD_NUMBER = 7;
    @SuppressWarnings("serial")
    private com.google.protobuf.LazyStringArrayList templateChainContains_ =
        com.google.protobuf.LazyStringArrayList.emptyList();
    /**
     * <code>repeated string template_chain_contains = 7;</code>
     * @return A list containing the templateChainContains.
     */
    public com.google.protobuf.ProtocolStringList
        getTemplateChainContainsList() {
      return templateChainContains_;
    }
    /**
     * <code>repeated string template_chain_contains = 7;</code>
     * @return The count of templateChainContains.
     */
    public int getTemplateChainContainsCount() {
      return templateChainContains_.size();
    }
    /**
     * <code>repeated string template_chain_contains = 7;</code>
     * @param index The index of the element to return.
     * @return The templateChainContains at the given index.
     */
    public java.lang.String getTemplateChainContains(int index) {
      return templateChainContains_.get(index);
    }
    /**
     * <code>repeated string template_chain_contains = 7;</code>
     * @param index The index of the value to return.
     * @return The bytes of the templateChainContains at the given index.
     */
    public com.google.protobuf.ByteString
        getTemplateChainContainsBytes(int index) {
      return templateChainContains_.getByteString(index);
    }

    public static final int TAG_NAME_GLOB_FIELD_NUMBER = 8;
    @SuppressWarnings("serial")
    private volatile java.lang.Object tagNameGlob_ = "";
    /**
     * <code>string tag_name_glob = 8;</code>
     * @return The tagNameGlob.
     */
    @java.lang.Override
    public java.lang.String getTagNameGlob() {
      java.lang.Object ref = tagNameGlob_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        tagNameGlob_ = s;
        return s;
      }
    }
    /**
     * <code>string tag_name_glob = 8;</code>
     * @return The bytes for tagNameGlob.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getTagNameGlobBytes() {
      java.lang.Object ref = tagNameGlob_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        tagNameGlob_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int INCLUDE_ATTRIBUTES_FIELD_NUMBER = 9;
    private boolean includeAttributes_ = false;
    /**
     * <code>optional bool include_attributes = 9;</code>
     * @return Whether the includeAttributes field is set.
     */
    @java.lang.Override
    public boolean hasIncludeAttributes() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>optional bool include_attributes = 9;</code>
     * @return The includeAttributes.
     */
    @java.lang.Override
    public boolean getIncludeAttributes() {
      return includeAttributes_;
    }

    public static final int ALARM_BEARING_ONLY_FIELD_NUMBER = 10;
    private boolean alarmBearingOnly_ = false;
    /**
     * <code>bool alarm_bearing_only = 10;</code>
     * @return The alarmBearingOnly.
     */
    @java.lang.Override
    public boolean getAlarmBearingOnly() {
      return alarmBearingOnly_;
    }

    public static final int HISTORIZED_ONLY_FIELD_NUMBER = 11;
    private boolean historizedOnly_ = false;
    /**
     * <code>bool historized_only = 11;</code>
     * @return The historizedOnly.
     */
    @java.lang.Override
    public boolean getHistorizedOnly() {
      return historizedOnly_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (parentCase_ == 1) {
        output.writeInt32(
            1, (int)((java.lang.Integer) parent_));
      }
      if (parentCase_ == 2) {
        com.google.protobuf.GeneratedMessage.writeString(output, 2, parent_);
      }
      if (parentCase_ == 3) {
        com.google.protobuf.GeneratedMessage.writeString(output, 3, parent_);
      }
      if (pageSize_ != 0) {
        output.writeInt32(4, pageSize_);
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(pageToken_)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 5, pageToken_);
      }
      if (getCategoryIdsList().size() > 0) {
        output.writeUInt32NoTag(50);
        output.writeUInt32NoTag(categoryIdsMemoizedSerializedSize);
      }
      for (int i = 0; i < categoryIds_.size(); i++) {
        output.writeInt32NoTag(categoryIds_.getInt(i));
      }
      for (int i = 0; i < templateChainContains_.size(); i++) {
        com.google.protobuf.GeneratedMessage.writeString(output, 7, templateChainContains_.getRaw(i));
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(tagNameGlob_)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 8, tagNameGlob_);
      }
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeBool(9, includeAttributes_);
      }
      if (alarmBearingOnly_ != false) {
        output.writeBool(10, alarmBearingOnly_);
      }
      if (historizedOnly_ != false) {
        output.writeBool(11, historizedOnly_);
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (parentCase_ == 1) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(
              1, (int)((java.lang.Integer) parent_));
      }
      if (parentCase_ == 2) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(2, parent_);
      }
      if (parentCase_ == 3) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(3, parent_);
      }
      if (pageSize_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(4, pageSize_);
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(pageToken_)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(5, pageToken_);
      }
      {
        int dataSize = 0;
        for (int i = 0; i < categoryIds_.size(); i++) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeInt32SizeNoTag(categoryIds_.getInt(i));
        }
        size += dataSize;
        if (!getCategoryIdsList().isEmpty()) {
          size += 1;
          size += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(dataSize);
        }
        categoryIdsMemoizedSerializedSize = dataSize;
      }
      {
        int dataSize = 0;
        for (int i = 0; i < templateChainContains_.size(); i++) {
          dataSize += computeStringSizeNoTag(templateChainContains_.getRaw(i));
        }
        size += dataSize;
        size += 1 * getTemplateChainContainsList().size();
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(tagNameGlob_)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(8, tagNameGlob_);
      }
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(9, includeAttributes_);
      }
      if (alarmBearingOnly_ != false) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(10, alarmBearingOnly_);
      }
      if (historizedOnly_ != false) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(11, historizedOnly_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof galaxy_repository.v1.GalaxyRepositoryOuterClass.BrowseChildrenRequest)) {
        return super.equals(obj);
      }
      galaxy_repository.v1.GalaxyRepositoryOuterClass.BrowseChildrenRequest other = (galaxy_repository.v1.GalaxyRepositoryOuterClass.BrowseChildrenRequest) obj;

      if (getPageSize()
          != other.getPageSize()) return false;
      if (!getPageToken()
          .equals(other.getPageToken())) return false;
      if (!getCategoryIdsList()
          .equals(other.getCategoryIdsList())) return false;
      if (!getTemplateChainContainsList()
          .equals(other.getTemplateChainContainsList())) return false;
      if (!getTagNameGlob()
          .equals(other.getTagNameGlob())) return false;
      if (hasIncludeAttributes() != other.hasIncludeAttributes()) return false;
      if (hasIncludeAttributes()) {
        if (getIncludeAttributes()
            != other.getIncludeAttributes()) return false;
      }
      if (getAlarmBearingOnly()
          != other.getAlarmBearingOnly()) return false;
      if (getHistorizedOnly()
          != other.getHistorizedOnly()) return false;
      if (!getParentCase().equals(other.getParentCase())) return false;
      switch (parentCase_) {
        case 1:
          if (getParentGobjectId()
              != other.getParentGobjectId()) return false;
          break;
        case 2:
          if (!getParentTagName()
              .equals(other.getParentTagName())) return false;
          break;
        case 3:
          if (!getParentContainedPath()
              .equals(other.getParentContainedPath())) return false;
          break;
        case 0:
        default:
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + PAGE_SIZE_FIELD_NUMBER;
      hash = (53 * hash) + getPageSize();
      hash = (37 * hash) + PAGE_TOKEN_FIELD_NUMBER;
      hash = (53 * hash) + getPageToken().hashCode();
      if (getCategoryIdsCount() > 0) {
        hash = (37 * hash) + CATEGORY_IDS_FIELD_NUMBER;
        hash = (53 * hash) + getCategoryIdsList().hashCode();
      }
      if (getTemplateChainContainsCount() > 0) {
        hash = (37 * hash) + TEMPLATE_CHAIN_CONTAINS_FIELD_NUMBER;
        hash = (53 * hash) + getTemplateChainContainsList().hashCode();
      }
      hash = (37 * hash) + TAG_NAME_GLOB_FIELD_NUMBER;
      hash = (53 * hash) + getTagNameGlob().hashCode();
      if (hasIncludeAttributes()) {
        hash = (37 * hash) + INCLUDE_ATTRIBUTES_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
            getIncludeAttributes());
      }
      hash = (37 * hash) + ALARM_BEARING_ONLY_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
          getAlarmBearingOnly());
      hash = (37 * hash) + HISTORIZED_ONLY_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
          getHistorizedOnly());
      switch (parentCase_) {
        case 1:
          hash = (37 * hash) + PARENT_GOBJECT_ID_FIELD_NUMBER;
          hash = (53 * hash) + getParentGobjectId();
          break;
        case 2:
          hash = (37 * hash) + PARENT_TAG_NAME_FIELD_NUMBER;
          hash = (53 * hash) + getParentTagName().hashCode();
          break;
        case 3:
          hash = (37 * hash) + PARENT_CONTAINED_PATH_FIELD_NUMBER;
          hash = (53 * hash) + getParentContainedPath().hashCode();
          break;
        case 0:
        default:
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static galaxy_repository.v1.GalaxyRepositoryOuterClass.BrowseChildrenRequest parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static galaxy_repository.v1.GalaxyRepositoryOuterClass.BrowseChildrenRequest parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static galaxy_repository.v1.GalaxyRepositoryOuterClass.BrowseChildrenRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static galaxy_repository.v1.GalaxyRepositoryOuterClass.BrowseChildrenRequest parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static galaxy_repository.v1.GalaxyRepositoryOuterClass.BrowseChildrenRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static galaxy_repository.v1.GalaxyRepositoryOuterClass.BrowseChildrenRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static galaxy_repository.v1.GalaxyRepositoryOuterClass.BrowseChildrenRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static galaxy_repository.v1.GalaxyRepositoryOuterClass.BrowseChildrenRequest parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static galaxy_repository.v1.GalaxyRepositoryOuterClass.BrowseChildrenRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static galaxy_repository.v1.GalaxyRepositoryOuterClass.BrowseChildrenRequest parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static galaxy_repository.v1.GalaxyRepositoryOuterClass.BrowseChildrenRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static galaxy_repository.v1.GalaxyRepositoryOuterClass.BrowseChildrenRequest parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(galaxy_repository.v1.GalaxyRepositoryOuterClass.BrowseChildrenRequest prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code galaxy_repository.v1.BrowseChildrenRequest}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:galaxy_repository.v1.BrowseChildrenRequest)
        galaxy_repository.v1.GalaxyRepositoryOuterClass.BrowseChildrenRequestOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return galaxy_repository.v1.GalaxyRepositoryOuterClass.internal_static_galaxy_repository_v1_BrowseChildrenRequest_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return galaxy_repository.v1.GalaxyRepositoryOuterClass.internal_static_galaxy_repository_v1_BrowseChildrenRequest_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                galaxy_repository.v1.GalaxyRepositoryOuterClass.BrowseChildrenRequest.class, galaxy_repository.v1.GalaxyRepositoryOuterClass.BrowseChildrenRequest.Builder.class);
      }

      // Construct using galaxy_repository.v1.GalaxyRepositoryOuterClass.BrowseChildrenRequest.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        pageSize_ = 0;
        pageToken_ = "";
        categoryIds_ = emptyIntList();
        templateChainContains_ =
            com.google.protobuf.LazyStringArrayList.emptyList();
        tagNameGlob_ = "";
        includeAttributes_ = false;
        alarmBearingOnly_ = false;
        historizedOnly_ = false;
        parentCase_ = 0;
        parent_ = null;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return galaxy_repository.v1.GalaxyRepositoryOuterClass.internal_static_galaxy_repository_v1_BrowseChildrenRequest_descriptor;
      }

      @java.lang.Override
      public galaxy_repository.v1.GalaxyRepositoryOuterClass.BrowseChildrenRequest getDefaultInstanceForType() {
        return galaxy_repository.v1.GalaxyRepositoryOuterClass.BrowseChildrenRequest.getDefaultInstance();
      }

      @java.lang.Override
      public galaxy_repository.v1.GalaxyRepositoryOuterClass.BrowseChildrenRequest build() {
        galaxy_repository.v1.GalaxyRepositoryOuterClass.BrowseChildrenRequest result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public galaxy_repository.v1.GalaxyRepositoryOuterClass.BrowseChildrenRequest buildPartial() {
        galaxy_repository.v1.GalaxyRepositoryOuterClass.BrowseChildrenRequest result = new galaxy_repository.v1.GalaxyRepositoryOuterClass.BrowseChildrenRequest(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        buildPartialOneofs(result);
        onBuilt();
        return result;
      }

      private void buildPartial0(galaxy_repository.v1.GalaxyRepositoryOuterClass.BrowseChildrenRequest result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.pageSize_ = pageSize_;
        }
        if (((from_bitField0_ & 0x00000010) != 0)) {
          result.pageToken_ = pageToken_;
        }
        if (((from_bitField0_ & 0x00000020) != 0)) {
          categoryIds_.makeImmutable();
          result.categoryIds_ = categoryIds_;
        }
        if (((from_bitField0_ & 0x00000040) != 0)) {
          templateChainContains_.makeImmutable();
          result.templateChainContains_ = templateChainContains_;
        }
        if (((from_bitField0_ & 0x00000080) != 0)) {
          result.tagNameGlob_ = tagNameGlob_;
        }
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000100) != 0)) {
          result.includeAttributes_ = includeAttributes_;
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000200) != 0)) {
          result.alarmBearingOnly_ = alarmBearingOnly_;
        }
        if (((from_bitField0_ & 0x00000400) != 0)) {
          result.historizedOnly_ = historizedOnly_;
        }
        result.bitField0_ |= to_bitField0_;
      }

      private void buildPartialOneofs(galaxy_repository.v1.GalaxyRepositoryOuterClass.BrowseChildrenRequest result) {
        result.parentCase_ = parentCase_;
        result.parent_ = this.parent_;
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof galaxy_repository.v1.GalaxyRepositoryOuterClass.BrowseChildrenRequest) {
          return mergeFrom((galaxy_repository.v1.GalaxyRepositoryOuterClass.BrowseChildrenRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(galaxy_repository.v1.GalaxyRepositoryOuterClass.BrowseChildrenRequest other) {
        if (other == galaxy_repository.v1.GalaxyRepositoryOuterClass.BrowseChildrenRequest.getDefaultInstance()) return this;
        if (other.getPageSize() != 0) {
          setPageSize(other.getPageSize());
        }
        if (!other.getPageToken().isEmpty()) {
          pageToken_ = other.pageToken_;
          bitField0_ |= 0x00000010;
          onChanged();
        }
        if (!other.categoryIds_.isEmpty()) {
          if (categoryIds_.isEmpty()) {
            categoryIds_ = other.categoryIds_;
            categoryIds_.makeImmutable();
            bitField0_ |= 0x00000020;
          } else {
            ensureCategoryIdsIsMutable();
            categoryIds_.addAll(other.categoryIds_);
          }
          onChanged();
        }
        if (!other.templateChainContains_.isEmpty()) {
          if (templateChainContains_.isEmpty()) {
            templateChainContains_ = other.templateChainContains_;
            bitField0_ |= 0x00000040;
          } else {
            ensureTemplateChainContainsIsMutable();
            templateChainContains_.addAll(other.templateChainContains_);
          }
          onChanged();
        }
        if (!other.getTagNameGlob().isEmpty()) {
          tagNameGlob_ = other.tagNameGlob_;
          bitField0_ |= 0x00000080;
          onChanged();
        }
        if (other.hasIncludeAttributes()) {
          setIncludeAttributes(other.getIncludeAttributes());
        }
        if (other.getAlarmBearingOnly() != false) {
          setAlarmBearingOnly(other.getAlarmBearingOnly());
        }
        if (other.getHistorizedOnly() != false) {
          setHistorizedOnly(other.getHistorizedOnly());
        }
        switch (other.getParentCase()) {
          case PARENT_GOBJECT_ID: {
            setParentGobjectId(other.getParentGobjectId());
            break;
          }
          case PARENT_TAG_NAME: {
            parentCase_ = 2;
            parent_ = other.parent_;
            onChanged();
            break;
          }
          case PARENT_CONTAINED_PATH: {
            parentCase_ = 3;
            parent_ = other.parent_;
            onChanged();
            break;
          }
          case PARENT_NOT_SET: {
            break;
          }
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 8: {
                parent_ = input.readInt32();
                parentCase_ = 1;
                break;
              } // case 8
              case 18: {
                java.lang.String s = input.readStringRequireUtf8();
                parentCase_ = 2;
                parent_ = s;
                break;
              } // case 18
              case 26: {
                java.lang.String s = input.readStringRequireUtf8();
                parentCase_ = 3;
                parent_ = s;
                break;
              } // case 26
              case 32: {
                pageSize_ = input.readInt32();
                bitField0_ |= 0x00000008;
                break;
              } // case 32
              case 42: {
                pageToken_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000010;
                break;
              } // case 42
              case 48: {
                int v = input.readInt32();
                ensureCategoryIdsIsMutable();
                categoryIds_.addInt(v);
                break;
              } // case 48
              case 50: {
                int length = input.readRawVarint32();
                int limit = input.pushLimit(length);
                ensureCategoryIdsIsMutable();
                while (input.getBytesUntilLimit() > 0) {
                  categoryIds_.addInt(input.readInt32());
                }
                input.popLimit(limit);
                break;
              } // case 50
              case 58: {
                java.lang.String s = input.readStringRequireUtf8();
                ensureTemplateChainContainsIsMutable();
                templateChainContains_.add(s);
                break;
              } // case 58
              case 66: {
                tagNameGlob_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000080;
                break;
              } // case 66
              case 72: {
                includeAttributes_ = input.readBool();
                bitField0_ |= 0x00000100;
                break;
              } // case 72
              case 80: {
                alarmBearingOnly_ = input.readBool();
                bitField0_ |= 0x00000200;
                break;
              } // case 80
              case 88: {
                historizedOnly_ = input.readBool();
                bitField0_ |= 0x00000400;
                break;
              } // case 88
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int parentCase_ = 0;
      private java.lang.Object parent_;
      public ParentCase
          getParentCase() {
        return ParentCase.forNumber(
            parentCase_);
      }

      public Builder clearParent() {
        parentCase_ = 0;
        parent_ = null;
        onChanged();
        return this;
      }

      private int bitField0_;

      /**
       * <code>int32 parent_gobject_id = 1;</code>
       * @return Whether the parentGobjectId field is set.
       */
      public boolean hasParentGobjectId() {
        return parentCase_ == 1;
      }
      /**
       * <code>int32 parent_gobject_id = 1;</code>
       * @return The parentGobjectId.
       */
      public int getParentGobjectId() {
        if (parentCase_ == 1) {
          return (java.lang.Integer) parent_;
        }
        return 0;
      }
      /**
       * <code>int32 parent_gobject_id = 1;</code>
       * @param value The parentGobjectId to set.
       * @return This builder for chaining.
       */
      public Builder setParentGobjectId(int value) {

        parentCase_ = 1;
        parent_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>int32 parent_gobject_id = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearParentGobjectId() {
        if (parentCase_ == 1) {
          parentCase_ = 0;
          parent_ = null;
          onChanged();
        }
        return this;
      }

      /**
       * <code>string parent_tag_name = 2;</code>
       * @return Whether the parentTagName field is set.
       */
      @java.lang.Override
      public boolean hasParentTagName() {
        return parentCase_ == 2;
      }
      /**
       * <code>string parent_tag_name = 2;</code>
       * @return The parentTagName.
       */
      @java.lang.Override
      public java.lang.String getParentTagName() {
        java.lang.Object ref = "";
        if (parentCase_ == 2) {
          ref = parent_;
        }
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (parentCase_ == 2) {
            parent_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>string parent_tag_name = 2;</code>
       * @return The bytes for parentTagName.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getParentTagNameBytes() {
        java.lang.Object ref = "";
        if (parentCase_ == 2) {
          ref = parent_;
        }
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          if (parentCase_ == 2) {
            parent_ = b;
          }
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string parent_tag_name = 2;</code>
       * @param value The parentTagName to set.
       * @return This builder for chaining.
       */
      public Builder setParentTagName(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        parentCase_ = 2;
        parent_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>string parent_tag_name = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearParentTagName() {
        if (parentCase_ == 2) {
          parentCase_ = 0;
          parent_ = null;
          onChanged();
        }
        return this;
      }
      /**
       * <code>string parent_tag_name = 2;</code>
       * @param value The bytes for parentTagName to set.
       * @return This builder for chaining.
       */
      public Builder setParentTagNameBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        parentCase_ = 2;
        parent_ = value;
        onChanged();
        return this;
      }

      /**
       * <code>string parent_contained_path = 3;</code>
       * @return Whether the parentContainedPath field is set.
       */
      @java.lang.Override
      public boolean hasParentContainedPath() {
        return parentCase_ == 3;
      }
      /**
       * <code>string parent_contained_path = 3;</code>
       * @return The parentContainedPath.
       */
      @java.lang.Override
      public java.lang.String getParentContainedPath() {
        java.lang.Object ref = "";
        if (parentCase_ == 3) {
          ref = parent_;
        }
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (parentCase_ == 3) {
            parent_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>string parent_contained_path = 3;</code>
       * @return The bytes for parentContainedPath.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getParentContainedPathBytes() {
        java.lang.Object ref = "";
        if (parentCase_ == 3) {
          ref = parent_;
        }
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          if (parentCase_ == 3) {
            parent_ = b;
          }
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string parent_contained_path = 3;</code>
       * @param value The parentContainedPath to set.
       * @return This builder for chaining.
       */
      public Builder setParentContainedPath(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        parentCase_ = 3;
        parent_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>string parent_contained_path = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearParentContainedPath() {
        if (parentCase_ == 3) {
          parentCase_ = 0;
          parent_ = null;
          onChanged();
        }
        return this;
      }
      /**
       * <code>string parent_contained_path = 3;</code>
       * @param value The bytes for parentContainedPath to set.
       * @return This builder for chaining.
       */
      public Builder setParentContainedPathBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        parentCase_ = 3;
        parent_ = value;
        onChanged();
        return this;
      }

      private int pageSize_ ;
      /**
       * <pre>
       * Maximum number of direct children to return. Server default 500; cap 5000.
       * </pre>
       *
       * <code>int32 page_size = 4;</code>
       * @return The pageSize.
       */
      @java.lang.Override
      public int getPageSize() {
        return pageSize_;
      }
      /**
       * <pre>
       * Maximum number of direct children to return. Server default 500; cap 5000.
       * </pre>
       *
       * <code>int32 page_size = 4;</code>
       * @param value The pageSize to set.
       * @return This builder for chaining.
       */
      public Builder setPageSize(int value) {

        pageSize_ = value;
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Maximum number of direct children to return. Server default 500; cap 5000.
       * </pre>
       *
       * <code>int32 page_size = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearPageSize() {
        bitField0_ = (bitField0_ & ~0x00000008);
        pageSize_ = 0;
        onChanged();
        return this;
      }

      private java.lang.Object pageToken_ = "";
      /**
       * <pre>
       * Opaque token returned by a previous BrowseChildren response. Bound to the
       * cache sequence, parent selector, and the filter set; a mismatch returns
       * InvalidArgument.
       * </pre>
       *
       * <code>string page_token = 5;</code>
       * @return The pageToken.
       */
      public java.lang.String getPageToken() {
        java.lang.Object ref = pageToken_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          pageToken_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * Opaque token returned by a previous BrowseChildren response. Bound to the
       * cache sequence, parent selector, and the filter set; a mismatch returns
       * InvalidArgument.
       * </pre>
       *
       * <code>string page_token = 5;</code>
       * @return The bytes for pageToken.
       */
      public com.google.protobuf.ByteString
          getPageTokenBytes() {
        java.lang.Object ref = pageToken_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          pageToken_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * Opaque token returned by a previous BrowseChildren response. Bound to the
       * cache sequence, parent selector, and the filter set; a mismatch returns
       * InvalidArgument.
       * </pre>
       *
       * <code>string page_token = 5;</code>
       * @param value The pageToken to set.
       * @return This builder for chaining.
       */
      public Builder setPageToken(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        pageToken_ = value;
        bitField0_ |= 0x00000010;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Opaque token returned by a previous BrowseChildren response. Bound to the
       * cache sequence, parent selector, and the filter set; a mismatch returns
       * InvalidArgument.
       * </pre>
       *
       * <code>string page_token = 5;</code>
       * @return This builder for chaining.
       */
      public Builder clearPageToken() {
        pageToken_ = getDefaultInstance().getPageToken();
        bitField0_ = (bitField0_ & ~0x00000010);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Opaque token returned by a previous BrowseChildren response. Bound to the
       * cache sequence, parent selector, and the filter set; a mismatch returns
       * InvalidArgument.
       * </pre>
       *
       * <code>string page_token = 5;</code>
       * @param value The bytes for pageToken to set.
       * @return This builder for chaining.
       */
      public Builder setPageTokenBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        pageToken_ = value;
        bitField0_ |= 0x00000010;
        onChanged();
        return this;
      }

      private com.google.protobuf.Internal.IntList categoryIds_ = emptyIntList();
      private void ensureCategoryIdsIsMutable() {
        if (!categoryIds_.isModifiable()) {
          categoryIds_ = makeMutableCopy(categoryIds_);
        }
        bitField0_ |= 0x00000020;
      }
      /**
       * <pre>
       * --- Filter parity with DiscoverHierarchy. AND-combined. ---
       * </pre>
       *
       * <code>repeated int32 category_ids = 6;</code>
       * @return A list containing the categoryIds.
       */
      public java.util.List<java.lang.Integer>
          getCategoryIdsList() {
        categoryIds_.makeImmutable();
        return categoryIds_;
      }
      /**
       * <pre>
       * --- Filter parity with DiscoverHierarchy. AND-combined. ---
       * </pre>
       *
       * <code>repeated int32 category_ids = 6;</code>
       * @return The count of categoryIds.
       */
      public int getCategoryIdsCount() {
        return categoryIds_.size();
      }
      /**
       * <pre>
       * --- Filter parity with DiscoverHierarchy. AND-combined. ---
       * </pre>
       *
       * <code>repeated int32 category_ids = 6;</code>
       * @param index The index of the element to return.
       * @return The categoryIds at the given index.
       */
      public int getCategoryIds(int index) {
        return categoryIds_.getInt(index);
      }
      /**
       * <pre>
       * --- Filter parity with DiscoverHierarchy. AND-combined. ---
       * </pre>
       *
       * <code>repeated int32 category_ids = 6;</code>
       * @param index The index to set the value at.
       * @param value The categoryIds to set.
       * @return This builder for chaining.
       */
      public Builder setCategoryIds(
          int index, int value) {

        ensureCategoryIdsIsMutable();
        categoryIds_.setInt(index, value);
        bitField0_ |= 0x00000020;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * --- Filter parity with DiscoverHierarchy. AND-combined. ---
       * </pre>
       *
       * <code>repeated int32 category_ids = 6;</code>
       * @param value The categoryIds to add.
       * @return This builder for chaining.
       */
      public Builder addCategoryIds(int value) {

        ensureCategoryIdsIsMutable();
        categoryIds_.addInt(value);
        bitField0_ |= 0x00000020;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * --- Filter parity with DiscoverHierarchy. AND-combined. ---
       * </pre>
       *
       * <code>repeated int32 category_ids = 6;</code>
       * @param values The categoryIds to add.
       * @return This builder for chaining.
       */
      public Builder addAllCategoryIds(
          java.lang.Iterable<? extends java.lang.Integer> values) {
        ensureCategoryIdsIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, categoryIds_);
        bitField0_ |= 0x00000020;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * --- Filter parity with DiscoverHierarchy. AND-combined. ---
       * </pre>
       *
       * <code>repeated int32 category_ids = 6;</code>
       * @return This builder for chaining.
       */
      public Builder clearCategoryIds() {
        categoryIds_ = emptyIntList();
        bitField0_ = (bitField0_ & ~0x00000020);
        onChanged();
        return this;
      }

      private com.google.protobuf.LazyStringArrayList templateChainContains_ =
          com.google.protobuf.LazyStringArrayList.emptyList();
      private void ensureTemplateChainContainsIsMutable() {
        if (!templateChainContains_.isModifiable()) {
          templateChainContains_ = new com.google.protobuf.LazyStringArrayList(templateChainContains_);
        }
        bitField0_ |= 0x00000040;
      }
      /**
       * <code>repeated string template_chain_contains = 7;</code>
       * @return A list containing the templateChainContains.
       */
      public com.google.protobuf.ProtocolStringList
          getTemplateChainContainsList() {
        templateChainContains_.makeImmutable();
        return templateChainContains_;
      }
      /**
       * <code>repeated string template_chain_contains = 7;</code>
       * @return The count of templateChainContains.
       */
      public int getTemplateChainContainsCount() {
        return templateChainContains_.size();
      }
      /**
       * <code>repeated string template_chain_contains = 7;</code>
       * @param index The index of the element to return.
       * @return The templateChainContains at the given index.
       */
      public java.lang.String getTemplateChainContains(int index) {
        return templateChainContains_.get(index);
      }
      /**
       * <code>repeated string template_chain_contains = 7;</code>
       * @param index The index of the value to return.
       * @return The bytes of the templateChainContains at the given index.
       */
      public com.google.protobuf.ByteString
          getTemplateChainContainsBytes(int index) {
        return templateChainContains_.getByteString(index);
      }
      /**
       * <code>repeated string template_chain_contains = 7;</code>
       * @param index The index to set the value at.
       * @param value The templateChainContains to set.
       * @return This builder for chaining.
       */
      public Builder setTemplateChainContains(
          int index, java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        ensureTemplateChainContainsIsMutable();
        templateChainContains_.set(index, value);
        bitField0_ |= 0x00000040;
        onChanged();
        return this;
      }
      /**
       * <code>repeated string template_chain_contains = 7;</code>
       * @param value The templateChainContains to add.
       * @return This builder for chaining.
       */
      public Builder addTemplateChainContains(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        ensureTemplateChainContainsIsMutable();
        templateChainContains_.add(value);
        bitField0_ |= 0x00000040;
        onChanged();
        return this;
      }
      /**
       * <code>repeated string template_chain_contains = 7;</code>
       * @param values The templateChainContains to add.
       * @return This builder for chaining.
       */
      public Builder addAllTemplateChainContains(
          java.lang.Iterable<java.lang.String> values) {
        ensureTemplateChainContainsIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, templateChainContains_);
        bitField0_ |= 0x00000040;
        onChanged();
        return this;
      }
      /**
       * <code>repeated string template_chain_contains = 7;</code>
       * @return This builder for chaining.
       */
      public Builder clearTemplateChainContains() {
        templateChainContains_ =
          com.google.protobuf.LazyStringArrayList.emptyList();
        bitField0_ = (bitField0_ & ~0x00000040);;
        onChanged();
        return this;
      }
      /**
       * <code>repeated string template_chain_contains = 7;</code>
       * @param value The bytes of the templateChainContains to add.
       * @return This builder for chaining.
       */
      public Builder addTemplateChainContainsBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        ensureTemplateChainContainsIsMutable();
        templateChainContains_.add(value);
        bitField0_ |= 0x00000040;
        onChanged();
        return this;
      }

      private java.lang.Object tagNameGlob_ = "";
      /**
       * <code>string tag_name_glob = 8;</code>
       * @return The tagNameGlob.
       */
      public java.lang.String getTagNameGlob() {
        java.lang.Object ref = tagNameGlob_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          tagNameGlob_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>string tag_name_glob = 8;</code>
       * @return The bytes for tagNameGlob.
       */
      public com.google.protobuf.ByteString
          getTagNameGlobBytes() {
        java.lang.Object ref = tagNameGlob_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          tagNameGlob_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string tag_name_glob = 8;</code>
       * @param value The tagNameGlob to set.
       * @return This builder for chaining.
       */
      public Builder setTagNameGlob(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        tagNameGlob_ = value;
        bitField0_ |= 0x00000080;
        onChanged();
        return this;
      }
      /**
       * <code>string tag_name_glob = 8;</code>
       * @return This builder for chaining.
       */
      public Builder clearTagNameGlob() {
        tagNameGlob_ = getDefaultInstance().getTagNameGlob();
        bitField0_ = (bitField0_ & ~0x00000080);
        onChanged();
        return this;
      }
      /**
       * <code>string tag_name_glob = 8;</code>
       * @param value The bytes for tagNameGlob to set.
       * @return This builder for chaining.
       */
      public Builder setTagNameGlobBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        tagNameGlob_ = value;
        bitField0_ |= 0x00000080;
        onChanged();
        return this;
      }

      private boolean includeAttributes_ ;
      /**
       * <code>optional bool include_attributes = 9;</code>
       * @return Whether the includeAttributes field is set.
       */
      @java.lang.Override
      public boolean hasIncludeAttributes() {
        return ((bitField0_ & 0x00000100) != 0);
      }
      /**
       * <code>optional bool include_attributes = 9;</code>
       * @return The includeAttributes.
       */
      @java.lang.Override
      public boolean getIncludeAttributes() {
        return includeAttributes_;
      }
      /**
       * <code>optional bool include_attributes = 9;</code>
       * @param value The includeAttributes to set.
       * @return This builder for chaining.
       */
      public Builder setIncludeAttributes(boolean value) {

        includeAttributes_ = value;
        bitField0_ |= 0x00000100;
        onChanged();
        return this;
      }
      /**
       * <code>optional bool include_attributes = 9;</code>
       * @return This builder for chaining.
       */
      public Builder clearIncludeAttributes() {
        bitField0_ = (bitField0_ & ~0x00000100);
        includeAttributes_ = false;
        onChanged();
        return this;
      }

      private boolean alarmBearingOnly_ ;
      /**
       * <code>bool alarm_bearing_only = 10;</code>
       * @return The alarmBearingOnly.
       */
      @java.lang.Override
      public boolean getAlarmBearingOnly() {
        return alarmBearingOnly_;
      }
      /**
       * <code>bool alarm_bearing_only = 10;</code>
       * @param value The alarmBearingOnly to set.
       * @return This builder for chaining.
       */
      public Builder setAlarmBearingOnly(boolean value) {

        alarmBearingOnly_ = value;
        bitField0_ |= 0x00000200;
        onChanged();
        return this;
      }
      /**
       * <code>bool alarm_bearing_only = 10;</code>
       * @return This builder for chaining.
       */
      public Builder clearAlarmBearingOnly() {
        bitField0_ = (bitField0_ & ~0x00000200);
        alarmBearingOnly_ = false;
        onChanged();
        return this;
      }

      private boolean historizedOnly_ ;
      /**
       * <code>bool historized_only = 11;</code>
       * @return The historizedOnly.
       */
      @java.lang.Override
      public boolean getHistorizedOnly() {
        return historizedOnly_;
      }
      /**
       * <code>bool historized_only = 11;</code>
       * @param value The historizedOnly to set.
       * @return This builder for chaining.
       */
      public Builder setHistorizedOnly(boolean value) {

        historizedOnly_ = value;
        bitField0_ |= 0x00000400;
        onChanged();
        return this;
      }
      /**
       * <code>bool historized_only = 11;</code>
       * @return This builder for chaining.
       */
      public Builder clearHistorizedOnly() {
        bitField0_ = (bitField0_ & ~0x00000400);
        historizedOnly_ = false;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:galaxy_repository.v1.BrowseChildrenRequest)
    }

    // @@protoc_insertion_point(class_scope:galaxy_repository.v1.BrowseChildrenRequest)
    private static final galaxy_repository.v1.GalaxyRepositoryOuterClass.BrowseChildrenRequest DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new galaxy_repository.v1.GalaxyRepositoryOuterClass.BrowseChildrenRequest();
    }

    public static galaxy_repository.v1.GalaxyRepositoryOuterClass.BrowseChildrenRequest getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<BrowseChildrenRequest>
        PARSER = new com.google.protobuf.AbstractParser<BrowseChildrenRequest>() {
      @java.lang.Override
      public BrowseChildrenRequest parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<BrowseChildrenRequest> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<BrowseChildrenRequest> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public galaxy_repository.v1.GalaxyRepositoryOuterClass.BrowseChildrenRequest getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface BrowseChildrenReplyOrBuilder extends
      // @@protoc_insertion_point(interface_extends:galaxy_repository.v1.BrowseChildrenReply)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     * Direct children matching the filter, sorted areas-first then by
     * case-insensitive display name (same order as the dashboard tree).
     * </pre>
     *
     * <code>repeated .galaxy_repository.v1.GalaxyObject children = 1;</code>
     */
    java.util.List<galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyObject> 
        getChildrenList();
    /**
     * <pre>
     * Direct children matching the filter, sorted areas-first then by
     * case-insensitive display name (same order as the dashboard tree).
     * </pre>
     *
     * <code>repeated .galaxy_repository.v1.GalaxyObject children = 1;</code>
     */
    galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyObject getChildren(int index);
    /**
     * <pre>
     * Direct children matching the filter, sorted areas-first then by
     * case-insensitive display name (same order as the dashboard tree).
     * </pre>
     *
     * <code>repeated .galaxy_repository.v1.GalaxyObject children = 1;</code>
     */
    int getChildrenCount();
    /**
     * <pre>
     * Direct children matching the filter, sorted areas-first then by
     * case-insensitive display name (same order as the dashboard tree).
     * </pre>
     *
     * <code>repeated .galaxy_repository.v1.GalaxyObject children = 1;</code>
     */
    java.util.List<? extends galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyObjectOrBuilder> 
        getChildrenOrBuilderList();
    /**
     * <pre>
     * Direct children matching the filter, sorted areas-first then by
     * case-insensitive display name (same order as the dashboard tree).
     * </pre>
     *
     * <code>repeated .galaxy_repository.v1.GalaxyObject children = 1;</code>
     */
    galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyObjectOrBuilder getChildrenOrBuilder(
        int index);

    /**
     * <pre>
     * Non-empty when another page of siblings is available.
     * </pre>
     *
     * <code>string next_page_token = 2;</code>
     * @return The nextPageToken.
     */
    java.lang.String getNextPageToken();
    /**
     * <pre>
     * Non-empty when another page of siblings is available.
     * </pre>
     *
     * <code>string next_page_token = 2;</code>
     * @return The bytes for nextPageToken.
     */
    com.google.protobuf.ByteString
        getNextPageTokenBytes();

    /**
     * <pre>
     * Total matching direct children of the parent (post-filter).
     * </pre>
     *
     * <code>int32 total_child_count = 3;</code>
     * @return The totalChildCount.
     */
    int getTotalChildCount();

    /**
     * <pre>
     * 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.
     * </pre>
     *
     * <code>repeated bool child_has_children = 4;</code>
     * @return A list containing the childHasChildren.
     */
    java.util.List<java.lang.Boolean> getChildHasChildrenList();
    /**
     * <pre>
     * 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.
     * </pre>
     *
     * <code>repeated bool child_has_children = 4;</code>
     * @return The count of childHasChildren.
     */
    int getChildHasChildrenCount();
    /**
     * <pre>
     * 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.
     * </pre>
     *
     * <code>repeated bool child_has_children = 4;</code>
     * @param index The index of the element to return.
     * @return The childHasChildren at the given index.
     */
    boolean getChildHasChildren(int index);

    /**
     * <pre>
     * Cache sequence this reply was projected from. Clients may pass it back as
     * part of the page_token contract. Mismatch on the next page -&gt; InvalidArgument.
     * </pre>
     *
     * <code>uint64 cache_sequence = 5;</code>
     * @return The cacheSequence.
     */
    long getCacheSequence();
  }
  /**
   * Protobuf type {@code galaxy_repository.v1.BrowseChildrenReply}
   */
  public static final class BrowseChildrenReply extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:galaxy_repository.v1.BrowseChildrenReply)
      BrowseChildrenReplyOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 1,
        /* suffix= */ "",
        "BrowseChildrenReply");
    }
    // Use BrowseChildrenReply.newBuilder() to construct.
    private BrowseChildrenReply(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
    }
    private BrowseChildrenReply() {
      children_ = java.util.Collections.emptyList();
      nextPageToken_ = "";
      childHasChildren_ = emptyBooleanList();
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return galaxy_repository.v1.GalaxyRepositoryOuterClass.internal_static_galaxy_repository_v1_BrowseChildrenReply_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return galaxy_repository.v1.GalaxyRepositoryOuterClass.internal_static_galaxy_repository_v1_BrowseChildrenReply_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              galaxy_repository.v1.GalaxyRepositoryOuterClass.BrowseChildrenReply.class, galaxy_repository.v1.GalaxyRepositoryOuterClass.BrowseChildrenReply.Builder.class);
    }

    public static final int CHILDREN_FIELD_NUMBER = 1;
    @SuppressWarnings("serial")
    private java.util.List<galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyObject> children_;
    /**
     * <pre>
     * Direct children matching the filter, sorted areas-first then by
     * case-insensitive display name (same order as the dashboard tree).
     * </pre>
     *
     * <code>repeated .galaxy_repository.v1.GalaxyObject children = 1;</code>
     */
    @java.lang.Override
    public java.util.List<galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyObject> getChildrenList() {
      return children_;
    }
    /**
     * <pre>
     * Direct children matching the filter, sorted areas-first then by
     * case-insensitive display name (same order as the dashboard tree).
     * </pre>
     *
     * <code>repeated .galaxy_repository.v1.GalaxyObject children = 1;</code>
     */
    @java.lang.Override
    public java.util.List<? extends galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyObjectOrBuilder> 
        getChildrenOrBuilderList() {
      return children_;
    }
    /**
     * <pre>
     * Direct children matching the filter, sorted areas-first then by
     * case-insensitive display name (same order as the dashboard tree).
     * </pre>
     *
     * <code>repeated .galaxy_repository.v1.GalaxyObject children = 1;</code>
     */
    @java.lang.Override
    public int getChildrenCount() {
      return children_.size();
    }
    /**
     * <pre>
     * Direct children matching the filter, sorted areas-first then by
     * case-insensitive display name (same order as the dashboard tree).
     * </pre>
     *
     * <code>repeated .galaxy_repository.v1.GalaxyObject children = 1;</code>
     */
    @java.lang.Override
    public galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyObject getChildren(int index) {
      return children_.get(index);
    }
    /**
     * <pre>
     * Direct children matching the filter, sorted areas-first then by
     * case-insensitive display name (same order as the dashboard tree).
     * </pre>
     *
     * <code>repeated .galaxy_repository.v1.GalaxyObject children = 1;</code>
     */
    @java.lang.Override
    public galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyObjectOrBuilder getChildrenOrBuilder(
        int index) {
      return children_.get(index);
    }

    public static final int NEXT_PAGE_TOKEN_FIELD_NUMBER = 2;
    @SuppressWarnings("serial")
    private volatile java.lang.Object nextPageToken_ = "";
    /**
     * <pre>
     * Non-empty when another page of siblings is available.
     * </pre>
     *
     * <code>string next_page_token = 2;</code>
     * @return The nextPageToken.
     */
    @java.lang.Override
    public java.lang.String getNextPageToken() {
      java.lang.Object ref = nextPageToken_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        nextPageToken_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * Non-empty when another page of siblings is available.
     * </pre>
     *
     * <code>string next_page_token = 2;</code>
     * @return The bytes for nextPageToken.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getNextPageTokenBytes() {
      java.lang.Object ref = nextPageToken_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        nextPageToken_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int TOTAL_CHILD_COUNT_FIELD_NUMBER = 3;
    private int totalChildCount_ = 0;
    /**
     * <pre>
     * Total matching direct children of the parent (post-filter).
     * </pre>
     *
     * <code>int32 total_child_count = 3;</code>
     * @return The totalChildCount.
     */
    @java.lang.Override
    public int getTotalChildCount() {
      return totalChildCount_;
    }

    public static final int CHILD_HAS_CHILDREN_FIELD_NUMBER = 4;
    @SuppressWarnings("serial")
    private com.google.protobuf.Internal.BooleanList childHasChildren_ =
        emptyBooleanList();
    /**
     * <pre>
     * 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.
     * </pre>
     *
     * <code>repeated bool child_has_children = 4;</code>
     * @return A list containing the childHasChildren.
     */
    @java.lang.Override
    public java.util.List<java.lang.Boolean>
        getChildHasChildrenList() {
      return childHasChildren_;
    }
    /**
     * <pre>
     * 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.
     * </pre>
     *
     * <code>repeated bool child_has_children = 4;</code>
     * @return The count of childHasChildren.
     */
    public int getChildHasChildrenCount() {
      return childHasChildren_.size();
    }
    /**
     * <pre>
     * 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.
     * </pre>
     *
     * <code>repeated bool child_has_children = 4;</code>
     * @param index The index of the element to return.
     * @return The childHasChildren at the given index.
     */
    public boolean getChildHasChildren(int index) {
      return childHasChildren_.getBoolean(index);
    }
    private int childHasChildrenMemoizedSerializedSize = -1;

    public static final int CACHE_SEQUENCE_FIELD_NUMBER = 5;
    private long cacheSequence_ = 0L;
    /**
     * <pre>
     * Cache sequence this reply was projected from. Clients may pass it back as
     * part of the page_token contract. Mismatch on the next page -&gt; InvalidArgument.
     * </pre>
     *
     * <code>uint64 cache_sequence = 5;</code>
     * @return The cacheSequence.
     */
    @java.lang.Override
    public long getCacheSequence() {
      return cacheSequence_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      for (int i = 0; i < children_.size(); i++) {
        output.writeMessage(1, children_.get(i));
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(nextPageToken_)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 2, nextPageToken_);
      }
      if (totalChildCount_ != 0) {
        output.writeInt32(3, totalChildCount_);
      }
      if (getChildHasChildrenList().size() > 0) {
        output.writeUInt32NoTag(34);
        output.writeUInt32NoTag(childHasChildrenMemoizedSerializedSize);
      }
      for (int i = 0; i < childHasChildren_.size(); i++) {
        output.writeBoolNoTag(childHasChildren_.getBoolean(i));
      }
      if (cacheSequence_ != 0L) {
        output.writeUInt64(5, cacheSequence_);
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      for (int i = 0; i < children_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, children_.get(i));
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(nextPageToken_)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(2, nextPageToken_);
      }
      if (totalChildCount_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(3, totalChildCount_);
      }
      {
        int dataSize = 0;
        dataSize = 1 * getChildHasChildrenList().size();
        size += dataSize;
        if (!getChildHasChildrenList().isEmpty()) {
          size += 1;
          size += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(dataSize);
        }
        childHasChildrenMemoizedSerializedSize = dataSize;
      }
      if (cacheSequence_ != 0L) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt64Size(5, cacheSequence_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof galaxy_repository.v1.GalaxyRepositoryOuterClass.BrowseChildrenReply)) {
        return super.equals(obj);
      }
      galaxy_repository.v1.GalaxyRepositoryOuterClass.BrowseChildrenReply other = (galaxy_repository.v1.GalaxyRepositoryOuterClass.BrowseChildrenReply) obj;

      if (!getChildrenList()
          .equals(other.getChildrenList())) return false;
      if (!getNextPageToken()
          .equals(other.getNextPageToken())) return false;
      if (getTotalChildCount()
          != other.getTotalChildCount()) return false;
      if (!getChildHasChildrenList()
          .equals(other.getChildHasChildrenList())) return false;
      if (getCacheSequence()
          != other.getCacheSequence()) return false;
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (getChildrenCount() > 0) {
        hash = (37 * hash) + CHILDREN_FIELD_NUMBER;
        hash = (53 * hash) + getChildrenList().hashCode();
      }
      hash = (37 * hash) + NEXT_PAGE_TOKEN_FIELD_NUMBER;
      hash = (53 * hash) + getNextPageToken().hashCode();
      hash = (37 * hash) + TOTAL_CHILD_COUNT_FIELD_NUMBER;
      hash = (53 * hash) + getTotalChildCount();
      if (getChildHasChildrenCount() > 0) {
        hash = (37 * hash) + CHILD_HAS_CHILDREN_FIELD_NUMBER;
        hash = (53 * hash) + getChildHasChildrenList().hashCode();
      }
      hash = (37 * hash) + CACHE_SEQUENCE_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          getCacheSequence());
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static galaxy_repository.v1.GalaxyRepositoryOuterClass.BrowseChildrenReply parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static galaxy_repository.v1.GalaxyRepositoryOuterClass.BrowseChildrenReply parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static galaxy_repository.v1.GalaxyRepositoryOuterClass.BrowseChildrenReply parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static galaxy_repository.v1.GalaxyRepositoryOuterClass.BrowseChildrenReply parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static galaxy_repository.v1.GalaxyRepositoryOuterClass.BrowseChildrenReply parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static galaxy_repository.v1.GalaxyRepositoryOuterClass.BrowseChildrenReply parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static galaxy_repository.v1.GalaxyRepositoryOuterClass.BrowseChildrenReply parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static galaxy_repository.v1.GalaxyRepositoryOuterClass.BrowseChildrenReply parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static galaxy_repository.v1.GalaxyRepositoryOuterClass.BrowseChildrenReply parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static galaxy_repository.v1.GalaxyRepositoryOuterClass.BrowseChildrenReply parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static galaxy_repository.v1.GalaxyRepositoryOuterClass.BrowseChildrenReply parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static galaxy_repository.v1.GalaxyRepositoryOuterClass.BrowseChildrenReply parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(galaxy_repository.v1.GalaxyRepositoryOuterClass.BrowseChildrenReply prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code galaxy_repository.v1.BrowseChildrenReply}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:galaxy_repository.v1.BrowseChildrenReply)
        galaxy_repository.v1.GalaxyRepositoryOuterClass.BrowseChildrenReplyOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return galaxy_repository.v1.GalaxyRepositoryOuterClass.internal_static_galaxy_repository_v1_BrowseChildrenReply_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return galaxy_repository.v1.GalaxyRepositoryOuterClass.internal_static_galaxy_repository_v1_BrowseChildrenReply_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                galaxy_repository.v1.GalaxyRepositoryOuterClass.BrowseChildrenReply.class, galaxy_repository.v1.GalaxyRepositoryOuterClass.BrowseChildrenReply.Builder.class);
      }

      // Construct using galaxy_repository.v1.GalaxyRepositoryOuterClass.BrowseChildrenReply.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        if (childrenBuilder_ == null) {
          children_ = java.util.Collections.emptyList();
        } else {
          children_ = null;
          childrenBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        nextPageToken_ = "";
        totalChildCount_ = 0;
        childHasChildren_ = emptyBooleanList();
        cacheSequence_ = 0L;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return galaxy_repository.v1.GalaxyRepositoryOuterClass.internal_static_galaxy_repository_v1_BrowseChildrenReply_descriptor;
      }

      @java.lang.Override
      public galaxy_repository.v1.GalaxyRepositoryOuterClass.BrowseChildrenReply getDefaultInstanceForType() {
        return galaxy_repository.v1.GalaxyRepositoryOuterClass.BrowseChildrenReply.getDefaultInstance();
      }

      @java.lang.Override
      public galaxy_repository.v1.GalaxyRepositoryOuterClass.BrowseChildrenReply build() {
        galaxy_repository.v1.GalaxyRepositoryOuterClass.BrowseChildrenReply result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public galaxy_repository.v1.GalaxyRepositoryOuterClass.BrowseChildrenReply buildPartial() {
        galaxy_repository.v1.GalaxyRepositoryOuterClass.BrowseChildrenReply result = new galaxy_repository.v1.GalaxyRepositoryOuterClass.BrowseChildrenReply(this);
        buildPartialRepeatedFields(result);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartialRepeatedFields(galaxy_repository.v1.GalaxyRepositoryOuterClass.BrowseChildrenReply result) {
        if (childrenBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0)) {
            children_ = java.util.Collections.unmodifiableList(children_);
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          result.children_ = children_;
        } else {
          result.children_ = childrenBuilder_.build();
        }
      }

      private void buildPartial0(galaxy_repository.v1.GalaxyRepositoryOuterClass.BrowseChildrenReply result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.nextPageToken_ = nextPageToken_;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.totalChildCount_ = totalChildCount_;
        }
        if (((from_bitField0_ & 0x00000008) != 0)) {
          childHasChildren_.makeImmutable();
          result.childHasChildren_ = childHasChildren_;
        }
        if (((from_bitField0_ & 0x00000010) != 0)) {
          result.cacheSequence_ = cacheSequence_;
        }
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof galaxy_repository.v1.GalaxyRepositoryOuterClass.BrowseChildrenReply) {
          return mergeFrom((galaxy_repository.v1.GalaxyRepositoryOuterClass.BrowseChildrenReply)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(galaxy_repository.v1.GalaxyRepositoryOuterClass.BrowseChildrenReply other) {
        if (other == galaxy_repository.v1.GalaxyRepositoryOuterClass.BrowseChildrenReply.getDefaultInstance()) return this;
        if (childrenBuilder_ == null) {
          if (!other.children_.isEmpty()) {
            if (children_.isEmpty()) {
              children_ = other.children_;
              bitField0_ = (bitField0_ & ~0x00000001);
            } else {
              ensureChildrenIsMutable();
              children_.addAll(other.children_);
            }
            onChanged();
          }
        } else {
          if (!other.children_.isEmpty()) {
            if (childrenBuilder_.isEmpty()) {
              childrenBuilder_.dispose();
              childrenBuilder_ = null;
              children_ = other.children_;
              bitField0_ = (bitField0_ & ~0x00000001);
              childrenBuilder_ = 
                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                   internalGetChildrenFieldBuilder() : null;
            } else {
              childrenBuilder_.addAllMessages(other.children_);
            }
          }
        }
        if (!other.getNextPageToken().isEmpty()) {
          nextPageToken_ = other.nextPageToken_;
          bitField0_ |= 0x00000002;
          onChanged();
        }
        if (other.getTotalChildCount() != 0) {
          setTotalChildCount(other.getTotalChildCount());
        }
        if (!other.childHasChildren_.isEmpty()) {
          if (childHasChildren_.isEmpty()) {
            childHasChildren_ = other.childHasChildren_;
            childHasChildren_.makeImmutable();
            bitField0_ |= 0x00000008;
          } else {
            ensureChildHasChildrenIsMutable();
            childHasChildren_.addAll(other.childHasChildren_);
          }
          onChanged();
        }
        if (other.getCacheSequence() != 0L) {
          setCacheSequence(other.getCacheSequence());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 10: {
                galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyObject m =
                    input.readMessage(
                        galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyObject.parser(),
                        extensionRegistry);
                if (childrenBuilder_ == null) {
                  ensureChildrenIsMutable();
                  children_.add(m);
                } else {
                  childrenBuilder_.addMessage(m);
                }
                break;
              } // case 10
              case 18: {
                nextPageToken_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000002;
                break;
              } // case 18
              case 24: {
                totalChildCount_ = input.readInt32();
                bitField0_ |= 0x00000004;
                break;
              } // case 24
              case 32: {
                boolean v = input.readBool();
                ensureChildHasChildrenIsMutable();
                childHasChildren_.addBoolean(v);
                break;
              } // case 32
              case 34: {
                int length = input.readRawVarint32();
                int limit = input.pushLimit(length);
                int alloc = length > 4096 ? 4096 : length;
                ensureChildHasChildrenIsMutable(alloc / 1);
                while (input.getBytesUntilLimit() > 0) {
                  childHasChildren_.addBoolean(input.readBool());
                }
                input.popLimit(limit);
                break;
              } // case 34
              case 40: {
                cacheSequence_ = input.readUInt64();
                bitField0_ |= 0x00000010;
                break;
              } // case 40
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private java.util.List<galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyObject> children_ =
        java.util.Collections.emptyList();
      private void ensureChildrenIsMutable() {
        if (!((bitField0_ & 0x00000001) != 0)) {
          children_ = new java.util.ArrayList<galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyObject>(children_);
          bitField0_ |= 0x00000001;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilder<
          galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyObject, galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyObject.Builder, galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyObjectOrBuilder> childrenBuilder_;

      /**
       * <pre>
       * Direct children matching the filter, sorted areas-first then by
       * case-insensitive display name (same order as the dashboard tree).
       * </pre>
       *
       * <code>repeated .galaxy_repository.v1.GalaxyObject children = 1;</code>
       */
      public java.util.List<galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyObject> getChildrenList() {
        if (childrenBuilder_ == null) {
          return java.util.Collections.unmodifiableList(children_);
        } else {
          return childrenBuilder_.getMessageList();
        }
      }
      /**
       * <pre>
       * Direct children matching the filter, sorted areas-first then by
       * case-insensitive display name (same order as the dashboard tree).
       * </pre>
       *
       * <code>repeated .galaxy_repository.v1.GalaxyObject children = 1;</code>
       */
      public int getChildrenCount() {
        if (childrenBuilder_ == null) {
          return children_.size();
        } else {
          return childrenBuilder_.getCount();
        }
      }
      /**
       * <pre>
       * Direct children matching the filter, sorted areas-first then by
       * case-insensitive display name (same order as the dashboard tree).
       * </pre>
       *
       * <code>repeated .galaxy_repository.v1.GalaxyObject children = 1;</code>
       */
      public galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyObject getChildren(int index) {
        if (childrenBuilder_ == null) {
          return children_.get(index);
        } else {
          return childrenBuilder_.getMessage(index);
        }
      }
      /**
       * <pre>
       * Direct children matching the filter, sorted areas-first then by
       * case-insensitive display name (same order as the dashboard tree).
       * </pre>
       *
       * <code>repeated .galaxy_repository.v1.GalaxyObject children = 1;</code>
       */
      public Builder setChildren(
          int index, galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyObject value) {
        if (childrenBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureChildrenIsMutable();
          children_.set(index, value);
          onChanged();
        } else {
          childrenBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       * Direct children matching the filter, sorted areas-first then by
       * case-insensitive display name (same order as the dashboard tree).
       * </pre>
       *
       * <code>repeated .galaxy_repository.v1.GalaxyObject children = 1;</code>
       */
      public Builder setChildren(
          int index, galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyObject.Builder builderForValue) {
        if (childrenBuilder_ == null) {
          ensureChildrenIsMutable();
          children_.set(index, builderForValue.build());
          onChanged();
        } else {
          childrenBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * Direct children matching the filter, sorted areas-first then by
       * case-insensitive display name (same order as the dashboard tree).
       * </pre>
       *
       * <code>repeated .galaxy_repository.v1.GalaxyObject children = 1;</code>
       */
      public Builder addChildren(galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyObject value) {
        if (childrenBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureChildrenIsMutable();
          children_.add(value);
          onChanged();
        } else {
          childrenBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <pre>
       * Direct children matching the filter, sorted areas-first then by
       * case-insensitive display name (same order as the dashboard tree).
       * </pre>
       *
       * <code>repeated .galaxy_repository.v1.GalaxyObject children = 1;</code>
       */
      public Builder addChildren(
          int index, galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyObject value) {
        if (childrenBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureChildrenIsMutable();
          children_.add(index, value);
          onChanged();
        } else {
          childrenBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       * Direct children matching the filter, sorted areas-first then by
       * case-insensitive display name (same order as the dashboard tree).
       * </pre>
       *
       * <code>repeated .galaxy_repository.v1.GalaxyObject children = 1;</code>
       */
      public Builder addChildren(
          galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyObject.Builder builderForValue) {
        if (childrenBuilder_ == null) {
          ensureChildrenIsMutable();
          children_.add(builderForValue.build());
          onChanged();
        } else {
          childrenBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * Direct children matching the filter, sorted areas-first then by
       * case-insensitive display name (same order as the dashboard tree).
       * </pre>
       *
       * <code>repeated .galaxy_repository.v1.GalaxyObject children = 1;</code>
       */
      public Builder addChildren(
          int index, galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyObject.Builder builderForValue) {
        if (childrenBuilder_ == null) {
          ensureChildrenIsMutable();
          children_.add(index, builderForValue.build());
          onChanged();
        } else {
          childrenBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * Direct children matching the filter, sorted areas-first then by
       * case-insensitive display name (same order as the dashboard tree).
       * </pre>
       *
       * <code>repeated .galaxy_repository.v1.GalaxyObject children = 1;</code>
       */
      public Builder addAllChildren(
          java.lang.Iterable<? extends galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyObject> values) {
        if (childrenBuilder_ == null) {
          ensureChildrenIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, children_);
          onChanged();
        } else {
          childrenBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <pre>
       * Direct children matching the filter, sorted areas-first then by
       * case-insensitive display name (same order as the dashboard tree).
       * </pre>
       *
       * <code>repeated .galaxy_repository.v1.GalaxyObject children = 1;</code>
       */
      public Builder clearChildren() {
        if (childrenBuilder_ == null) {
          children_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
        } else {
          childrenBuilder_.clear();
        }
        return this;
      }
      /**
       * <pre>
       * Direct children matching the filter, sorted areas-first then by
       * case-insensitive display name (same order as the dashboard tree).
       * </pre>
       *
       * <code>repeated .galaxy_repository.v1.GalaxyObject children = 1;</code>
       */
      public Builder removeChildren(int index) {
        if (childrenBuilder_ == null) {
          ensureChildrenIsMutable();
          children_.remove(index);
          onChanged();
        } else {
          childrenBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <pre>
       * Direct children matching the filter, sorted areas-first then by
       * case-insensitive display name (same order as the dashboard tree).
       * </pre>
       *
       * <code>repeated .galaxy_repository.v1.GalaxyObject children = 1;</code>
       */
      public galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyObject.Builder getChildrenBuilder(
          int index) {
        return internalGetChildrenFieldBuilder().getBuilder(index);
      }
      /**
       * <pre>
       * Direct children matching the filter, sorted areas-first then by
       * case-insensitive display name (same order as the dashboard tree).
       * </pre>
       *
       * <code>repeated .galaxy_repository.v1.GalaxyObject children = 1;</code>
       */
      public galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyObjectOrBuilder getChildrenOrBuilder(
          int index) {
        if (childrenBuilder_ == null) {
          return children_.get(index);  } else {
          return childrenBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <pre>
       * Direct children matching the filter, sorted areas-first then by
       * case-insensitive display name (same order as the dashboard tree).
       * </pre>
       *
       * <code>repeated .galaxy_repository.v1.GalaxyObject children = 1;</code>
       */
      public java.util.List<? extends galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyObjectOrBuilder> 
           getChildrenOrBuilderList() {
        if (childrenBuilder_ != null) {
          return childrenBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(children_);
        }
      }
      /**
       * <pre>
       * Direct children matching the filter, sorted areas-first then by
       * case-insensitive display name (same order as the dashboard tree).
       * </pre>
       *
       * <code>repeated .galaxy_repository.v1.GalaxyObject children = 1;</code>
       */
      public galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyObject.Builder addChildrenBuilder() {
        return internalGetChildrenFieldBuilder().addBuilder(
            galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyObject.getDefaultInstance());
      }
      /**
       * <pre>
       * Direct children matching the filter, sorted areas-first then by
       * case-insensitive display name (same order as the dashboard tree).
       * </pre>
       *
       * <code>repeated .galaxy_repository.v1.GalaxyObject children = 1;</code>
       */
      public galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyObject.Builder addChildrenBuilder(
          int index) {
        return internalGetChildrenFieldBuilder().addBuilder(
            index, galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyObject.getDefaultInstance());
      }
      /**
       * <pre>
       * Direct children matching the filter, sorted areas-first then by
       * case-insensitive display name (same order as the dashboard tree).
       * </pre>
       *
       * <code>repeated .galaxy_repository.v1.GalaxyObject children = 1;</code>
       */
      public java.util.List<galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyObject.Builder> 
           getChildrenBuilderList() {
        return internalGetChildrenFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilder<
          galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyObject, galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyObject.Builder, galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyObjectOrBuilder> 
          internalGetChildrenFieldBuilder() {
        if (childrenBuilder_ == null) {
          childrenBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
              galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyObject, galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyObject.Builder, galaxy_repository.v1.GalaxyRepositoryOuterClass.GalaxyObjectOrBuilder>(
                  children_,
                  ((bitField0_ & 0x00000001) != 0),
                  getParentForChildren(),
                  isClean());
          children_ = null;
        }
        return childrenBuilder_;
      }

      private java.lang.Object nextPageToken_ = "";
      /**
       * <pre>
       * Non-empty when another page of siblings is available.
       * </pre>
       *
       * <code>string next_page_token = 2;</code>
       * @return The nextPageToken.
       */
      public java.lang.String getNextPageToken() {
        java.lang.Object ref = nextPageToken_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          nextPageToken_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * Non-empty when another page of siblings is available.
       * </pre>
       *
       * <code>string next_page_token = 2;</code>
       * @return The bytes for nextPageToken.
       */
      public com.google.protobuf.ByteString
          getNextPageTokenBytes() {
        java.lang.Object ref = nextPageToken_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          nextPageToken_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * Non-empty when another page of siblings is available.
       * </pre>
       *
       * <code>string next_page_token = 2;</code>
       * @param value The nextPageToken to set.
       * @return This builder for chaining.
       */
      public Builder setNextPageToken(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        nextPageToken_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Non-empty when another page of siblings is available.
       * </pre>
       *
       * <code>string next_page_token = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearNextPageToken() {
        nextPageToken_ = getDefaultInstance().getNextPageToken();
        bitField0_ = (bitField0_ & ~0x00000002);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Non-empty when another page of siblings is available.
       * </pre>
       *
       * <code>string next_page_token = 2;</code>
       * @param value The bytes for nextPageToken to set.
       * @return This builder for chaining.
       */
      public Builder setNextPageTokenBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        nextPageToken_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }

      private int totalChildCount_ ;
      /**
       * <pre>
       * Total matching direct children of the parent (post-filter).
       * </pre>
       *
       * <code>int32 total_child_count = 3;</code>
       * @return The totalChildCount.
       */
      @java.lang.Override
      public int getTotalChildCount() {
        return totalChildCount_;
      }
      /**
       * <pre>
       * Total matching direct children of the parent (post-filter).
       * </pre>
       *
       * <code>int32 total_child_count = 3;</code>
       * @param value The totalChildCount to set.
       * @return This builder for chaining.
       */
      public Builder setTotalChildCount(int value) {

        totalChildCount_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Total matching direct children of the parent (post-filter).
       * </pre>
       *
       * <code>int32 total_child_count = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearTotalChildCount() {
        bitField0_ = (bitField0_ & ~0x00000004);
        totalChildCount_ = 0;
        onChanged();
        return this;
      }

      private com.google.protobuf.Internal.BooleanList childHasChildren_ = emptyBooleanList();
      private void ensureChildHasChildrenIsMutable() {
        if (!childHasChildren_.isModifiable()) {
          childHasChildren_ = makeMutableCopy(childHasChildren_);
        }
        bitField0_ |= 0x00000008;
      }
      private void ensureChildHasChildrenIsMutable(int capacity) {
        if (!childHasChildren_.isModifiable()) {
          childHasChildren_ = makeMutableCopy(childHasChildren_, capacity);
        }
        bitField0_ |= 0x00000008;
      }
      /**
       * <pre>
       * 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.
       * </pre>
       *
       * <code>repeated bool child_has_children = 4;</code>
       * @return A list containing the childHasChildren.
       */
      public java.util.List<java.lang.Boolean>
          getChildHasChildrenList() {
        childHasChildren_.makeImmutable();
        return childHasChildren_;
      }
      /**
       * <pre>
       * 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.
       * </pre>
       *
       * <code>repeated bool child_has_children = 4;</code>
       * @return The count of childHasChildren.
       */
      public int getChildHasChildrenCount() {
        return childHasChildren_.size();
      }
      /**
       * <pre>
       * 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.
       * </pre>
       *
       * <code>repeated bool child_has_children = 4;</code>
       * @param index The index of the element to return.
       * @return The childHasChildren at the given index.
       */
      public boolean getChildHasChildren(int index) {
        return childHasChildren_.getBoolean(index);
      }
      /**
       * <pre>
       * 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.
       * </pre>
       *
       * <code>repeated bool child_has_children = 4;</code>
       * @param index The index to set the value at.
       * @param value The childHasChildren to set.
       * @return This builder for chaining.
       */
      public Builder setChildHasChildren(
          int index, boolean value) {

        ensureChildHasChildrenIsMutable();
        childHasChildren_.setBoolean(index, value);
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * 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.
       * </pre>
       *
       * <code>repeated bool child_has_children = 4;</code>
       * @param value The childHasChildren to add.
       * @return This builder for chaining.
       */
      public Builder addChildHasChildren(boolean value) {

        ensureChildHasChildrenIsMutable();
        childHasChildren_.addBoolean(value);
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * 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.
       * </pre>
       *
       * <code>repeated bool child_has_children = 4;</code>
       * @param values The childHasChildren to add.
       * @return This builder for chaining.
       */
      public Builder addAllChildHasChildren(
          java.lang.Iterable<? extends java.lang.Boolean> values) {
        ensureChildHasChildrenIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, childHasChildren_);
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * 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.
       * </pre>
       *
       * <code>repeated bool child_has_children = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearChildHasChildren() {
        childHasChildren_ = emptyBooleanList();
        bitField0_ = (bitField0_ & ~0x00000008);
        onChanged();
        return this;
      }

      private long cacheSequence_ ;
      /**
       * <pre>
       * Cache sequence this reply was projected from. Clients may pass it back as
       * part of the page_token contract. Mismatch on the next page -&gt; InvalidArgument.
       * </pre>
       *
       * <code>uint64 cache_sequence = 5;</code>
       * @return The cacheSequence.
       */
      @java.lang.Override
      public long getCacheSequence() {
        return cacheSequence_;
      }
      /**
       * <pre>
       * Cache sequence this reply was projected from. Clients may pass it back as
       * part of the page_token contract. Mismatch on the next page -&gt; InvalidArgument.
       * </pre>
       *
       * <code>uint64 cache_sequence = 5;</code>
       * @param value The cacheSequence to set.
       * @return This builder for chaining.
       */
      public Builder setCacheSequence(long value) {

        cacheSequence_ = value;
        bitField0_ |= 0x00000010;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Cache sequence this reply was projected from. Clients may pass it back as
       * part of the page_token contract. Mismatch on the next page -&gt; InvalidArgument.
       * </pre>
       *
       * <code>uint64 cache_sequence = 5;</code>
       * @return This builder for chaining.
       */
      public Builder clearCacheSequence() {
        bitField0_ = (bitField0_ & ~0x00000010);
        cacheSequence_ = 0L;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:galaxy_repository.v1.BrowseChildrenReply)
    }

    // @@protoc_insertion_point(class_scope:galaxy_repository.v1.BrowseChildrenReply)
    private static final galaxy_repository.v1.GalaxyRepositoryOuterClass.BrowseChildrenReply DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new galaxy_repository.v1.GalaxyRepositoryOuterClass.BrowseChildrenReply();
    }

    public static galaxy_repository.v1.GalaxyRepositoryOuterClass.BrowseChildrenReply getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<BrowseChildrenReply>
        PARSER = new com.google.protobuf.AbstractParser<BrowseChildrenReply>() {
      @java.lang.Override
      public BrowseChildrenReply parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<BrowseChildrenReply> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<BrowseChildrenReply> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public galaxy_repository.v1.GalaxyRepositoryOuterClass.BrowseChildrenReply getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_galaxy_repository_v1_TestConnectionRequest_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_galaxy_repository_v1_TestConnectionRequest_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_galaxy_repository_v1_TestConnectionReply_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_galaxy_repository_v1_TestConnectionReply_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_galaxy_repository_v1_GetLastDeployTimeRequest_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_galaxy_repository_v1_GetLastDeployTimeRequest_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_galaxy_repository_v1_GetLastDeployTimeReply_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_galaxy_repository_v1_GetLastDeployTimeReply_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_galaxy_repository_v1_DiscoverHierarchyRequest_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_galaxy_repository_v1_DiscoverHierarchyRequest_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_galaxy_repository_v1_DiscoverHierarchyReply_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_galaxy_repository_v1_DiscoverHierarchyReply_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_galaxy_repository_v1_WatchDeployEventsRequest_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_galaxy_repository_v1_WatchDeployEventsRequest_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_galaxy_repository_v1_DeployEvent_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_galaxy_repository_v1_DeployEvent_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_galaxy_repository_v1_GalaxyObject_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_galaxy_repository_v1_GalaxyObject_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_galaxy_repository_v1_GalaxyAttribute_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_galaxy_repository_v1_GalaxyAttribute_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_galaxy_repository_v1_BrowseChildrenRequest_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_galaxy_repository_v1_BrowseChildrenRequest_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_galaxy_repository_v1_BrowseChildrenReply_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_galaxy_repository_v1_BrowseChildrenReply_fieldAccessorTable;

  public static com.google.protobuf.Descriptors.FileDescriptor
      getDescriptor() {
    return descriptor;
  }
  private static  com.google.protobuf.Descriptors.FileDescriptor
      descriptor;
  static {
    java.lang.String[] descriptorData = {
      "\n\027galaxy_repository.proto\022\024galaxy_reposi" +
      "tory.v1\032\037google/protobuf/timestamp.proto" +
      "\032\036google/protobuf/wrappers.proto\"\027\n\025Test" +
      "ConnectionRequest\"!\n\023TestConnectionReply" +
      "\022\n\n\002ok\030\001 \001(\010\"\032\n\030GetLastDeployTimeRequest" +
      "\"b\n\026GetLastDeployTimeReply\022\017\n\007present\030\001 " +
      "\001(\010\0227\n\023time_of_last_deploy\030\002 \001(\0132\032.googl" +
      "e.protobuf.Timestamp\"\207\003\n\030DiscoverHierarc" +
      "hyRequest\022\021\n\tpage_size\030\001 \001(\005\022\022\n\npage_tok" +
      "en\030\002 \001(\t\022\031\n\017root_gobject_id\030\003 \001(\005H\000\022\027\n\rr" +
      "oot_tag_name\030\004 \001(\tH\000\022\035\n\023root_contained_p" +
      "ath\030\005 \001(\tH\000\022.\n\tmax_depth\030\006 \001(\0132\033.google." +
      "protobuf.Int32Value\022\024\n\014category_ids\030\007 \003(" +
      "\005\022\037\n\027template_chain_contains\030\010 \003(\t\022\025\n\rta" +
      "g_name_glob\030\t \001(\t\022\037\n\022include_attributes\030" +
      "\n \001(\010H\001\210\001\001\022\032\n\022alarm_bearing_only\030\013 \001(\010\022\027" +
      "\n\017historized_only\030\014 \001(\010B\006\n\004rootB\025\n\023_incl" +
      "ude_attributes\"\202\001\n\026DiscoverHierarchyRepl" +
      "y\0223\n\007objects\030\001 \003(\0132\".galaxy_repository.v" +
      "1.GalaxyObject\022\027\n\017next_page_token\030\002 \001(\t\022" +
      "\032\n\022total_object_count\030\003 \001(\005\"U\n\030WatchDepl" +
      "oyEventsRequest\0229\n\025last_seen_deploy_time" +
      "\030\001 \001(\0132\032.google.protobuf.Timestamp\"\335\001\n\013D" +
      "eployEvent\022\020\n\010sequence\030\001 \001(\004\022/\n\013observed" +
      "_at\030\002 \001(\0132\032.google.protobuf.Timestamp\0227\n" +
      "\023time_of_last_deploy\030\003 \001(\0132\032.google.prot" +
      "obuf.Timestamp\022#\n\033time_of_last_deploy_pr" +
      "esent\030\004 \001(\010\022\024\n\014object_count\030\005 \001(\005\022\027\n\017att" +
      "ribute_count\030\006 \001(\005\"\223\002\n\014GalaxyObject\022\022\n\ng" +
      "object_id\030\001 \001(\005\022\020\n\010tag_name\030\002 \001(\t\022\026\n\016con" +
      "tained_name\030\003 \001(\t\022\023\n\013browse_name\030\004 \001(\t\022\031" +
      "\n\021parent_gobject_id\030\005 \001(\005\022\017\n\007is_area\030\006 \001" +
      "(\010\022\023\n\013category_id\030\007 \001(\005\022\034\n\024hosted_by_gob" +
      "ject_id\030\010 \001(\005\022\026\n\016template_chain\030\t \003(\t\0229\n" +
      "\nattributes\030\n \003(\0132%.galaxy_repository.v1" +
      ".GalaxyAttribute\"\250\002\n\017GalaxyAttribute\022\026\n\016" +
      "attribute_name\030\001 \001(\t\022\032\n\022full_tag_referen" +
      "ce\030\002 \001(\t\022\024\n\014mx_data_type\030\003 \001(\005\022\026\n\016data_t" +
      "ype_name\030\004 \001(\t\022\020\n\010is_array\030\005 \001(\010\022\027\n\017arra" +
      "y_dimension\030\006 \001(\005\022\037\n\027array_dimension_pre" +
      "sent\030\007 \001(\010\022\035\n\025mx_attribute_category\030\010 \001(" +
      "\005\022\037\n\027security_classification\030\t \001(\005\022\025\n\ris" +
      "_historized\030\n \001(\010\022\020\n\010is_alarm\030\013 \001(\010\"\334\002\n\025" +
      "BrowseChildrenRequest\022\033\n\021parent_gobject_" +
      "id\030\001 \001(\005H\000\022\031\n\017parent_tag_name\030\002 \001(\tH\000\022\037\n" +
      "\025parent_contained_path\030\003 \001(\tH\000\022\021\n\tpage_s" +
      "ize\030\004 \001(\005\022\022\n\npage_token\030\005 \001(\t\022\024\n\014categor" +
      "y_ids\030\006 \003(\005\022\037\n\027template_chain_contains\030\007" +
      " \003(\t\022\025\n\rtag_name_glob\030\010 \001(\t\022\037\n\022include_a" +
      "ttributes\030\t \001(\010H\001\210\001\001\022\032\n\022alarm_bearing_on" +
      "ly\030\n \001(\010\022\027\n\017historized_only\030\013 \001(\010B\010\n\006par" +
      "entB\025\n\023_include_attributes\"\263\001\n\023BrowseChi" +
      "ldrenReply\0224\n\010children\030\001 \003(\0132\".galaxy_re" +
      "pository.v1.GalaxyObject\022\027\n\017next_page_to" +
      "ken\030\002 \001(\t\022\031\n\021total_child_count\030\003 \001(\005\022\032\n\022" +
      "child_has_children\030\004 \003(\010\022\026\n\016cache_sequen" +
      "ce\030\005 \001(\0042\266\004\n\020GalaxyRepository\022h\n\016TestCon" +
      "nection\022+.galaxy_repository.v1.TestConne" +
      "ctionRequest\032).galaxy_repository.v1.Test" +
      "ConnectionReply\022q\n\021GetLastDeployTime\022..g" +
      "alaxy_repository.v1.GetLastDeployTimeReq" +
      "uest\032,.galaxy_repository.v1.GetLastDeplo" +
      "yTimeReply\022q\n\021DiscoverHierarchy\022..galaxy" +
      "_repository.v1.DiscoverHierarchyRequest\032" +
      ",.galaxy_repository.v1.DiscoverHierarchy" +
      "Reply\022h\n\021WatchDeployEvents\022..galaxy_repo" +
      "sitory.v1.WatchDeployEventsRequest\032!.gal" +
      "axy_repository.v1.DeployEvent0\001\022h\n\016Brows" +
      "eChildren\022+.galaxy_repository.v1.BrowseC" +
      "hildrenRequest\032).galaxy_repository.v1.Br" +
      "owseChildrenReplyB-\252\002*ZB.MOM.WW.MxGatewa" +
      "y.Contracts.Proto.Galaxyb\006proto3"
    };
    descriptor = com.google.protobuf.Descriptors.FileDescriptor
      .internalBuildGeneratedFileFrom(descriptorData,
        new com.google.protobuf.Descriptors.FileDescriptor[] {
          com.google.protobuf.TimestampProto.getDescriptor(),
          com.google.protobuf.WrappersProto.getDescriptor(),
        });
    internal_static_galaxy_repository_v1_TestConnectionRequest_descriptor =
      getDescriptor().getMessageType(0);
    internal_static_galaxy_repository_v1_TestConnectionRequest_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_galaxy_repository_v1_TestConnectionRequest_descriptor,
        new java.lang.String[] { });
    internal_static_galaxy_repository_v1_TestConnectionReply_descriptor =
      getDescriptor().getMessageType(1);
    internal_static_galaxy_repository_v1_TestConnectionReply_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_galaxy_repository_v1_TestConnectionReply_descriptor,
        new java.lang.String[] { "Ok", });
    internal_static_galaxy_repository_v1_GetLastDeployTimeRequest_descriptor =
      getDescriptor().getMessageType(2);
    internal_static_galaxy_repository_v1_GetLastDeployTimeRequest_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_galaxy_repository_v1_GetLastDeployTimeRequest_descriptor,
        new java.lang.String[] { });
    internal_static_galaxy_repository_v1_GetLastDeployTimeReply_descriptor =
      getDescriptor().getMessageType(3);
    internal_static_galaxy_repository_v1_GetLastDeployTimeReply_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_galaxy_repository_v1_GetLastDeployTimeReply_descriptor,
        new java.lang.String[] { "Present", "TimeOfLastDeploy", });
    internal_static_galaxy_repository_v1_DiscoverHierarchyRequest_descriptor =
      getDescriptor().getMessageType(4);
    internal_static_galaxy_repository_v1_DiscoverHierarchyRequest_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_galaxy_repository_v1_DiscoverHierarchyRequest_descriptor,
        new java.lang.String[] { "PageSize", "PageToken", "RootGobjectId", "RootTagName", "RootContainedPath", "MaxDepth", "CategoryIds", "TemplateChainContains", "TagNameGlob", "IncludeAttributes", "AlarmBearingOnly", "HistorizedOnly", "Root", });
    internal_static_galaxy_repository_v1_DiscoverHierarchyReply_descriptor =
      getDescriptor().getMessageType(5);
    internal_static_galaxy_repository_v1_DiscoverHierarchyReply_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_galaxy_repository_v1_DiscoverHierarchyReply_descriptor,
        new java.lang.String[] { "Objects", "NextPageToken", "TotalObjectCount", });
    internal_static_galaxy_repository_v1_WatchDeployEventsRequest_descriptor =
      getDescriptor().getMessageType(6);
    internal_static_galaxy_repository_v1_WatchDeployEventsRequest_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_galaxy_repository_v1_WatchDeployEventsRequest_descriptor,
        new java.lang.String[] { "LastSeenDeployTime", });
    internal_static_galaxy_repository_v1_DeployEvent_descriptor =
      getDescriptor().getMessageType(7);
    internal_static_galaxy_repository_v1_DeployEvent_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_galaxy_repository_v1_DeployEvent_descriptor,
        new java.lang.String[] { "Sequence", "ObservedAt", "TimeOfLastDeploy", "TimeOfLastDeployPresent", "ObjectCount", "AttributeCount", });
    internal_static_galaxy_repository_v1_GalaxyObject_descriptor =
      getDescriptor().getMessageType(8);
    internal_static_galaxy_repository_v1_GalaxyObject_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_galaxy_repository_v1_GalaxyObject_descriptor,
        new java.lang.String[] { "GobjectId", "TagName", "ContainedName", "BrowseName", "ParentGobjectId", "IsArea", "CategoryId", "HostedByGobjectId", "TemplateChain", "Attributes", });
    internal_static_galaxy_repository_v1_GalaxyAttribute_descriptor =
      getDescriptor().getMessageType(9);
    internal_static_galaxy_repository_v1_GalaxyAttribute_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_galaxy_repository_v1_GalaxyAttribute_descriptor,
        new java.lang.String[] { "AttributeName", "FullTagReference", "MxDataType", "DataTypeName", "IsArray", "ArrayDimension", "ArrayDimensionPresent", "MxAttributeCategory", "SecurityClassification", "IsHistorized", "IsAlarm", });
    internal_static_galaxy_repository_v1_BrowseChildrenRequest_descriptor =
      getDescriptor().getMessageType(10);
    internal_static_galaxy_repository_v1_BrowseChildrenRequest_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_galaxy_repository_v1_BrowseChildrenRequest_descriptor,
        new java.lang.String[] { "ParentGobjectId", "ParentTagName", "ParentContainedPath", "PageSize", "PageToken", "CategoryIds", "TemplateChainContains", "TagNameGlob", "IncludeAttributes", "AlarmBearingOnly", "HistorizedOnly", "Parent", });
    internal_static_galaxy_repository_v1_BrowseChildrenReply_descriptor =
      getDescriptor().getMessageType(11);
    internal_static_galaxy_repository_v1_BrowseChildrenReply_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_galaxy_repository_v1_BrowseChildrenReply_descriptor,
        new java.lang.String[] { "Children", "NextPageToken", "TotalChildCount", "ChildHasChildren", "CacheSequence", });
    descriptor.resolveAllFeaturesImmutable();
    com.google.protobuf.TimestampProto.getDescriptor();
    com.google.protobuf.WrappersProto.getDescriptor();
  }

  // @@protoc_insertion_point(outer_class_scope)
}
