All Downloads are FREE. Search and download functionalities are using the official Maven repository.

clarifai2.internal.grpc.api.Search Maven / Gradle / Ivy

The newest version!
// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: proto/clarifai/api/search.proto

package clarifai2.internal.grpc.api;

public final class Search {
  private Search() {}
  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 HitOrBuilder extends
      // @@protoc_insertion_point(interface_extends:clarifai.api.Hit)
      com.google.protobuf.MessageOrBuilder {

    /**
     * float score = 1 [(.clarifai.api.utils.cl_show_if_empty) = true];
     */
    float getScore();

    /**
     * .clarifai.api.Input input = 2;
     */
    boolean hasInput();
    /**
     * .clarifai.api.Input input = 2;
     */
    clarifai2.internal.grpc.api.InputOuterClass.Input getInput();
    /**
     * .clarifai.api.Input input = 2;
     */
    clarifai2.internal.grpc.api.InputOuterClass.InputOrBuilder getInputOrBuilder();
  }
  /**
   * Protobuf type {@code clarifai.api.Hit}
   */
  public  static final class Hit extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:clarifai.api.Hit)
      HitOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use Hit.newBuilder() to construct.
    private Hit(com.google.protobuf.GeneratedMessageV3.Builder builder) {
      super(builder);
    }
    private Hit() {
      score_ = 0F;
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private Hit(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownFieldProto3(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 13: {

              score_ = input.readFloat();
              break;
            }
            case 18: {
              clarifai2.internal.grpc.api.InputOuterClass.Input.Builder subBuilder = null;
              if (input_ != null) {
                subBuilder = input_.toBuilder();
              }
              input_ = input.readMessage(clarifai2.internal.grpc.api.InputOuterClass.Input.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(input_);
                input_ = subBuilder.buildPartial();
              }

              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return clarifai2.internal.grpc.api.Search.internal_static_clarifai_api_Hit_descriptor;
    }

    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return clarifai2.internal.grpc.api.Search.internal_static_clarifai_api_Hit_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              clarifai2.internal.grpc.api.Search.Hit.class, clarifai2.internal.grpc.api.Search.Hit.Builder.class);
    }

    public static final int SCORE_FIELD_NUMBER = 1;
    private float score_;
    /**
     * float score = 1 [(.clarifai.api.utils.cl_show_if_empty) = true];
     */
    public float getScore() {
      return score_;
    }

    public static final int INPUT_FIELD_NUMBER = 2;
    private clarifai2.internal.grpc.api.InputOuterClass.Input input_;
    /**
     * .clarifai.api.Input input = 2;
     */
    public boolean hasInput() {
      return input_ != null;
    }
    /**
     * .clarifai.api.Input input = 2;
     */
    public clarifai2.internal.grpc.api.InputOuterClass.Input getInput() {
      return input_ == null ? clarifai2.internal.grpc.api.InputOuterClass.Input.getDefaultInstance() : input_;
    }
    /**
     * .clarifai.api.Input input = 2;
     */
    public clarifai2.internal.grpc.api.InputOuterClass.InputOrBuilder getInputOrBuilder() {
      return getInput();
    }

    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (score_ != 0F) {
        output.writeFloat(1, score_);
      }
      if (input_ != null) {
        output.writeMessage(2, getInput());
      }
      unknownFields.writeTo(output);
    }

    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (score_ != 0F) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(1, score_);
      }
      if (input_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, getInput());
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof clarifai2.internal.grpc.api.Search.Hit)) {
        return super.equals(obj);
      }
      clarifai2.internal.grpc.api.Search.Hit other = (clarifai2.internal.grpc.api.Search.Hit) obj;

      boolean result = true;
      result = result && (
          java.lang.Float.floatToIntBits(getScore())
          == java.lang.Float.floatToIntBits(
              other.getScore()));
      result = result && (hasInput() == other.hasInput());
      if (hasInput()) {
        result = result && getInput()
            .equals(other.getInput());
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + SCORE_FIELD_NUMBER;
      hash = (53 * hash) + java.lang.Float.floatToIntBits(
          getScore());
      if (hasInput()) {
        hash = (37 * hash) + INPUT_FIELD_NUMBER;
        hash = (53 * hash) + getInput().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static clarifai2.internal.grpc.api.Search.Hit parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static clarifai2.internal.grpc.api.Search.Hit parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static clarifai2.internal.grpc.api.Search.Hit parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static clarifai2.internal.grpc.api.Search.Hit parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static clarifai2.internal.grpc.api.Search.Hit parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static clarifai2.internal.grpc.api.Search.Hit parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static clarifai2.internal.grpc.api.Search.Hit parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static clarifai2.internal.grpc.api.Search.Hit parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static clarifai2.internal.grpc.api.Search.Hit parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static clarifai2.internal.grpc.api.Search.Hit parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static clarifai2.internal.grpc.api.Search.Hit parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static clarifai2.internal.grpc.api.Search.Hit parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(clarifai2.internal.grpc.api.Search.Hit prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code clarifai.api.Hit}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:clarifai.api.Hit)
        clarifai2.internal.grpc.api.Search.HitOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return clarifai2.internal.grpc.api.Search.internal_static_clarifai_api_Hit_descriptor;
      }

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return clarifai2.internal.grpc.api.Search.internal_static_clarifai_api_Hit_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                clarifai2.internal.grpc.api.Search.Hit.class, clarifai2.internal.grpc.api.Search.Hit.Builder.class);
      }

      // Construct using clarifai2.internal.grpc.api.Search.Hit.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      public Builder clear() {
        super.clear();
        score_ = 0F;

        if (inputBuilder_ == null) {
          input_ = null;
        } else {
          input_ = null;
          inputBuilder_ = null;
        }
        return this;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return clarifai2.internal.grpc.api.Search.internal_static_clarifai_api_Hit_descriptor;
      }

      public clarifai2.internal.grpc.api.Search.Hit getDefaultInstanceForType() {
        return clarifai2.internal.grpc.api.Search.Hit.getDefaultInstance();
      }

      public clarifai2.internal.grpc.api.Search.Hit build() {
        clarifai2.internal.grpc.api.Search.Hit result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public clarifai2.internal.grpc.api.Search.Hit buildPartial() {
        clarifai2.internal.grpc.api.Search.Hit result = new clarifai2.internal.grpc.api.Search.Hit(this);
        result.score_ = score_;
        if (inputBuilder_ == null) {
          result.input_ = input_;
        } else {
          result.input_ = inputBuilder_.build();
        }
        onBuilt();
        return result;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof clarifai2.internal.grpc.api.Search.Hit) {
          return mergeFrom((clarifai2.internal.grpc.api.Search.Hit)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(clarifai2.internal.grpc.api.Search.Hit other) {
        if (other == clarifai2.internal.grpc.api.Search.Hit.getDefaultInstance()) return this;
        if (other.getScore() != 0F) {
          setScore(other.getScore());
        }
        if (other.hasInput()) {
          mergeInput(other.getInput());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        clarifai2.internal.grpc.api.Search.Hit parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (clarifai2.internal.grpc.api.Search.Hit) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private float score_ ;
      /**
       * float score = 1 [(.clarifai.api.utils.cl_show_if_empty) = true];
       */
      public float getScore() {
        return score_;
      }
      /**
       * float score = 1 [(.clarifai.api.utils.cl_show_if_empty) = true];
       */
      public Builder setScore(float value) {
        
        score_ = value;
        onChanged();
        return this;
      }
      /**
       * float score = 1 [(.clarifai.api.utils.cl_show_if_empty) = true];
       */
      public Builder clearScore() {
        
        score_ = 0F;
        onChanged();
        return this;
      }

      private clarifai2.internal.grpc.api.InputOuterClass.Input input_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
          clarifai2.internal.grpc.api.InputOuterClass.Input, clarifai2.internal.grpc.api.InputOuterClass.Input.Builder, clarifai2.internal.grpc.api.InputOuterClass.InputOrBuilder> inputBuilder_;
      /**
       * .clarifai.api.Input input = 2;
       */
      public boolean hasInput() {
        return inputBuilder_ != null || input_ != null;
      }
      /**
       * .clarifai.api.Input input = 2;
       */
      public clarifai2.internal.grpc.api.InputOuterClass.Input getInput() {
        if (inputBuilder_ == null) {
          return input_ == null ? clarifai2.internal.grpc.api.InputOuterClass.Input.getDefaultInstance() : input_;
        } else {
          return inputBuilder_.getMessage();
        }
      }
      /**
       * .clarifai.api.Input input = 2;
       */
      public Builder setInput(clarifai2.internal.grpc.api.InputOuterClass.Input value) {
        if (inputBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          input_ = value;
          onChanged();
        } else {
          inputBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * .clarifai.api.Input input = 2;
       */
      public Builder setInput(
          clarifai2.internal.grpc.api.InputOuterClass.Input.Builder builderForValue) {
        if (inputBuilder_ == null) {
          input_ = builderForValue.build();
          onChanged();
        } else {
          inputBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * .clarifai.api.Input input = 2;
       */
      public Builder mergeInput(clarifai2.internal.grpc.api.InputOuterClass.Input value) {
        if (inputBuilder_ == null) {
          if (input_ != null) {
            input_ =
              clarifai2.internal.grpc.api.InputOuterClass.Input.newBuilder(input_).mergeFrom(value).buildPartial();
          } else {
            input_ = value;
          }
          onChanged();
        } else {
          inputBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * .clarifai.api.Input input = 2;
       */
      public Builder clearInput() {
        if (inputBuilder_ == null) {
          input_ = null;
          onChanged();
        } else {
          input_ = null;
          inputBuilder_ = null;
        }

        return this;
      }
      /**
       * .clarifai.api.Input input = 2;
       */
      public clarifai2.internal.grpc.api.InputOuterClass.Input.Builder getInputBuilder() {
        
        onChanged();
        return getInputFieldBuilder().getBuilder();
      }
      /**
       * .clarifai.api.Input input = 2;
       */
      public clarifai2.internal.grpc.api.InputOuterClass.InputOrBuilder getInputOrBuilder() {
        if (inputBuilder_ != null) {
          return inputBuilder_.getMessageOrBuilder();
        } else {
          return input_ == null ?
              clarifai2.internal.grpc.api.InputOuterClass.Input.getDefaultInstance() : input_;
        }
      }
      /**
       * .clarifai.api.Input input = 2;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          clarifai2.internal.grpc.api.InputOuterClass.Input, clarifai2.internal.grpc.api.InputOuterClass.Input.Builder, clarifai2.internal.grpc.api.InputOuterClass.InputOrBuilder> 
          getInputFieldBuilder() {
        if (inputBuilder_ == null) {
          inputBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              clarifai2.internal.grpc.api.InputOuterClass.Input, clarifai2.internal.grpc.api.InputOuterClass.Input.Builder, clarifai2.internal.grpc.api.InputOuterClass.InputOrBuilder>(
                  getInput(),
                  getParentForChildren(),
                  isClean());
          input_ = null;
        }
        return inputBuilder_;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFieldsProto3(unknownFields);
      }

      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:clarifai.api.Hit)
    }

    // @@protoc_insertion_point(class_scope:clarifai.api.Hit)
    private static final clarifai2.internal.grpc.api.Search.Hit DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new clarifai2.internal.grpc.api.Search.Hit();
    }

    public static clarifai2.internal.grpc.api.Search.Hit getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser
        PARSER = new com.google.protobuf.AbstractParser() {
      public Hit parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new Hit(input, extensionRegistry);
      }
    };

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

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

    public clarifai2.internal.grpc.api.Search.Hit getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface AndOrBuilder extends
      // @@protoc_insertion_point(interface_extends:clarifai.api.And)
      com.google.protobuf.MessageOrBuilder {

    /**
     * .clarifai.api.Input input = 1;
     */
    boolean hasInput();
    /**
     * .clarifai.api.Input input = 1;
     */
    clarifai2.internal.grpc.api.InputOuterClass.Input getInput();
    /**
     * .clarifai.api.Input input = 1;
     */
    clarifai2.internal.grpc.api.InputOuterClass.InputOrBuilder getInputOrBuilder();

    /**
     * .clarifai.api.Output output = 2;
     */
    boolean hasOutput();
    /**
     * .clarifai.api.Output output = 2;
     */
    clarifai2.internal.grpc.api.OutputOuterClass.Output getOutput();
    /**
     * .clarifai.api.Output output = 2;
     */
    clarifai2.internal.grpc.api.OutputOuterClass.OutputOrBuilder getOutputOrBuilder();

    /**
     * bool negate = 3;
     */
    boolean getNegate();
  }
  /**
   * Protobuf type {@code clarifai.api.And}
   */
  public  static final class And extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:clarifai.api.And)
      AndOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use And.newBuilder() to construct.
    private And(com.google.protobuf.GeneratedMessageV3.Builder builder) {
      super(builder);
    }
    private And() {
      negate_ = false;
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private And(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownFieldProto3(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              clarifai2.internal.grpc.api.InputOuterClass.Input.Builder subBuilder = null;
              if (input_ != null) {
                subBuilder = input_.toBuilder();
              }
              input_ = input.readMessage(clarifai2.internal.grpc.api.InputOuterClass.Input.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(input_);
                input_ = subBuilder.buildPartial();
              }

              break;
            }
            case 18: {
              clarifai2.internal.grpc.api.OutputOuterClass.Output.Builder subBuilder = null;
              if (output_ != null) {
                subBuilder = output_.toBuilder();
              }
              output_ = input.readMessage(clarifai2.internal.grpc.api.OutputOuterClass.Output.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(output_);
                output_ = subBuilder.buildPartial();
              }

              break;
            }
            case 24: {

              negate_ = input.readBool();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return clarifai2.internal.grpc.api.Search.internal_static_clarifai_api_And_descriptor;
    }

    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return clarifai2.internal.grpc.api.Search.internal_static_clarifai_api_And_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              clarifai2.internal.grpc.api.Search.And.class, clarifai2.internal.grpc.api.Search.And.Builder.class);
    }

    public static final int INPUT_FIELD_NUMBER = 1;
    private clarifai2.internal.grpc.api.InputOuterClass.Input input_;
    /**
     * .clarifai.api.Input input = 1;
     */
    public boolean hasInput() {
      return input_ != null;
    }
    /**
     * .clarifai.api.Input input = 1;
     */
    public clarifai2.internal.grpc.api.InputOuterClass.Input getInput() {
      return input_ == null ? clarifai2.internal.grpc.api.InputOuterClass.Input.getDefaultInstance() : input_;
    }
    /**
     * .clarifai.api.Input input = 1;
     */
    public clarifai2.internal.grpc.api.InputOuterClass.InputOrBuilder getInputOrBuilder() {
      return getInput();
    }

    public static final int OUTPUT_FIELD_NUMBER = 2;
    private clarifai2.internal.grpc.api.OutputOuterClass.Output output_;
    /**
     * .clarifai.api.Output output = 2;
     */
    public boolean hasOutput() {
      return output_ != null;
    }
    /**
     * .clarifai.api.Output output = 2;
     */
    public clarifai2.internal.grpc.api.OutputOuterClass.Output getOutput() {
      return output_ == null ? clarifai2.internal.grpc.api.OutputOuterClass.Output.getDefaultInstance() : output_;
    }
    /**
     * .clarifai.api.Output output = 2;
     */
    public clarifai2.internal.grpc.api.OutputOuterClass.OutputOrBuilder getOutputOrBuilder() {
      return getOutput();
    }

    public static final int NEGATE_FIELD_NUMBER = 3;
    private boolean negate_;
    /**
     * bool negate = 3;
     */
    public boolean getNegate() {
      return negate_;
    }

    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (input_ != null) {
        output.writeMessage(1, getInput());
      }
      if (output_ != null) {
        output.writeMessage(2, getOutput());
      }
      if (negate_ != false) {
        output.writeBool(3, negate_);
      }
      unknownFields.writeTo(output);
    }

    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (input_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, getInput());
      }
      if (output_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, getOutput());
      }
      if (negate_ != false) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(3, negate_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof clarifai2.internal.grpc.api.Search.And)) {
        return super.equals(obj);
      }
      clarifai2.internal.grpc.api.Search.And other = (clarifai2.internal.grpc.api.Search.And) obj;

      boolean result = true;
      result = result && (hasInput() == other.hasInput());
      if (hasInput()) {
        result = result && getInput()
            .equals(other.getInput());
      }
      result = result && (hasOutput() == other.hasOutput());
      if (hasOutput()) {
        result = result && getOutput()
            .equals(other.getOutput());
      }
      result = result && (getNegate()
          == other.getNegate());
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasInput()) {
        hash = (37 * hash) + INPUT_FIELD_NUMBER;
        hash = (53 * hash) + getInput().hashCode();
      }
      if (hasOutput()) {
        hash = (37 * hash) + OUTPUT_FIELD_NUMBER;
        hash = (53 * hash) + getOutput().hashCode();
      }
      hash = (37 * hash) + NEGATE_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
          getNegate());
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static clarifai2.internal.grpc.api.Search.And parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static clarifai2.internal.grpc.api.Search.And parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static clarifai2.internal.grpc.api.Search.And parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static clarifai2.internal.grpc.api.Search.And parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static clarifai2.internal.grpc.api.Search.And parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static clarifai2.internal.grpc.api.Search.And parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static clarifai2.internal.grpc.api.Search.And parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static clarifai2.internal.grpc.api.Search.And parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static clarifai2.internal.grpc.api.Search.And parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static clarifai2.internal.grpc.api.Search.And parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static clarifai2.internal.grpc.api.Search.And parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static clarifai2.internal.grpc.api.Search.And parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(clarifai2.internal.grpc.api.Search.And prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code clarifai.api.And}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:clarifai.api.And)
        clarifai2.internal.grpc.api.Search.AndOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return clarifai2.internal.grpc.api.Search.internal_static_clarifai_api_And_descriptor;
      }

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return clarifai2.internal.grpc.api.Search.internal_static_clarifai_api_And_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                clarifai2.internal.grpc.api.Search.And.class, clarifai2.internal.grpc.api.Search.And.Builder.class);
      }

      // Construct using clarifai2.internal.grpc.api.Search.And.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      public Builder clear() {
        super.clear();
        if (inputBuilder_ == null) {
          input_ = null;
        } else {
          input_ = null;
          inputBuilder_ = null;
        }
        if (outputBuilder_ == null) {
          output_ = null;
        } else {
          output_ = null;
          outputBuilder_ = null;
        }
        negate_ = false;

        return this;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return clarifai2.internal.grpc.api.Search.internal_static_clarifai_api_And_descriptor;
      }

      public clarifai2.internal.grpc.api.Search.And getDefaultInstanceForType() {
        return clarifai2.internal.grpc.api.Search.And.getDefaultInstance();
      }

      public clarifai2.internal.grpc.api.Search.And build() {
        clarifai2.internal.grpc.api.Search.And result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public clarifai2.internal.grpc.api.Search.And buildPartial() {
        clarifai2.internal.grpc.api.Search.And result = new clarifai2.internal.grpc.api.Search.And(this);
        if (inputBuilder_ == null) {
          result.input_ = input_;
        } else {
          result.input_ = inputBuilder_.build();
        }
        if (outputBuilder_ == null) {
          result.output_ = output_;
        } else {
          result.output_ = outputBuilder_.build();
        }
        result.negate_ = negate_;
        onBuilt();
        return result;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof clarifai2.internal.grpc.api.Search.And) {
          return mergeFrom((clarifai2.internal.grpc.api.Search.And)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(clarifai2.internal.grpc.api.Search.And other) {
        if (other == clarifai2.internal.grpc.api.Search.And.getDefaultInstance()) return this;
        if (other.hasInput()) {
          mergeInput(other.getInput());
        }
        if (other.hasOutput()) {
          mergeOutput(other.getOutput());
        }
        if (other.getNegate() != false) {
          setNegate(other.getNegate());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        clarifai2.internal.grpc.api.Search.And parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (clarifai2.internal.grpc.api.Search.And) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private clarifai2.internal.grpc.api.InputOuterClass.Input input_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
          clarifai2.internal.grpc.api.InputOuterClass.Input, clarifai2.internal.grpc.api.InputOuterClass.Input.Builder, clarifai2.internal.grpc.api.InputOuterClass.InputOrBuilder> inputBuilder_;
      /**
       * .clarifai.api.Input input = 1;
       */
      public boolean hasInput() {
        return inputBuilder_ != null || input_ != null;
      }
      /**
       * .clarifai.api.Input input = 1;
       */
      public clarifai2.internal.grpc.api.InputOuterClass.Input getInput() {
        if (inputBuilder_ == null) {
          return input_ == null ? clarifai2.internal.grpc.api.InputOuterClass.Input.getDefaultInstance() : input_;
        } else {
          return inputBuilder_.getMessage();
        }
      }
      /**
       * .clarifai.api.Input input = 1;
       */
      public Builder setInput(clarifai2.internal.grpc.api.InputOuterClass.Input value) {
        if (inputBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          input_ = value;
          onChanged();
        } else {
          inputBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * .clarifai.api.Input input = 1;
       */
      public Builder setInput(
          clarifai2.internal.grpc.api.InputOuterClass.Input.Builder builderForValue) {
        if (inputBuilder_ == null) {
          input_ = builderForValue.build();
          onChanged();
        } else {
          inputBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * .clarifai.api.Input input = 1;
       */
      public Builder mergeInput(clarifai2.internal.grpc.api.InputOuterClass.Input value) {
        if (inputBuilder_ == null) {
          if (input_ != null) {
            input_ =
              clarifai2.internal.grpc.api.InputOuterClass.Input.newBuilder(input_).mergeFrom(value).buildPartial();
          } else {
            input_ = value;
          }
          onChanged();
        } else {
          inputBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * .clarifai.api.Input input = 1;
       */
      public Builder clearInput() {
        if (inputBuilder_ == null) {
          input_ = null;
          onChanged();
        } else {
          input_ = null;
          inputBuilder_ = null;
        }

        return this;
      }
      /**
       * .clarifai.api.Input input = 1;
       */
      public clarifai2.internal.grpc.api.InputOuterClass.Input.Builder getInputBuilder() {
        
        onChanged();
        return getInputFieldBuilder().getBuilder();
      }
      /**
       * .clarifai.api.Input input = 1;
       */
      public clarifai2.internal.grpc.api.InputOuterClass.InputOrBuilder getInputOrBuilder() {
        if (inputBuilder_ != null) {
          return inputBuilder_.getMessageOrBuilder();
        } else {
          return input_ == null ?
              clarifai2.internal.grpc.api.InputOuterClass.Input.getDefaultInstance() : input_;
        }
      }
      /**
       * .clarifai.api.Input input = 1;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          clarifai2.internal.grpc.api.InputOuterClass.Input, clarifai2.internal.grpc.api.InputOuterClass.Input.Builder, clarifai2.internal.grpc.api.InputOuterClass.InputOrBuilder> 
          getInputFieldBuilder() {
        if (inputBuilder_ == null) {
          inputBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              clarifai2.internal.grpc.api.InputOuterClass.Input, clarifai2.internal.grpc.api.InputOuterClass.Input.Builder, clarifai2.internal.grpc.api.InputOuterClass.InputOrBuilder>(
                  getInput(),
                  getParentForChildren(),
                  isClean());
          input_ = null;
        }
        return inputBuilder_;
      }

      private clarifai2.internal.grpc.api.OutputOuterClass.Output output_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
          clarifai2.internal.grpc.api.OutputOuterClass.Output, clarifai2.internal.grpc.api.OutputOuterClass.Output.Builder, clarifai2.internal.grpc.api.OutputOuterClass.OutputOrBuilder> outputBuilder_;
      /**
       * .clarifai.api.Output output = 2;
       */
      public boolean hasOutput() {
        return outputBuilder_ != null || output_ != null;
      }
      /**
       * .clarifai.api.Output output = 2;
       */
      public clarifai2.internal.grpc.api.OutputOuterClass.Output getOutput() {
        if (outputBuilder_ == null) {
          return output_ == null ? clarifai2.internal.grpc.api.OutputOuterClass.Output.getDefaultInstance() : output_;
        } else {
          return outputBuilder_.getMessage();
        }
      }
      /**
       * .clarifai.api.Output output = 2;
       */
      public Builder setOutput(clarifai2.internal.grpc.api.OutputOuterClass.Output value) {
        if (outputBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          output_ = value;
          onChanged();
        } else {
          outputBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * .clarifai.api.Output output = 2;
       */
      public Builder setOutput(
          clarifai2.internal.grpc.api.OutputOuterClass.Output.Builder builderForValue) {
        if (outputBuilder_ == null) {
          output_ = builderForValue.build();
          onChanged();
        } else {
          outputBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * .clarifai.api.Output output = 2;
       */
      public Builder mergeOutput(clarifai2.internal.grpc.api.OutputOuterClass.Output value) {
        if (outputBuilder_ == null) {
          if (output_ != null) {
            output_ =
              clarifai2.internal.grpc.api.OutputOuterClass.Output.newBuilder(output_).mergeFrom(value).buildPartial();
          } else {
            output_ = value;
          }
          onChanged();
        } else {
          outputBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * .clarifai.api.Output output = 2;
       */
      public Builder clearOutput() {
        if (outputBuilder_ == null) {
          output_ = null;
          onChanged();
        } else {
          output_ = null;
          outputBuilder_ = null;
        }

        return this;
      }
      /**
       * .clarifai.api.Output output = 2;
       */
      public clarifai2.internal.grpc.api.OutputOuterClass.Output.Builder getOutputBuilder() {
        
        onChanged();
        return getOutputFieldBuilder().getBuilder();
      }
      /**
       * .clarifai.api.Output output = 2;
       */
      public clarifai2.internal.grpc.api.OutputOuterClass.OutputOrBuilder getOutputOrBuilder() {
        if (outputBuilder_ != null) {
          return outputBuilder_.getMessageOrBuilder();
        } else {
          return output_ == null ?
              clarifai2.internal.grpc.api.OutputOuterClass.Output.getDefaultInstance() : output_;
        }
      }
      /**
       * .clarifai.api.Output output = 2;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          clarifai2.internal.grpc.api.OutputOuterClass.Output, clarifai2.internal.grpc.api.OutputOuterClass.Output.Builder, clarifai2.internal.grpc.api.OutputOuterClass.OutputOrBuilder> 
          getOutputFieldBuilder() {
        if (outputBuilder_ == null) {
          outputBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              clarifai2.internal.grpc.api.OutputOuterClass.Output, clarifai2.internal.grpc.api.OutputOuterClass.Output.Builder, clarifai2.internal.grpc.api.OutputOuterClass.OutputOrBuilder>(
                  getOutput(),
                  getParentForChildren(),
                  isClean());
          output_ = null;
        }
        return outputBuilder_;
      }

      private boolean negate_ ;
      /**
       * bool negate = 3;
       */
      public boolean getNegate() {
        return negate_;
      }
      /**
       * bool negate = 3;
       */
      public Builder setNegate(boolean value) {
        
        negate_ = value;
        onChanged();
        return this;
      }
      /**
       * bool negate = 3;
       */
      public Builder clearNegate() {
        
        negate_ = false;
        onChanged();
        return this;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFieldsProto3(unknownFields);
      }

      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:clarifai.api.And)
    }

    // @@protoc_insertion_point(class_scope:clarifai.api.And)
    private static final clarifai2.internal.grpc.api.Search.And DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new clarifai2.internal.grpc.api.Search.And();
    }

    public static clarifai2.internal.grpc.api.Search.And getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser
        PARSER = new com.google.protobuf.AbstractParser() {
      public And parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new And(input, extensionRegistry);
      }
    };

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

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

    public clarifai2.internal.grpc.api.Search.And getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface QueryOrBuilder extends
      // @@protoc_insertion_point(interface_extends:clarifai.api.Query)
      com.google.protobuf.MessageOrBuilder {

    /**
     * repeated .clarifai.api.And ands = 1;
     */
    java.util.List 
        getAndsList();
    /**
     * repeated .clarifai.api.And ands = 1;
     */
    clarifai2.internal.grpc.api.Search.And getAnds(int index);
    /**
     * repeated .clarifai.api.And ands = 1;
     */
    int getAndsCount();
    /**
     * repeated .clarifai.api.And ands = 1;
     */
    java.util.List 
        getAndsOrBuilderList();
    /**
     * repeated .clarifai.api.And ands = 1;
     */
    clarifai2.internal.grpc.api.Search.AndOrBuilder getAndsOrBuilder(
        int index);

    /**
     * string language = 2;
     */
    java.lang.String getLanguage();
    /**
     * string language = 2;
     */
    com.google.protobuf.ByteString
        getLanguageBytes();
  }
  /**
   * Protobuf type {@code clarifai.api.Query}
   */
  public  static final class Query extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:clarifai.api.Query)
      QueryOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use Query.newBuilder() to construct.
    private Query(com.google.protobuf.GeneratedMessageV3.Builder builder) {
      super(builder);
    }
    private Query() {
      ands_ = java.util.Collections.emptyList();
      language_ = "";
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private Query(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownFieldProto3(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              if (!((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
                ands_ = new java.util.ArrayList();
                mutable_bitField0_ |= 0x00000001;
              }
              ands_.add(
                  input.readMessage(clarifai2.internal.grpc.api.Search.And.parser(), extensionRegistry));
              break;
            }
            case 18: {
              java.lang.String s = input.readStringRequireUtf8();

              language_ = s;
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
          ands_ = java.util.Collections.unmodifiableList(ands_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return clarifai2.internal.grpc.api.Search.internal_static_clarifai_api_Query_descriptor;
    }

    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return clarifai2.internal.grpc.api.Search.internal_static_clarifai_api_Query_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              clarifai2.internal.grpc.api.Search.Query.class, clarifai2.internal.grpc.api.Search.Query.Builder.class);
    }

    private int bitField0_;
    public static final int ANDS_FIELD_NUMBER = 1;
    private java.util.List ands_;
    /**
     * repeated .clarifai.api.And ands = 1;
     */
    public java.util.List getAndsList() {
      return ands_;
    }
    /**
     * repeated .clarifai.api.And ands = 1;
     */
    public java.util.List 
        getAndsOrBuilderList() {
      return ands_;
    }
    /**
     * repeated .clarifai.api.And ands = 1;
     */
    public int getAndsCount() {
      return ands_.size();
    }
    /**
     * repeated .clarifai.api.And ands = 1;
     */
    public clarifai2.internal.grpc.api.Search.And getAnds(int index) {
      return ands_.get(index);
    }
    /**
     * repeated .clarifai.api.And ands = 1;
     */
    public clarifai2.internal.grpc.api.Search.AndOrBuilder getAndsOrBuilder(
        int index) {
      return ands_.get(index);
    }

    public static final int LANGUAGE_FIELD_NUMBER = 2;
    private volatile java.lang.Object language_;
    /**
     * string language = 2;
     */
    public java.lang.String getLanguage() {
      java.lang.Object ref = language_;
      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();
        language_ = s;
        return s;
      }
    }
    /**
     * string language = 2;
     */
    public com.google.protobuf.ByteString
        getLanguageBytes() {
      java.lang.Object ref = language_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        language_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      for (int i = 0; i < ands_.size(); i++) {
        output.writeMessage(1, ands_.get(i));
      }
      if (!getLanguageBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, language_);
      }
      unknownFields.writeTo(output);
    }

    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      for (int i = 0; i < ands_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, ands_.get(i));
      }
      if (!getLanguageBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, language_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof clarifai2.internal.grpc.api.Search.Query)) {
        return super.equals(obj);
      }
      clarifai2.internal.grpc.api.Search.Query other = (clarifai2.internal.grpc.api.Search.Query) obj;

      boolean result = true;
      result = result && getAndsList()
          .equals(other.getAndsList());
      result = result && getLanguage()
          .equals(other.getLanguage());
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (getAndsCount() > 0) {
        hash = (37 * hash) + ANDS_FIELD_NUMBER;
        hash = (53 * hash) + getAndsList().hashCode();
      }
      hash = (37 * hash) + LANGUAGE_FIELD_NUMBER;
      hash = (53 * hash) + getLanguage().hashCode();
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static clarifai2.internal.grpc.api.Search.Query parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static clarifai2.internal.grpc.api.Search.Query parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static clarifai2.internal.grpc.api.Search.Query parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static clarifai2.internal.grpc.api.Search.Query parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static clarifai2.internal.grpc.api.Search.Query parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static clarifai2.internal.grpc.api.Search.Query parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static clarifai2.internal.grpc.api.Search.Query parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static clarifai2.internal.grpc.api.Search.Query parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static clarifai2.internal.grpc.api.Search.Query parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static clarifai2.internal.grpc.api.Search.Query parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static clarifai2.internal.grpc.api.Search.Query parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static clarifai2.internal.grpc.api.Search.Query parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(clarifai2.internal.grpc.api.Search.Query prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code clarifai.api.Query}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:clarifai.api.Query)
        clarifai2.internal.grpc.api.Search.QueryOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return clarifai2.internal.grpc.api.Search.internal_static_clarifai_api_Query_descriptor;
      }

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return clarifai2.internal.grpc.api.Search.internal_static_clarifai_api_Query_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                clarifai2.internal.grpc.api.Search.Query.class, clarifai2.internal.grpc.api.Search.Query.Builder.class);
      }

      // Construct using clarifai2.internal.grpc.api.Search.Query.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getAndsFieldBuilder();
        }
      }
      public Builder clear() {
        super.clear();
        if (andsBuilder_ == null) {
          ands_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
        } else {
          andsBuilder_.clear();
        }
        language_ = "";

        return this;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return clarifai2.internal.grpc.api.Search.internal_static_clarifai_api_Query_descriptor;
      }

      public clarifai2.internal.grpc.api.Search.Query getDefaultInstanceForType() {
        return clarifai2.internal.grpc.api.Search.Query.getDefaultInstance();
      }

      public clarifai2.internal.grpc.api.Search.Query build() {
        clarifai2.internal.grpc.api.Search.Query result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public clarifai2.internal.grpc.api.Search.Query buildPartial() {
        clarifai2.internal.grpc.api.Search.Query result = new clarifai2.internal.grpc.api.Search.Query(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (andsBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001)) {
            ands_ = java.util.Collections.unmodifiableList(ands_);
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          result.ands_ = ands_;
        } else {
          result.ands_ = andsBuilder_.build();
        }
        result.language_ = language_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof clarifai2.internal.grpc.api.Search.Query) {
          return mergeFrom((clarifai2.internal.grpc.api.Search.Query)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(clarifai2.internal.grpc.api.Search.Query other) {
        if (other == clarifai2.internal.grpc.api.Search.Query.getDefaultInstance()) return this;
        if (andsBuilder_ == null) {
          if (!other.ands_.isEmpty()) {
            if (ands_.isEmpty()) {
              ands_ = other.ands_;
              bitField0_ = (bitField0_ & ~0x00000001);
            } else {
              ensureAndsIsMutable();
              ands_.addAll(other.ands_);
            }
            onChanged();
          }
        } else {
          if (!other.ands_.isEmpty()) {
            if (andsBuilder_.isEmpty()) {
              andsBuilder_.dispose();
              andsBuilder_ = null;
              ands_ = other.ands_;
              bitField0_ = (bitField0_ & ~0x00000001);
              andsBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getAndsFieldBuilder() : null;
            } else {
              andsBuilder_.addAllMessages(other.ands_);
            }
          }
        }
        if (!other.getLanguage().isEmpty()) {
          language_ = other.language_;
          onChanged();
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        clarifai2.internal.grpc.api.Search.Query parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (clarifai2.internal.grpc.api.Search.Query) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private java.util.List ands_ =
        java.util.Collections.emptyList();
      private void ensureAndsIsMutable() {
        if (!((bitField0_ & 0x00000001) == 0x00000001)) {
          ands_ = new java.util.ArrayList(ands_);
          bitField0_ |= 0x00000001;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          clarifai2.internal.grpc.api.Search.And, clarifai2.internal.grpc.api.Search.And.Builder, clarifai2.internal.grpc.api.Search.AndOrBuilder> andsBuilder_;

      /**
       * repeated .clarifai.api.And ands = 1;
       */
      public java.util.List getAndsList() {
        if (andsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(ands_);
        } else {
          return andsBuilder_.getMessageList();
        }
      }
      /**
       * repeated .clarifai.api.And ands = 1;
       */
      public int getAndsCount() {
        if (andsBuilder_ == null) {
          return ands_.size();
        } else {
          return andsBuilder_.getCount();
        }
      }
      /**
       * repeated .clarifai.api.And ands = 1;
       */
      public clarifai2.internal.grpc.api.Search.And getAnds(int index) {
        if (andsBuilder_ == null) {
          return ands_.get(index);
        } else {
          return andsBuilder_.getMessage(index);
        }
      }
      /**
       * repeated .clarifai.api.And ands = 1;
       */
      public Builder setAnds(
          int index, clarifai2.internal.grpc.api.Search.And value) {
        if (andsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureAndsIsMutable();
          ands_.set(index, value);
          onChanged();
        } else {
          andsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .clarifai.api.And ands = 1;
       */
      public Builder setAnds(
          int index, clarifai2.internal.grpc.api.Search.And.Builder builderForValue) {
        if (andsBuilder_ == null) {
          ensureAndsIsMutable();
          ands_.set(index, builderForValue.build());
          onChanged();
        } else {
          andsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .clarifai.api.And ands = 1;
       */
      public Builder addAnds(clarifai2.internal.grpc.api.Search.And value) {
        if (andsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureAndsIsMutable();
          ands_.add(value);
          onChanged();
        } else {
          andsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * repeated .clarifai.api.And ands = 1;
       */
      public Builder addAnds(
          int index, clarifai2.internal.grpc.api.Search.And value) {
        if (andsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureAndsIsMutable();
          ands_.add(index, value);
          onChanged();
        } else {
          andsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .clarifai.api.And ands = 1;
       */
      public Builder addAnds(
          clarifai2.internal.grpc.api.Search.And.Builder builderForValue) {
        if (andsBuilder_ == null) {
          ensureAndsIsMutable();
          ands_.add(builderForValue.build());
          onChanged();
        } else {
          andsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .clarifai.api.And ands = 1;
       */
      public Builder addAnds(
          int index, clarifai2.internal.grpc.api.Search.And.Builder builderForValue) {
        if (andsBuilder_ == null) {
          ensureAndsIsMutable();
          ands_.add(index, builderForValue.build());
          onChanged();
        } else {
          andsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .clarifai.api.And ands = 1;
       */
      public Builder addAllAnds(
          java.lang.Iterable values) {
        if (andsBuilder_ == null) {
          ensureAndsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, ands_);
          onChanged();
        } else {
          andsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * repeated .clarifai.api.And ands = 1;
       */
      public Builder clearAnds() {
        if (andsBuilder_ == null) {
          ands_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
        } else {
          andsBuilder_.clear();
        }
        return this;
      }
      /**
       * repeated .clarifai.api.And ands = 1;
       */
      public Builder removeAnds(int index) {
        if (andsBuilder_ == null) {
          ensureAndsIsMutable();
          ands_.remove(index);
          onChanged();
        } else {
          andsBuilder_.remove(index);
        }
        return this;
      }
      /**
       * repeated .clarifai.api.And ands = 1;
       */
      public clarifai2.internal.grpc.api.Search.And.Builder getAndsBuilder(
          int index) {
        return getAndsFieldBuilder().getBuilder(index);
      }
      /**
       * repeated .clarifai.api.And ands = 1;
       */
      public clarifai2.internal.grpc.api.Search.AndOrBuilder getAndsOrBuilder(
          int index) {
        if (andsBuilder_ == null) {
          return ands_.get(index);  } else {
          return andsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * repeated .clarifai.api.And ands = 1;
       */
      public java.util.List 
           getAndsOrBuilderList() {
        if (andsBuilder_ != null) {
          return andsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(ands_);
        }
      }
      /**
       * repeated .clarifai.api.And ands = 1;
       */
      public clarifai2.internal.grpc.api.Search.And.Builder addAndsBuilder() {
        return getAndsFieldBuilder().addBuilder(
            clarifai2.internal.grpc.api.Search.And.getDefaultInstance());
      }
      /**
       * repeated .clarifai.api.And ands = 1;
       */
      public clarifai2.internal.grpc.api.Search.And.Builder addAndsBuilder(
          int index) {
        return getAndsFieldBuilder().addBuilder(
            index, clarifai2.internal.grpc.api.Search.And.getDefaultInstance());
      }
      /**
       * repeated .clarifai.api.And ands = 1;
       */
      public java.util.List 
           getAndsBuilderList() {
        return getAndsFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          clarifai2.internal.grpc.api.Search.And, clarifai2.internal.grpc.api.Search.And.Builder, clarifai2.internal.grpc.api.Search.AndOrBuilder> 
          getAndsFieldBuilder() {
        if (andsBuilder_ == null) {
          andsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              clarifai2.internal.grpc.api.Search.And, clarifai2.internal.grpc.api.Search.And.Builder, clarifai2.internal.grpc.api.Search.AndOrBuilder>(
                  ands_,
                  ((bitField0_ & 0x00000001) == 0x00000001),
                  getParentForChildren(),
                  isClean());
          ands_ = null;
        }
        return andsBuilder_;
      }

      private java.lang.Object language_ = "";
      /**
       * string language = 2;
       */
      public java.lang.String getLanguage() {
        java.lang.Object ref = language_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          language_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * string language = 2;
       */
      public com.google.protobuf.ByteString
          getLanguageBytes() {
        java.lang.Object ref = language_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          language_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * string language = 2;
       */
      public Builder setLanguage(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        language_ = value;
        onChanged();
        return this;
      }
      /**
       * string language = 2;
       */
      public Builder clearLanguage() {
        
        language_ = getDefaultInstance().getLanguage();
        onChanged();
        return this;
      }
      /**
       * string language = 2;
       */
      public Builder setLanguageBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        language_ = value;
        onChanged();
        return this;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFieldsProto3(unknownFields);
      }

      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:clarifai.api.Query)
    }

    // @@protoc_insertion_point(class_scope:clarifai.api.Query)
    private static final clarifai2.internal.grpc.api.Search.Query DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new clarifai2.internal.grpc.api.Search.Query();
    }

    public static clarifai2.internal.grpc.api.Search.Query getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser
        PARSER = new com.google.protobuf.AbstractParser() {
      public Query parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new Query(input, extensionRegistry);
      }
    };

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

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

    public clarifai2.internal.grpc.api.Search.Query getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface PostSearchesRequestOrBuilder extends
      // @@protoc_insertion_point(interface_extends:clarifai.api.PostSearchesRequest)
      com.google.protobuf.MessageOrBuilder {

    /**
     * .clarifai.api.UserAppIDSet user_app_id = 1;
     */
    boolean hasUserAppId();
    /**
     * .clarifai.api.UserAppIDSet user_app_id = 1;
     */
    clarifai2.internal.grpc.api.Common.UserAppIDSet getUserAppId();
    /**
     * .clarifai.api.UserAppIDSet user_app_id = 1;
     */
    clarifai2.internal.grpc.api.Common.UserAppIDSetOrBuilder getUserAppIdOrBuilder();

    /**
     * .clarifai.api.Query query = 2;
     */
    boolean hasQuery();
    /**
     * .clarifai.api.Query query = 2;
     */
    clarifai2.internal.grpc.api.Search.Query getQuery();
    /**
     * .clarifai.api.Query query = 2;
     */
    clarifai2.internal.grpc.api.Search.QueryOrBuilder getQueryOrBuilder();

    /**
     * .clarifai.api.Pagination pagination = 3;
     */
    boolean hasPagination();
    /**
     * .clarifai.api.Pagination pagination = 3;
     */
    clarifai2.internal.grpc.api.PaginationOuterClass.Pagination getPagination();
    /**
     * .clarifai.api.Pagination pagination = 3;
     */
    clarifai2.internal.grpc.api.PaginationOuterClass.PaginationOrBuilder getPaginationOrBuilder();

    /**
     * bool brute_force = 4;
     */
    boolean getBruteForce();
  }
  /**
   * Protobuf type {@code clarifai.api.PostSearchesRequest}
   */
  public  static final class PostSearchesRequest extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:clarifai.api.PostSearchesRequest)
      PostSearchesRequestOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use PostSearchesRequest.newBuilder() to construct.
    private PostSearchesRequest(com.google.protobuf.GeneratedMessageV3.Builder builder) {
      super(builder);
    }
    private PostSearchesRequest() {
      bruteForce_ = false;
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private PostSearchesRequest(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownFieldProto3(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              clarifai2.internal.grpc.api.Common.UserAppIDSet.Builder subBuilder = null;
              if (userAppId_ != null) {
                subBuilder = userAppId_.toBuilder();
              }
              userAppId_ = input.readMessage(clarifai2.internal.grpc.api.Common.UserAppIDSet.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(userAppId_);
                userAppId_ = subBuilder.buildPartial();
              }

              break;
            }
            case 18: {
              clarifai2.internal.grpc.api.Search.Query.Builder subBuilder = null;
              if (query_ != null) {
                subBuilder = query_.toBuilder();
              }
              query_ = input.readMessage(clarifai2.internal.grpc.api.Search.Query.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(query_);
                query_ = subBuilder.buildPartial();
              }

              break;
            }
            case 26: {
              clarifai2.internal.grpc.api.PaginationOuterClass.Pagination.Builder subBuilder = null;
              if (pagination_ != null) {
                subBuilder = pagination_.toBuilder();
              }
              pagination_ = input.readMessage(clarifai2.internal.grpc.api.PaginationOuterClass.Pagination.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(pagination_);
                pagination_ = subBuilder.buildPartial();
              }

              break;
            }
            case 32: {

              bruteForce_ = input.readBool();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return clarifai2.internal.grpc.api.Search.internal_static_clarifai_api_PostSearchesRequest_descriptor;
    }

    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return clarifai2.internal.grpc.api.Search.internal_static_clarifai_api_PostSearchesRequest_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              clarifai2.internal.grpc.api.Search.PostSearchesRequest.class, clarifai2.internal.grpc.api.Search.PostSearchesRequest.Builder.class);
    }

    public static final int USER_APP_ID_FIELD_NUMBER = 1;
    private clarifai2.internal.grpc.api.Common.UserAppIDSet userAppId_;
    /**
     * .clarifai.api.UserAppIDSet user_app_id = 1;
     */
    public boolean hasUserAppId() {
      return userAppId_ != null;
    }
    /**
     * .clarifai.api.UserAppIDSet user_app_id = 1;
     */
    public clarifai2.internal.grpc.api.Common.UserAppIDSet getUserAppId() {
      return userAppId_ == null ? clarifai2.internal.grpc.api.Common.UserAppIDSet.getDefaultInstance() : userAppId_;
    }
    /**
     * .clarifai.api.UserAppIDSet user_app_id = 1;
     */
    public clarifai2.internal.grpc.api.Common.UserAppIDSetOrBuilder getUserAppIdOrBuilder() {
      return getUserAppId();
    }

    public static final int QUERY_FIELD_NUMBER = 2;
    private clarifai2.internal.grpc.api.Search.Query query_;
    /**
     * .clarifai.api.Query query = 2;
     */
    public boolean hasQuery() {
      return query_ != null;
    }
    /**
     * .clarifai.api.Query query = 2;
     */
    public clarifai2.internal.grpc.api.Search.Query getQuery() {
      return query_ == null ? clarifai2.internal.grpc.api.Search.Query.getDefaultInstance() : query_;
    }
    /**
     * .clarifai.api.Query query = 2;
     */
    public clarifai2.internal.grpc.api.Search.QueryOrBuilder getQueryOrBuilder() {
      return getQuery();
    }

    public static final int PAGINATION_FIELD_NUMBER = 3;
    private clarifai2.internal.grpc.api.PaginationOuterClass.Pagination pagination_;
    /**
     * .clarifai.api.Pagination pagination = 3;
     */
    public boolean hasPagination() {
      return pagination_ != null;
    }
    /**
     * .clarifai.api.Pagination pagination = 3;
     */
    public clarifai2.internal.grpc.api.PaginationOuterClass.Pagination getPagination() {
      return pagination_ == null ? clarifai2.internal.grpc.api.PaginationOuterClass.Pagination.getDefaultInstance() : pagination_;
    }
    /**
     * .clarifai.api.Pagination pagination = 3;
     */
    public clarifai2.internal.grpc.api.PaginationOuterClass.PaginationOrBuilder getPaginationOrBuilder() {
      return getPagination();
    }

    public static final int BRUTE_FORCE_FIELD_NUMBER = 4;
    private boolean bruteForce_;
    /**
     * bool brute_force = 4;
     */
    public boolean getBruteForce() {
      return bruteForce_;
    }

    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (userAppId_ != null) {
        output.writeMessage(1, getUserAppId());
      }
      if (query_ != null) {
        output.writeMessage(2, getQuery());
      }
      if (pagination_ != null) {
        output.writeMessage(3, getPagination());
      }
      if (bruteForce_ != false) {
        output.writeBool(4, bruteForce_);
      }
      unknownFields.writeTo(output);
    }

    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (userAppId_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, getUserAppId());
      }
      if (query_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, getQuery());
      }
      if (pagination_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, getPagination());
      }
      if (bruteForce_ != false) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(4, bruteForce_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof clarifai2.internal.grpc.api.Search.PostSearchesRequest)) {
        return super.equals(obj);
      }
      clarifai2.internal.grpc.api.Search.PostSearchesRequest other = (clarifai2.internal.grpc.api.Search.PostSearchesRequest) obj;

      boolean result = true;
      result = result && (hasUserAppId() == other.hasUserAppId());
      if (hasUserAppId()) {
        result = result && getUserAppId()
            .equals(other.getUserAppId());
      }
      result = result && (hasQuery() == other.hasQuery());
      if (hasQuery()) {
        result = result && getQuery()
            .equals(other.getQuery());
      }
      result = result && (hasPagination() == other.hasPagination());
      if (hasPagination()) {
        result = result && getPagination()
            .equals(other.getPagination());
      }
      result = result && (getBruteForce()
          == other.getBruteForce());
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasUserAppId()) {
        hash = (37 * hash) + USER_APP_ID_FIELD_NUMBER;
        hash = (53 * hash) + getUserAppId().hashCode();
      }
      if (hasQuery()) {
        hash = (37 * hash) + QUERY_FIELD_NUMBER;
        hash = (53 * hash) + getQuery().hashCode();
      }
      if (hasPagination()) {
        hash = (37 * hash) + PAGINATION_FIELD_NUMBER;
        hash = (53 * hash) + getPagination().hashCode();
      }
      hash = (37 * hash) + BRUTE_FORCE_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
          getBruteForce());
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static clarifai2.internal.grpc.api.Search.PostSearchesRequest parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static clarifai2.internal.grpc.api.Search.PostSearchesRequest parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static clarifai2.internal.grpc.api.Search.PostSearchesRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static clarifai2.internal.grpc.api.Search.PostSearchesRequest parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static clarifai2.internal.grpc.api.Search.PostSearchesRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static clarifai2.internal.grpc.api.Search.PostSearchesRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static clarifai2.internal.grpc.api.Search.PostSearchesRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static clarifai2.internal.grpc.api.Search.PostSearchesRequest parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static clarifai2.internal.grpc.api.Search.PostSearchesRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static clarifai2.internal.grpc.api.Search.PostSearchesRequest parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static clarifai2.internal.grpc.api.Search.PostSearchesRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static clarifai2.internal.grpc.api.Search.PostSearchesRequest parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(clarifai2.internal.grpc.api.Search.PostSearchesRequest prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code clarifai.api.PostSearchesRequest}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:clarifai.api.PostSearchesRequest)
        clarifai2.internal.grpc.api.Search.PostSearchesRequestOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return clarifai2.internal.grpc.api.Search.internal_static_clarifai_api_PostSearchesRequest_descriptor;
      }

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return clarifai2.internal.grpc.api.Search.internal_static_clarifai_api_PostSearchesRequest_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                clarifai2.internal.grpc.api.Search.PostSearchesRequest.class, clarifai2.internal.grpc.api.Search.PostSearchesRequest.Builder.class);
      }

      // Construct using clarifai2.internal.grpc.api.Search.PostSearchesRequest.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      public Builder clear() {
        super.clear();
        if (userAppIdBuilder_ == null) {
          userAppId_ = null;
        } else {
          userAppId_ = null;
          userAppIdBuilder_ = null;
        }
        if (queryBuilder_ == null) {
          query_ = null;
        } else {
          query_ = null;
          queryBuilder_ = null;
        }
        if (paginationBuilder_ == null) {
          pagination_ = null;
        } else {
          pagination_ = null;
          paginationBuilder_ = null;
        }
        bruteForce_ = false;

        return this;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return clarifai2.internal.grpc.api.Search.internal_static_clarifai_api_PostSearchesRequest_descriptor;
      }

      public clarifai2.internal.grpc.api.Search.PostSearchesRequest getDefaultInstanceForType() {
        return clarifai2.internal.grpc.api.Search.PostSearchesRequest.getDefaultInstance();
      }

      public clarifai2.internal.grpc.api.Search.PostSearchesRequest build() {
        clarifai2.internal.grpc.api.Search.PostSearchesRequest result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public clarifai2.internal.grpc.api.Search.PostSearchesRequest buildPartial() {
        clarifai2.internal.grpc.api.Search.PostSearchesRequest result = new clarifai2.internal.grpc.api.Search.PostSearchesRequest(this);
        if (userAppIdBuilder_ == null) {
          result.userAppId_ = userAppId_;
        } else {
          result.userAppId_ = userAppIdBuilder_.build();
        }
        if (queryBuilder_ == null) {
          result.query_ = query_;
        } else {
          result.query_ = queryBuilder_.build();
        }
        if (paginationBuilder_ == null) {
          result.pagination_ = pagination_;
        } else {
          result.pagination_ = paginationBuilder_.build();
        }
        result.bruteForce_ = bruteForce_;
        onBuilt();
        return result;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof clarifai2.internal.grpc.api.Search.PostSearchesRequest) {
          return mergeFrom((clarifai2.internal.grpc.api.Search.PostSearchesRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(clarifai2.internal.grpc.api.Search.PostSearchesRequest other) {
        if (other == clarifai2.internal.grpc.api.Search.PostSearchesRequest.getDefaultInstance()) return this;
        if (other.hasUserAppId()) {
          mergeUserAppId(other.getUserAppId());
        }
        if (other.hasQuery()) {
          mergeQuery(other.getQuery());
        }
        if (other.hasPagination()) {
          mergePagination(other.getPagination());
        }
        if (other.getBruteForce() != false) {
          setBruteForce(other.getBruteForce());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        clarifai2.internal.grpc.api.Search.PostSearchesRequest parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (clarifai2.internal.grpc.api.Search.PostSearchesRequest) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private clarifai2.internal.grpc.api.Common.UserAppIDSet userAppId_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
          clarifai2.internal.grpc.api.Common.UserAppIDSet, clarifai2.internal.grpc.api.Common.UserAppIDSet.Builder, clarifai2.internal.grpc.api.Common.UserAppIDSetOrBuilder> userAppIdBuilder_;
      /**
       * .clarifai.api.UserAppIDSet user_app_id = 1;
       */
      public boolean hasUserAppId() {
        return userAppIdBuilder_ != null || userAppId_ != null;
      }
      /**
       * .clarifai.api.UserAppIDSet user_app_id = 1;
       */
      public clarifai2.internal.grpc.api.Common.UserAppIDSet getUserAppId() {
        if (userAppIdBuilder_ == null) {
          return userAppId_ == null ? clarifai2.internal.grpc.api.Common.UserAppIDSet.getDefaultInstance() : userAppId_;
        } else {
          return userAppIdBuilder_.getMessage();
        }
      }
      /**
       * .clarifai.api.UserAppIDSet user_app_id = 1;
       */
      public Builder setUserAppId(clarifai2.internal.grpc.api.Common.UserAppIDSet value) {
        if (userAppIdBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          userAppId_ = value;
          onChanged();
        } else {
          userAppIdBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * .clarifai.api.UserAppIDSet user_app_id = 1;
       */
      public Builder setUserAppId(
          clarifai2.internal.grpc.api.Common.UserAppIDSet.Builder builderForValue) {
        if (userAppIdBuilder_ == null) {
          userAppId_ = builderForValue.build();
          onChanged();
        } else {
          userAppIdBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * .clarifai.api.UserAppIDSet user_app_id = 1;
       */
      public Builder mergeUserAppId(clarifai2.internal.grpc.api.Common.UserAppIDSet value) {
        if (userAppIdBuilder_ == null) {
          if (userAppId_ != null) {
            userAppId_ =
              clarifai2.internal.grpc.api.Common.UserAppIDSet.newBuilder(userAppId_).mergeFrom(value).buildPartial();
          } else {
            userAppId_ = value;
          }
          onChanged();
        } else {
          userAppIdBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * .clarifai.api.UserAppIDSet user_app_id = 1;
       */
      public Builder clearUserAppId() {
        if (userAppIdBuilder_ == null) {
          userAppId_ = null;
          onChanged();
        } else {
          userAppId_ = null;
          userAppIdBuilder_ = null;
        }

        return this;
      }
      /**
       * .clarifai.api.UserAppIDSet user_app_id = 1;
       */
      public clarifai2.internal.grpc.api.Common.UserAppIDSet.Builder getUserAppIdBuilder() {
        
        onChanged();
        return getUserAppIdFieldBuilder().getBuilder();
      }
      /**
       * .clarifai.api.UserAppIDSet user_app_id = 1;
       */
      public clarifai2.internal.grpc.api.Common.UserAppIDSetOrBuilder getUserAppIdOrBuilder() {
        if (userAppIdBuilder_ != null) {
          return userAppIdBuilder_.getMessageOrBuilder();
        } else {
          return userAppId_ == null ?
              clarifai2.internal.grpc.api.Common.UserAppIDSet.getDefaultInstance() : userAppId_;
        }
      }
      /**
       * .clarifai.api.UserAppIDSet user_app_id = 1;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          clarifai2.internal.grpc.api.Common.UserAppIDSet, clarifai2.internal.grpc.api.Common.UserAppIDSet.Builder, clarifai2.internal.grpc.api.Common.UserAppIDSetOrBuilder> 
          getUserAppIdFieldBuilder() {
        if (userAppIdBuilder_ == null) {
          userAppIdBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              clarifai2.internal.grpc.api.Common.UserAppIDSet, clarifai2.internal.grpc.api.Common.UserAppIDSet.Builder, clarifai2.internal.grpc.api.Common.UserAppIDSetOrBuilder>(
                  getUserAppId(),
                  getParentForChildren(),
                  isClean());
          userAppId_ = null;
        }
        return userAppIdBuilder_;
      }

      private clarifai2.internal.grpc.api.Search.Query query_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
          clarifai2.internal.grpc.api.Search.Query, clarifai2.internal.grpc.api.Search.Query.Builder, clarifai2.internal.grpc.api.Search.QueryOrBuilder> queryBuilder_;
      /**
       * .clarifai.api.Query query = 2;
       */
      public boolean hasQuery() {
        return queryBuilder_ != null || query_ != null;
      }
      /**
       * .clarifai.api.Query query = 2;
       */
      public clarifai2.internal.grpc.api.Search.Query getQuery() {
        if (queryBuilder_ == null) {
          return query_ == null ? clarifai2.internal.grpc.api.Search.Query.getDefaultInstance() : query_;
        } else {
          return queryBuilder_.getMessage();
        }
      }
      /**
       * .clarifai.api.Query query = 2;
       */
      public Builder setQuery(clarifai2.internal.grpc.api.Search.Query value) {
        if (queryBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          query_ = value;
          onChanged();
        } else {
          queryBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * .clarifai.api.Query query = 2;
       */
      public Builder setQuery(
          clarifai2.internal.grpc.api.Search.Query.Builder builderForValue) {
        if (queryBuilder_ == null) {
          query_ = builderForValue.build();
          onChanged();
        } else {
          queryBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * .clarifai.api.Query query = 2;
       */
      public Builder mergeQuery(clarifai2.internal.grpc.api.Search.Query value) {
        if (queryBuilder_ == null) {
          if (query_ != null) {
            query_ =
              clarifai2.internal.grpc.api.Search.Query.newBuilder(query_).mergeFrom(value).buildPartial();
          } else {
            query_ = value;
          }
          onChanged();
        } else {
          queryBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * .clarifai.api.Query query = 2;
       */
      public Builder clearQuery() {
        if (queryBuilder_ == null) {
          query_ = null;
          onChanged();
        } else {
          query_ = null;
          queryBuilder_ = null;
        }

        return this;
      }
      /**
       * .clarifai.api.Query query = 2;
       */
      public clarifai2.internal.grpc.api.Search.Query.Builder getQueryBuilder() {
        
        onChanged();
        return getQueryFieldBuilder().getBuilder();
      }
      /**
       * .clarifai.api.Query query = 2;
       */
      public clarifai2.internal.grpc.api.Search.QueryOrBuilder getQueryOrBuilder() {
        if (queryBuilder_ != null) {
          return queryBuilder_.getMessageOrBuilder();
        } else {
          return query_ == null ?
              clarifai2.internal.grpc.api.Search.Query.getDefaultInstance() : query_;
        }
      }
      /**
       * .clarifai.api.Query query = 2;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          clarifai2.internal.grpc.api.Search.Query, clarifai2.internal.grpc.api.Search.Query.Builder, clarifai2.internal.grpc.api.Search.QueryOrBuilder> 
          getQueryFieldBuilder() {
        if (queryBuilder_ == null) {
          queryBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              clarifai2.internal.grpc.api.Search.Query, clarifai2.internal.grpc.api.Search.Query.Builder, clarifai2.internal.grpc.api.Search.QueryOrBuilder>(
                  getQuery(),
                  getParentForChildren(),
                  isClean());
          query_ = null;
        }
        return queryBuilder_;
      }

      private clarifai2.internal.grpc.api.PaginationOuterClass.Pagination pagination_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
          clarifai2.internal.grpc.api.PaginationOuterClass.Pagination, clarifai2.internal.grpc.api.PaginationOuterClass.Pagination.Builder, clarifai2.internal.grpc.api.PaginationOuterClass.PaginationOrBuilder> paginationBuilder_;
      /**
       * .clarifai.api.Pagination pagination = 3;
       */
      public boolean hasPagination() {
        return paginationBuilder_ != null || pagination_ != null;
      }
      /**
       * .clarifai.api.Pagination pagination = 3;
       */
      public clarifai2.internal.grpc.api.PaginationOuterClass.Pagination getPagination() {
        if (paginationBuilder_ == null) {
          return pagination_ == null ? clarifai2.internal.grpc.api.PaginationOuterClass.Pagination.getDefaultInstance() : pagination_;
        } else {
          return paginationBuilder_.getMessage();
        }
      }
      /**
       * .clarifai.api.Pagination pagination = 3;
       */
      public Builder setPagination(clarifai2.internal.grpc.api.PaginationOuterClass.Pagination value) {
        if (paginationBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          pagination_ = value;
          onChanged();
        } else {
          paginationBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * .clarifai.api.Pagination pagination = 3;
       */
      public Builder setPagination(
          clarifai2.internal.grpc.api.PaginationOuterClass.Pagination.Builder builderForValue) {
        if (paginationBuilder_ == null) {
          pagination_ = builderForValue.build();
          onChanged();
        } else {
          paginationBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * .clarifai.api.Pagination pagination = 3;
       */
      public Builder mergePagination(clarifai2.internal.grpc.api.PaginationOuterClass.Pagination value) {
        if (paginationBuilder_ == null) {
          if (pagination_ != null) {
            pagination_ =
              clarifai2.internal.grpc.api.PaginationOuterClass.Pagination.newBuilder(pagination_).mergeFrom(value).buildPartial();
          } else {
            pagination_ = value;
          }
          onChanged();
        } else {
          paginationBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * .clarifai.api.Pagination pagination = 3;
       */
      public Builder clearPagination() {
        if (paginationBuilder_ == null) {
          pagination_ = null;
          onChanged();
        } else {
          pagination_ = null;
          paginationBuilder_ = null;
        }

        return this;
      }
      /**
       * .clarifai.api.Pagination pagination = 3;
       */
      public clarifai2.internal.grpc.api.PaginationOuterClass.Pagination.Builder getPaginationBuilder() {
        
        onChanged();
        return getPaginationFieldBuilder().getBuilder();
      }
      /**
       * .clarifai.api.Pagination pagination = 3;
       */
      public clarifai2.internal.grpc.api.PaginationOuterClass.PaginationOrBuilder getPaginationOrBuilder() {
        if (paginationBuilder_ != null) {
          return paginationBuilder_.getMessageOrBuilder();
        } else {
          return pagination_ == null ?
              clarifai2.internal.grpc.api.PaginationOuterClass.Pagination.getDefaultInstance() : pagination_;
        }
      }
      /**
       * .clarifai.api.Pagination pagination = 3;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          clarifai2.internal.grpc.api.PaginationOuterClass.Pagination, clarifai2.internal.grpc.api.PaginationOuterClass.Pagination.Builder, clarifai2.internal.grpc.api.PaginationOuterClass.PaginationOrBuilder> 
          getPaginationFieldBuilder() {
        if (paginationBuilder_ == null) {
          paginationBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              clarifai2.internal.grpc.api.PaginationOuterClass.Pagination, clarifai2.internal.grpc.api.PaginationOuterClass.Pagination.Builder, clarifai2.internal.grpc.api.PaginationOuterClass.PaginationOrBuilder>(
                  getPagination(),
                  getParentForChildren(),
                  isClean());
          pagination_ = null;
        }
        return paginationBuilder_;
      }

      private boolean bruteForce_ ;
      /**
       * bool brute_force = 4;
       */
      public boolean getBruteForce() {
        return bruteForce_;
      }
      /**
       * bool brute_force = 4;
       */
      public Builder setBruteForce(boolean value) {
        
        bruteForce_ = value;
        onChanged();
        return this;
      }
      /**
       * bool brute_force = 4;
       */
      public Builder clearBruteForce() {
        
        bruteForce_ = false;
        onChanged();
        return this;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFieldsProto3(unknownFields);
      }

      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:clarifai.api.PostSearchesRequest)
    }

    // @@protoc_insertion_point(class_scope:clarifai.api.PostSearchesRequest)
    private static final clarifai2.internal.grpc.api.Search.PostSearchesRequest DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new clarifai2.internal.grpc.api.Search.PostSearchesRequest();
    }

    public static clarifai2.internal.grpc.api.Search.PostSearchesRequest getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser
        PARSER = new com.google.protobuf.AbstractParser() {
      public PostSearchesRequest parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new PostSearchesRequest(input, extensionRegistry);
      }
    };

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

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

    public clarifai2.internal.grpc.api.Search.PostSearchesRequest getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface PostSearchFeedbackRequestOrBuilder extends
      // @@protoc_insertion_point(interface_extends:clarifai.api.PostSearchFeedbackRequest)
      com.google.protobuf.MessageOrBuilder {

    /**
     * .clarifai.api.UserAppIDSet user_app_id = 1;
     */
    boolean hasUserAppId();
    /**
     * .clarifai.api.UserAppIDSet user_app_id = 1;
     */
    clarifai2.internal.grpc.api.Common.UserAppIDSet getUserAppId();
    /**
     * .clarifai.api.UserAppIDSet user_app_id = 1;
     */
    clarifai2.internal.grpc.api.Common.UserAppIDSetOrBuilder getUserAppIdOrBuilder();

    /**
     * .clarifai.api.Input input = 2;
     */
    boolean hasInput();
    /**
     * .clarifai.api.Input input = 2;
     */
    clarifai2.internal.grpc.api.InputOuterClass.Input getInput();
    /**
     * .clarifai.api.Input input = 2;
     */
    clarifai2.internal.grpc.api.InputOuterClass.InputOrBuilder getInputOrBuilder();
  }
  /**
   * Protobuf type {@code clarifai.api.PostSearchFeedbackRequest}
   */
  public  static final class PostSearchFeedbackRequest extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:clarifai.api.PostSearchFeedbackRequest)
      PostSearchFeedbackRequestOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use PostSearchFeedbackRequest.newBuilder() to construct.
    private PostSearchFeedbackRequest(com.google.protobuf.GeneratedMessageV3.Builder builder) {
      super(builder);
    }
    private PostSearchFeedbackRequest() {
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private PostSearchFeedbackRequest(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownFieldProto3(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              clarifai2.internal.grpc.api.Common.UserAppIDSet.Builder subBuilder = null;
              if (userAppId_ != null) {
                subBuilder = userAppId_.toBuilder();
              }
              userAppId_ = input.readMessage(clarifai2.internal.grpc.api.Common.UserAppIDSet.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(userAppId_);
                userAppId_ = subBuilder.buildPartial();
              }

              break;
            }
            case 18: {
              clarifai2.internal.grpc.api.InputOuterClass.Input.Builder subBuilder = null;
              if (input_ != null) {
                subBuilder = input_.toBuilder();
              }
              input_ = input.readMessage(clarifai2.internal.grpc.api.InputOuterClass.Input.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(input_);
                input_ = subBuilder.buildPartial();
              }

              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return clarifai2.internal.grpc.api.Search.internal_static_clarifai_api_PostSearchFeedbackRequest_descriptor;
    }

    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return clarifai2.internal.grpc.api.Search.internal_static_clarifai_api_PostSearchFeedbackRequest_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              clarifai2.internal.grpc.api.Search.PostSearchFeedbackRequest.class, clarifai2.internal.grpc.api.Search.PostSearchFeedbackRequest.Builder.class);
    }

    public static final int USER_APP_ID_FIELD_NUMBER = 1;
    private clarifai2.internal.grpc.api.Common.UserAppIDSet userAppId_;
    /**
     * .clarifai.api.UserAppIDSet user_app_id = 1;
     */
    public boolean hasUserAppId() {
      return userAppId_ != null;
    }
    /**
     * .clarifai.api.UserAppIDSet user_app_id = 1;
     */
    public clarifai2.internal.grpc.api.Common.UserAppIDSet getUserAppId() {
      return userAppId_ == null ? clarifai2.internal.grpc.api.Common.UserAppIDSet.getDefaultInstance() : userAppId_;
    }
    /**
     * .clarifai.api.UserAppIDSet user_app_id = 1;
     */
    public clarifai2.internal.grpc.api.Common.UserAppIDSetOrBuilder getUserAppIdOrBuilder() {
      return getUserAppId();
    }

    public static final int INPUT_FIELD_NUMBER = 2;
    private clarifai2.internal.grpc.api.InputOuterClass.Input input_;
    /**
     * .clarifai.api.Input input = 2;
     */
    public boolean hasInput() {
      return input_ != null;
    }
    /**
     * .clarifai.api.Input input = 2;
     */
    public clarifai2.internal.grpc.api.InputOuterClass.Input getInput() {
      return input_ == null ? clarifai2.internal.grpc.api.InputOuterClass.Input.getDefaultInstance() : input_;
    }
    /**
     * .clarifai.api.Input input = 2;
     */
    public clarifai2.internal.grpc.api.InputOuterClass.InputOrBuilder getInputOrBuilder() {
      return getInput();
    }

    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (userAppId_ != null) {
        output.writeMessage(1, getUserAppId());
      }
      if (input_ != null) {
        output.writeMessage(2, getInput());
      }
      unknownFields.writeTo(output);
    }

    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (userAppId_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, getUserAppId());
      }
      if (input_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, getInput());
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof clarifai2.internal.grpc.api.Search.PostSearchFeedbackRequest)) {
        return super.equals(obj);
      }
      clarifai2.internal.grpc.api.Search.PostSearchFeedbackRequest other = (clarifai2.internal.grpc.api.Search.PostSearchFeedbackRequest) obj;

      boolean result = true;
      result = result && (hasUserAppId() == other.hasUserAppId());
      if (hasUserAppId()) {
        result = result && getUserAppId()
            .equals(other.getUserAppId());
      }
      result = result && (hasInput() == other.hasInput());
      if (hasInput()) {
        result = result && getInput()
            .equals(other.getInput());
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasUserAppId()) {
        hash = (37 * hash) + USER_APP_ID_FIELD_NUMBER;
        hash = (53 * hash) + getUserAppId().hashCode();
      }
      if (hasInput()) {
        hash = (37 * hash) + INPUT_FIELD_NUMBER;
        hash = (53 * hash) + getInput().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static clarifai2.internal.grpc.api.Search.PostSearchFeedbackRequest parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static clarifai2.internal.grpc.api.Search.PostSearchFeedbackRequest parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static clarifai2.internal.grpc.api.Search.PostSearchFeedbackRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static clarifai2.internal.grpc.api.Search.PostSearchFeedbackRequest parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static clarifai2.internal.grpc.api.Search.PostSearchFeedbackRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static clarifai2.internal.grpc.api.Search.PostSearchFeedbackRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static clarifai2.internal.grpc.api.Search.PostSearchFeedbackRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static clarifai2.internal.grpc.api.Search.PostSearchFeedbackRequest parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static clarifai2.internal.grpc.api.Search.PostSearchFeedbackRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static clarifai2.internal.grpc.api.Search.PostSearchFeedbackRequest parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static clarifai2.internal.grpc.api.Search.PostSearchFeedbackRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static clarifai2.internal.grpc.api.Search.PostSearchFeedbackRequest parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(clarifai2.internal.grpc.api.Search.PostSearchFeedbackRequest prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code clarifai.api.PostSearchFeedbackRequest}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:clarifai.api.PostSearchFeedbackRequest)
        clarifai2.internal.grpc.api.Search.PostSearchFeedbackRequestOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return clarifai2.internal.grpc.api.Search.internal_static_clarifai_api_PostSearchFeedbackRequest_descriptor;
      }

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return clarifai2.internal.grpc.api.Search.internal_static_clarifai_api_PostSearchFeedbackRequest_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                clarifai2.internal.grpc.api.Search.PostSearchFeedbackRequest.class, clarifai2.internal.grpc.api.Search.PostSearchFeedbackRequest.Builder.class);
      }

      // Construct using clarifai2.internal.grpc.api.Search.PostSearchFeedbackRequest.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      public Builder clear() {
        super.clear();
        if (userAppIdBuilder_ == null) {
          userAppId_ = null;
        } else {
          userAppId_ = null;
          userAppIdBuilder_ = null;
        }
        if (inputBuilder_ == null) {
          input_ = null;
        } else {
          input_ = null;
          inputBuilder_ = null;
        }
        return this;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return clarifai2.internal.grpc.api.Search.internal_static_clarifai_api_PostSearchFeedbackRequest_descriptor;
      }

      public clarifai2.internal.grpc.api.Search.PostSearchFeedbackRequest getDefaultInstanceForType() {
        return clarifai2.internal.grpc.api.Search.PostSearchFeedbackRequest.getDefaultInstance();
      }

      public clarifai2.internal.grpc.api.Search.PostSearchFeedbackRequest build() {
        clarifai2.internal.grpc.api.Search.PostSearchFeedbackRequest result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public clarifai2.internal.grpc.api.Search.PostSearchFeedbackRequest buildPartial() {
        clarifai2.internal.grpc.api.Search.PostSearchFeedbackRequest result = new clarifai2.internal.grpc.api.Search.PostSearchFeedbackRequest(this);
        if (userAppIdBuilder_ == null) {
          result.userAppId_ = userAppId_;
        } else {
          result.userAppId_ = userAppIdBuilder_.build();
        }
        if (inputBuilder_ == null) {
          result.input_ = input_;
        } else {
          result.input_ = inputBuilder_.build();
        }
        onBuilt();
        return result;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof clarifai2.internal.grpc.api.Search.PostSearchFeedbackRequest) {
          return mergeFrom((clarifai2.internal.grpc.api.Search.PostSearchFeedbackRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(clarifai2.internal.grpc.api.Search.PostSearchFeedbackRequest other) {
        if (other == clarifai2.internal.grpc.api.Search.PostSearchFeedbackRequest.getDefaultInstance()) return this;
        if (other.hasUserAppId()) {
          mergeUserAppId(other.getUserAppId());
        }
        if (other.hasInput()) {
          mergeInput(other.getInput());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        clarifai2.internal.grpc.api.Search.PostSearchFeedbackRequest parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (clarifai2.internal.grpc.api.Search.PostSearchFeedbackRequest) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private clarifai2.internal.grpc.api.Common.UserAppIDSet userAppId_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
          clarifai2.internal.grpc.api.Common.UserAppIDSet, clarifai2.internal.grpc.api.Common.UserAppIDSet.Builder, clarifai2.internal.grpc.api.Common.UserAppIDSetOrBuilder> userAppIdBuilder_;
      /**
       * .clarifai.api.UserAppIDSet user_app_id = 1;
       */
      public boolean hasUserAppId() {
        return userAppIdBuilder_ != null || userAppId_ != null;
      }
      /**
       * .clarifai.api.UserAppIDSet user_app_id = 1;
       */
      public clarifai2.internal.grpc.api.Common.UserAppIDSet getUserAppId() {
        if (userAppIdBuilder_ == null) {
          return userAppId_ == null ? clarifai2.internal.grpc.api.Common.UserAppIDSet.getDefaultInstance() : userAppId_;
        } else {
          return userAppIdBuilder_.getMessage();
        }
      }
      /**
       * .clarifai.api.UserAppIDSet user_app_id = 1;
       */
      public Builder setUserAppId(clarifai2.internal.grpc.api.Common.UserAppIDSet value) {
        if (userAppIdBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          userAppId_ = value;
          onChanged();
        } else {
          userAppIdBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * .clarifai.api.UserAppIDSet user_app_id = 1;
       */
      public Builder setUserAppId(
          clarifai2.internal.grpc.api.Common.UserAppIDSet.Builder builderForValue) {
        if (userAppIdBuilder_ == null) {
          userAppId_ = builderForValue.build();
          onChanged();
        } else {
          userAppIdBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * .clarifai.api.UserAppIDSet user_app_id = 1;
       */
      public Builder mergeUserAppId(clarifai2.internal.grpc.api.Common.UserAppIDSet value) {
        if (userAppIdBuilder_ == null) {
          if (userAppId_ != null) {
            userAppId_ =
              clarifai2.internal.grpc.api.Common.UserAppIDSet.newBuilder(userAppId_).mergeFrom(value).buildPartial();
          } else {
            userAppId_ = value;
          }
          onChanged();
        } else {
          userAppIdBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * .clarifai.api.UserAppIDSet user_app_id = 1;
       */
      public Builder clearUserAppId() {
        if (userAppIdBuilder_ == null) {
          userAppId_ = null;
          onChanged();
        } else {
          userAppId_ = null;
          userAppIdBuilder_ = null;
        }

        return this;
      }
      /**
       * .clarifai.api.UserAppIDSet user_app_id = 1;
       */
      public clarifai2.internal.grpc.api.Common.UserAppIDSet.Builder getUserAppIdBuilder() {
        
        onChanged();
        return getUserAppIdFieldBuilder().getBuilder();
      }
      /**
       * .clarifai.api.UserAppIDSet user_app_id = 1;
       */
      public clarifai2.internal.grpc.api.Common.UserAppIDSetOrBuilder getUserAppIdOrBuilder() {
        if (userAppIdBuilder_ != null) {
          return userAppIdBuilder_.getMessageOrBuilder();
        } else {
          return userAppId_ == null ?
              clarifai2.internal.grpc.api.Common.UserAppIDSet.getDefaultInstance() : userAppId_;
        }
      }
      /**
       * .clarifai.api.UserAppIDSet user_app_id = 1;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          clarifai2.internal.grpc.api.Common.UserAppIDSet, clarifai2.internal.grpc.api.Common.UserAppIDSet.Builder, clarifai2.internal.grpc.api.Common.UserAppIDSetOrBuilder> 
          getUserAppIdFieldBuilder() {
        if (userAppIdBuilder_ == null) {
          userAppIdBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              clarifai2.internal.grpc.api.Common.UserAppIDSet, clarifai2.internal.grpc.api.Common.UserAppIDSet.Builder, clarifai2.internal.grpc.api.Common.UserAppIDSetOrBuilder>(
                  getUserAppId(),
                  getParentForChildren(),
                  isClean());
          userAppId_ = null;
        }
        return userAppIdBuilder_;
      }

      private clarifai2.internal.grpc.api.InputOuterClass.Input input_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
          clarifai2.internal.grpc.api.InputOuterClass.Input, clarifai2.internal.grpc.api.InputOuterClass.Input.Builder, clarifai2.internal.grpc.api.InputOuterClass.InputOrBuilder> inputBuilder_;
      /**
       * .clarifai.api.Input input = 2;
       */
      public boolean hasInput() {
        return inputBuilder_ != null || input_ != null;
      }
      /**
       * .clarifai.api.Input input = 2;
       */
      public clarifai2.internal.grpc.api.InputOuterClass.Input getInput() {
        if (inputBuilder_ == null) {
          return input_ == null ? clarifai2.internal.grpc.api.InputOuterClass.Input.getDefaultInstance() : input_;
        } else {
          return inputBuilder_.getMessage();
        }
      }
      /**
       * .clarifai.api.Input input = 2;
       */
      public Builder setInput(clarifai2.internal.grpc.api.InputOuterClass.Input value) {
        if (inputBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          input_ = value;
          onChanged();
        } else {
          inputBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * .clarifai.api.Input input = 2;
       */
      public Builder setInput(
          clarifai2.internal.grpc.api.InputOuterClass.Input.Builder builderForValue) {
        if (inputBuilder_ == null) {
          input_ = builderForValue.build();
          onChanged();
        } else {
          inputBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * .clarifai.api.Input input = 2;
       */
      public Builder mergeInput(clarifai2.internal.grpc.api.InputOuterClass.Input value) {
        if (inputBuilder_ == null) {
          if (input_ != null) {
            input_ =
              clarifai2.internal.grpc.api.InputOuterClass.Input.newBuilder(input_).mergeFrom(value).buildPartial();
          } else {
            input_ = value;
          }
          onChanged();
        } else {
          inputBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * .clarifai.api.Input input = 2;
       */
      public Builder clearInput() {
        if (inputBuilder_ == null) {
          input_ = null;
          onChanged();
        } else {
          input_ = null;
          inputBuilder_ = null;
        }

        return this;
      }
      /**
       * .clarifai.api.Input input = 2;
       */
      public clarifai2.internal.grpc.api.InputOuterClass.Input.Builder getInputBuilder() {
        
        onChanged();
        return getInputFieldBuilder().getBuilder();
      }
      /**
       * .clarifai.api.Input input = 2;
       */
      public clarifai2.internal.grpc.api.InputOuterClass.InputOrBuilder getInputOrBuilder() {
        if (inputBuilder_ != null) {
          return inputBuilder_.getMessageOrBuilder();
        } else {
          return input_ == null ?
              clarifai2.internal.grpc.api.InputOuterClass.Input.getDefaultInstance() : input_;
        }
      }
      /**
       * .clarifai.api.Input input = 2;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          clarifai2.internal.grpc.api.InputOuterClass.Input, clarifai2.internal.grpc.api.InputOuterClass.Input.Builder, clarifai2.internal.grpc.api.InputOuterClass.InputOrBuilder> 
          getInputFieldBuilder() {
        if (inputBuilder_ == null) {
          inputBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              clarifai2.internal.grpc.api.InputOuterClass.Input, clarifai2.internal.grpc.api.InputOuterClass.Input.Builder, clarifai2.internal.grpc.api.InputOuterClass.InputOrBuilder>(
                  getInput(),
                  getParentForChildren(),
                  isClean());
          input_ = null;
        }
        return inputBuilder_;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFieldsProto3(unknownFields);
      }

      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:clarifai.api.PostSearchFeedbackRequest)
    }

    // @@protoc_insertion_point(class_scope:clarifai.api.PostSearchFeedbackRequest)
    private static final clarifai2.internal.grpc.api.Search.PostSearchFeedbackRequest DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new clarifai2.internal.grpc.api.Search.PostSearchFeedbackRequest();
    }

    public static clarifai2.internal.grpc.api.Search.PostSearchFeedbackRequest getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser
        PARSER = new com.google.protobuf.AbstractParser() {
      public PostSearchFeedbackRequest parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new PostSearchFeedbackRequest(input, extensionRegistry);
      }
    };

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

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

    public clarifai2.internal.grpc.api.Search.PostSearchFeedbackRequest getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface MultiSearchResponseOrBuilder extends
      // @@protoc_insertion_point(interface_extends:clarifai.api.MultiSearchResponse)
      com.google.protobuf.MessageOrBuilder {

    /**
     * .clarifai.api.status.Status status = 1;
     */
    boolean hasStatus();
    /**
     * .clarifai.api.status.Status status = 1;
     */
    clarifai2.internal.grpc.api.status.StatusOuterClass.Status getStatus();
    /**
     * .clarifai.api.status.Status status = 1;
     */
    clarifai2.internal.grpc.api.status.StatusOuterClass.StatusOrBuilder getStatusOrBuilder();

    /**
     * string id = 2;
     */
    java.lang.String getId();
    /**
     * string id = 2;
     */
    com.google.protobuf.ByteString
        getIdBytes();

    /**
     * repeated .clarifai.api.Hit hits = 3 [(.clarifai.api.utils.cl_show_if_empty) = true];
     */
    java.util.List 
        getHitsList();
    /**
     * repeated .clarifai.api.Hit hits = 3 [(.clarifai.api.utils.cl_show_if_empty) = true];
     */
    clarifai2.internal.grpc.api.Search.Hit getHits(int index);
    /**
     * repeated .clarifai.api.Hit hits = 3 [(.clarifai.api.utils.cl_show_if_empty) = true];
     */
    int getHitsCount();
    /**
     * repeated .clarifai.api.Hit hits = 3 [(.clarifai.api.utils.cl_show_if_empty) = true];
     */
    java.util.List 
        getHitsOrBuilderList();
    /**
     * repeated .clarifai.api.Hit hits = 3 [(.clarifai.api.utils.cl_show_if_empty) = true];
     */
    clarifai2.internal.grpc.api.Search.HitOrBuilder getHitsOrBuilder(
        int index);
  }
  /**
   * Protobuf type {@code clarifai.api.MultiSearchResponse}
   */
  public  static final class MultiSearchResponse extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:clarifai.api.MultiSearchResponse)
      MultiSearchResponseOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use MultiSearchResponse.newBuilder() to construct.
    private MultiSearchResponse(com.google.protobuf.GeneratedMessageV3.Builder builder) {
      super(builder);
    }
    private MultiSearchResponse() {
      id_ = "";
      hits_ = java.util.Collections.emptyList();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private MultiSearchResponse(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownFieldProto3(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              clarifai2.internal.grpc.api.status.StatusOuterClass.Status.Builder subBuilder = null;
              if (status_ != null) {
                subBuilder = status_.toBuilder();
              }
              status_ = input.readMessage(clarifai2.internal.grpc.api.status.StatusOuterClass.Status.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(status_);
                status_ = subBuilder.buildPartial();
              }

              break;
            }
            case 18: {
              java.lang.String s = input.readStringRequireUtf8();

              id_ = s;
              break;
            }
            case 26: {
              if (!((mutable_bitField0_ & 0x00000004) == 0x00000004)) {
                hits_ = new java.util.ArrayList();
                mutable_bitField0_ |= 0x00000004;
              }
              hits_.add(
                  input.readMessage(clarifai2.internal.grpc.api.Search.Hit.parser(), extensionRegistry));
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000004) == 0x00000004)) {
          hits_ = java.util.Collections.unmodifiableList(hits_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return clarifai2.internal.grpc.api.Search.internal_static_clarifai_api_MultiSearchResponse_descriptor;
    }

    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return clarifai2.internal.grpc.api.Search.internal_static_clarifai_api_MultiSearchResponse_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              clarifai2.internal.grpc.api.Search.MultiSearchResponse.class, clarifai2.internal.grpc.api.Search.MultiSearchResponse.Builder.class);
    }

    private int bitField0_;
    public static final int STATUS_FIELD_NUMBER = 1;
    private clarifai2.internal.grpc.api.status.StatusOuterClass.Status status_;
    /**
     * .clarifai.api.status.Status status = 1;
     */
    public boolean hasStatus() {
      return status_ != null;
    }
    /**
     * .clarifai.api.status.Status status = 1;
     */
    public clarifai2.internal.grpc.api.status.StatusOuterClass.Status getStatus() {
      return status_ == null ? clarifai2.internal.grpc.api.status.StatusOuterClass.Status.getDefaultInstance() : status_;
    }
    /**
     * .clarifai.api.status.Status status = 1;
     */
    public clarifai2.internal.grpc.api.status.StatusOuterClass.StatusOrBuilder getStatusOrBuilder() {
      return getStatus();
    }

    public static final int ID_FIELD_NUMBER = 2;
    private volatile java.lang.Object id_;
    /**
     * string id = 2;
     */
    public java.lang.String getId() {
      java.lang.Object ref = id_;
      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();
        id_ = s;
        return s;
      }
    }
    /**
     * string id = 2;
     */
    public com.google.protobuf.ByteString
        getIdBytes() {
      java.lang.Object ref = id_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        id_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int HITS_FIELD_NUMBER = 3;
    private java.util.List hits_;
    /**
     * repeated .clarifai.api.Hit hits = 3 [(.clarifai.api.utils.cl_show_if_empty) = true];
     */
    public java.util.List getHitsList() {
      return hits_;
    }
    /**
     * repeated .clarifai.api.Hit hits = 3 [(.clarifai.api.utils.cl_show_if_empty) = true];
     */
    public java.util.List 
        getHitsOrBuilderList() {
      return hits_;
    }
    /**
     * repeated .clarifai.api.Hit hits = 3 [(.clarifai.api.utils.cl_show_if_empty) = true];
     */
    public int getHitsCount() {
      return hits_.size();
    }
    /**
     * repeated .clarifai.api.Hit hits = 3 [(.clarifai.api.utils.cl_show_if_empty) = true];
     */
    public clarifai2.internal.grpc.api.Search.Hit getHits(int index) {
      return hits_.get(index);
    }
    /**
     * repeated .clarifai.api.Hit hits = 3 [(.clarifai.api.utils.cl_show_if_empty) = true];
     */
    public clarifai2.internal.grpc.api.Search.HitOrBuilder getHitsOrBuilder(
        int index) {
      return hits_.get(index);
    }

    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (status_ != null) {
        output.writeMessage(1, getStatus());
      }
      if (!getIdBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, id_);
      }
      for (int i = 0; i < hits_.size(); i++) {
        output.writeMessage(3, hits_.get(i));
      }
      unknownFields.writeTo(output);
    }

    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (status_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, getStatus());
      }
      if (!getIdBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, id_);
      }
      for (int i = 0; i < hits_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, hits_.get(i));
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof clarifai2.internal.grpc.api.Search.MultiSearchResponse)) {
        return super.equals(obj);
      }
      clarifai2.internal.grpc.api.Search.MultiSearchResponse other = (clarifai2.internal.grpc.api.Search.MultiSearchResponse) obj;

      boolean result = true;
      result = result && (hasStatus() == other.hasStatus());
      if (hasStatus()) {
        result = result && getStatus()
            .equals(other.getStatus());
      }
      result = result && getId()
          .equals(other.getId());
      result = result && getHitsList()
          .equals(other.getHitsList());
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasStatus()) {
        hash = (37 * hash) + STATUS_FIELD_NUMBER;
        hash = (53 * hash) + getStatus().hashCode();
      }
      hash = (37 * hash) + ID_FIELD_NUMBER;
      hash = (53 * hash) + getId().hashCode();
      if (getHitsCount() > 0) {
        hash = (37 * hash) + HITS_FIELD_NUMBER;
        hash = (53 * hash) + getHitsList().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static clarifai2.internal.grpc.api.Search.MultiSearchResponse parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static clarifai2.internal.grpc.api.Search.MultiSearchResponse parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static clarifai2.internal.grpc.api.Search.MultiSearchResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static clarifai2.internal.grpc.api.Search.MultiSearchResponse parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static clarifai2.internal.grpc.api.Search.MultiSearchResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static clarifai2.internal.grpc.api.Search.MultiSearchResponse parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static clarifai2.internal.grpc.api.Search.MultiSearchResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static clarifai2.internal.grpc.api.Search.MultiSearchResponse parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static clarifai2.internal.grpc.api.Search.MultiSearchResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static clarifai2.internal.grpc.api.Search.MultiSearchResponse parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static clarifai2.internal.grpc.api.Search.MultiSearchResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static clarifai2.internal.grpc.api.Search.MultiSearchResponse parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(clarifai2.internal.grpc.api.Search.MultiSearchResponse prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code clarifai.api.MultiSearchResponse}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:clarifai.api.MultiSearchResponse)
        clarifai2.internal.grpc.api.Search.MultiSearchResponseOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return clarifai2.internal.grpc.api.Search.internal_static_clarifai_api_MultiSearchResponse_descriptor;
      }

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return clarifai2.internal.grpc.api.Search.internal_static_clarifai_api_MultiSearchResponse_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                clarifai2.internal.grpc.api.Search.MultiSearchResponse.class, clarifai2.internal.grpc.api.Search.MultiSearchResponse.Builder.class);
      }

      // Construct using clarifai2.internal.grpc.api.Search.MultiSearchResponse.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getHitsFieldBuilder();
        }
      }
      public Builder clear() {
        super.clear();
        if (statusBuilder_ == null) {
          status_ = null;
        } else {
          status_ = null;
          statusBuilder_ = null;
        }
        id_ = "";

        if (hitsBuilder_ == null) {
          hits_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000004);
        } else {
          hitsBuilder_.clear();
        }
        return this;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return clarifai2.internal.grpc.api.Search.internal_static_clarifai_api_MultiSearchResponse_descriptor;
      }

      public clarifai2.internal.grpc.api.Search.MultiSearchResponse getDefaultInstanceForType() {
        return clarifai2.internal.grpc.api.Search.MultiSearchResponse.getDefaultInstance();
      }

      public clarifai2.internal.grpc.api.Search.MultiSearchResponse build() {
        clarifai2.internal.grpc.api.Search.MultiSearchResponse result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public clarifai2.internal.grpc.api.Search.MultiSearchResponse buildPartial() {
        clarifai2.internal.grpc.api.Search.MultiSearchResponse result = new clarifai2.internal.grpc.api.Search.MultiSearchResponse(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (statusBuilder_ == null) {
          result.status_ = status_;
        } else {
          result.status_ = statusBuilder_.build();
        }
        result.id_ = id_;
        if (hitsBuilder_ == null) {
          if (((bitField0_ & 0x00000004) == 0x00000004)) {
            hits_ = java.util.Collections.unmodifiableList(hits_);
            bitField0_ = (bitField0_ & ~0x00000004);
          }
          result.hits_ = hits_;
        } else {
          result.hits_ = hitsBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof clarifai2.internal.grpc.api.Search.MultiSearchResponse) {
          return mergeFrom((clarifai2.internal.grpc.api.Search.MultiSearchResponse)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(clarifai2.internal.grpc.api.Search.MultiSearchResponse other) {
        if (other == clarifai2.internal.grpc.api.Search.MultiSearchResponse.getDefaultInstance()) return this;
        if (other.hasStatus()) {
          mergeStatus(other.getStatus());
        }
        if (!other.getId().isEmpty()) {
          id_ = other.id_;
          onChanged();
        }
        if (hitsBuilder_ == null) {
          if (!other.hits_.isEmpty()) {
            if (hits_.isEmpty()) {
              hits_ = other.hits_;
              bitField0_ = (bitField0_ & ~0x00000004);
            } else {
              ensureHitsIsMutable();
              hits_.addAll(other.hits_);
            }
            onChanged();
          }
        } else {
          if (!other.hits_.isEmpty()) {
            if (hitsBuilder_.isEmpty()) {
              hitsBuilder_.dispose();
              hitsBuilder_ = null;
              hits_ = other.hits_;
              bitField0_ = (bitField0_ & ~0x00000004);
              hitsBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getHitsFieldBuilder() : null;
            } else {
              hitsBuilder_.addAllMessages(other.hits_);
            }
          }
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        clarifai2.internal.grpc.api.Search.MultiSearchResponse parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (clarifai2.internal.grpc.api.Search.MultiSearchResponse) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private clarifai2.internal.grpc.api.status.StatusOuterClass.Status status_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
          clarifai2.internal.grpc.api.status.StatusOuterClass.Status, clarifai2.internal.grpc.api.status.StatusOuterClass.Status.Builder, clarifai2.internal.grpc.api.status.StatusOuterClass.StatusOrBuilder> statusBuilder_;
      /**
       * .clarifai.api.status.Status status = 1;
       */
      public boolean hasStatus() {
        return statusBuilder_ != null || status_ != null;
      }
      /**
       * .clarifai.api.status.Status status = 1;
       */
      public clarifai2.internal.grpc.api.status.StatusOuterClass.Status getStatus() {
        if (statusBuilder_ == null) {
          return status_ == null ? clarifai2.internal.grpc.api.status.StatusOuterClass.Status.getDefaultInstance() : status_;
        } else {
          return statusBuilder_.getMessage();
        }
      }
      /**
       * .clarifai.api.status.Status status = 1;
       */
      public Builder setStatus(clarifai2.internal.grpc.api.status.StatusOuterClass.Status value) {
        if (statusBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          status_ = value;
          onChanged();
        } else {
          statusBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * .clarifai.api.status.Status status = 1;
       */
      public Builder setStatus(
          clarifai2.internal.grpc.api.status.StatusOuterClass.Status.Builder builderForValue) {
        if (statusBuilder_ == null) {
          status_ = builderForValue.build();
          onChanged();
        } else {
          statusBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * .clarifai.api.status.Status status = 1;
       */
      public Builder mergeStatus(clarifai2.internal.grpc.api.status.StatusOuterClass.Status value) {
        if (statusBuilder_ == null) {
          if (status_ != null) {
            status_ =
              clarifai2.internal.grpc.api.status.StatusOuterClass.Status.newBuilder(status_).mergeFrom(value).buildPartial();
          } else {
            status_ = value;
          }
          onChanged();
        } else {
          statusBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * .clarifai.api.status.Status status = 1;
       */
      public Builder clearStatus() {
        if (statusBuilder_ == null) {
          status_ = null;
          onChanged();
        } else {
          status_ = null;
          statusBuilder_ = null;
        }

        return this;
      }
      /**
       * .clarifai.api.status.Status status = 1;
       */
      public clarifai2.internal.grpc.api.status.StatusOuterClass.Status.Builder getStatusBuilder() {
        
        onChanged();
        return getStatusFieldBuilder().getBuilder();
      }
      /**
       * .clarifai.api.status.Status status = 1;
       */
      public clarifai2.internal.grpc.api.status.StatusOuterClass.StatusOrBuilder getStatusOrBuilder() {
        if (statusBuilder_ != null) {
          return statusBuilder_.getMessageOrBuilder();
        } else {
          return status_ == null ?
              clarifai2.internal.grpc.api.status.StatusOuterClass.Status.getDefaultInstance() : status_;
        }
      }
      /**
       * .clarifai.api.status.Status status = 1;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          clarifai2.internal.grpc.api.status.StatusOuterClass.Status, clarifai2.internal.grpc.api.status.StatusOuterClass.Status.Builder, clarifai2.internal.grpc.api.status.StatusOuterClass.StatusOrBuilder> 
          getStatusFieldBuilder() {
        if (statusBuilder_ == null) {
          statusBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              clarifai2.internal.grpc.api.status.StatusOuterClass.Status, clarifai2.internal.grpc.api.status.StatusOuterClass.Status.Builder, clarifai2.internal.grpc.api.status.StatusOuterClass.StatusOrBuilder>(
                  getStatus(),
                  getParentForChildren(),
                  isClean());
          status_ = null;
        }
        return statusBuilder_;
      }

      private java.lang.Object id_ = "";
      /**
       * string id = 2;
       */
      public java.lang.String getId() {
        java.lang.Object ref = id_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          id_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * string id = 2;
       */
      public com.google.protobuf.ByteString
          getIdBytes() {
        java.lang.Object ref = id_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          id_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * string id = 2;
       */
      public Builder setId(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        id_ = value;
        onChanged();
        return this;
      }
      /**
       * string id = 2;
       */
      public Builder clearId() {
        
        id_ = getDefaultInstance().getId();
        onChanged();
        return this;
      }
      /**
       * string id = 2;
       */
      public Builder setIdBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        id_ = value;
        onChanged();
        return this;
      }

      private java.util.List hits_ =
        java.util.Collections.emptyList();
      private void ensureHitsIsMutable() {
        if (!((bitField0_ & 0x00000004) == 0x00000004)) {
          hits_ = new java.util.ArrayList(hits_);
          bitField0_ |= 0x00000004;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          clarifai2.internal.grpc.api.Search.Hit, clarifai2.internal.grpc.api.Search.Hit.Builder, clarifai2.internal.grpc.api.Search.HitOrBuilder> hitsBuilder_;

      /**
       * repeated .clarifai.api.Hit hits = 3 [(.clarifai.api.utils.cl_show_if_empty) = true];
       */
      public java.util.List getHitsList() {
        if (hitsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(hits_);
        } else {
          return hitsBuilder_.getMessageList();
        }
      }
      /**
       * repeated .clarifai.api.Hit hits = 3 [(.clarifai.api.utils.cl_show_if_empty) = true];
       */
      public int getHitsCount() {
        if (hitsBuilder_ == null) {
          return hits_.size();
        } else {
          return hitsBuilder_.getCount();
        }
      }
      /**
       * repeated .clarifai.api.Hit hits = 3 [(.clarifai.api.utils.cl_show_if_empty) = true];
       */
      public clarifai2.internal.grpc.api.Search.Hit getHits(int index) {
        if (hitsBuilder_ == null) {
          return hits_.get(index);
        } else {
          return hitsBuilder_.getMessage(index);
        }
      }
      /**
       * repeated .clarifai.api.Hit hits = 3 [(.clarifai.api.utils.cl_show_if_empty) = true];
       */
      public Builder setHits(
          int index, clarifai2.internal.grpc.api.Search.Hit value) {
        if (hitsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureHitsIsMutable();
          hits_.set(index, value);
          onChanged();
        } else {
          hitsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .clarifai.api.Hit hits = 3 [(.clarifai.api.utils.cl_show_if_empty) = true];
       */
      public Builder setHits(
          int index, clarifai2.internal.grpc.api.Search.Hit.Builder builderForValue) {
        if (hitsBuilder_ == null) {
          ensureHitsIsMutable();
          hits_.set(index, builderForValue.build());
          onChanged();
        } else {
          hitsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .clarifai.api.Hit hits = 3 [(.clarifai.api.utils.cl_show_if_empty) = true];
       */
      public Builder addHits(clarifai2.internal.grpc.api.Search.Hit value) {
        if (hitsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureHitsIsMutable();
          hits_.add(value);
          onChanged();
        } else {
          hitsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * repeated .clarifai.api.Hit hits = 3 [(.clarifai.api.utils.cl_show_if_empty) = true];
       */
      public Builder addHits(
          int index, clarifai2.internal.grpc.api.Search.Hit value) {
        if (hitsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureHitsIsMutable();
          hits_.add(index, value);
          onChanged();
        } else {
          hitsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .clarifai.api.Hit hits = 3 [(.clarifai.api.utils.cl_show_if_empty) = true];
       */
      public Builder addHits(
          clarifai2.internal.grpc.api.Search.Hit.Builder builderForValue) {
        if (hitsBuilder_ == null) {
          ensureHitsIsMutable();
          hits_.add(builderForValue.build());
          onChanged();
        } else {
          hitsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .clarifai.api.Hit hits = 3 [(.clarifai.api.utils.cl_show_if_empty) = true];
       */
      public Builder addHits(
          int index, clarifai2.internal.grpc.api.Search.Hit.Builder builderForValue) {
        if (hitsBuilder_ == null) {
          ensureHitsIsMutable();
          hits_.add(index, builderForValue.build());
          onChanged();
        } else {
          hitsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .clarifai.api.Hit hits = 3 [(.clarifai.api.utils.cl_show_if_empty) = true];
       */
      public Builder addAllHits(
          java.lang.Iterable values) {
        if (hitsBuilder_ == null) {
          ensureHitsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, hits_);
          onChanged();
        } else {
          hitsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * repeated .clarifai.api.Hit hits = 3 [(.clarifai.api.utils.cl_show_if_empty) = true];
       */
      public Builder clearHits() {
        if (hitsBuilder_ == null) {
          hits_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000004);
          onChanged();
        } else {
          hitsBuilder_.clear();
        }
        return this;
      }
      /**
       * repeated .clarifai.api.Hit hits = 3 [(.clarifai.api.utils.cl_show_if_empty) = true];
       */
      public Builder removeHits(int index) {
        if (hitsBuilder_ == null) {
          ensureHitsIsMutable();
          hits_.remove(index);
          onChanged();
        } else {
          hitsBuilder_.remove(index);
        }
        return this;
      }
      /**
       * repeated .clarifai.api.Hit hits = 3 [(.clarifai.api.utils.cl_show_if_empty) = true];
       */
      public clarifai2.internal.grpc.api.Search.Hit.Builder getHitsBuilder(
          int index) {
        return getHitsFieldBuilder().getBuilder(index);
      }
      /**
       * repeated .clarifai.api.Hit hits = 3 [(.clarifai.api.utils.cl_show_if_empty) = true];
       */
      public clarifai2.internal.grpc.api.Search.HitOrBuilder getHitsOrBuilder(
          int index) {
        if (hitsBuilder_ == null) {
          return hits_.get(index);  } else {
          return hitsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * repeated .clarifai.api.Hit hits = 3 [(.clarifai.api.utils.cl_show_if_empty) = true];
       */
      public java.util.List 
           getHitsOrBuilderList() {
        if (hitsBuilder_ != null) {
          return hitsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(hits_);
        }
      }
      /**
       * repeated .clarifai.api.Hit hits = 3 [(.clarifai.api.utils.cl_show_if_empty) = true];
       */
      public clarifai2.internal.grpc.api.Search.Hit.Builder addHitsBuilder() {
        return getHitsFieldBuilder().addBuilder(
            clarifai2.internal.grpc.api.Search.Hit.getDefaultInstance());
      }
      /**
       * repeated .clarifai.api.Hit hits = 3 [(.clarifai.api.utils.cl_show_if_empty) = true];
       */
      public clarifai2.internal.grpc.api.Search.Hit.Builder addHitsBuilder(
          int index) {
        return getHitsFieldBuilder().addBuilder(
            index, clarifai2.internal.grpc.api.Search.Hit.getDefaultInstance());
      }
      /**
       * repeated .clarifai.api.Hit hits = 3 [(.clarifai.api.utils.cl_show_if_empty) = true];
       */
      public java.util.List 
           getHitsBuilderList() {
        return getHitsFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          clarifai2.internal.grpc.api.Search.Hit, clarifai2.internal.grpc.api.Search.Hit.Builder, clarifai2.internal.grpc.api.Search.HitOrBuilder> 
          getHitsFieldBuilder() {
        if (hitsBuilder_ == null) {
          hitsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              clarifai2.internal.grpc.api.Search.Hit, clarifai2.internal.grpc.api.Search.Hit.Builder, clarifai2.internal.grpc.api.Search.HitOrBuilder>(
                  hits_,
                  ((bitField0_ & 0x00000004) == 0x00000004),
                  getParentForChildren(),
                  isClean());
          hits_ = null;
        }
        return hitsBuilder_;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFieldsProto3(unknownFields);
      }

      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:clarifai.api.MultiSearchResponse)
    }

    // @@protoc_insertion_point(class_scope:clarifai.api.MultiSearchResponse)
    private static final clarifai2.internal.grpc.api.Search.MultiSearchResponse DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new clarifai2.internal.grpc.api.Search.MultiSearchResponse();
    }

    public static clarifai2.internal.grpc.api.Search.MultiSearchResponse getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser
        PARSER = new com.google.protobuf.AbstractParser() {
      public MultiSearchResponse parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new MultiSearchResponse(input, extensionRegistry);
      }
    };

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

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

    public clarifai2.internal.grpc.api.Search.MultiSearchResponse getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_clarifai_api_Hit_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_clarifai_api_Hit_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_clarifai_api_And_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_clarifai_api_And_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_clarifai_api_Query_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_clarifai_api_Query_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_clarifai_api_PostSearchesRequest_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_clarifai_api_PostSearchesRequest_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_clarifai_api_PostSearchFeedbackRequest_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_clarifai_api_PostSearchFeedbackRequest_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_clarifai_api_MultiSearchResponse_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_clarifai_api_MultiSearchResponse_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\037proto/clarifai/api/search.proto\022\014clari" +
      "fai.api\032\037proto/clarifai/api/common.proto" +
      "\032\036proto/clarifai/api/input.proto\032\037proto/" +
      "clarifai/api/output.proto\032&proto/clarifa" +
      "i/api/status/status.proto\032)proto/clarifa" +
      "i/api/utils/extensions.proto\0320proto/clar" +
      "ifai/utils/pagination/pagination.proto\">" +
      "\n\003Hit\022\023\n\005score\030\001 \001(\002B\004\200\265\030\001\022\"\n\005input\030\002 \001(" +
      "\0132\023.clarifai.api.Input\"_\n\003And\022\"\n\005input\030\001" +
      " \001(\0132\023.clarifai.api.Input\022$\n\006output\030\002 \001(" +
      "\0132\024.clarifai.api.Output\022\016\n\006negate\030\003 \001(\010\"" +
      ":\n\005Query\022\037\n\004ands\030\001 \003(\0132\021.clarifai.api.An" +
      "d\022\020\n\010language\030\002 \001(\t\"\255\001\n\023PostSearchesRequ" +
      "est\022/\n\013user_app_id\030\001 \001(\0132\032.clarifai.api." +
      "UserAppIDSet\022\"\n\005query\030\002 \001(\0132\023.clarifai.a" +
      "pi.Query\022,\n\npagination\030\003 \001(\0132\030.clarifai." +
      "api.Pagination\022\023\n\013brute_force\030\004 \001(\010\"p\n\031P" +
      "ostSearchFeedbackRequest\022/\n\013user_app_id\030" +
      "\001 \001(\0132\032.clarifai.api.UserAppIDSet\022\"\n\005inp" +
      "ut\030\002 \001(\0132\023.clarifai.api.Input\"u\n\023MultiSe" +
      "archResponse\022+\n\006status\030\001 \001(\0132\033.clarifai." +
      "api.status.Status\022\n\n\002id\030\002 \001(\t\022%\n\004hits\030\003 " +
      "\003(\0132\021.clarifai.api.HitB\004\200\265\030\001BA\n\033clarifai" +
      "2.internal.grpc.apiZ\003api\242\002\004CAIP\302\002\001_\312\002\021Cl" +
      "arifai\\Internalb\006proto3"
    };
    com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner =
        new com.google.protobuf.Descriptors.FileDescriptor.    InternalDescriptorAssigner() {
          public com.google.protobuf.ExtensionRegistry assignDescriptors(
              com.google.protobuf.Descriptors.FileDescriptor root) {
            descriptor = root;
            return null;
          }
        };
    com.google.protobuf.Descriptors.FileDescriptor
      .internalBuildGeneratedFileFrom(descriptorData,
        new com.google.protobuf.Descriptors.FileDescriptor[] {
          clarifai2.internal.grpc.api.Common.getDescriptor(),
          clarifai2.internal.grpc.api.InputOuterClass.getDescriptor(),
          clarifai2.internal.grpc.api.OutputOuterClass.getDescriptor(),
          clarifai2.internal.grpc.api.status.StatusOuterClass.getDescriptor(),
          clarifai2.internal.grpc.api.utils.Extensions.getDescriptor(),
          clarifai2.internal.grpc.api.PaginationOuterClass.getDescriptor(),
        }, assigner);
    internal_static_clarifai_api_Hit_descriptor =
      getDescriptor().getMessageTypes().get(0);
    internal_static_clarifai_api_Hit_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_clarifai_api_Hit_descriptor,
        new java.lang.String[] { "Score", "Input", });
    internal_static_clarifai_api_And_descriptor =
      getDescriptor().getMessageTypes().get(1);
    internal_static_clarifai_api_And_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_clarifai_api_And_descriptor,
        new java.lang.String[] { "Input", "Output", "Negate", });
    internal_static_clarifai_api_Query_descriptor =
      getDescriptor().getMessageTypes().get(2);
    internal_static_clarifai_api_Query_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_clarifai_api_Query_descriptor,
        new java.lang.String[] { "Ands", "Language", });
    internal_static_clarifai_api_PostSearchesRequest_descriptor =
      getDescriptor().getMessageTypes().get(3);
    internal_static_clarifai_api_PostSearchesRequest_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_clarifai_api_PostSearchesRequest_descriptor,
        new java.lang.String[] { "UserAppId", "Query", "Pagination", "BruteForce", });
    internal_static_clarifai_api_PostSearchFeedbackRequest_descriptor =
      getDescriptor().getMessageTypes().get(4);
    internal_static_clarifai_api_PostSearchFeedbackRequest_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_clarifai_api_PostSearchFeedbackRequest_descriptor,
        new java.lang.String[] { "UserAppId", "Input", });
    internal_static_clarifai_api_MultiSearchResponse_descriptor =
      getDescriptor().getMessageTypes().get(5);
    internal_static_clarifai_api_MultiSearchResponse_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_clarifai_api_MultiSearchResponse_descriptor,
        new java.lang.String[] { "Status", "Id", "Hits", });
    com.google.protobuf.ExtensionRegistry registry =
        com.google.protobuf.ExtensionRegistry.newInstance();
    registry.add(clarifai2.internal.grpc.api.utils.Extensions.clShowIfEmpty);
    com.google.protobuf.Descriptors.FileDescriptor
        .internalUpdateFileDescriptor(descriptor, registry);
    clarifai2.internal.grpc.api.Common.getDescriptor();
    clarifai2.internal.grpc.api.InputOuterClass.getDescriptor();
    clarifai2.internal.grpc.api.OutputOuterClass.getDescriptor();
    clarifai2.internal.grpc.api.status.StatusOuterClass.getDescriptor();
    clarifai2.internal.grpc.api.utils.Extensions.getDescriptor();
    clarifai2.internal.grpc.api.PaginationOuterClass.getDescriptor();
  }

  // @@protoc_insertion_point(outer_class_scope)
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy