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

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

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

package clarifai2.internal.grpc.api;

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

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

    /**
     * string name = 2;
     */
    java.lang.String getName();
    /**
     * string name = 2;
     */
    com.google.protobuf.ByteString
        getNameBytes();

    /**
     * .google.protobuf.Timestamp created_at = 3;
     */
    boolean hasCreatedAt();
    /**
     * .google.protobuf.Timestamp created_at = 3;
     */
    com.google.protobuf.Timestamp getCreatedAt();
    /**
     * .google.protobuf.Timestamp created_at = 3;
     */
    com.google.protobuf.TimestampOrBuilder getCreatedAtOrBuilder();

    /**
     * string app_id = 4 [(.clarifai.api.utils.cl_show_if_empty) = true];
     */
    java.lang.String getAppId();
    /**
     * string app_id = 4 [(.clarifai.api.utils.cl_show_if_empty) = true];
     */
    com.google.protobuf.ByteString
        getAppIdBytes();

    /**
     * .clarifai.api.OutputInfo output_info = 5;
     */
    boolean hasOutputInfo();
    /**
     * .clarifai.api.OutputInfo output_info = 5;
     */
    clarifai2.internal.grpc.api.ModelOuterClass.OutputInfo getOutputInfo();
    /**
     * .clarifai.api.OutputInfo output_info = 5;
     */
    clarifai2.internal.grpc.api.ModelOuterClass.OutputInfoOrBuilder getOutputInfoOrBuilder();

    /**
     * .clarifai.api.ModelVersion model_version = 6;
     */
    boolean hasModelVersion();
    /**
     * .clarifai.api.ModelVersion model_version = 6;
     */
    clarifai2.internal.grpc.api.ModelVersionOuterClass.ModelVersion getModelVersion();
    /**
     * .clarifai.api.ModelVersion model_version = 6;
     */
    clarifai2.internal.grpc.api.ModelVersionOuterClass.ModelVersionOrBuilder getModelVersionOrBuilder();

    /**
     * string display_name = 7;
     */
    java.lang.String getDisplayName();
    /**
     * string display_name = 7;
     */
    com.google.protobuf.ByteString
        getDisplayNameBytes();
  }
  /**
   * Protobuf type {@code clarifai.api.Model}
   */
  public  static final class Model extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:clarifai.api.Model)
      ModelOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use Model.newBuilder() to construct.
    private Model(com.google.protobuf.GeneratedMessageV3.Builder builder) {
      super(builder);
    }
    private Model() {
      id_ = "";
      name_ = "";
      appId_ = "";
      displayName_ = "";
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private Model(
        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: {
              java.lang.String s = input.readStringRequireUtf8();

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

              name_ = s;
              break;
            }
            case 26: {
              com.google.protobuf.Timestamp.Builder subBuilder = null;
              if (createdAt_ != null) {
                subBuilder = createdAt_.toBuilder();
              }
              createdAt_ = input.readMessage(com.google.protobuf.Timestamp.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(createdAt_);
                createdAt_ = subBuilder.buildPartial();
              }

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

              appId_ = s;
              break;
            }
            case 42: {
              clarifai2.internal.grpc.api.ModelOuterClass.OutputInfo.Builder subBuilder = null;
              if (outputInfo_ != null) {
                subBuilder = outputInfo_.toBuilder();
              }
              outputInfo_ = input.readMessage(clarifai2.internal.grpc.api.ModelOuterClass.OutputInfo.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(outputInfo_);
                outputInfo_ = subBuilder.buildPartial();
              }

              break;
            }
            case 50: {
              clarifai2.internal.grpc.api.ModelVersionOuterClass.ModelVersion.Builder subBuilder = null;
              if (modelVersion_ != null) {
                subBuilder = modelVersion_.toBuilder();
              }
              modelVersion_ = input.readMessage(clarifai2.internal.grpc.api.ModelVersionOuterClass.ModelVersion.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(modelVersion_);
                modelVersion_ = subBuilder.buildPartial();
              }

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

              displayName_ = 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 {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return clarifai2.internal.grpc.api.ModelOuterClass.internal_static_clarifai_api_Model_descriptor;
    }

    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return clarifai2.internal.grpc.api.ModelOuterClass.internal_static_clarifai_api_Model_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              clarifai2.internal.grpc.api.ModelOuterClass.Model.class, clarifai2.internal.grpc.api.ModelOuterClass.Model.Builder.class);
    }

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

    public static final int CREATED_AT_FIELD_NUMBER = 3;
    private com.google.protobuf.Timestamp createdAt_;
    /**
     * .google.protobuf.Timestamp created_at = 3;
     */
    public boolean hasCreatedAt() {
      return createdAt_ != null;
    }
    /**
     * .google.protobuf.Timestamp created_at = 3;
     */
    public com.google.protobuf.Timestamp getCreatedAt() {
      return createdAt_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : createdAt_;
    }
    /**
     * .google.protobuf.Timestamp created_at = 3;
     */
    public com.google.protobuf.TimestampOrBuilder getCreatedAtOrBuilder() {
      return getCreatedAt();
    }

    public static final int APP_ID_FIELD_NUMBER = 4;
    private volatile java.lang.Object appId_;
    /**
     * string app_id = 4 [(.clarifai.api.utils.cl_show_if_empty) = true];
     */
    public java.lang.String getAppId() {
      java.lang.Object ref = appId_;
      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();
        appId_ = s;
        return s;
      }
    }
    /**
     * string app_id = 4 [(.clarifai.api.utils.cl_show_if_empty) = true];
     */
    public com.google.protobuf.ByteString
        getAppIdBytes() {
      java.lang.Object ref = appId_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        appId_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int OUTPUT_INFO_FIELD_NUMBER = 5;
    private clarifai2.internal.grpc.api.ModelOuterClass.OutputInfo outputInfo_;
    /**
     * .clarifai.api.OutputInfo output_info = 5;
     */
    public boolean hasOutputInfo() {
      return outputInfo_ != null;
    }
    /**
     * .clarifai.api.OutputInfo output_info = 5;
     */
    public clarifai2.internal.grpc.api.ModelOuterClass.OutputInfo getOutputInfo() {
      return outputInfo_ == null ? clarifai2.internal.grpc.api.ModelOuterClass.OutputInfo.getDefaultInstance() : outputInfo_;
    }
    /**
     * .clarifai.api.OutputInfo output_info = 5;
     */
    public clarifai2.internal.grpc.api.ModelOuterClass.OutputInfoOrBuilder getOutputInfoOrBuilder() {
      return getOutputInfo();
    }

    public static final int MODEL_VERSION_FIELD_NUMBER = 6;
    private clarifai2.internal.grpc.api.ModelVersionOuterClass.ModelVersion modelVersion_;
    /**
     * .clarifai.api.ModelVersion model_version = 6;
     */
    public boolean hasModelVersion() {
      return modelVersion_ != null;
    }
    /**
     * .clarifai.api.ModelVersion model_version = 6;
     */
    public clarifai2.internal.grpc.api.ModelVersionOuterClass.ModelVersion getModelVersion() {
      return modelVersion_ == null ? clarifai2.internal.grpc.api.ModelVersionOuterClass.ModelVersion.getDefaultInstance() : modelVersion_;
    }
    /**
     * .clarifai.api.ModelVersion model_version = 6;
     */
    public clarifai2.internal.grpc.api.ModelVersionOuterClass.ModelVersionOrBuilder getModelVersionOrBuilder() {
      return getModelVersion();
    }

    public static final int DISPLAY_NAME_FIELD_NUMBER = 7;
    private volatile java.lang.Object displayName_;
    /**
     * string display_name = 7;
     */
    public java.lang.String getDisplayName() {
      java.lang.Object ref = displayName_;
      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();
        displayName_ = s;
        return s;
      }
    }
    /**
     * string display_name = 7;
     */
    public com.google.protobuf.ByteString
        getDisplayNameBytes() {
      java.lang.Object ref = displayName_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        displayName_ = 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 {
      if (!getIdBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, id_);
      }
      if (!getNameBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, name_);
      }
      if (createdAt_ != null) {
        output.writeMessage(3, getCreatedAt());
      }
      if (!getAppIdBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 4, appId_);
      }
      if (outputInfo_ != null) {
        output.writeMessage(5, getOutputInfo());
      }
      if (modelVersion_ != null) {
        output.writeMessage(6, getModelVersion());
      }
      if (!getDisplayNameBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 7, displayName_);
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      if (!getIdBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, id_);
      }
      if (!getNameBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, name_);
      }
      if (createdAt_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, getCreatedAt());
      }
      if (!getAppIdBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, appId_);
      }
      if (outputInfo_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(5, getOutputInfo());
      }
      if (modelVersion_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(6, getModelVersion());
      }
      if (!getDisplayNameBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(7, displayName_);
      }
      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.ModelOuterClass.Model)) {
        return super.equals(obj);
      }
      clarifai2.internal.grpc.api.ModelOuterClass.Model other = (clarifai2.internal.grpc.api.ModelOuterClass.Model) obj;

      boolean result = true;
      result = result && getId()
          .equals(other.getId());
      result = result && getName()
          .equals(other.getName());
      result = result && (hasCreatedAt() == other.hasCreatedAt());
      if (hasCreatedAt()) {
        result = result && getCreatedAt()
            .equals(other.getCreatedAt());
      }
      result = result && getAppId()
          .equals(other.getAppId());
      result = result && (hasOutputInfo() == other.hasOutputInfo());
      if (hasOutputInfo()) {
        result = result && getOutputInfo()
            .equals(other.getOutputInfo());
      }
      result = result && (hasModelVersion() == other.hasModelVersion());
      if (hasModelVersion()) {
        result = result && getModelVersion()
            .equals(other.getModelVersion());
      }
      result = result && getDisplayName()
          .equals(other.getDisplayName());
      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) + ID_FIELD_NUMBER;
      hash = (53 * hash) + getId().hashCode();
      hash = (37 * hash) + NAME_FIELD_NUMBER;
      hash = (53 * hash) + getName().hashCode();
      if (hasCreatedAt()) {
        hash = (37 * hash) + CREATED_AT_FIELD_NUMBER;
        hash = (53 * hash) + getCreatedAt().hashCode();
      }
      hash = (37 * hash) + APP_ID_FIELD_NUMBER;
      hash = (53 * hash) + getAppId().hashCode();
      if (hasOutputInfo()) {
        hash = (37 * hash) + OUTPUT_INFO_FIELD_NUMBER;
        hash = (53 * hash) + getOutputInfo().hashCode();
      }
      if (hasModelVersion()) {
        hash = (37 * hash) + MODEL_VERSION_FIELD_NUMBER;
        hash = (53 * hash) + getModelVersion().hashCode();
      }
      hash = (37 * hash) + DISPLAY_NAME_FIELD_NUMBER;
      hash = (53 * hash) + getDisplayName().hashCode();
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static clarifai2.internal.grpc.api.ModelOuterClass.Model parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static clarifai2.internal.grpc.api.ModelOuterClass.Model 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.ModelOuterClass.Model parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static clarifai2.internal.grpc.api.ModelOuterClass.Model 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.ModelOuterClass.Model parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static clarifai2.internal.grpc.api.ModelOuterClass.Model parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static clarifai2.internal.grpc.api.ModelOuterClass.Model parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static clarifai2.internal.grpc.api.ModelOuterClass.Model 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.ModelOuterClass.Model parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static clarifai2.internal.grpc.api.ModelOuterClass.Model 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.ModelOuterClass.Model parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static clarifai2.internal.grpc.api.ModelOuterClass.Model 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.ModelOuterClass.Model 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.Model}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:clarifai.api.Model)
        clarifai2.internal.grpc.api.ModelOuterClass.ModelOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return clarifai2.internal.grpc.api.ModelOuterClass.internal_static_clarifai_api_Model_descriptor;
      }

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return clarifai2.internal.grpc.api.ModelOuterClass.internal_static_clarifai_api_Model_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                clarifai2.internal.grpc.api.ModelOuterClass.Model.class, clarifai2.internal.grpc.api.ModelOuterClass.Model.Builder.class);
      }

      // Construct using clarifai2.internal.grpc.api.ModelOuterClass.Model.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();
        id_ = "";

        name_ = "";

        if (createdAtBuilder_ == null) {
          createdAt_ = null;
        } else {
          createdAt_ = null;
          createdAtBuilder_ = null;
        }
        appId_ = "";

        if (outputInfoBuilder_ == null) {
          outputInfo_ = null;
        } else {
          outputInfo_ = null;
          outputInfoBuilder_ = null;
        }
        if (modelVersionBuilder_ == null) {
          modelVersion_ = null;
        } else {
          modelVersion_ = null;
          modelVersionBuilder_ = null;
        }
        displayName_ = "";

        return this;
      }

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

      public clarifai2.internal.grpc.api.ModelOuterClass.Model getDefaultInstanceForType() {
        return clarifai2.internal.grpc.api.ModelOuterClass.Model.getDefaultInstance();
      }

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

      public clarifai2.internal.grpc.api.ModelOuterClass.Model buildPartial() {
        clarifai2.internal.grpc.api.ModelOuterClass.Model result = new clarifai2.internal.grpc.api.ModelOuterClass.Model(this);
        result.id_ = id_;
        result.name_ = name_;
        if (createdAtBuilder_ == null) {
          result.createdAt_ = createdAt_;
        } else {
          result.createdAt_ = createdAtBuilder_.build();
        }
        result.appId_ = appId_;
        if (outputInfoBuilder_ == null) {
          result.outputInfo_ = outputInfo_;
        } else {
          result.outputInfo_ = outputInfoBuilder_.build();
        }
        if (modelVersionBuilder_ == null) {
          result.modelVersion_ = modelVersion_;
        } else {
          result.modelVersion_ = modelVersionBuilder_.build();
        }
        result.displayName_ = displayName_;
        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.ModelOuterClass.Model) {
          return mergeFrom((clarifai2.internal.grpc.api.ModelOuterClass.Model)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(clarifai2.internal.grpc.api.ModelOuterClass.Model other) {
        if (other == clarifai2.internal.grpc.api.ModelOuterClass.Model.getDefaultInstance()) return this;
        if (!other.getId().isEmpty()) {
          id_ = other.id_;
          onChanged();
        }
        if (!other.getName().isEmpty()) {
          name_ = other.name_;
          onChanged();
        }
        if (other.hasCreatedAt()) {
          mergeCreatedAt(other.getCreatedAt());
        }
        if (!other.getAppId().isEmpty()) {
          appId_ = other.appId_;
          onChanged();
        }
        if (other.hasOutputInfo()) {
          mergeOutputInfo(other.getOutputInfo());
        }
        if (other.hasModelVersion()) {
          mergeModelVersion(other.getModelVersion());
        }
        if (!other.getDisplayName().isEmpty()) {
          displayName_ = other.displayName_;
          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.ModelOuterClass.Model parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (clarifai2.internal.grpc.api.ModelOuterClass.Model) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private java.lang.Object id_ = "";
      /**
       * string id = 1;
       */
      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 = 1;
       */
      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 = 1;
       */
      public Builder setId(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        id_ = value;
        onChanged();
        return this;
      }
      /**
       * string id = 1;
       */
      public Builder clearId() {
        
        id_ = getDefaultInstance().getId();
        onChanged();
        return this;
      }
      /**
       * string id = 1;
       */
      public Builder setIdBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        id_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object name_ = "";
      /**
       * string name = 2;
       */
      public java.lang.String getName() {
        java.lang.Object ref = name_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          name_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * string name = 2;
       */
      public com.google.protobuf.ByteString
          getNameBytes() {
        java.lang.Object ref = name_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          name_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * string name = 2;
       */
      public Builder setName(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        name_ = value;
        onChanged();
        return this;
      }
      /**
       * string name = 2;
       */
      public Builder clearName() {
        
        name_ = getDefaultInstance().getName();
        onChanged();
        return this;
      }
      /**
       * string name = 2;
       */
      public Builder setNameBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        name_ = value;
        onChanged();
        return this;
      }

      private com.google.protobuf.Timestamp createdAt_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.protobuf.Timestamp, com.google.protobuf.Timestamp.Builder, com.google.protobuf.TimestampOrBuilder> createdAtBuilder_;
      /**
       * .google.protobuf.Timestamp created_at = 3;
       */
      public boolean hasCreatedAt() {
        return createdAtBuilder_ != null || createdAt_ != null;
      }
      /**
       * .google.protobuf.Timestamp created_at = 3;
       */
      public com.google.protobuf.Timestamp getCreatedAt() {
        if (createdAtBuilder_ == null) {
          return createdAt_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : createdAt_;
        } else {
          return createdAtBuilder_.getMessage();
        }
      }
      /**
       * .google.protobuf.Timestamp created_at = 3;
       */
      public Builder setCreatedAt(com.google.protobuf.Timestamp value) {
        if (createdAtBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          createdAt_ = value;
          onChanged();
        } else {
          createdAtBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * .google.protobuf.Timestamp created_at = 3;
       */
      public Builder setCreatedAt(
          com.google.protobuf.Timestamp.Builder builderForValue) {
        if (createdAtBuilder_ == null) {
          createdAt_ = builderForValue.build();
          onChanged();
        } else {
          createdAtBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * .google.protobuf.Timestamp created_at = 3;
       */
      public Builder mergeCreatedAt(com.google.protobuf.Timestamp value) {
        if (createdAtBuilder_ == null) {
          if (createdAt_ != null) {
            createdAt_ =
              com.google.protobuf.Timestamp.newBuilder(createdAt_).mergeFrom(value).buildPartial();
          } else {
            createdAt_ = value;
          }
          onChanged();
        } else {
          createdAtBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * .google.protobuf.Timestamp created_at = 3;
       */
      public Builder clearCreatedAt() {
        if (createdAtBuilder_ == null) {
          createdAt_ = null;
          onChanged();
        } else {
          createdAt_ = null;
          createdAtBuilder_ = null;
        }

        return this;
      }
      /**
       * .google.protobuf.Timestamp created_at = 3;
       */
      public com.google.protobuf.Timestamp.Builder getCreatedAtBuilder() {
        
        onChanged();
        return getCreatedAtFieldBuilder().getBuilder();
      }
      /**
       * .google.protobuf.Timestamp created_at = 3;
       */
      public com.google.protobuf.TimestampOrBuilder getCreatedAtOrBuilder() {
        if (createdAtBuilder_ != null) {
          return createdAtBuilder_.getMessageOrBuilder();
        } else {
          return createdAt_ == null ?
              com.google.protobuf.Timestamp.getDefaultInstance() : createdAt_;
        }
      }
      /**
       * .google.protobuf.Timestamp created_at = 3;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.protobuf.Timestamp, com.google.protobuf.Timestamp.Builder, com.google.protobuf.TimestampOrBuilder> 
          getCreatedAtFieldBuilder() {
        if (createdAtBuilder_ == null) {
          createdAtBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.google.protobuf.Timestamp, com.google.protobuf.Timestamp.Builder, com.google.protobuf.TimestampOrBuilder>(
                  getCreatedAt(),
                  getParentForChildren(),
                  isClean());
          createdAt_ = null;
        }
        return createdAtBuilder_;
      }

      private java.lang.Object appId_ = "";
      /**
       * string app_id = 4 [(.clarifai.api.utils.cl_show_if_empty) = true];
       */
      public java.lang.String getAppId() {
        java.lang.Object ref = appId_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          appId_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * string app_id = 4 [(.clarifai.api.utils.cl_show_if_empty) = true];
       */
      public com.google.protobuf.ByteString
          getAppIdBytes() {
        java.lang.Object ref = appId_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          appId_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * string app_id = 4 [(.clarifai.api.utils.cl_show_if_empty) = true];
       */
      public Builder setAppId(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        appId_ = value;
        onChanged();
        return this;
      }
      /**
       * string app_id = 4 [(.clarifai.api.utils.cl_show_if_empty) = true];
       */
      public Builder clearAppId() {
        
        appId_ = getDefaultInstance().getAppId();
        onChanged();
        return this;
      }
      /**
       * string app_id = 4 [(.clarifai.api.utils.cl_show_if_empty) = true];
       */
      public Builder setAppIdBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        appId_ = value;
        onChanged();
        return this;
      }

      private clarifai2.internal.grpc.api.ModelOuterClass.OutputInfo outputInfo_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
          clarifai2.internal.grpc.api.ModelOuterClass.OutputInfo, clarifai2.internal.grpc.api.ModelOuterClass.OutputInfo.Builder, clarifai2.internal.grpc.api.ModelOuterClass.OutputInfoOrBuilder> outputInfoBuilder_;
      /**
       * .clarifai.api.OutputInfo output_info = 5;
       */
      public boolean hasOutputInfo() {
        return outputInfoBuilder_ != null || outputInfo_ != null;
      }
      /**
       * .clarifai.api.OutputInfo output_info = 5;
       */
      public clarifai2.internal.grpc.api.ModelOuterClass.OutputInfo getOutputInfo() {
        if (outputInfoBuilder_ == null) {
          return outputInfo_ == null ? clarifai2.internal.grpc.api.ModelOuterClass.OutputInfo.getDefaultInstance() : outputInfo_;
        } else {
          return outputInfoBuilder_.getMessage();
        }
      }
      /**
       * .clarifai.api.OutputInfo output_info = 5;
       */
      public Builder setOutputInfo(clarifai2.internal.grpc.api.ModelOuterClass.OutputInfo value) {
        if (outputInfoBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          outputInfo_ = value;
          onChanged();
        } else {
          outputInfoBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * .clarifai.api.OutputInfo output_info = 5;
       */
      public Builder setOutputInfo(
          clarifai2.internal.grpc.api.ModelOuterClass.OutputInfo.Builder builderForValue) {
        if (outputInfoBuilder_ == null) {
          outputInfo_ = builderForValue.build();
          onChanged();
        } else {
          outputInfoBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * .clarifai.api.OutputInfo output_info = 5;
       */
      public Builder mergeOutputInfo(clarifai2.internal.grpc.api.ModelOuterClass.OutputInfo value) {
        if (outputInfoBuilder_ == null) {
          if (outputInfo_ != null) {
            outputInfo_ =
              clarifai2.internal.grpc.api.ModelOuterClass.OutputInfo.newBuilder(outputInfo_).mergeFrom(value).buildPartial();
          } else {
            outputInfo_ = value;
          }
          onChanged();
        } else {
          outputInfoBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * .clarifai.api.OutputInfo output_info = 5;
       */
      public Builder clearOutputInfo() {
        if (outputInfoBuilder_ == null) {
          outputInfo_ = null;
          onChanged();
        } else {
          outputInfo_ = null;
          outputInfoBuilder_ = null;
        }

        return this;
      }
      /**
       * .clarifai.api.OutputInfo output_info = 5;
       */
      public clarifai2.internal.grpc.api.ModelOuterClass.OutputInfo.Builder getOutputInfoBuilder() {
        
        onChanged();
        return getOutputInfoFieldBuilder().getBuilder();
      }
      /**
       * .clarifai.api.OutputInfo output_info = 5;
       */
      public clarifai2.internal.grpc.api.ModelOuterClass.OutputInfoOrBuilder getOutputInfoOrBuilder() {
        if (outputInfoBuilder_ != null) {
          return outputInfoBuilder_.getMessageOrBuilder();
        } else {
          return outputInfo_ == null ?
              clarifai2.internal.grpc.api.ModelOuterClass.OutputInfo.getDefaultInstance() : outputInfo_;
        }
      }
      /**
       * .clarifai.api.OutputInfo output_info = 5;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          clarifai2.internal.grpc.api.ModelOuterClass.OutputInfo, clarifai2.internal.grpc.api.ModelOuterClass.OutputInfo.Builder, clarifai2.internal.grpc.api.ModelOuterClass.OutputInfoOrBuilder> 
          getOutputInfoFieldBuilder() {
        if (outputInfoBuilder_ == null) {
          outputInfoBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              clarifai2.internal.grpc.api.ModelOuterClass.OutputInfo, clarifai2.internal.grpc.api.ModelOuterClass.OutputInfo.Builder, clarifai2.internal.grpc.api.ModelOuterClass.OutputInfoOrBuilder>(
                  getOutputInfo(),
                  getParentForChildren(),
                  isClean());
          outputInfo_ = null;
        }
        return outputInfoBuilder_;
      }

      private clarifai2.internal.grpc.api.ModelVersionOuterClass.ModelVersion modelVersion_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
          clarifai2.internal.grpc.api.ModelVersionOuterClass.ModelVersion, clarifai2.internal.grpc.api.ModelVersionOuterClass.ModelVersion.Builder, clarifai2.internal.grpc.api.ModelVersionOuterClass.ModelVersionOrBuilder> modelVersionBuilder_;
      /**
       * .clarifai.api.ModelVersion model_version = 6;
       */
      public boolean hasModelVersion() {
        return modelVersionBuilder_ != null || modelVersion_ != null;
      }
      /**
       * .clarifai.api.ModelVersion model_version = 6;
       */
      public clarifai2.internal.grpc.api.ModelVersionOuterClass.ModelVersion getModelVersion() {
        if (modelVersionBuilder_ == null) {
          return modelVersion_ == null ? clarifai2.internal.grpc.api.ModelVersionOuterClass.ModelVersion.getDefaultInstance() : modelVersion_;
        } else {
          return modelVersionBuilder_.getMessage();
        }
      }
      /**
       * .clarifai.api.ModelVersion model_version = 6;
       */
      public Builder setModelVersion(clarifai2.internal.grpc.api.ModelVersionOuterClass.ModelVersion value) {
        if (modelVersionBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          modelVersion_ = value;
          onChanged();
        } else {
          modelVersionBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * .clarifai.api.ModelVersion model_version = 6;
       */
      public Builder setModelVersion(
          clarifai2.internal.grpc.api.ModelVersionOuterClass.ModelVersion.Builder builderForValue) {
        if (modelVersionBuilder_ == null) {
          modelVersion_ = builderForValue.build();
          onChanged();
        } else {
          modelVersionBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * .clarifai.api.ModelVersion model_version = 6;
       */
      public Builder mergeModelVersion(clarifai2.internal.grpc.api.ModelVersionOuterClass.ModelVersion value) {
        if (modelVersionBuilder_ == null) {
          if (modelVersion_ != null) {
            modelVersion_ =
              clarifai2.internal.grpc.api.ModelVersionOuterClass.ModelVersion.newBuilder(modelVersion_).mergeFrom(value).buildPartial();
          } else {
            modelVersion_ = value;
          }
          onChanged();
        } else {
          modelVersionBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * .clarifai.api.ModelVersion model_version = 6;
       */
      public Builder clearModelVersion() {
        if (modelVersionBuilder_ == null) {
          modelVersion_ = null;
          onChanged();
        } else {
          modelVersion_ = null;
          modelVersionBuilder_ = null;
        }

        return this;
      }
      /**
       * .clarifai.api.ModelVersion model_version = 6;
       */
      public clarifai2.internal.grpc.api.ModelVersionOuterClass.ModelVersion.Builder getModelVersionBuilder() {
        
        onChanged();
        return getModelVersionFieldBuilder().getBuilder();
      }
      /**
       * .clarifai.api.ModelVersion model_version = 6;
       */
      public clarifai2.internal.grpc.api.ModelVersionOuterClass.ModelVersionOrBuilder getModelVersionOrBuilder() {
        if (modelVersionBuilder_ != null) {
          return modelVersionBuilder_.getMessageOrBuilder();
        } else {
          return modelVersion_ == null ?
              clarifai2.internal.grpc.api.ModelVersionOuterClass.ModelVersion.getDefaultInstance() : modelVersion_;
        }
      }
      /**
       * .clarifai.api.ModelVersion model_version = 6;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          clarifai2.internal.grpc.api.ModelVersionOuterClass.ModelVersion, clarifai2.internal.grpc.api.ModelVersionOuterClass.ModelVersion.Builder, clarifai2.internal.grpc.api.ModelVersionOuterClass.ModelVersionOrBuilder> 
          getModelVersionFieldBuilder() {
        if (modelVersionBuilder_ == null) {
          modelVersionBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              clarifai2.internal.grpc.api.ModelVersionOuterClass.ModelVersion, clarifai2.internal.grpc.api.ModelVersionOuterClass.ModelVersion.Builder, clarifai2.internal.grpc.api.ModelVersionOuterClass.ModelVersionOrBuilder>(
                  getModelVersion(),
                  getParentForChildren(),
                  isClean());
          modelVersion_ = null;
        }
        return modelVersionBuilder_;
      }

      private java.lang.Object displayName_ = "";
      /**
       * string display_name = 7;
       */
      public java.lang.String getDisplayName() {
        java.lang.Object ref = displayName_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          displayName_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * string display_name = 7;
       */
      public com.google.protobuf.ByteString
          getDisplayNameBytes() {
        java.lang.Object ref = displayName_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          displayName_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * string display_name = 7;
       */
      public Builder setDisplayName(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        displayName_ = value;
        onChanged();
        return this;
      }
      /**
       * string display_name = 7;
       */
      public Builder clearDisplayName() {
        
        displayName_ = getDefaultInstance().getDisplayName();
        onChanged();
        return this;
      }
      /**
       * string display_name = 7;
       */
      public Builder setDisplayNameBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        displayName_ = 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.Model)
    }

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

    public static clarifai2.internal.grpc.api.ModelOuterClass.Model getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser
        PARSER = new com.google.protobuf.AbstractParser() {
      public Model parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new Model(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.ModelOuterClass.Model getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

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

    /**
     * .clarifai.api.Data data = 1;
     */
    boolean hasData();
    /**
     * .clarifai.api.Data data = 1;
     */
    clarifai2.internal.grpc.api.DataOuterClass.Data getData();
    /**
     * .clarifai.api.Data data = 1;
     */
    clarifai2.internal.grpc.api.DataOuterClass.DataOrBuilder getDataOrBuilder();

    /**
     * .clarifai.api.OutputConfig output_config = 2;
     */
    boolean hasOutputConfig();
    /**
     * .clarifai.api.OutputConfig output_config = 2;
     */
    clarifai2.internal.grpc.api.ModelOuterClass.OutputConfig getOutputConfig();
    /**
     * .clarifai.api.OutputConfig output_config = 2;
     */
    clarifai2.internal.grpc.api.ModelOuterClass.OutputConfigOrBuilder getOutputConfigOrBuilder();

    /**
     * string message = 3;
     */
    java.lang.String getMessage();
    /**
     * string message = 3;
     */
    com.google.protobuf.ByteString
        getMessageBytes();

    /**
     * string type = 4;
     */
    java.lang.String getType();
    /**
     * string type = 4;
     */
    com.google.protobuf.ByteString
        getTypeBytes();

    /**
     * string type_ext = 5;
     */
    java.lang.String getTypeExt();
    /**
     * string type_ext = 5;
     */
    com.google.protobuf.ByteString
        getTypeExtBytes();
  }
  /**
   * Protobuf type {@code clarifai.api.OutputInfo}
   */
  public  static final class OutputInfo extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:clarifai.api.OutputInfo)
      OutputInfoOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use OutputInfo.newBuilder() to construct.
    private OutputInfo(com.google.protobuf.GeneratedMessageV3.Builder builder) {
      super(builder);
    }
    private OutputInfo() {
      message_ = "";
      type_ = "";
      typeExt_ = "";
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private OutputInfo(
        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.DataOuterClass.Data.Builder subBuilder = null;
              if (data_ != null) {
                subBuilder = data_.toBuilder();
              }
              data_ = input.readMessage(clarifai2.internal.grpc.api.DataOuterClass.Data.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(data_);
                data_ = subBuilder.buildPartial();
              }

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

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

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

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

              typeExt_ = 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 {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return clarifai2.internal.grpc.api.ModelOuterClass.internal_static_clarifai_api_OutputInfo_descriptor;
    }

    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return clarifai2.internal.grpc.api.ModelOuterClass.internal_static_clarifai_api_OutputInfo_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              clarifai2.internal.grpc.api.ModelOuterClass.OutputInfo.class, clarifai2.internal.grpc.api.ModelOuterClass.OutputInfo.Builder.class);
    }

    public static final int DATA_FIELD_NUMBER = 1;
    private clarifai2.internal.grpc.api.DataOuterClass.Data data_;
    /**
     * .clarifai.api.Data data = 1;
     */
    public boolean hasData() {
      return data_ != null;
    }
    /**
     * .clarifai.api.Data data = 1;
     */
    public clarifai2.internal.grpc.api.DataOuterClass.Data getData() {
      return data_ == null ? clarifai2.internal.grpc.api.DataOuterClass.Data.getDefaultInstance() : data_;
    }
    /**
     * .clarifai.api.Data data = 1;
     */
    public clarifai2.internal.grpc.api.DataOuterClass.DataOrBuilder getDataOrBuilder() {
      return getData();
    }

    public static final int OUTPUT_CONFIG_FIELD_NUMBER = 2;
    private clarifai2.internal.grpc.api.ModelOuterClass.OutputConfig outputConfig_;
    /**
     * .clarifai.api.OutputConfig output_config = 2;
     */
    public boolean hasOutputConfig() {
      return outputConfig_ != null;
    }
    /**
     * .clarifai.api.OutputConfig output_config = 2;
     */
    public clarifai2.internal.grpc.api.ModelOuterClass.OutputConfig getOutputConfig() {
      return outputConfig_ == null ? clarifai2.internal.grpc.api.ModelOuterClass.OutputConfig.getDefaultInstance() : outputConfig_;
    }
    /**
     * .clarifai.api.OutputConfig output_config = 2;
     */
    public clarifai2.internal.grpc.api.ModelOuterClass.OutputConfigOrBuilder getOutputConfigOrBuilder() {
      return getOutputConfig();
    }

    public static final int MESSAGE_FIELD_NUMBER = 3;
    private volatile java.lang.Object message_;
    /**
     * string message = 3;
     */
    public java.lang.String getMessage() {
      java.lang.Object ref = message_;
      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();
        message_ = s;
        return s;
      }
    }
    /**
     * string message = 3;
     */
    public com.google.protobuf.ByteString
        getMessageBytes() {
      java.lang.Object ref = message_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        message_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int TYPE_FIELD_NUMBER = 4;
    private volatile java.lang.Object type_;
    /**
     * string type = 4;
     */
    public java.lang.String getType() {
      java.lang.Object ref = type_;
      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();
        type_ = s;
        return s;
      }
    }
    /**
     * string type = 4;
     */
    public com.google.protobuf.ByteString
        getTypeBytes() {
      java.lang.Object ref = type_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        type_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int TYPE_EXT_FIELD_NUMBER = 5;
    private volatile java.lang.Object typeExt_;
    /**
     * string type_ext = 5;
     */
    public java.lang.String getTypeExt() {
      java.lang.Object ref = typeExt_;
      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();
        typeExt_ = s;
        return s;
      }
    }
    /**
     * string type_ext = 5;
     */
    public com.google.protobuf.ByteString
        getTypeExtBytes() {
      java.lang.Object ref = typeExt_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        typeExt_ = 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 {
      if (data_ != null) {
        output.writeMessage(1, getData());
      }
      if (outputConfig_ != null) {
        output.writeMessage(2, getOutputConfig());
      }
      if (!getMessageBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, message_);
      }
      if (!getTypeBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 4, type_);
      }
      if (!getTypeExtBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 5, typeExt_);
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      if (data_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, getData());
      }
      if (outputConfig_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, getOutputConfig());
      }
      if (!getMessageBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, message_);
      }
      if (!getTypeBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, type_);
      }
      if (!getTypeExtBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(5, typeExt_);
      }
      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.ModelOuterClass.OutputInfo)) {
        return super.equals(obj);
      }
      clarifai2.internal.grpc.api.ModelOuterClass.OutputInfo other = (clarifai2.internal.grpc.api.ModelOuterClass.OutputInfo) obj;

      boolean result = true;
      result = result && (hasData() == other.hasData());
      if (hasData()) {
        result = result && getData()
            .equals(other.getData());
      }
      result = result && (hasOutputConfig() == other.hasOutputConfig());
      if (hasOutputConfig()) {
        result = result && getOutputConfig()
            .equals(other.getOutputConfig());
      }
      result = result && getMessage()
          .equals(other.getMessage());
      result = result && getType()
          .equals(other.getType());
      result = result && getTypeExt()
          .equals(other.getTypeExt());
      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 (hasData()) {
        hash = (37 * hash) + DATA_FIELD_NUMBER;
        hash = (53 * hash) + getData().hashCode();
      }
      if (hasOutputConfig()) {
        hash = (37 * hash) + OUTPUT_CONFIG_FIELD_NUMBER;
        hash = (53 * hash) + getOutputConfig().hashCode();
      }
      hash = (37 * hash) + MESSAGE_FIELD_NUMBER;
      hash = (53 * hash) + getMessage().hashCode();
      hash = (37 * hash) + TYPE_FIELD_NUMBER;
      hash = (53 * hash) + getType().hashCode();
      hash = (37 * hash) + TYPE_EXT_FIELD_NUMBER;
      hash = (53 * hash) + getTypeExt().hashCode();
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static clarifai2.internal.grpc.api.ModelOuterClass.OutputInfo parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static clarifai2.internal.grpc.api.ModelOuterClass.OutputInfo 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.ModelOuterClass.OutputInfo parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static clarifai2.internal.grpc.api.ModelOuterClass.OutputInfo 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.ModelOuterClass.OutputInfo parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static clarifai2.internal.grpc.api.ModelOuterClass.OutputInfo parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static clarifai2.internal.grpc.api.ModelOuterClass.OutputInfo parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static clarifai2.internal.grpc.api.ModelOuterClass.OutputInfo 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.ModelOuterClass.OutputInfo parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static clarifai2.internal.grpc.api.ModelOuterClass.OutputInfo 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.ModelOuterClass.OutputInfo parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static clarifai2.internal.grpc.api.ModelOuterClass.OutputInfo 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.ModelOuterClass.OutputInfo 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.OutputInfo}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:clarifai.api.OutputInfo)
        clarifai2.internal.grpc.api.ModelOuterClass.OutputInfoOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return clarifai2.internal.grpc.api.ModelOuterClass.internal_static_clarifai_api_OutputInfo_descriptor;
      }

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return clarifai2.internal.grpc.api.ModelOuterClass.internal_static_clarifai_api_OutputInfo_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                clarifai2.internal.grpc.api.ModelOuterClass.OutputInfo.class, clarifai2.internal.grpc.api.ModelOuterClass.OutputInfo.Builder.class);
      }

      // Construct using clarifai2.internal.grpc.api.ModelOuterClass.OutputInfo.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 (dataBuilder_ == null) {
          data_ = null;
        } else {
          data_ = null;
          dataBuilder_ = null;
        }
        if (outputConfigBuilder_ == null) {
          outputConfig_ = null;
        } else {
          outputConfig_ = null;
          outputConfigBuilder_ = null;
        }
        message_ = "";

        type_ = "";

        typeExt_ = "";

        return this;
      }

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

      public clarifai2.internal.grpc.api.ModelOuterClass.OutputInfo getDefaultInstanceForType() {
        return clarifai2.internal.grpc.api.ModelOuterClass.OutputInfo.getDefaultInstance();
      }

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

      public clarifai2.internal.grpc.api.ModelOuterClass.OutputInfo buildPartial() {
        clarifai2.internal.grpc.api.ModelOuterClass.OutputInfo result = new clarifai2.internal.grpc.api.ModelOuterClass.OutputInfo(this);
        if (dataBuilder_ == null) {
          result.data_ = data_;
        } else {
          result.data_ = dataBuilder_.build();
        }
        if (outputConfigBuilder_ == null) {
          result.outputConfig_ = outputConfig_;
        } else {
          result.outputConfig_ = outputConfigBuilder_.build();
        }
        result.message_ = message_;
        result.type_ = type_;
        result.typeExt_ = typeExt_;
        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.ModelOuterClass.OutputInfo) {
          return mergeFrom((clarifai2.internal.grpc.api.ModelOuterClass.OutputInfo)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(clarifai2.internal.grpc.api.ModelOuterClass.OutputInfo other) {
        if (other == clarifai2.internal.grpc.api.ModelOuterClass.OutputInfo.getDefaultInstance()) return this;
        if (other.hasData()) {
          mergeData(other.getData());
        }
        if (other.hasOutputConfig()) {
          mergeOutputConfig(other.getOutputConfig());
        }
        if (!other.getMessage().isEmpty()) {
          message_ = other.message_;
          onChanged();
        }
        if (!other.getType().isEmpty()) {
          type_ = other.type_;
          onChanged();
        }
        if (!other.getTypeExt().isEmpty()) {
          typeExt_ = other.typeExt_;
          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.ModelOuterClass.OutputInfo parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (clarifai2.internal.grpc.api.ModelOuterClass.OutputInfo) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private clarifai2.internal.grpc.api.DataOuterClass.Data data_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
          clarifai2.internal.grpc.api.DataOuterClass.Data, clarifai2.internal.grpc.api.DataOuterClass.Data.Builder, clarifai2.internal.grpc.api.DataOuterClass.DataOrBuilder> dataBuilder_;
      /**
       * .clarifai.api.Data data = 1;
       */
      public boolean hasData() {
        return dataBuilder_ != null || data_ != null;
      }
      /**
       * .clarifai.api.Data data = 1;
       */
      public clarifai2.internal.grpc.api.DataOuterClass.Data getData() {
        if (dataBuilder_ == null) {
          return data_ == null ? clarifai2.internal.grpc.api.DataOuterClass.Data.getDefaultInstance() : data_;
        } else {
          return dataBuilder_.getMessage();
        }
      }
      /**
       * .clarifai.api.Data data = 1;
       */
      public Builder setData(clarifai2.internal.grpc.api.DataOuterClass.Data value) {
        if (dataBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          data_ = value;
          onChanged();
        } else {
          dataBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * .clarifai.api.Data data = 1;
       */
      public Builder setData(
          clarifai2.internal.grpc.api.DataOuterClass.Data.Builder builderForValue) {
        if (dataBuilder_ == null) {
          data_ = builderForValue.build();
          onChanged();
        } else {
          dataBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * .clarifai.api.Data data = 1;
       */
      public Builder mergeData(clarifai2.internal.grpc.api.DataOuterClass.Data value) {
        if (dataBuilder_ == null) {
          if (data_ != null) {
            data_ =
              clarifai2.internal.grpc.api.DataOuterClass.Data.newBuilder(data_).mergeFrom(value).buildPartial();
          } else {
            data_ = value;
          }
          onChanged();
        } else {
          dataBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * .clarifai.api.Data data = 1;
       */
      public Builder clearData() {
        if (dataBuilder_ == null) {
          data_ = null;
          onChanged();
        } else {
          data_ = null;
          dataBuilder_ = null;
        }

        return this;
      }
      /**
       * .clarifai.api.Data data = 1;
       */
      public clarifai2.internal.grpc.api.DataOuterClass.Data.Builder getDataBuilder() {
        
        onChanged();
        return getDataFieldBuilder().getBuilder();
      }
      /**
       * .clarifai.api.Data data = 1;
       */
      public clarifai2.internal.grpc.api.DataOuterClass.DataOrBuilder getDataOrBuilder() {
        if (dataBuilder_ != null) {
          return dataBuilder_.getMessageOrBuilder();
        } else {
          return data_ == null ?
              clarifai2.internal.grpc.api.DataOuterClass.Data.getDefaultInstance() : data_;
        }
      }
      /**
       * .clarifai.api.Data data = 1;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          clarifai2.internal.grpc.api.DataOuterClass.Data, clarifai2.internal.grpc.api.DataOuterClass.Data.Builder, clarifai2.internal.grpc.api.DataOuterClass.DataOrBuilder> 
          getDataFieldBuilder() {
        if (dataBuilder_ == null) {
          dataBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              clarifai2.internal.grpc.api.DataOuterClass.Data, clarifai2.internal.grpc.api.DataOuterClass.Data.Builder, clarifai2.internal.grpc.api.DataOuterClass.DataOrBuilder>(
                  getData(),
                  getParentForChildren(),
                  isClean());
          data_ = null;
        }
        return dataBuilder_;
      }

      private clarifai2.internal.grpc.api.ModelOuterClass.OutputConfig outputConfig_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
          clarifai2.internal.grpc.api.ModelOuterClass.OutputConfig, clarifai2.internal.grpc.api.ModelOuterClass.OutputConfig.Builder, clarifai2.internal.grpc.api.ModelOuterClass.OutputConfigOrBuilder> outputConfigBuilder_;
      /**
       * .clarifai.api.OutputConfig output_config = 2;
       */
      public boolean hasOutputConfig() {
        return outputConfigBuilder_ != null || outputConfig_ != null;
      }
      /**
       * .clarifai.api.OutputConfig output_config = 2;
       */
      public clarifai2.internal.grpc.api.ModelOuterClass.OutputConfig getOutputConfig() {
        if (outputConfigBuilder_ == null) {
          return outputConfig_ == null ? clarifai2.internal.grpc.api.ModelOuterClass.OutputConfig.getDefaultInstance() : outputConfig_;
        } else {
          return outputConfigBuilder_.getMessage();
        }
      }
      /**
       * .clarifai.api.OutputConfig output_config = 2;
       */
      public Builder setOutputConfig(clarifai2.internal.grpc.api.ModelOuterClass.OutputConfig value) {
        if (outputConfigBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          outputConfig_ = value;
          onChanged();
        } else {
          outputConfigBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * .clarifai.api.OutputConfig output_config = 2;
       */
      public Builder setOutputConfig(
          clarifai2.internal.grpc.api.ModelOuterClass.OutputConfig.Builder builderForValue) {
        if (outputConfigBuilder_ == null) {
          outputConfig_ = builderForValue.build();
          onChanged();
        } else {
          outputConfigBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * .clarifai.api.OutputConfig output_config = 2;
       */
      public Builder mergeOutputConfig(clarifai2.internal.grpc.api.ModelOuterClass.OutputConfig value) {
        if (outputConfigBuilder_ == null) {
          if (outputConfig_ != null) {
            outputConfig_ =
              clarifai2.internal.grpc.api.ModelOuterClass.OutputConfig.newBuilder(outputConfig_).mergeFrom(value).buildPartial();
          } else {
            outputConfig_ = value;
          }
          onChanged();
        } else {
          outputConfigBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * .clarifai.api.OutputConfig output_config = 2;
       */
      public Builder clearOutputConfig() {
        if (outputConfigBuilder_ == null) {
          outputConfig_ = null;
          onChanged();
        } else {
          outputConfig_ = null;
          outputConfigBuilder_ = null;
        }

        return this;
      }
      /**
       * .clarifai.api.OutputConfig output_config = 2;
       */
      public clarifai2.internal.grpc.api.ModelOuterClass.OutputConfig.Builder getOutputConfigBuilder() {
        
        onChanged();
        return getOutputConfigFieldBuilder().getBuilder();
      }
      /**
       * .clarifai.api.OutputConfig output_config = 2;
       */
      public clarifai2.internal.grpc.api.ModelOuterClass.OutputConfigOrBuilder getOutputConfigOrBuilder() {
        if (outputConfigBuilder_ != null) {
          return outputConfigBuilder_.getMessageOrBuilder();
        } else {
          return outputConfig_ == null ?
              clarifai2.internal.grpc.api.ModelOuterClass.OutputConfig.getDefaultInstance() : outputConfig_;
        }
      }
      /**
       * .clarifai.api.OutputConfig output_config = 2;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          clarifai2.internal.grpc.api.ModelOuterClass.OutputConfig, clarifai2.internal.grpc.api.ModelOuterClass.OutputConfig.Builder, clarifai2.internal.grpc.api.ModelOuterClass.OutputConfigOrBuilder> 
          getOutputConfigFieldBuilder() {
        if (outputConfigBuilder_ == null) {
          outputConfigBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              clarifai2.internal.grpc.api.ModelOuterClass.OutputConfig, clarifai2.internal.grpc.api.ModelOuterClass.OutputConfig.Builder, clarifai2.internal.grpc.api.ModelOuterClass.OutputConfigOrBuilder>(
                  getOutputConfig(),
                  getParentForChildren(),
                  isClean());
          outputConfig_ = null;
        }
        return outputConfigBuilder_;
      }

      private java.lang.Object message_ = "";
      /**
       * string message = 3;
       */
      public java.lang.String getMessage() {
        java.lang.Object ref = message_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          message_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * string message = 3;
       */
      public com.google.protobuf.ByteString
          getMessageBytes() {
        java.lang.Object ref = message_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          message_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * string message = 3;
       */
      public Builder setMessage(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        message_ = value;
        onChanged();
        return this;
      }
      /**
       * string message = 3;
       */
      public Builder clearMessage() {
        
        message_ = getDefaultInstance().getMessage();
        onChanged();
        return this;
      }
      /**
       * string message = 3;
       */
      public Builder setMessageBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        message_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object type_ = "";
      /**
       * string type = 4;
       */
      public java.lang.String getType() {
        java.lang.Object ref = type_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          type_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * string type = 4;
       */
      public com.google.protobuf.ByteString
          getTypeBytes() {
        java.lang.Object ref = type_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          type_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * string type = 4;
       */
      public Builder setType(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        type_ = value;
        onChanged();
        return this;
      }
      /**
       * string type = 4;
       */
      public Builder clearType() {
        
        type_ = getDefaultInstance().getType();
        onChanged();
        return this;
      }
      /**
       * string type = 4;
       */
      public Builder setTypeBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        type_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object typeExt_ = "";
      /**
       * string type_ext = 5;
       */
      public java.lang.String getTypeExt() {
        java.lang.Object ref = typeExt_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          typeExt_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * string type_ext = 5;
       */
      public com.google.protobuf.ByteString
          getTypeExtBytes() {
        java.lang.Object ref = typeExt_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          typeExt_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * string type_ext = 5;
       */
      public Builder setTypeExt(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        typeExt_ = value;
        onChanged();
        return this;
      }
      /**
       * string type_ext = 5;
       */
      public Builder clearTypeExt() {
        
        typeExt_ = getDefaultInstance().getTypeExt();
        onChanged();
        return this;
      }
      /**
       * string type_ext = 5;
       */
      public Builder setTypeExtBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        typeExt_ = 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.OutputInfo)
    }

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

    public static clarifai2.internal.grpc.api.ModelOuterClass.OutputInfo getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser
        PARSER = new com.google.protobuf.AbstractParser() {
      public OutputInfo parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new OutputInfo(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.ModelOuterClass.OutputInfo getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

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

    /**
     * bool concepts_mutually_exclusive = 1 [(.clarifai.api.utils.cl_show_if_empty) = true];
     */
    boolean getConceptsMutuallyExclusive();

    /**
     * bool closed_environment = 2 [(.clarifai.api.utils.cl_show_if_empty) = true];
     */
    boolean getClosedEnvironment();

    /**
     * string existing_model_id = 3 [deprecated = true];
     */
    @java.lang.Deprecated java.lang.String getExistingModelId();
    /**
     * string existing_model_id = 3 [deprecated = true];
     */
    @java.lang.Deprecated com.google.protobuf.ByteString
        getExistingModelIdBytes();

    /**
     * string language = 4;
     */
    java.lang.String getLanguage();
    /**
     * string language = 4;
     */
    com.google.protobuf.ByteString
        getLanguageBytes();

    /**
     * string hyper_parameters = 5;
     */
    java.lang.String getHyperParameters();
    /**
     * string hyper_parameters = 5;
     */
    com.google.protobuf.ByteString
        getHyperParametersBytes();

    /**
     * uint32 max_concepts = 6 [(.clarifai.api.utils.cl_show_if_empty) = true];
     */
    int getMaxConcepts();

    /**
     * float min_value = 7 [(.clarifai.api.utils.cl_show_if_empty) = true];
     */
    float getMinValue();

    /**
     * repeated .clarifai.api.Concept select_concepts = 8;
     */
    java.util.List 
        getSelectConceptsList();
    /**
     * repeated .clarifai.api.Concept select_concepts = 8;
     */
    clarifai2.internal.grpc.api.ConceptOuterClass.Concept getSelectConcepts(int index);
    /**
     * repeated .clarifai.api.Concept select_concepts = 8;
     */
    int getSelectConceptsCount();
    /**
     * repeated .clarifai.api.Concept select_concepts = 8;
     */
    java.util.List 
        getSelectConceptsOrBuilderList();
    /**
     * repeated .clarifai.api.Concept select_concepts = 8;
     */
    clarifai2.internal.grpc.api.ConceptOuterClass.ConceptOrBuilder getSelectConceptsOrBuilder(
        int index);

    /**
     * uint32 training_timeout = 9;
     */
    int getTrainingTimeout();

    /**
     * uint32 sample_ms = 10;
     */
    int getSampleMs();
  }
  /**
   * Protobuf type {@code clarifai.api.OutputConfig}
   */
  public  static final class OutputConfig extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:clarifai.api.OutputConfig)
      OutputConfigOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use OutputConfig.newBuilder() to construct.
    private OutputConfig(com.google.protobuf.GeneratedMessageV3.Builder builder) {
      super(builder);
    }
    private OutputConfig() {
      conceptsMutuallyExclusive_ = false;
      closedEnvironment_ = false;
      existingModelId_ = "";
      language_ = "";
      hyperParameters_ = "";
      maxConcepts_ = 0;
      minValue_ = 0F;
      selectConcepts_ = java.util.Collections.emptyList();
      trainingTimeout_ = 0;
      sampleMs_ = 0;
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private OutputConfig(
        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 8: {

              conceptsMutuallyExclusive_ = input.readBool();
              break;
            }
            case 16: {

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

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

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

              hyperParameters_ = s;
              break;
            }
            case 48: {

              maxConcepts_ = input.readUInt32();
              break;
            }
            case 61: {

              minValue_ = input.readFloat();
              break;
            }
            case 66: {
              if (!((mutable_bitField0_ & 0x00000080) == 0x00000080)) {
                selectConcepts_ = new java.util.ArrayList();
                mutable_bitField0_ |= 0x00000080;
              }
              selectConcepts_.add(
                  input.readMessage(clarifai2.internal.grpc.api.ConceptOuterClass.Concept.parser(), extensionRegistry));
              break;
            }
            case 72: {

              trainingTimeout_ = input.readUInt32();
              break;
            }
            case 80: {

              sampleMs_ = input.readUInt32();
              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_ & 0x00000080) == 0x00000080)) {
          selectConcepts_ = java.util.Collections.unmodifiableList(selectConcepts_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return clarifai2.internal.grpc.api.ModelOuterClass.internal_static_clarifai_api_OutputConfig_descriptor;
    }

    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return clarifai2.internal.grpc.api.ModelOuterClass.internal_static_clarifai_api_OutputConfig_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              clarifai2.internal.grpc.api.ModelOuterClass.OutputConfig.class, clarifai2.internal.grpc.api.ModelOuterClass.OutputConfig.Builder.class);
    }

    private int bitField0_;
    public static final int CONCEPTS_MUTUALLY_EXCLUSIVE_FIELD_NUMBER = 1;
    private boolean conceptsMutuallyExclusive_;
    /**
     * bool concepts_mutually_exclusive = 1 [(.clarifai.api.utils.cl_show_if_empty) = true];
     */
    public boolean getConceptsMutuallyExclusive() {
      return conceptsMutuallyExclusive_;
    }

    public static final int CLOSED_ENVIRONMENT_FIELD_NUMBER = 2;
    private boolean closedEnvironment_;
    /**
     * bool closed_environment = 2 [(.clarifai.api.utils.cl_show_if_empty) = true];
     */
    public boolean getClosedEnvironment() {
      return closedEnvironment_;
    }

    public static final int EXISTING_MODEL_ID_FIELD_NUMBER = 3;
    private volatile java.lang.Object existingModelId_;
    /**
     * string existing_model_id = 3 [deprecated = true];
     */
    @java.lang.Deprecated public java.lang.String getExistingModelId() {
      java.lang.Object ref = existingModelId_;
      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();
        existingModelId_ = s;
        return s;
      }
    }
    /**
     * string existing_model_id = 3 [deprecated = true];
     */
    @java.lang.Deprecated public com.google.protobuf.ByteString
        getExistingModelIdBytes() {
      java.lang.Object ref = existingModelId_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        existingModelId_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int LANGUAGE_FIELD_NUMBER = 4;
    private volatile java.lang.Object language_;
    /**
     * string language = 4;
     */
    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 = 4;
     */
    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;
      }
    }

    public static final int HYPER_PARAMETERS_FIELD_NUMBER = 5;
    private volatile java.lang.Object hyperParameters_;
    /**
     * string hyper_parameters = 5;
     */
    public java.lang.String getHyperParameters() {
      java.lang.Object ref = hyperParameters_;
      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();
        hyperParameters_ = s;
        return s;
      }
    }
    /**
     * string hyper_parameters = 5;
     */
    public com.google.protobuf.ByteString
        getHyperParametersBytes() {
      java.lang.Object ref = hyperParameters_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        hyperParameters_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int MAX_CONCEPTS_FIELD_NUMBER = 6;
    private int maxConcepts_;
    /**
     * uint32 max_concepts = 6 [(.clarifai.api.utils.cl_show_if_empty) = true];
     */
    public int getMaxConcepts() {
      return maxConcepts_;
    }

    public static final int MIN_VALUE_FIELD_NUMBER = 7;
    private float minValue_;
    /**
     * float min_value = 7 [(.clarifai.api.utils.cl_show_if_empty) = true];
     */
    public float getMinValue() {
      return minValue_;
    }

    public static final int SELECT_CONCEPTS_FIELD_NUMBER = 8;
    private java.util.List selectConcepts_;
    /**
     * repeated .clarifai.api.Concept select_concepts = 8;
     */
    public java.util.List getSelectConceptsList() {
      return selectConcepts_;
    }
    /**
     * repeated .clarifai.api.Concept select_concepts = 8;
     */
    public java.util.List 
        getSelectConceptsOrBuilderList() {
      return selectConcepts_;
    }
    /**
     * repeated .clarifai.api.Concept select_concepts = 8;
     */
    public int getSelectConceptsCount() {
      return selectConcepts_.size();
    }
    /**
     * repeated .clarifai.api.Concept select_concepts = 8;
     */
    public clarifai2.internal.grpc.api.ConceptOuterClass.Concept getSelectConcepts(int index) {
      return selectConcepts_.get(index);
    }
    /**
     * repeated .clarifai.api.Concept select_concepts = 8;
     */
    public clarifai2.internal.grpc.api.ConceptOuterClass.ConceptOrBuilder getSelectConceptsOrBuilder(
        int index) {
      return selectConcepts_.get(index);
    }

    public static final int TRAINING_TIMEOUT_FIELD_NUMBER = 9;
    private int trainingTimeout_;
    /**
     * uint32 training_timeout = 9;
     */
    public int getTrainingTimeout() {
      return trainingTimeout_;
    }

    public static final int SAMPLE_MS_FIELD_NUMBER = 10;
    private int sampleMs_;
    /**
     * uint32 sample_ms = 10;
     */
    public int getSampleMs() {
      return sampleMs_;
    }

    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 (conceptsMutuallyExclusive_ != false) {
        output.writeBool(1, conceptsMutuallyExclusive_);
      }
      if (closedEnvironment_ != false) {
        output.writeBool(2, closedEnvironment_);
      }
      if (!getExistingModelIdBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, existingModelId_);
      }
      if (!getLanguageBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 4, language_);
      }
      if (!getHyperParametersBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 5, hyperParameters_);
      }
      if (maxConcepts_ != 0) {
        output.writeUInt32(6, maxConcepts_);
      }
      if (minValue_ != 0F) {
        output.writeFloat(7, minValue_);
      }
      for (int i = 0; i < selectConcepts_.size(); i++) {
        output.writeMessage(8, selectConcepts_.get(i));
      }
      if (trainingTimeout_ != 0) {
        output.writeUInt32(9, trainingTimeout_);
      }
      if (sampleMs_ != 0) {
        output.writeUInt32(10, sampleMs_);
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      if (conceptsMutuallyExclusive_ != false) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(1, conceptsMutuallyExclusive_);
      }
      if (closedEnvironment_ != false) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(2, closedEnvironment_);
      }
      if (!getExistingModelIdBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, existingModelId_);
      }
      if (!getLanguageBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, language_);
      }
      if (!getHyperParametersBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(5, hyperParameters_);
      }
      if (maxConcepts_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(6, maxConcepts_);
      }
      if (minValue_ != 0F) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(7, minValue_);
      }
      for (int i = 0; i < selectConcepts_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(8, selectConcepts_.get(i));
      }
      if (trainingTimeout_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(9, trainingTimeout_);
      }
      if (sampleMs_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(10, sampleMs_);
      }
      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.ModelOuterClass.OutputConfig)) {
        return super.equals(obj);
      }
      clarifai2.internal.grpc.api.ModelOuterClass.OutputConfig other = (clarifai2.internal.grpc.api.ModelOuterClass.OutputConfig) obj;

      boolean result = true;
      result = result && (getConceptsMutuallyExclusive()
          == other.getConceptsMutuallyExclusive());
      result = result && (getClosedEnvironment()
          == other.getClosedEnvironment());
      result = result && getExistingModelId()
          .equals(other.getExistingModelId());
      result = result && getLanguage()
          .equals(other.getLanguage());
      result = result && getHyperParameters()
          .equals(other.getHyperParameters());
      result = result && (getMaxConcepts()
          == other.getMaxConcepts());
      result = result && (
          java.lang.Float.floatToIntBits(getMinValue())
          == java.lang.Float.floatToIntBits(
              other.getMinValue()));
      result = result && getSelectConceptsList()
          .equals(other.getSelectConceptsList());
      result = result && (getTrainingTimeout()
          == other.getTrainingTimeout());
      result = result && (getSampleMs()
          == other.getSampleMs());
      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) + CONCEPTS_MUTUALLY_EXCLUSIVE_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
          getConceptsMutuallyExclusive());
      hash = (37 * hash) + CLOSED_ENVIRONMENT_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
          getClosedEnvironment());
      hash = (37 * hash) + EXISTING_MODEL_ID_FIELD_NUMBER;
      hash = (53 * hash) + getExistingModelId().hashCode();
      hash = (37 * hash) + LANGUAGE_FIELD_NUMBER;
      hash = (53 * hash) + getLanguage().hashCode();
      hash = (37 * hash) + HYPER_PARAMETERS_FIELD_NUMBER;
      hash = (53 * hash) + getHyperParameters().hashCode();
      hash = (37 * hash) + MAX_CONCEPTS_FIELD_NUMBER;
      hash = (53 * hash) + getMaxConcepts();
      hash = (37 * hash) + MIN_VALUE_FIELD_NUMBER;
      hash = (53 * hash) + java.lang.Float.floatToIntBits(
          getMinValue());
      if (getSelectConceptsCount() > 0) {
        hash = (37 * hash) + SELECT_CONCEPTS_FIELD_NUMBER;
        hash = (53 * hash) + getSelectConceptsList().hashCode();
      }
      hash = (37 * hash) + TRAINING_TIMEOUT_FIELD_NUMBER;
      hash = (53 * hash) + getTrainingTimeout();
      hash = (37 * hash) + SAMPLE_MS_FIELD_NUMBER;
      hash = (53 * hash) + getSampleMs();
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static clarifai2.internal.grpc.api.ModelOuterClass.OutputConfig parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static clarifai2.internal.grpc.api.ModelOuterClass.OutputConfig 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.ModelOuterClass.OutputConfig parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static clarifai2.internal.grpc.api.ModelOuterClass.OutputConfig 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.ModelOuterClass.OutputConfig parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static clarifai2.internal.grpc.api.ModelOuterClass.OutputConfig parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static clarifai2.internal.grpc.api.ModelOuterClass.OutputConfig parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static clarifai2.internal.grpc.api.ModelOuterClass.OutputConfig 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.ModelOuterClass.OutputConfig parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static clarifai2.internal.grpc.api.ModelOuterClass.OutputConfig 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.ModelOuterClass.OutputConfig parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static clarifai2.internal.grpc.api.ModelOuterClass.OutputConfig 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.ModelOuterClass.OutputConfig 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.OutputConfig}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:clarifai.api.OutputConfig)
        clarifai2.internal.grpc.api.ModelOuterClass.OutputConfigOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return clarifai2.internal.grpc.api.ModelOuterClass.internal_static_clarifai_api_OutputConfig_descriptor;
      }

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return clarifai2.internal.grpc.api.ModelOuterClass.internal_static_clarifai_api_OutputConfig_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                clarifai2.internal.grpc.api.ModelOuterClass.OutputConfig.class, clarifai2.internal.grpc.api.ModelOuterClass.OutputConfig.Builder.class);
      }

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

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getSelectConceptsFieldBuilder();
        }
      }
      public Builder clear() {
        super.clear();
        conceptsMutuallyExclusive_ = false;

        closedEnvironment_ = false;

        existingModelId_ = "";

        language_ = "";

        hyperParameters_ = "";

        maxConcepts_ = 0;

        minValue_ = 0F;

        if (selectConceptsBuilder_ == null) {
          selectConcepts_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000080);
        } else {
          selectConceptsBuilder_.clear();
        }
        trainingTimeout_ = 0;

        sampleMs_ = 0;

        return this;
      }

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

      public clarifai2.internal.grpc.api.ModelOuterClass.OutputConfig getDefaultInstanceForType() {
        return clarifai2.internal.grpc.api.ModelOuterClass.OutputConfig.getDefaultInstance();
      }

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

      public clarifai2.internal.grpc.api.ModelOuterClass.OutputConfig buildPartial() {
        clarifai2.internal.grpc.api.ModelOuterClass.OutputConfig result = new clarifai2.internal.grpc.api.ModelOuterClass.OutputConfig(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        result.conceptsMutuallyExclusive_ = conceptsMutuallyExclusive_;
        result.closedEnvironment_ = closedEnvironment_;
        result.existingModelId_ = existingModelId_;
        result.language_ = language_;
        result.hyperParameters_ = hyperParameters_;
        result.maxConcepts_ = maxConcepts_;
        result.minValue_ = minValue_;
        if (selectConceptsBuilder_ == null) {
          if (((bitField0_ & 0x00000080) == 0x00000080)) {
            selectConcepts_ = java.util.Collections.unmodifiableList(selectConcepts_);
            bitField0_ = (bitField0_ & ~0x00000080);
          }
          result.selectConcepts_ = selectConcepts_;
        } else {
          result.selectConcepts_ = selectConceptsBuilder_.build();
        }
        result.trainingTimeout_ = trainingTimeout_;
        result.sampleMs_ = sampleMs_;
        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.ModelOuterClass.OutputConfig) {
          return mergeFrom((clarifai2.internal.grpc.api.ModelOuterClass.OutputConfig)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(clarifai2.internal.grpc.api.ModelOuterClass.OutputConfig other) {
        if (other == clarifai2.internal.grpc.api.ModelOuterClass.OutputConfig.getDefaultInstance()) return this;
        if (other.getConceptsMutuallyExclusive() != false) {
          setConceptsMutuallyExclusive(other.getConceptsMutuallyExclusive());
        }
        if (other.getClosedEnvironment() != false) {
          setClosedEnvironment(other.getClosedEnvironment());
        }
        if (!other.getExistingModelId().isEmpty()) {
          existingModelId_ = other.existingModelId_;
          onChanged();
        }
        if (!other.getLanguage().isEmpty()) {
          language_ = other.language_;
          onChanged();
        }
        if (!other.getHyperParameters().isEmpty()) {
          hyperParameters_ = other.hyperParameters_;
          onChanged();
        }
        if (other.getMaxConcepts() != 0) {
          setMaxConcepts(other.getMaxConcepts());
        }
        if (other.getMinValue() != 0F) {
          setMinValue(other.getMinValue());
        }
        if (selectConceptsBuilder_ == null) {
          if (!other.selectConcepts_.isEmpty()) {
            if (selectConcepts_.isEmpty()) {
              selectConcepts_ = other.selectConcepts_;
              bitField0_ = (bitField0_ & ~0x00000080);
            } else {
              ensureSelectConceptsIsMutable();
              selectConcepts_.addAll(other.selectConcepts_);
            }
            onChanged();
          }
        } else {
          if (!other.selectConcepts_.isEmpty()) {
            if (selectConceptsBuilder_.isEmpty()) {
              selectConceptsBuilder_.dispose();
              selectConceptsBuilder_ = null;
              selectConcepts_ = other.selectConcepts_;
              bitField0_ = (bitField0_ & ~0x00000080);
              selectConceptsBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getSelectConceptsFieldBuilder() : null;
            } else {
              selectConceptsBuilder_.addAllMessages(other.selectConcepts_);
            }
          }
        }
        if (other.getTrainingTimeout() != 0) {
          setTrainingTimeout(other.getTrainingTimeout());
        }
        if (other.getSampleMs() != 0) {
          setSampleMs(other.getSampleMs());
        }
        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.ModelOuterClass.OutputConfig parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (clarifai2.internal.grpc.api.ModelOuterClass.OutputConfig) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private boolean conceptsMutuallyExclusive_ ;
      /**
       * bool concepts_mutually_exclusive = 1 [(.clarifai.api.utils.cl_show_if_empty) = true];
       */
      public boolean getConceptsMutuallyExclusive() {
        return conceptsMutuallyExclusive_;
      }
      /**
       * bool concepts_mutually_exclusive = 1 [(.clarifai.api.utils.cl_show_if_empty) = true];
       */
      public Builder setConceptsMutuallyExclusive(boolean value) {
        
        conceptsMutuallyExclusive_ = value;
        onChanged();
        return this;
      }
      /**
       * bool concepts_mutually_exclusive = 1 [(.clarifai.api.utils.cl_show_if_empty) = true];
       */
      public Builder clearConceptsMutuallyExclusive() {
        
        conceptsMutuallyExclusive_ = false;
        onChanged();
        return this;
      }

      private boolean closedEnvironment_ ;
      /**
       * bool closed_environment = 2 [(.clarifai.api.utils.cl_show_if_empty) = true];
       */
      public boolean getClosedEnvironment() {
        return closedEnvironment_;
      }
      /**
       * bool closed_environment = 2 [(.clarifai.api.utils.cl_show_if_empty) = true];
       */
      public Builder setClosedEnvironment(boolean value) {
        
        closedEnvironment_ = value;
        onChanged();
        return this;
      }
      /**
       * bool closed_environment = 2 [(.clarifai.api.utils.cl_show_if_empty) = true];
       */
      public Builder clearClosedEnvironment() {
        
        closedEnvironment_ = false;
        onChanged();
        return this;
      }

      private java.lang.Object existingModelId_ = "";
      /**
       * string existing_model_id = 3 [deprecated = true];
       */
      @java.lang.Deprecated public java.lang.String getExistingModelId() {
        java.lang.Object ref = existingModelId_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          existingModelId_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * string existing_model_id = 3 [deprecated = true];
       */
      @java.lang.Deprecated public com.google.protobuf.ByteString
          getExistingModelIdBytes() {
        java.lang.Object ref = existingModelId_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          existingModelId_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * string existing_model_id = 3 [deprecated = true];
       */
      @java.lang.Deprecated public Builder setExistingModelId(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        existingModelId_ = value;
        onChanged();
        return this;
      }
      /**
       * string existing_model_id = 3 [deprecated = true];
       */
      @java.lang.Deprecated public Builder clearExistingModelId() {
        
        existingModelId_ = getDefaultInstance().getExistingModelId();
        onChanged();
        return this;
      }
      /**
       * string existing_model_id = 3 [deprecated = true];
       */
      @java.lang.Deprecated public Builder setExistingModelIdBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        existingModelId_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object language_ = "";
      /**
       * string language = 4;
       */
      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 = 4;
       */
      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 = 4;
       */
      public Builder setLanguage(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        language_ = value;
        onChanged();
        return this;
      }
      /**
       * string language = 4;
       */
      public Builder clearLanguage() {
        
        language_ = getDefaultInstance().getLanguage();
        onChanged();
        return this;
      }
      /**
       * string language = 4;
       */
      public Builder setLanguageBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        language_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object hyperParameters_ = "";
      /**
       * string hyper_parameters = 5;
       */
      public java.lang.String getHyperParameters() {
        java.lang.Object ref = hyperParameters_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          hyperParameters_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * string hyper_parameters = 5;
       */
      public com.google.protobuf.ByteString
          getHyperParametersBytes() {
        java.lang.Object ref = hyperParameters_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          hyperParameters_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * string hyper_parameters = 5;
       */
      public Builder setHyperParameters(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        hyperParameters_ = value;
        onChanged();
        return this;
      }
      /**
       * string hyper_parameters = 5;
       */
      public Builder clearHyperParameters() {
        
        hyperParameters_ = getDefaultInstance().getHyperParameters();
        onChanged();
        return this;
      }
      /**
       * string hyper_parameters = 5;
       */
      public Builder setHyperParametersBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        hyperParameters_ = value;
        onChanged();
        return this;
      }

      private int maxConcepts_ ;
      /**
       * uint32 max_concepts = 6 [(.clarifai.api.utils.cl_show_if_empty) = true];
       */
      public int getMaxConcepts() {
        return maxConcepts_;
      }
      /**
       * uint32 max_concepts = 6 [(.clarifai.api.utils.cl_show_if_empty) = true];
       */
      public Builder setMaxConcepts(int value) {
        
        maxConcepts_ = value;
        onChanged();
        return this;
      }
      /**
       * uint32 max_concepts = 6 [(.clarifai.api.utils.cl_show_if_empty) = true];
       */
      public Builder clearMaxConcepts() {
        
        maxConcepts_ = 0;
        onChanged();
        return this;
      }

      private float minValue_ ;
      /**
       * float min_value = 7 [(.clarifai.api.utils.cl_show_if_empty) = true];
       */
      public float getMinValue() {
        return minValue_;
      }
      /**
       * float min_value = 7 [(.clarifai.api.utils.cl_show_if_empty) = true];
       */
      public Builder setMinValue(float value) {
        
        minValue_ = value;
        onChanged();
        return this;
      }
      /**
       * float min_value = 7 [(.clarifai.api.utils.cl_show_if_empty) = true];
       */
      public Builder clearMinValue() {
        
        minValue_ = 0F;
        onChanged();
        return this;
      }

      private java.util.List selectConcepts_ =
        java.util.Collections.emptyList();
      private void ensureSelectConceptsIsMutable() {
        if (!((bitField0_ & 0x00000080) == 0x00000080)) {
          selectConcepts_ = new java.util.ArrayList(selectConcepts_);
          bitField0_ |= 0x00000080;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          clarifai2.internal.grpc.api.ConceptOuterClass.Concept, clarifai2.internal.grpc.api.ConceptOuterClass.Concept.Builder, clarifai2.internal.grpc.api.ConceptOuterClass.ConceptOrBuilder> selectConceptsBuilder_;

      /**
       * repeated .clarifai.api.Concept select_concepts = 8;
       */
      public java.util.List getSelectConceptsList() {
        if (selectConceptsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(selectConcepts_);
        } else {
          return selectConceptsBuilder_.getMessageList();
        }
      }
      /**
       * repeated .clarifai.api.Concept select_concepts = 8;
       */
      public int getSelectConceptsCount() {
        if (selectConceptsBuilder_ == null) {
          return selectConcepts_.size();
        } else {
          return selectConceptsBuilder_.getCount();
        }
      }
      /**
       * repeated .clarifai.api.Concept select_concepts = 8;
       */
      public clarifai2.internal.grpc.api.ConceptOuterClass.Concept getSelectConcepts(int index) {
        if (selectConceptsBuilder_ == null) {
          return selectConcepts_.get(index);
        } else {
          return selectConceptsBuilder_.getMessage(index);
        }
      }
      /**
       * repeated .clarifai.api.Concept select_concepts = 8;
       */
      public Builder setSelectConcepts(
          int index, clarifai2.internal.grpc.api.ConceptOuterClass.Concept value) {
        if (selectConceptsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureSelectConceptsIsMutable();
          selectConcepts_.set(index, value);
          onChanged();
        } else {
          selectConceptsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .clarifai.api.Concept select_concepts = 8;
       */
      public Builder setSelectConcepts(
          int index, clarifai2.internal.grpc.api.ConceptOuterClass.Concept.Builder builderForValue) {
        if (selectConceptsBuilder_ == null) {
          ensureSelectConceptsIsMutable();
          selectConcepts_.set(index, builderForValue.build());
          onChanged();
        } else {
          selectConceptsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .clarifai.api.Concept select_concepts = 8;
       */
      public Builder addSelectConcepts(clarifai2.internal.grpc.api.ConceptOuterClass.Concept value) {
        if (selectConceptsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureSelectConceptsIsMutable();
          selectConcepts_.add(value);
          onChanged();
        } else {
          selectConceptsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * repeated .clarifai.api.Concept select_concepts = 8;
       */
      public Builder addSelectConcepts(
          int index, clarifai2.internal.grpc.api.ConceptOuterClass.Concept value) {
        if (selectConceptsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureSelectConceptsIsMutable();
          selectConcepts_.add(index, value);
          onChanged();
        } else {
          selectConceptsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .clarifai.api.Concept select_concepts = 8;
       */
      public Builder addSelectConcepts(
          clarifai2.internal.grpc.api.ConceptOuterClass.Concept.Builder builderForValue) {
        if (selectConceptsBuilder_ == null) {
          ensureSelectConceptsIsMutable();
          selectConcepts_.add(builderForValue.build());
          onChanged();
        } else {
          selectConceptsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .clarifai.api.Concept select_concepts = 8;
       */
      public Builder addSelectConcepts(
          int index, clarifai2.internal.grpc.api.ConceptOuterClass.Concept.Builder builderForValue) {
        if (selectConceptsBuilder_ == null) {
          ensureSelectConceptsIsMutable();
          selectConcepts_.add(index, builderForValue.build());
          onChanged();
        } else {
          selectConceptsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .clarifai.api.Concept select_concepts = 8;
       */
      public Builder addAllSelectConcepts(
          java.lang.Iterable values) {
        if (selectConceptsBuilder_ == null) {
          ensureSelectConceptsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, selectConcepts_);
          onChanged();
        } else {
          selectConceptsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * repeated .clarifai.api.Concept select_concepts = 8;
       */
      public Builder clearSelectConcepts() {
        if (selectConceptsBuilder_ == null) {
          selectConcepts_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000080);
          onChanged();
        } else {
          selectConceptsBuilder_.clear();
        }
        return this;
      }
      /**
       * repeated .clarifai.api.Concept select_concepts = 8;
       */
      public Builder removeSelectConcepts(int index) {
        if (selectConceptsBuilder_ == null) {
          ensureSelectConceptsIsMutable();
          selectConcepts_.remove(index);
          onChanged();
        } else {
          selectConceptsBuilder_.remove(index);
        }
        return this;
      }
      /**
       * repeated .clarifai.api.Concept select_concepts = 8;
       */
      public clarifai2.internal.grpc.api.ConceptOuterClass.Concept.Builder getSelectConceptsBuilder(
          int index) {
        return getSelectConceptsFieldBuilder().getBuilder(index);
      }
      /**
       * repeated .clarifai.api.Concept select_concepts = 8;
       */
      public clarifai2.internal.grpc.api.ConceptOuterClass.ConceptOrBuilder getSelectConceptsOrBuilder(
          int index) {
        if (selectConceptsBuilder_ == null) {
          return selectConcepts_.get(index);  } else {
          return selectConceptsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * repeated .clarifai.api.Concept select_concepts = 8;
       */
      public java.util.List 
           getSelectConceptsOrBuilderList() {
        if (selectConceptsBuilder_ != null) {
          return selectConceptsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(selectConcepts_);
        }
      }
      /**
       * repeated .clarifai.api.Concept select_concepts = 8;
       */
      public clarifai2.internal.grpc.api.ConceptOuterClass.Concept.Builder addSelectConceptsBuilder() {
        return getSelectConceptsFieldBuilder().addBuilder(
            clarifai2.internal.grpc.api.ConceptOuterClass.Concept.getDefaultInstance());
      }
      /**
       * repeated .clarifai.api.Concept select_concepts = 8;
       */
      public clarifai2.internal.grpc.api.ConceptOuterClass.Concept.Builder addSelectConceptsBuilder(
          int index) {
        return getSelectConceptsFieldBuilder().addBuilder(
            index, clarifai2.internal.grpc.api.ConceptOuterClass.Concept.getDefaultInstance());
      }
      /**
       * repeated .clarifai.api.Concept select_concepts = 8;
       */
      public java.util.List 
           getSelectConceptsBuilderList() {
        return getSelectConceptsFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          clarifai2.internal.grpc.api.ConceptOuterClass.Concept, clarifai2.internal.grpc.api.ConceptOuterClass.Concept.Builder, clarifai2.internal.grpc.api.ConceptOuterClass.ConceptOrBuilder> 
          getSelectConceptsFieldBuilder() {
        if (selectConceptsBuilder_ == null) {
          selectConceptsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              clarifai2.internal.grpc.api.ConceptOuterClass.Concept, clarifai2.internal.grpc.api.ConceptOuterClass.Concept.Builder, clarifai2.internal.grpc.api.ConceptOuterClass.ConceptOrBuilder>(
                  selectConcepts_,
                  ((bitField0_ & 0x00000080) == 0x00000080),
                  getParentForChildren(),
                  isClean());
          selectConcepts_ = null;
        }
        return selectConceptsBuilder_;
      }

      private int trainingTimeout_ ;
      /**
       * uint32 training_timeout = 9;
       */
      public int getTrainingTimeout() {
        return trainingTimeout_;
      }
      /**
       * uint32 training_timeout = 9;
       */
      public Builder setTrainingTimeout(int value) {
        
        trainingTimeout_ = value;
        onChanged();
        return this;
      }
      /**
       * uint32 training_timeout = 9;
       */
      public Builder clearTrainingTimeout() {
        
        trainingTimeout_ = 0;
        onChanged();
        return this;
      }

      private int sampleMs_ ;
      /**
       * uint32 sample_ms = 10;
       */
      public int getSampleMs() {
        return sampleMs_;
      }
      /**
       * uint32 sample_ms = 10;
       */
      public Builder setSampleMs(int value) {
        
        sampleMs_ = value;
        onChanged();
        return this;
      }
      /**
       * uint32 sample_ms = 10;
       */
      public Builder clearSampleMs() {
        
        sampleMs_ = 0;
        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.OutputConfig)
    }

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

    public static clarifai2.internal.grpc.api.ModelOuterClass.OutputConfig getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser
        PARSER = new com.google.protobuf.AbstractParser() {
      public OutputConfig parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new OutputConfig(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.ModelOuterClass.OutputConfig getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

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

    /**
     * string name = 1;
     */
    java.lang.String getName();
    /**
     * string name = 1;
     */
    com.google.protobuf.ByteString
        getNameBytes();

    /**
     * string type = 2;
     */
    java.lang.String getType();
    /**
     * string type = 2;
     */
    com.google.protobuf.ByteString
        getTypeBytes();
  }
  /**
   * Protobuf type {@code clarifai.api.ModelQuery}
   */
  public  static final class ModelQuery extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:clarifai.api.ModelQuery)
      ModelQueryOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use ModelQuery.newBuilder() to construct.
    private ModelQuery(com.google.protobuf.GeneratedMessageV3.Builder builder) {
      super(builder);
    }
    private ModelQuery() {
      name_ = "";
      type_ = "";
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private ModelQuery(
        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: {
              java.lang.String s = input.readStringRequireUtf8();

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

              type_ = 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 {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return clarifai2.internal.grpc.api.ModelOuterClass.internal_static_clarifai_api_ModelQuery_descriptor;
    }

    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return clarifai2.internal.grpc.api.ModelOuterClass.internal_static_clarifai_api_ModelQuery_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              clarifai2.internal.grpc.api.ModelOuterClass.ModelQuery.class, clarifai2.internal.grpc.api.ModelOuterClass.ModelQuery.Builder.class);
    }

    public static final int NAME_FIELD_NUMBER = 1;
    private volatile java.lang.Object name_;
    /**
     * string name = 1;
     */
    public java.lang.String getName() {
      java.lang.Object ref = name_;
      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();
        name_ = s;
        return s;
      }
    }
    /**
     * string name = 1;
     */
    public com.google.protobuf.ByteString
        getNameBytes() {
      java.lang.Object ref = name_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        name_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int TYPE_FIELD_NUMBER = 2;
    private volatile java.lang.Object type_;
    /**
     * string type = 2;
     */
    public java.lang.String getType() {
      java.lang.Object ref = type_;
      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();
        type_ = s;
        return s;
      }
    }
    /**
     * string type = 2;
     */
    public com.google.protobuf.ByteString
        getTypeBytes() {
      java.lang.Object ref = type_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        type_ = 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 {
      if (!getNameBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, name_);
      }
      if (!getTypeBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, type_);
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      if (!getNameBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, name_);
      }
      if (!getTypeBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, type_);
      }
      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.ModelOuterClass.ModelQuery)) {
        return super.equals(obj);
      }
      clarifai2.internal.grpc.api.ModelOuterClass.ModelQuery other = (clarifai2.internal.grpc.api.ModelOuterClass.ModelQuery) obj;

      boolean result = true;
      result = result && getName()
          .equals(other.getName());
      result = result && getType()
          .equals(other.getType());
      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) + NAME_FIELD_NUMBER;
      hash = (53 * hash) + getName().hashCode();
      hash = (37 * hash) + TYPE_FIELD_NUMBER;
      hash = (53 * hash) + getType().hashCode();
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static clarifai2.internal.grpc.api.ModelOuterClass.ModelQuery parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static clarifai2.internal.grpc.api.ModelOuterClass.ModelQuery 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.ModelOuterClass.ModelQuery parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static clarifai2.internal.grpc.api.ModelOuterClass.ModelQuery 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.ModelOuterClass.ModelQuery parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static clarifai2.internal.grpc.api.ModelOuterClass.ModelQuery parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static clarifai2.internal.grpc.api.ModelOuterClass.ModelQuery parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static clarifai2.internal.grpc.api.ModelOuterClass.ModelQuery 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.ModelOuterClass.ModelQuery parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static clarifai2.internal.grpc.api.ModelOuterClass.ModelQuery 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.ModelOuterClass.ModelQuery parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static clarifai2.internal.grpc.api.ModelOuterClass.ModelQuery 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.ModelOuterClass.ModelQuery 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.ModelQuery}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:clarifai.api.ModelQuery)
        clarifai2.internal.grpc.api.ModelOuterClass.ModelQueryOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return clarifai2.internal.grpc.api.ModelOuterClass.internal_static_clarifai_api_ModelQuery_descriptor;
      }

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return clarifai2.internal.grpc.api.ModelOuterClass.internal_static_clarifai_api_ModelQuery_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                clarifai2.internal.grpc.api.ModelOuterClass.ModelQuery.class, clarifai2.internal.grpc.api.ModelOuterClass.ModelQuery.Builder.class);
      }

      // Construct using clarifai2.internal.grpc.api.ModelOuterClass.ModelQuery.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();
        name_ = "";

        type_ = "";

        return this;
      }

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

      public clarifai2.internal.grpc.api.ModelOuterClass.ModelQuery getDefaultInstanceForType() {
        return clarifai2.internal.grpc.api.ModelOuterClass.ModelQuery.getDefaultInstance();
      }

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

      public clarifai2.internal.grpc.api.ModelOuterClass.ModelQuery buildPartial() {
        clarifai2.internal.grpc.api.ModelOuterClass.ModelQuery result = new clarifai2.internal.grpc.api.ModelOuterClass.ModelQuery(this);
        result.name_ = name_;
        result.type_ = type_;
        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.ModelOuterClass.ModelQuery) {
          return mergeFrom((clarifai2.internal.grpc.api.ModelOuterClass.ModelQuery)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(clarifai2.internal.grpc.api.ModelOuterClass.ModelQuery other) {
        if (other == clarifai2.internal.grpc.api.ModelOuterClass.ModelQuery.getDefaultInstance()) return this;
        if (!other.getName().isEmpty()) {
          name_ = other.name_;
          onChanged();
        }
        if (!other.getType().isEmpty()) {
          type_ = other.type_;
          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.ModelOuterClass.ModelQuery parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (clarifai2.internal.grpc.api.ModelOuterClass.ModelQuery) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private java.lang.Object name_ = "";
      /**
       * string name = 1;
       */
      public java.lang.String getName() {
        java.lang.Object ref = name_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          name_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * string name = 1;
       */
      public com.google.protobuf.ByteString
          getNameBytes() {
        java.lang.Object ref = name_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          name_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * string name = 1;
       */
      public Builder setName(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        name_ = value;
        onChanged();
        return this;
      }
      /**
       * string name = 1;
       */
      public Builder clearName() {
        
        name_ = getDefaultInstance().getName();
        onChanged();
        return this;
      }
      /**
       * string name = 1;
       */
      public Builder setNameBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        name_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object type_ = "";
      /**
       * string type = 2;
       */
      public java.lang.String getType() {
        java.lang.Object ref = type_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          type_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * string type = 2;
       */
      public com.google.protobuf.ByteString
          getTypeBytes() {
        java.lang.Object ref = type_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          type_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * string type = 2;
       */
      public Builder setType(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        type_ = value;
        onChanged();
        return this;
      }
      /**
       * string type = 2;
       */
      public Builder clearType() {
        
        type_ = getDefaultInstance().getType();
        onChanged();
        return this;
      }
      /**
       * string type = 2;
       */
      public Builder setTypeBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        type_ = 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.ModelQuery)
    }

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

    public static clarifai2.internal.grpc.api.ModelOuterClass.ModelQuery getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser
        PARSER = new com.google.protobuf.AbstractParser() {
      public ModelQuery parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new ModelQuery(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.ModelOuterClass.ModelQuery getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface GetModelRequestOrBuilder extends
      // @@protoc_insertion_point(interface_extends:clarifai.api.GetModelRequest)
      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();

    /**
     * string model_id = 2;
     */
    java.lang.String getModelId();
    /**
     * string model_id = 2;
     */
    com.google.protobuf.ByteString
        getModelIdBytes();

    /**
     * string version_id = 3;
     */
    java.lang.String getVersionId();
    /**
     * string version_id = 3;
     */
    com.google.protobuf.ByteString
        getVersionIdBytes();
  }
  /**
   * Protobuf type {@code clarifai.api.GetModelRequest}
   */
  public  static final class GetModelRequest extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:clarifai.api.GetModelRequest)
      GetModelRequestOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use GetModelRequest.newBuilder() to construct.
    private GetModelRequest(com.google.protobuf.GeneratedMessageV3.Builder builder) {
      super(builder);
    }
    private GetModelRequest() {
      modelId_ = "";
      versionId_ = "";
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private GetModelRequest(
        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: {
              java.lang.String s = input.readStringRequireUtf8();

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

              versionId_ = 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 {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return clarifai2.internal.grpc.api.ModelOuterClass.internal_static_clarifai_api_GetModelRequest_descriptor;
    }

    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return clarifai2.internal.grpc.api.ModelOuterClass.internal_static_clarifai_api_GetModelRequest_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              clarifai2.internal.grpc.api.ModelOuterClass.GetModelRequest.class, clarifai2.internal.grpc.api.ModelOuterClass.GetModelRequest.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 MODEL_ID_FIELD_NUMBER = 2;
    private volatile java.lang.Object modelId_;
    /**
     * string model_id = 2;
     */
    public java.lang.String getModelId() {
      java.lang.Object ref = modelId_;
      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();
        modelId_ = s;
        return s;
      }
    }
    /**
     * string model_id = 2;
     */
    public com.google.protobuf.ByteString
        getModelIdBytes() {
      java.lang.Object ref = modelId_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        modelId_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int VERSION_ID_FIELD_NUMBER = 3;
    private volatile java.lang.Object versionId_;
    /**
     * string version_id = 3;
     */
    public java.lang.String getVersionId() {
      java.lang.Object ref = versionId_;
      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();
        versionId_ = s;
        return s;
      }
    }
    /**
     * string version_id = 3;
     */
    public com.google.protobuf.ByteString
        getVersionIdBytes() {
      java.lang.Object ref = versionId_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        versionId_ = 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 {
      if (userAppId_ != null) {
        output.writeMessage(1, getUserAppId());
      }
      if (!getModelIdBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, modelId_);
      }
      if (!getVersionIdBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, versionId_);
      }
      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 (!getModelIdBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, modelId_);
      }
      if (!getVersionIdBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, versionId_);
      }
      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.ModelOuterClass.GetModelRequest)) {
        return super.equals(obj);
      }
      clarifai2.internal.grpc.api.ModelOuterClass.GetModelRequest other = (clarifai2.internal.grpc.api.ModelOuterClass.GetModelRequest) obj;

      boolean result = true;
      result = result && (hasUserAppId() == other.hasUserAppId());
      if (hasUserAppId()) {
        result = result && getUserAppId()
            .equals(other.getUserAppId());
      }
      result = result && getModelId()
          .equals(other.getModelId());
      result = result && getVersionId()
          .equals(other.getVersionId());
      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();
      }
      hash = (37 * hash) + MODEL_ID_FIELD_NUMBER;
      hash = (53 * hash) + getModelId().hashCode();
      hash = (37 * hash) + VERSION_ID_FIELD_NUMBER;
      hash = (53 * hash) + getVersionId().hashCode();
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static clarifai2.internal.grpc.api.ModelOuterClass.GetModelRequest parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static clarifai2.internal.grpc.api.ModelOuterClass.GetModelRequest 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.ModelOuterClass.GetModelRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static clarifai2.internal.grpc.api.ModelOuterClass.GetModelRequest 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.ModelOuterClass.GetModelRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static clarifai2.internal.grpc.api.ModelOuterClass.GetModelRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static clarifai2.internal.grpc.api.ModelOuterClass.GetModelRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static clarifai2.internal.grpc.api.ModelOuterClass.GetModelRequest 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.ModelOuterClass.GetModelRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static clarifai2.internal.grpc.api.ModelOuterClass.GetModelRequest 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.ModelOuterClass.GetModelRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static clarifai2.internal.grpc.api.ModelOuterClass.GetModelRequest 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.ModelOuterClass.GetModelRequest 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.GetModelRequest}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:clarifai.api.GetModelRequest)
        clarifai2.internal.grpc.api.ModelOuterClass.GetModelRequestOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return clarifai2.internal.grpc.api.ModelOuterClass.internal_static_clarifai_api_GetModelRequest_descriptor;
      }

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return clarifai2.internal.grpc.api.ModelOuterClass.internal_static_clarifai_api_GetModelRequest_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                clarifai2.internal.grpc.api.ModelOuterClass.GetModelRequest.class, clarifai2.internal.grpc.api.ModelOuterClass.GetModelRequest.Builder.class);
      }

      // Construct using clarifai2.internal.grpc.api.ModelOuterClass.GetModelRequest.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;
        }
        modelId_ = "";

        versionId_ = "";

        return this;
      }

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

      public clarifai2.internal.grpc.api.ModelOuterClass.GetModelRequest getDefaultInstanceForType() {
        return clarifai2.internal.grpc.api.ModelOuterClass.GetModelRequest.getDefaultInstance();
      }

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

      public clarifai2.internal.grpc.api.ModelOuterClass.GetModelRequest buildPartial() {
        clarifai2.internal.grpc.api.ModelOuterClass.GetModelRequest result = new clarifai2.internal.grpc.api.ModelOuterClass.GetModelRequest(this);
        if (userAppIdBuilder_ == null) {
          result.userAppId_ = userAppId_;
        } else {
          result.userAppId_ = userAppIdBuilder_.build();
        }
        result.modelId_ = modelId_;
        result.versionId_ = versionId_;
        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.ModelOuterClass.GetModelRequest) {
          return mergeFrom((clarifai2.internal.grpc.api.ModelOuterClass.GetModelRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(clarifai2.internal.grpc.api.ModelOuterClass.GetModelRequest other) {
        if (other == clarifai2.internal.grpc.api.ModelOuterClass.GetModelRequest.getDefaultInstance()) return this;
        if (other.hasUserAppId()) {
          mergeUserAppId(other.getUserAppId());
        }
        if (!other.getModelId().isEmpty()) {
          modelId_ = other.modelId_;
          onChanged();
        }
        if (!other.getVersionId().isEmpty()) {
          versionId_ = other.versionId_;
          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.ModelOuterClass.GetModelRequest parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (clarifai2.internal.grpc.api.ModelOuterClass.GetModelRequest) 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 java.lang.Object modelId_ = "";
      /**
       * string model_id = 2;
       */
      public java.lang.String getModelId() {
        java.lang.Object ref = modelId_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          modelId_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * string model_id = 2;
       */
      public com.google.protobuf.ByteString
          getModelIdBytes() {
        java.lang.Object ref = modelId_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          modelId_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * string model_id = 2;
       */
      public Builder setModelId(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        modelId_ = value;
        onChanged();
        return this;
      }
      /**
       * string model_id = 2;
       */
      public Builder clearModelId() {
        
        modelId_ = getDefaultInstance().getModelId();
        onChanged();
        return this;
      }
      /**
       * string model_id = 2;
       */
      public Builder setModelIdBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        modelId_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object versionId_ = "";
      /**
       * string version_id = 3;
       */
      public java.lang.String getVersionId() {
        java.lang.Object ref = versionId_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          versionId_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * string version_id = 3;
       */
      public com.google.protobuf.ByteString
          getVersionIdBytes() {
        java.lang.Object ref = versionId_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          versionId_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * string version_id = 3;
       */
      public Builder setVersionId(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        versionId_ = value;
        onChanged();
        return this;
      }
      /**
       * string version_id = 3;
       */
      public Builder clearVersionId() {
        
        versionId_ = getDefaultInstance().getVersionId();
        onChanged();
        return this;
      }
      /**
       * string version_id = 3;
       */
      public Builder setVersionIdBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        versionId_ = 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.GetModelRequest)
    }

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

    public static clarifai2.internal.grpc.api.ModelOuterClass.GetModelRequest getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser
        PARSER = new com.google.protobuf.AbstractParser() {
      public GetModelRequest parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new GetModelRequest(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.ModelOuterClass.GetModelRequest getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface GetModelOutputInfoRequestOrBuilder extends
      // @@protoc_insertion_point(interface_extends:clarifai.api.GetModelOutputInfoRequest)
      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();

    /**
     * string model_id = 2;
     */
    java.lang.String getModelId();
    /**
     * string model_id = 2;
     */
    com.google.protobuf.ByteString
        getModelIdBytes();

    /**
     * string version_id = 3;
     */
    java.lang.String getVersionId();
    /**
     * string version_id = 3;
     */
    com.google.protobuf.ByteString
        getVersionIdBytes();
  }
  /**
   * Protobuf type {@code clarifai.api.GetModelOutputInfoRequest}
   */
  public  static final class GetModelOutputInfoRequest extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:clarifai.api.GetModelOutputInfoRequest)
      GetModelOutputInfoRequestOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use GetModelOutputInfoRequest.newBuilder() to construct.
    private GetModelOutputInfoRequest(com.google.protobuf.GeneratedMessageV3.Builder builder) {
      super(builder);
    }
    private GetModelOutputInfoRequest() {
      modelId_ = "";
      versionId_ = "";
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private GetModelOutputInfoRequest(
        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: {
              java.lang.String s = input.readStringRequireUtf8();

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

              versionId_ = 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 {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return clarifai2.internal.grpc.api.ModelOuterClass.internal_static_clarifai_api_GetModelOutputInfoRequest_descriptor;
    }

    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return clarifai2.internal.grpc.api.ModelOuterClass.internal_static_clarifai_api_GetModelOutputInfoRequest_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              clarifai2.internal.grpc.api.ModelOuterClass.GetModelOutputInfoRequest.class, clarifai2.internal.grpc.api.ModelOuterClass.GetModelOutputInfoRequest.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 MODEL_ID_FIELD_NUMBER = 2;
    private volatile java.lang.Object modelId_;
    /**
     * string model_id = 2;
     */
    public java.lang.String getModelId() {
      java.lang.Object ref = modelId_;
      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();
        modelId_ = s;
        return s;
      }
    }
    /**
     * string model_id = 2;
     */
    public com.google.protobuf.ByteString
        getModelIdBytes() {
      java.lang.Object ref = modelId_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        modelId_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int VERSION_ID_FIELD_NUMBER = 3;
    private volatile java.lang.Object versionId_;
    /**
     * string version_id = 3;
     */
    public java.lang.String getVersionId() {
      java.lang.Object ref = versionId_;
      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();
        versionId_ = s;
        return s;
      }
    }
    /**
     * string version_id = 3;
     */
    public com.google.protobuf.ByteString
        getVersionIdBytes() {
      java.lang.Object ref = versionId_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        versionId_ = 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 {
      if (userAppId_ != null) {
        output.writeMessage(1, getUserAppId());
      }
      if (!getModelIdBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, modelId_);
      }
      if (!getVersionIdBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, versionId_);
      }
      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 (!getModelIdBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, modelId_);
      }
      if (!getVersionIdBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, versionId_);
      }
      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.ModelOuterClass.GetModelOutputInfoRequest)) {
        return super.equals(obj);
      }
      clarifai2.internal.grpc.api.ModelOuterClass.GetModelOutputInfoRequest other = (clarifai2.internal.grpc.api.ModelOuterClass.GetModelOutputInfoRequest) obj;

      boolean result = true;
      result = result && (hasUserAppId() == other.hasUserAppId());
      if (hasUserAppId()) {
        result = result && getUserAppId()
            .equals(other.getUserAppId());
      }
      result = result && getModelId()
          .equals(other.getModelId());
      result = result && getVersionId()
          .equals(other.getVersionId());
      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();
      }
      hash = (37 * hash) + MODEL_ID_FIELD_NUMBER;
      hash = (53 * hash) + getModelId().hashCode();
      hash = (37 * hash) + VERSION_ID_FIELD_NUMBER;
      hash = (53 * hash) + getVersionId().hashCode();
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static clarifai2.internal.grpc.api.ModelOuterClass.GetModelOutputInfoRequest parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static clarifai2.internal.grpc.api.ModelOuterClass.GetModelOutputInfoRequest 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.ModelOuterClass.GetModelOutputInfoRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static clarifai2.internal.grpc.api.ModelOuterClass.GetModelOutputInfoRequest 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.ModelOuterClass.GetModelOutputInfoRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static clarifai2.internal.grpc.api.ModelOuterClass.GetModelOutputInfoRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static clarifai2.internal.grpc.api.ModelOuterClass.GetModelOutputInfoRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static clarifai2.internal.grpc.api.ModelOuterClass.GetModelOutputInfoRequest 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.ModelOuterClass.GetModelOutputInfoRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static clarifai2.internal.grpc.api.ModelOuterClass.GetModelOutputInfoRequest 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.ModelOuterClass.GetModelOutputInfoRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static clarifai2.internal.grpc.api.ModelOuterClass.GetModelOutputInfoRequest 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.ModelOuterClass.GetModelOutputInfoRequest 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.GetModelOutputInfoRequest}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:clarifai.api.GetModelOutputInfoRequest)
        clarifai2.internal.grpc.api.ModelOuterClass.GetModelOutputInfoRequestOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return clarifai2.internal.grpc.api.ModelOuterClass.internal_static_clarifai_api_GetModelOutputInfoRequest_descriptor;
      }

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return clarifai2.internal.grpc.api.ModelOuterClass.internal_static_clarifai_api_GetModelOutputInfoRequest_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                clarifai2.internal.grpc.api.ModelOuterClass.GetModelOutputInfoRequest.class, clarifai2.internal.grpc.api.ModelOuterClass.GetModelOutputInfoRequest.Builder.class);
      }

      // Construct using clarifai2.internal.grpc.api.ModelOuterClass.GetModelOutputInfoRequest.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;
        }
        modelId_ = "";

        versionId_ = "";

        return this;
      }

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

      public clarifai2.internal.grpc.api.ModelOuterClass.GetModelOutputInfoRequest getDefaultInstanceForType() {
        return clarifai2.internal.grpc.api.ModelOuterClass.GetModelOutputInfoRequest.getDefaultInstance();
      }

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

      public clarifai2.internal.grpc.api.ModelOuterClass.GetModelOutputInfoRequest buildPartial() {
        clarifai2.internal.grpc.api.ModelOuterClass.GetModelOutputInfoRequest result = new clarifai2.internal.grpc.api.ModelOuterClass.GetModelOutputInfoRequest(this);
        if (userAppIdBuilder_ == null) {
          result.userAppId_ = userAppId_;
        } else {
          result.userAppId_ = userAppIdBuilder_.build();
        }
        result.modelId_ = modelId_;
        result.versionId_ = versionId_;
        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.ModelOuterClass.GetModelOutputInfoRequest) {
          return mergeFrom((clarifai2.internal.grpc.api.ModelOuterClass.GetModelOutputInfoRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(clarifai2.internal.grpc.api.ModelOuterClass.GetModelOutputInfoRequest other) {
        if (other == clarifai2.internal.grpc.api.ModelOuterClass.GetModelOutputInfoRequest.getDefaultInstance()) return this;
        if (other.hasUserAppId()) {
          mergeUserAppId(other.getUserAppId());
        }
        if (!other.getModelId().isEmpty()) {
          modelId_ = other.modelId_;
          onChanged();
        }
        if (!other.getVersionId().isEmpty()) {
          versionId_ = other.versionId_;
          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.ModelOuterClass.GetModelOutputInfoRequest parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (clarifai2.internal.grpc.api.ModelOuterClass.GetModelOutputInfoRequest) 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 java.lang.Object modelId_ = "";
      /**
       * string model_id = 2;
       */
      public java.lang.String getModelId() {
        java.lang.Object ref = modelId_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          modelId_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * string model_id = 2;
       */
      public com.google.protobuf.ByteString
          getModelIdBytes() {
        java.lang.Object ref = modelId_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          modelId_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * string model_id = 2;
       */
      public Builder setModelId(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        modelId_ = value;
        onChanged();
        return this;
      }
      /**
       * string model_id = 2;
       */
      public Builder clearModelId() {
        
        modelId_ = getDefaultInstance().getModelId();
        onChanged();
        return this;
      }
      /**
       * string model_id = 2;
       */
      public Builder setModelIdBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        modelId_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object versionId_ = "";
      /**
       * string version_id = 3;
       */
      public java.lang.String getVersionId() {
        java.lang.Object ref = versionId_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          versionId_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * string version_id = 3;
       */
      public com.google.protobuf.ByteString
          getVersionIdBytes() {
        java.lang.Object ref = versionId_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          versionId_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * string version_id = 3;
       */
      public Builder setVersionId(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        versionId_ = value;
        onChanged();
        return this;
      }
      /**
       * string version_id = 3;
       */
      public Builder clearVersionId() {
        
        versionId_ = getDefaultInstance().getVersionId();
        onChanged();
        return this;
      }
      /**
       * string version_id = 3;
       */
      public Builder setVersionIdBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        versionId_ = 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.GetModelOutputInfoRequest)
    }

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

    public static clarifai2.internal.grpc.api.ModelOuterClass.GetModelOutputInfoRequest getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser
        PARSER = new com.google.protobuf.AbstractParser() {
      public GetModelOutputInfoRequest parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new GetModelOutputInfoRequest(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.ModelOuterClass.GetModelOutputInfoRequest getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface ListModelsRequestOrBuilder extends
      // @@protoc_insertion_point(interface_extends:clarifai.api.ListModelsRequest)
      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();

    /**
     * uint32 page = 2;
     */
    int getPage();

    /**
     * uint32 per_page = 3;
     */
    int getPerPage();

    /**
     * repeated string ids = 4;
     */
    java.util.List
        getIdsList();
    /**
     * repeated string ids = 4;
     */
    int getIdsCount();
    /**
     * repeated string ids = 4;
     */
    java.lang.String getIds(int index);
    /**
     * repeated string ids = 4;
     */
    com.google.protobuf.ByteString
        getIdsBytes(int index);
  }
  /**
   * Protobuf type {@code clarifai.api.ListModelsRequest}
   */
  public  static final class ListModelsRequest extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:clarifai.api.ListModelsRequest)
      ListModelsRequestOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use ListModelsRequest.newBuilder() to construct.
    private ListModelsRequest(com.google.protobuf.GeneratedMessageV3.Builder builder) {
      super(builder);
    }
    private ListModelsRequest() {
      page_ = 0;
      perPage_ = 0;
      ids_ = com.google.protobuf.LazyStringArrayList.EMPTY;
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private ListModelsRequest(
        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 16: {

              page_ = input.readUInt32();
              break;
            }
            case 24: {

              perPage_ = input.readUInt32();
              break;
            }
            case 34: {
              java.lang.String s = input.readStringRequireUtf8();
              if (!((mutable_bitField0_ & 0x00000008) == 0x00000008)) {
                ids_ = new com.google.protobuf.LazyStringArrayList();
                mutable_bitField0_ |= 0x00000008;
              }
              ids_.add(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_ & 0x00000008) == 0x00000008)) {
          ids_ = ids_.getUnmodifiableView();
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return clarifai2.internal.grpc.api.ModelOuterClass.internal_static_clarifai_api_ListModelsRequest_descriptor;
    }

    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return clarifai2.internal.grpc.api.ModelOuterClass.internal_static_clarifai_api_ListModelsRequest_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              clarifai2.internal.grpc.api.ModelOuterClass.ListModelsRequest.class, clarifai2.internal.grpc.api.ModelOuterClass.ListModelsRequest.Builder.class);
    }

    private int bitField0_;
    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 PAGE_FIELD_NUMBER = 2;
    private int page_;
    /**
     * uint32 page = 2;
     */
    public int getPage() {
      return page_;
    }

    public static final int PER_PAGE_FIELD_NUMBER = 3;
    private int perPage_;
    /**
     * uint32 per_page = 3;
     */
    public int getPerPage() {
      return perPage_;
    }

    public static final int IDS_FIELD_NUMBER = 4;
    private com.google.protobuf.LazyStringList ids_;
    /**
     * repeated string ids = 4;
     */
    public com.google.protobuf.ProtocolStringList
        getIdsList() {
      return ids_;
    }
    /**
     * repeated string ids = 4;
     */
    public int getIdsCount() {
      return ids_.size();
    }
    /**
     * repeated string ids = 4;
     */
    public java.lang.String getIds(int index) {
      return ids_.get(index);
    }
    /**
     * repeated string ids = 4;
     */
    public com.google.protobuf.ByteString
        getIdsBytes(int index) {
      return ids_.getByteString(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 (userAppId_ != null) {
        output.writeMessage(1, getUserAppId());
      }
      if (page_ != 0) {
        output.writeUInt32(2, page_);
      }
      if (perPage_ != 0) {
        output.writeUInt32(3, perPage_);
      }
      for (int i = 0; i < ids_.size(); i++) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 4, ids_.getRaw(i));
      }
      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 (page_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, page_);
      }
      if (perPage_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(3, perPage_);
      }
      {
        int dataSize = 0;
        for (int i = 0; i < ids_.size(); i++) {
          dataSize += computeStringSizeNoTag(ids_.getRaw(i));
        }
        size += dataSize;
        size += 1 * getIdsList().size();
      }
      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.ModelOuterClass.ListModelsRequest)) {
        return super.equals(obj);
      }
      clarifai2.internal.grpc.api.ModelOuterClass.ListModelsRequest other = (clarifai2.internal.grpc.api.ModelOuterClass.ListModelsRequest) obj;

      boolean result = true;
      result = result && (hasUserAppId() == other.hasUserAppId());
      if (hasUserAppId()) {
        result = result && getUserAppId()
            .equals(other.getUserAppId());
      }
      result = result && (getPage()
          == other.getPage());
      result = result && (getPerPage()
          == other.getPerPage());
      result = result && getIdsList()
          .equals(other.getIdsList());
      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();
      }
      hash = (37 * hash) + PAGE_FIELD_NUMBER;
      hash = (53 * hash) + getPage();
      hash = (37 * hash) + PER_PAGE_FIELD_NUMBER;
      hash = (53 * hash) + getPerPage();
      if (getIdsCount() > 0) {
        hash = (37 * hash) + IDS_FIELD_NUMBER;
        hash = (53 * hash) + getIdsList().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static clarifai2.internal.grpc.api.ModelOuterClass.ListModelsRequest parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static clarifai2.internal.grpc.api.ModelOuterClass.ListModelsRequest 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.ModelOuterClass.ListModelsRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static clarifai2.internal.grpc.api.ModelOuterClass.ListModelsRequest 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.ModelOuterClass.ListModelsRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static clarifai2.internal.grpc.api.ModelOuterClass.ListModelsRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static clarifai2.internal.grpc.api.ModelOuterClass.ListModelsRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static clarifai2.internal.grpc.api.ModelOuterClass.ListModelsRequest 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.ModelOuterClass.ListModelsRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static clarifai2.internal.grpc.api.ModelOuterClass.ListModelsRequest 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.ModelOuterClass.ListModelsRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static clarifai2.internal.grpc.api.ModelOuterClass.ListModelsRequest 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.ModelOuterClass.ListModelsRequest 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.ListModelsRequest}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:clarifai.api.ListModelsRequest)
        clarifai2.internal.grpc.api.ModelOuterClass.ListModelsRequestOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return clarifai2.internal.grpc.api.ModelOuterClass.internal_static_clarifai_api_ListModelsRequest_descriptor;
      }

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return clarifai2.internal.grpc.api.ModelOuterClass.internal_static_clarifai_api_ListModelsRequest_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                clarifai2.internal.grpc.api.ModelOuterClass.ListModelsRequest.class, clarifai2.internal.grpc.api.ModelOuterClass.ListModelsRequest.Builder.class);
      }

      // Construct using clarifai2.internal.grpc.api.ModelOuterClass.ListModelsRequest.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;
        }
        page_ = 0;

        perPage_ = 0;

        ids_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000008);
        return this;
      }

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

      public clarifai2.internal.grpc.api.ModelOuterClass.ListModelsRequest getDefaultInstanceForType() {
        return clarifai2.internal.grpc.api.ModelOuterClass.ListModelsRequest.getDefaultInstance();
      }

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

      public clarifai2.internal.grpc.api.ModelOuterClass.ListModelsRequest buildPartial() {
        clarifai2.internal.grpc.api.ModelOuterClass.ListModelsRequest result = new clarifai2.internal.grpc.api.ModelOuterClass.ListModelsRequest(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (userAppIdBuilder_ == null) {
          result.userAppId_ = userAppId_;
        } else {
          result.userAppId_ = userAppIdBuilder_.build();
        }
        result.page_ = page_;
        result.perPage_ = perPage_;
        if (((bitField0_ & 0x00000008) == 0x00000008)) {
          ids_ = ids_.getUnmodifiableView();
          bitField0_ = (bitField0_ & ~0x00000008);
        }
        result.ids_ = ids_;
        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.ModelOuterClass.ListModelsRequest) {
          return mergeFrom((clarifai2.internal.grpc.api.ModelOuterClass.ListModelsRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(clarifai2.internal.grpc.api.ModelOuterClass.ListModelsRequest other) {
        if (other == clarifai2.internal.grpc.api.ModelOuterClass.ListModelsRequest.getDefaultInstance()) return this;
        if (other.hasUserAppId()) {
          mergeUserAppId(other.getUserAppId());
        }
        if (other.getPage() != 0) {
          setPage(other.getPage());
        }
        if (other.getPerPage() != 0) {
          setPerPage(other.getPerPage());
        }
        if (!other.ids_.isEmpty()) {
          if (ids_.isEmpty()) {
            ids_ = other.ids_;
            bitField0_ = (bitField0_ & ~0x00000008);
          } else {
            ensureIdsIsMutable();
            ids_.addAll(other.ids_);
          }
          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.ModelOuterClass.ListModelsRequest parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (clarifai2.internal.grpc.api.ModelOuterClass.ListModelsRequest) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      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 int page_ ;
      /**
       * uint32 page = 2;
       */
      public int getPage() {
        return page_;
      }
      /**
       * uint32 page = 2;
       */
      public Builder setPage(int value) {
        
        page_ = value;
        onChanged();
        return this;
      }
      /**
       * uint32 page = 2;
       */
      public Builder clearPage() {
        
        page_ = 0;
        onChanged();
        return this;
      }

      private int perPage_ ;
      /**
       * uint32 per_page = 3;
       */
      public int getPerPage() {
        return perPage_;
      }
      /**
       * uint32 per_page = 3;
       */
      public Builder setPerPage(int value) {
        
        perPage_ = value;
        onChanged();
        return this;
      }
      /**
       * uint32 per_page = 3;
       */
      public Builder clearPerPage() {
        
        perPage_ = 0;
        onChanged();
        return this;
      }

      private com.google.protobuf.LazyStringList ids_ = com.google.protobuf.LazyStringArrayList.EMPTY;
      private void ensureIdsIsMutable() {
        if (!((bitField0_ & 0x00000008) == 0x00000008)) {
          ids_ = new com.google.protobuf.LazyStringArrayList(ids_);
          bitField0_ |= 0x00000008;
         }
      }
      /**
       * repeated string ids = 4;
       */
      public com.google.protobuf.ProtocolStringList
          getIdsList() {
        return ids_.getUnmodifiableView();
      }
      /**
       * repeated string ids = 4;
       */
      public int getIdsCount() {
        return ids_.size();
      }
      /**
       * repeated string ids = 4;
       */
      public java.lang.String getIds(int index) {
        return ids_.get(index);
      }
      /**
       * repeated string ids = 4;
       */
      public com.google.protobuf.ByteString
          getIdsBytes(int index) {
        return ids_.getByteString(index);
      }
      /**
       * repeated string ids = 4;
       */
      public Builder setIds(
          int index, java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureIdsIsMutable();
        ids_.set(index, value);
        onChanged();
        return this;
      }
      /**
       * repeated string ids = 4;
       */
      public Builder addIds(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureIdsIsMutable();
        ids_.add(value);
        onChanged();
        return this;
      }
      /**
       * repeated string ids = 4;
       */
      public Builder addAllIds(
          java.lang.Iterable values) {
        ensureIdsIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, ids_);
        onChanged();
        return this;
      }
      /**
       * repeated string ids = 4;
       */
      public Builder clearIds() {
        ids_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000008);
        onChanged();
        return this;
      }
      /**
       * repeated string ids = 4;
       */
      public Builder addIdsBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        ensureIdsIsMutable();
        ids_.add(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.ListModelsRequest)
    }

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

    public static clarifai2.internal.grpc.api.ModelOuterClass.ListModelsRequest getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser
        PARSER = new com.google.protobuf.AbstractParser() {
      public ListModelsRequest parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new ListModelsRequest(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.ModelOuterClass.ListModelsRequest getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface PostModelsRequestOrBuilder extends
      // @@protoc_insertion_point(interface_extends:clarifai.api.PostModelsRequest)
      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.Model model = 2 [deprecated = true];
     */
    @java.lang.Deprecated boolean hasModel();
    /**
     * .clarifai.api.Model model = 2 [deprecated = true];
     */
    @java.lang.Deprecated clarifai2.internal.grpc.api.ModelOuterClass.Model getModel();
    /**
     * .clarifai.api.Model model = 2 [deprecated = true];
     */
    @java.lang.Deprecated clarifai2.internal.grpc.api.ModelOuterClass.ModelOrBuilder getModelOrBuilder();

    /**
     * repeated .clarifai.api.Model models = 3;
     */
    java.util.List 
        getModelsList();
    /**
     * repeated .clarifai.api.Model models = 3;
     */
    clarifai2.internal.grpc.api.ModelOuterClass.Model getModels(int index);
    /**
     * repeated .clarifai.api.Model models = 3;
     */
    int getModelsCount();
    /**
     * repeated .clarifai.api.Model models = 3;
     */
    java.util.List 
        getModelsOrBuilderList();
    /**
     * repeated .clarifai.api.Model models = 3;
     */
    clarifai2.internal.grpc.api.ModelOuterClass.ModelOrBuilder getModelsOrBuilder(
        int index);
  }
  /**
   * Protobuf type {@code clarifai.api.PostModelsRequest}
   */
  public  static final class PostModelsRequest extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:clarifai.api.PostModelsRequest)
      PostModelsRequestOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use PostModelsRequest.newBuilder() to construct.
    private PostModelsRequest(com.google.protobuf.GeneratedMessageV3.Builder builder) {
      super(builder);
    }
    private PostModelsRequest() {
      models_ = java.util.Collections.emptyList();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private PostModelsRequest(
        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.ModelOuterClass.Model.Builder subBuilder = null;
              if (model_ != null) {
                subBuilder = model_.toBuilder();
              }
              model_ = input.readMessage(clarifai2.internal.grpc.api.ModelOuterClass.Model.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(model_);
                model_ = subBuilder.buildPartial();
              }

              break;
            }
            case 26: {
              if (!((mutable_bitField0_ & 0x00000004) == 0x00000004)) {
                models_ = new java.util.ArrayList();
                mutable_bitField0_ |= 0x00000004;
              }
              models_.add(
                  input.readMessage(clarifai2.internal.grpc.api.ModelOuterClass.Model.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)) {
          models_ = java.util.Collections.unmodifiableList(models_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return clarifai2.internal.grpc.api.ModelOuterClass.internal_static_clarifai_api_PostModelsRequest_descriptor;
    }

    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return clarifai2.internal.grpc.api.ModelOuterClass.internal_static_clarifai_api_PostModelsRequest_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              clarifai2.internal.grpc.api.ModelOuterClass.PostModelsRequest.class, clarifai2.internal.grpc.api.ModelOuterClass.PostModelsRequest.Builder.class);
    }

    private int bitField0_;
    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 MODEL_FIELD_NUMBER = 2;
    private clarifai2.internal.grpc.api.ModelOuterClass.Model model_;
    /**
     * .clarifai.api.Model model = 2 [deprecated = true];
     */
    @java.lang.Deprecated public boolean hasModel() {
      return model_ != null;
    }
    /**
     * .clarifai.api.Model model = 2 [deprecated = true];
     */
    @java.lang.Deprecated public clarifai2.internal.grpc.api.ModelOuterClass.Model getModel() {
      return model_ == null ? clarifai2.internal.grpc.api.ModelOuterClass.Model.getDefaultInstance() : model_;
    }
    /**
     * .clarifai.api.Model model = 2 [deprecated = true];
     */
    @java.lang.Deprecated public clarifai2.internal.grpc.api.ModelOuterClass.ModelOrBuilder getModelOrBuilder() {
      return getModel();
    }

    public static final int MODELS_FIELD_NUMBER = 3;
    private java.util.List models_;
    /**
     * repeated .clarifai.api.Model models = 3;
     */
    public java.util.List getModelsList() {
      return models_;
    }
    /**
     * repeated .clarifai.api.Model models = 3;
     */
    public java.util.List 
        getModelsOrBuilderList() {
      return models_;
    }
    /**
     * repeated .clarifai.api.Model models = 3;
     */
    public int getModelsCount() {
      return models_.size();
    }
    /**
     * repeated .clarifai.api.Model models = 3;
     */
    public clarifai2.internal.grpc.api.ModelOuterClass.Model getModels(int index) {
      return models_.get(index);
    }
    /**
     * repeated .clarifai.api.Model models = 3;
     */
    public clarifai2.internal.grpc.api.ModelOuterClass.ModelOrBuilder getModelsOrBuilder(
        int index) {
      return models_.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 (userAppId_ != null) {
        output.writeMessage(1, getUserAppId());
      }
      if (model_ != null) {
        output.writeMessage(2, getModel());
      }
      for (int i = 0; i < models_.size(); i++) {
        output.writeMessage(3, models_.get(i));
      }
      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 (model_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, getModel());
      }
      for (int i = 0; i < models_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, models_.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.ModelOuterClass.PostModelsRequest)) {
        return super.equals(obj);
      }
      clarifai2.internal.grpc.api.ModelOuterClass.PostModelsRequest other = (clarifai2.internal.grpc.api.ModelOuterClass.PostModelsRequest) obj;

      boolean result = true;
      result = result && (hasUserAppId() == other.hasUserAppId());
      if (hasUserAppId()) {
        result = result && getUserAppId()
            .equals(other.getUserAppId());
      }
      result = result && (hasModel() == other.hasModel());
      if (hasModel()) {
        result = result && getModel()
            .equals(other.getModel());
      }
      result = result && getModelsList()
          .equals(other.getModelsList());
      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 (hasModel()) {
        hash = (37 * hash) + MODEL_FIELD_NUMBER;
        hash = (53 * hash) + getModel().hashCode();
      }
      if (getModelsCount() > 0) {
        hash = (37 * hash) + MODELS_FIELD_NUMBER;
        hash = (53 * hash) + getModelsList().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static clarifai2.internal.grpc.api.ModelOuterClass.PostModelsRequest parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static clarifai2.internal.grpc.api.ModelOuterClass.PostModelsRequest 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.ModelOuterClass.PostModelsRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static clarifai2.internal.grpc.api.ModelOuterClass.PostModelsRequest 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.ModelOuterClass.PostModelsRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static clarifai2.internal.grpc.api.ModelOuterClass.PostModelsRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static clarifai2.internal.grpc.api.ModelOuterClass.PostModelsRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static clarifai2.internal.grpc.api.ModelOuterClass.PostModelsRequest 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.ModelOuterClass.PostModelsRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static clarifai2.internal.grpc.api.ModelOuterClass.PostModelsRequest 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.ModelOuterClass.PostModelsRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static clarifai2.internal.grpc.api.ModelOuterClass.PostModelsRequest 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.ModelOuterClass.PostModelsRequest 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.PostModelsRequest}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:clarifai.api.PostModelsRequest)
        clarifai2.internal.grpc.api.ModelOuterClass.PostModelsRequestOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return clarifai2.internal.grpc.api.ModelOuterClass.internal_static_clarifai_api_PostModelsRequest_descriptor;
      }

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return clarifai2.internal.grpc.api.ModelOuterClass.internal_static_clarifai_api_PostModelsRequest_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                clarifai2.internal.grpc.api.ModelOuterClass.PostModelsRequest.class, clarifai2.internal.grpc.api.ModelOuterClass.PostModelsRequest.Builder.class);
      }

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

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getModelsFieldBuilder();
        }
      }
      public Builder clear() {
        super.clear();
        if (userAppIdBuilder_ == null) {
          userAppId_ = null;
        } else {
          userAppId_ = null;
          userAppIdBuilder_ = null;
        }
        if (modelBuilder_ == null) {
          model_ = null;
        } else {
          model_ = null;
          modelBuilder_ = null;
        }
        if (modelsBuilder_ == null) {
          models_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000004);
        } else {
          modelsBuilder_.clear();
        }
        return this;
      }

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

      public clarifai2.internal.grpc.api.ModelOuterClass.PostModelsRequest getDefaultInstanceForType() {
        return clarifai2.internal.grpc.api.ModelOuterClass.PostModelsRequest.getDefaultInstance();
      }

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

      public clarifai2.internal.grpc.api.ModelOuterClass.PostModelsRequest buildPartial() {
        clarifai2.internal.grpc.api.ModelOuterClass.PostModelsRequest result = new clarifai2.internal.grpc.api.ModelOuterClass.PostModelsRequest(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (userAppIdBuilder_ == null) {
          result.userAppId_ = userAppId_;
        } else {
          result.userAppId_ = userAppIdBuilder_.build();
        }
        if (modelBuilder_ == null) {
          result.model_ = model_;
        } else {
          result.model_ = modelBuilder_.build();
        }
        if (modelsBuilder_ == null) {
          if (((bitField0_ & 0x00000004) == 0x00000004)) {
            models_ = java.util.Collections.unmodifiableList(models_);
            bitField0_ = (bitField0_ & ~0x00000004);
          }
          result.models_ = models_;
        } else {
          result.models_ = modelsBuilder_.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.ModelOuterClass.PostModelsRequest) {
          return mergeFrom((clarifai2.internal.grpc.api.ModelOuterClass.PostModelsRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(clarifai2.internal.grpc.api.ModelOuterClass.PostModelsRequest other) {
        if (other == clarifai2.internal.grpc.api.ModelOuterClass.PostModelsRequest.getDefaultInstance()) return this;
        if (other.hasUserAppId()) {
          mergeUserAppId(other.getUserAppId());
        }
        if (other.hasModel()) {
          mergeModel(other.getModel());
        }
        if (modelsBuilder_ == null) {
          if (!other.models_.isEmpty()) {
            if (models_.isEmpty()) {
              models_ = other.models_;
              bitField0_ = (bitField0_ & ~0x00000004);
            } else {
              ensureModelsIsMutable();
              models_.addAll(other.models_);
            }
            onChanged();
          }
        } else {
          if (!other.models_.isEmpty()) {
            if (modelsBuilder_.isEmpty()) {
              modelsBuilder_.dispose();
              modelsBuilder_ = null;
              models_ = other.models_;
              bitField0_ = (bitField0_ & ~0x00000004);
              modelsBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getModelsFieldBuilder() : null;
            } else {
              modelsBuilder_.addAllMessages(other.models_);
            }
          }
        }
        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.ModelOuterClass.PostModelsRequest parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (clarifai2.internal.grpc.api.ModelOuterClass.PostModelsRequest) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      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.ModelOuterClass.Model model_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
          clarifai2.internal.grpc.api.ModelOuterClass.Model, clarifai2.internal.grpc.api.ModelOuterClass.Model.Builder, clarifai2.internal.grpc.api.ModelOuterClass.ModelOrBuilder> modelBuilder_;
      /**
       * .clarifai.api.Model model = 2 [deprecated = true];
       */
      @java.lang.Deprecated public boolean hasModel() {
        return modelBuilder_ != null || model_ != null;
      }
      /**
       * .clarifai.api.Model model = 2 [deprecated = true];
       */
      @java.lang.Deprecated public clarifai2.internal.grpc.api.ModelOuterClass.Model getModel() {
        if (modelBuilder_ == null) {
          return model_ == null ? clarifai2.internal.grpc.api.ModelOuterClass.Model.getDefaultInstance() : model_;
        } else {
          return modelBuilder_.getMessage();
        }
      }
      /**
       * .clarifai.api.Model model = 2 [deprecated = true];
       */
      @java.lang.Deprecated public Builder setModel(clarifai2.internal.grpc.api.ModelOuterClass.Model value) {
        if (modelBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          model_ = value;
          onChanged();
        } else {
          modelBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * .clarifai.api.Model model = 2 [deprecated = true];
       */
      @java.lang.Deprecated public Builder setModel(
          clarifai2.internal.grpc.api.ModelOuterClass.Model.Builder builderForValue) {
        if (modelBuilder_ == null) {
          model_ = builderForValue.build();
          onChanged();
        } else {
          modelBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * .clarifai.api.Model model = 2 [deprecated = true];
       */
      @java.lang.Deprecated public Builder mergeModel(clarifai2.internal.grpc.api.ModelOuterClass.Model value) {
        if (modelBuilder_ == null) {
          if (model_ != null) {
            model_ =
              clarifai2.internal.grpc.api.ModelOuterClass.Model.newBuilder(model_).mergeFrom(value).buildPartial();
          } else {
            model_ = value;
          }
          onChanged();
        } else {
          modelBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * .clarifai.api.Model model = 2 [deprecated = true];
       */
      @java.lang.Deprecated public Builder clearModel() {
        if (modelBuilder_ == null) {
          model_ = null;
          onChanged();
        } else {
          model_ = null;
          modelBuilder_ = null;
        }

        return this;
      }
      /**
       * .clarifai.api.Model model = 2 [deprecated = true];
       */
      @java.lang.Deprecated public clarifai2.internal.grpc.api.ModelOuterClass.Model.Builder getModelBuilder() {
        
        onChanged();
        return getModelFieldBuilder().getBuilder();
      }
      /**
       * .clarifai.api.Model model = 2 [deprecated = true];
       */
      @java.lang.Deprecated public clarifai2.internal.grpc.api.ModelOuterClass.ModelOrBuilder getModelOrBuilder() {
        if (modelBuilder_ != null) {
          return modelBuilder_.getMessageOrBuilder();
        } else {
          return model_ == null ?
              clarifai2.internal.grpc.api.ModelOuterClass.Model.getDefaultInstance() : model_;
        }
      }
      /**
       * .clarifai.api.Model model = 2 [deprecated = true];
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          clarifai2.internal.grpc.api.ModelOuterClass.Model, clarifai2.internal.grpc.api.ModelOuterClass.Model.Builder, clarifai2.internal.grpc.api.ModelOuterClass.ModelOrBuilder> 
          getModelFieldBuilder() {
        if (modelBuilder_ == null) {
          modelBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              clarifai2.internal.grpc.api.ModelOuterClass.Model, clarifai2.internal.grpc.api.ModelOuterClass.Model.Builder, clarifai2.internal.grpc.api.ModelOuterClass.ModelOrBuilder>(
                  getModel(),
                  getParentForChildren(),
                  isClean());
          model_ = null;
        }
        return modelBuilder_;
      }

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

      private com.google.protobuf.RepeatedFieldBuilderV3<
          clarifai2.internal.grpc.api.ModelOuterClass.Model, clarifai2.internal.grpc.api.ModelOuterClass.Model.Builder, clarifai2.internal.grpc.api.ModelOuterClass.ModelOrBuilder> modelsBuilder_;

      /**
       * repeated .clarifai.api.Model models = 3;
       */
      public java.util.List getModelsList() {
        if (modelsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(models_);
        } else {
          return modelsBuilder_.getMessageList();
        }
      }
      /**
       * repeated .clarifai.api.Model models = 3;
       */
      public int getModelsCount() {
        if (modelsBuilder_ == null) {
          return models_.size();
        } else {
          return modelsBuilder_.getCount();
        }
      }
      /**
       * repeated .clarifai.api.Model models = 3;
       */
      public clarifai2.internal.grpc.api.ModelOuterClass.Model getModels(int index) {
        if (modelsBuilder_ == null) {
          return models_.get(index);
        } else {
          return modelsBuilder_.getMessage(index);
        }
      }
      /**
       * repeated .clarifai.api.Model models = 3;
       */
      public Builder setModels(
          int index, clarifai2.internal.grpc.api.ModelOuterClass.Model value) {
        if (modelsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureModelsIsMutable();
          models_.set(index, value);
          onChanged();
        } else {
          modelsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .clarifai.api.Model models = 3;
       */
      public Builder setModels(
          int index, clarifai2.internal.grpc.api.ModelOuterClass.Model.Builder builderForValue) {
        if (modelsBuilder_ == null) {
          ensureModelsIsMutable();
          models_.set(index, builderForValue.build());
          onChanged();
        } else {
          modelsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .clarifai.api.Model models = 3;
       */
      public Builder addModels(clarifai2.internal.grpc.api.ModelOuterClass.Model value) {
        if (modelsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureModelsIsMutable();
          models_.add(value);
          onChanged();
        } else {
          modelsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * repeated .clarifai.api.Model models = 3;
       */
      public Builder addModels(
          int index, clarifai2.internal.grpc.api.ModelOuterClass.Model value) {
        if (modelsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureModelsIsMutable();
          models_.add(index, value);
          onChanged();
        } else {
          modelsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .clarifai.api.Model models = 3;
       */
      public Builder addModels(
          clarifai2.internal.grpc.api.ModelOuterClass.Model.Builder builderForValue) {
        if (modelsBuilder_ == null) {
          ensureModelsIsMutable();
          models_.add(builderForValue.build());
          onChanged();
        } else {
          modelsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .clarifai.api.Model models = 3;
       */
      public Builder addModels(
          int index, clarifai2.internal.grpc.api.ModelOuterClass.Model.Builder builderForValue) {
        if (modelsBuilder_ == null) {
          ensureModelsIsMutable();
          models_.add(index, builderForValue.build());
          onChanged();
        } else {
          modelsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .clarifai.api.Model models = 3;
       */
      public Builder addAllModels(
          java.lang.Iterable values) {
        if (modelsBuilder_ == null) {
          ensureModelsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, models_);
          onChanged();
        } else {
          modelsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * repeated .clarifai.api.Model models = 3;
       */
      public Builder clearModels() {
        if (modelsBuilder_ == null) {
          models_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000004);
          onChanged();
        } else {
          modelsBuilder_.clear();
        }
        return this;
      }
      /**
       * repeated .clarifai.api.Model models = 3;
       */
      public Builder removeModels(int index) {
        if (modelsBuilder_ == null) {
          ensureModelsIsMutable();
          models_.remove(index);
          onChanged();
        } else {
          modelsBuilder_.remove(index);
        }
        return this;
      }
      /**
       * repeated .clarifai.api.Model models = 3;
       */
      public clarifai2.internal.grpc.api.ModelOuterClass.Model.Builder getModelsBuilder(
          int index) {
        return getModelsFieldBuilder().getBuilder(index);
      }
      /**
       * repeated .clarifai.api.Model models = 3;
       */
      public clarifai2.internal.grpc.api.ModelOuterClass.ModelOrBuilder getModelsOrBuilder(
          int index) {
        if (modelsBuilder_ == null) {
          return models_.get(index);  } else {
          return modelsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * repeated .clarifai.api.Model models = 3;
       */
      public java.util.List 
           getModelsOrBuilderList() {
        if (modelsBuilder_ != null) {
          return modelsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(models_);
        }
      }
      /**
       * repeated .clarifai.api.Model models = 3;
       */
      public clarifai2.internal.grpc.api.ModelOuterClass.Model.Builder addModelsBuilder() {
        return getModelsFieldBuilder().addBuilder(
            clarifai2.internal.grpc.api.ModelOuterClass.Model.getDefaultInstance());
      }
      /**
       * repeated .clarifai.api.Model models = 3;
       */
      public clarifai2.internal.grpc.api.ModelOuterClass.Model.Builder addModelsBuilder(
          int index) {
        return getModelsFieldBuilder().addBuilder(
            index, clarifai2.internal.grpc.api.ModelOuterClass.Model.getDefaultInstance());
      }
      /**
       * repeated .clarifai.api.Model models = 3;
       */
      public java.util.List 
           getModelsBuilderList() {
        return getModelsFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          clarifai2.internal.grpc.api.ModelOuterClass.Model, clarifai2.internal.grpc.api.ModelOuterClass.Model.Builder, clarifai2.internal.grpc.api.ModelOuterClass.ModelOrBuilder> 
          getModelsFieldBuilder() {
        if (modelsBuilder_ == null) {
          modelsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              clarifai2.internal.grpc.api.ModelOuterClass.Model, clarifai2.internal.grpc.api.ModelOuterClass.Model.Builder, clarifai2.internal.grpc.api.ModelOuterClass.ModelOrBuilder>(
                  models_,
                  ((bitField0_ & 0x00000004) == 0x00000004),
                  getParentForChildren(),
                  isClean());
          models_ = null;
        }
        return modelsBuilder_;
      }
      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.PostModelsRequest)
    }

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

    public static clarifai2.internal.grpc.api.ModelOuterClass.PostModelsRequest getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser
        PARSER = new com.google.protobuf.AbstractParser() {
      public PostModelsRequest parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new PostModelsRequest(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.ModelOuterClass.PostModelsRequest getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface PatchModelsRequestOrBuilder extends
      // @@protoc_insertion_point(interface_extends:clarifai.api.PatchModelsRequest)
      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();

    /**
     * repeated .clarifai.api.Model models = 2;
     */
    java.util.List 
        getModelsList();
    /**
     * repeated .clarifai.api.Model models = 2;
     */
    clarifai2.internal.grpc.api.ModelOuterClass.Model getModels(int index);
    /**
     * repeated .clarifai.api.Model models = 2;
     */
    int getModelsCount();
    /**
     * repeated .clarifai.api.Model models = 2;
     */
    java.util.List 
        getModelsOrBuilderList();
    /**
     * repeated .clarifai.api.Model models = 2;
     */
    clarifai2.internal.grpc.api.ModelOuterClass.ModelOrBuilder getModelsOrBuilder(
        int index);

    /**
     * string action = 3;
     */
    java.lang.String getAction();
    /**
     * string action = 3;
     */
    com.google.protobuf.ByteString
        getActionBytes();
  }
  /**
   * Protobuf type {@code clarifai.api.PatchModelsRequest}
   */
  public  static final class PatchModelsRequest extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:clarifai.api.PatchModelsRequest)
      PatchModelsRequestOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use PatchModelsRequest.newBuilder() to construct.
    private PatchModelsRequest(com.google.protobuf.GeneratedMessageV3.Builder builder) {
      super(builder);
    }
    private PatchModelsRequest() {
      models_ = java.util.Collections.emptyList();
      action_ = "";
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private PatchModelsRequest(
        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: {
              if (!((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
                models_ = new java.util.ArrayList();
                mutable_bitField0_ |= 0x00000002;
              }
              models_.add(
                  input.readMessage(clarifai2.internal.grpc.api.ModelOuterClass.Model.parser(), extensionRegistry));
              break;
            }
            case 26: {
              java.lang.String s = input.readStringRequireUtf8();

              action_ = 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_ & 0x00000002) == 0x00000002)) {
          models_ = java.util.Collections.unmodifiableList(models_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return clarifai2.internal.grpc.api.ModelOuterClass.internal_static_clarifai_api_PatchModelsRequest_descriptor;
    }

    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return clarifai2.internal.grpc.api.ModelOuterClass.internal_static_clarifai_api_PatchModelsRequest_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              clarifai2.internal.grpc.api.ModelOuterClass.PatchModelsRequest.class, clarifai2.internal.grpc.api.ModelOuterClass.PatchModelsRequest.Builder.class);
    }

    private int bitField0_;
    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 MODELS_FIELD_NUMBER = 2;
    private java.util.List models_;
    /**
     * repeated .clarifai.api.Model models = 2;
     */
    public java.util.List getModelsList() {
      return models_;
    }
    /**
     * repeated .clarifai.api.Model models = 2;
     */
    public java.util.List 
        getModelsOrBuilderList() {
      return models_;
    }
    /**
     * repeated .clarifai.api.Model models = 2;
     */
    public int getModelsCount() {
      return models_.size();
    }
    /**
     * repeated .clarifai.api.Model models = 2;
     */
    public clarifai2.internal.grpc.api.ModelOuterClass.Model getModels(int index) {
      return models_.get(index);
    }
    /**
     * repeated .clarifai.api.Model models = 2;
     */
    public clarifai2.internal.grpc.api.ModelOuterClass.ModelOrBuilder getModelsOrBuilder(
        int index) {
      return models_.get(index);
    }

    public static final int ACTION_FIELD_NUMBER = 3;
    private volatile java.lang.Object action_;
    /**
     * string action = 3;
     */
    public java.lang.String getAction() {
      java.lang.Object ref = action_;
      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();
        action_ = s;
        return s;
      }
    }
    /**
     * string action = 3;
     */
    public com.google.protobuf.ByteString
        getActionBytes() {
      java.lang.Object ref = action_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        action_ = 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 {
      if (userAppId_ != null) {
        output.writeMessage(1, getUserAppId());
      }
      for (int i = 0; i < models_.size(); i++) {
        output.writeMessage(2, models_.get(i));
      }
      if (!getActionBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, action_);
      }
      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());
      }
      for (int i = 0; i < models_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, models_.get(i));
      }
      if (!getActionBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, action_);
      }
      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.ModelOuterClass.PatchModelsRequest)) {
        return super.equals(obj);
      }
      clarifai2.internal.grpc.api.ModelOuterClass.PatchModelsRequest other = (clarifai2.internal.grpc.api.ModelOuterClass.PatchModelsRequest) obj;

      boolean result = true;
      result = result && (hasUserAppId() == other.hasUserAppId());
      if (hasUserAppId()) {
        result = result && getUserAppId()
            .equals(other.getUserAppId());
      }
      result = result && getModelsList()
          .equals(other.getModelsList());
      result = result && getAction()
          .equals(other.getAction());
      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 (getModelsCount() > 0) {
        hash = (37 * hash) + MODELS_FIELD_NUMBER;
        hash = (53 * hash) + getModelsList().hashCode();
      }
      hash = (37 * hash) + ACTION_FIELD_NUMBER;
      hash = (53 * hash) + getAction().hashCode();
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static clarifai2.internal.grpc.api.ModelOuterClass.PatchModelsRequest parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static clarifai2.internal.grpc.api.ModelOuterClass.PatchModelsRequest 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.ModelOuterClass.PatchModelsRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static clarifai2.internal.grpc.api.ModelOuterClass.PatchModelsRequest 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.ModelOuterClass.PatchModelsRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static clarifai2.internal.grpc.api.ModelOuterClass.PatchModelsRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static clarifai2.internal.grpc.api.ModelOuterClass.PatchModelsRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static clarifai2.internal.grpc.api.ModelOuterClass.PatchModelsRequest 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.ModelOuterClass.PatchModelsRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static clarifai2.internal.grpc.api.ModelOuterClass.PatchModelsRequest 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.ModelOuterClass.PatchModelsRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static clarifai2.internal.grpc.api.ModelOuterClass.PatchModelsRequest 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.ModelOuterClass.PatchModelsRequest 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.PatchModelsRequest}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:clarifai.api.PatchModelsRequest)
        clarifai2.internal.grpc.api.ModelOuterClass.PatchModelsRequestOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return clarifai2.internal.grpc.api.ModelOuterClass.internal_static_clarifai_api_PatchModelsRequest_descriptor;
      }

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return clarifai2.internal.grpc.api.ModelOuterClass.internal_static_clarifai_api_PatchModelsRequest_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                clarifai2.internal.grpc.api.ModelOuterClass.PatchModelsRequest.class, clarifai2.internal.grpc.api.ModelOuterClass.PatchModelsRequest.Builder.class);
      }

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

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getModelsFieldBuilder();
        }
      }
      public Builder clear() {
        super.clear();
        if (userAppIdBuilder_ == null) {
          userAppId_ = null;
        } else {
          userAppId_ = null;
          userAppIdBuilder_ = null;
        }
        if (modelsBuilder_ == null) {
          models_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
        } else {
          modelsBuilder_.clear();
        }
        action_ = "";

        return this;
      }

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

      public clarifai2.internal.grpc.api.ModelOuterClass.PatchModelsRequest getDefaultInstanceForType() {
        return clarifai2.internal.grpc.api.ModelOuterClass.PatchModelsRequest.getDefaultInstance();
      }

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

      public clarifai2.internal.grpc.api.ModelOuterClass.PatchModelsRequest buildPartial() {
        clarifai2.internal.grpc.api.ModelOuterClass.PatchModelsRequest result = new clarifai2.internal.grpc.api.ModelOuterClass.PatchModelsRequest(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (userAppIdBuilder_ == null) {
          result.userAppId_ = userAppId_;
        } else {
          result.userAppId_ = userAppIdBuilder_.build();
        }
        if (modelsBuilder_ == null) {
          if (((bitField0_ & 0x00000002) == 0x00000002)) {
            models_ = java.util.Collections.unmodifiableList(models_);
            bitField0_ = (bitField0_ & ~0x00000002);
          }
          result.models_ = models_;
        } else {
          result.models_ = modelsBuilder_.build();
        }
        result.action_ = action_;
        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.ModelOuterClass.PatchModelsRequest) {
          return mergeFrom((clarifai2.internal.grpc.api.ModelOuterClass.PatchModelsRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(clarifai2.internal.grpc.api.ModelOuterClass.PatchModelsRequest other) {
        if (other == clarifai2.internal.grpc.api.ModelOuterClass.PatchModelsRequest.getDefaultInstance()) return this;
        if (other.hasUserAppId()) {
          mergeUserAppId(other.getUserAppId());
        }
        if (modelsBuilder_ == null) {
          if (!other.models_.isEmpty()) {
            if (models_.isEmpty()) {
              models_ = other.models_;
              bitField0_ = (bitField0_ & ~0x00000002);
            } else {
              ensureModelsIsMutable();
              models_.addAll(other.models_);
            }
            onChanged();
          }
        } else {
          if (!other.models_.isEmpty()) {
            if (modelsBuilder_.isEmpty()) {
              modelsBuilder_.dispose();
              modelsBuilder_ = null;
              models_ = other.models_;
              bitField0_ = (bitField0_ & ~0x00000002);
              modelsBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getModelsFieldBuilder() : null;
            } else {
              modelsBuilder_.addAllMessages(other.models_);
            }
          }
        }
        if (!other.getAction().isEmpty()) {
          action_ = other.action_;
          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.ModelOuterClass.PatchModelsRequest parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (clarifai2.internal.grpc.api.ModelOuterClass.PatchModelsRequest) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      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 java.util.List models_ =
        java.util.Collections.emptyList();
      private void ensureModelsIsMutable() {
        if (!((bitField0_ & 0x00000002) == 0x00000002)) {
          models_ = new java.util.ArrayList(models_);
          bitField0_ |= 0x00000002;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          clarifai2.internal.grpc.api.ModelOuterClass.Model, clarifai2.internal.grpc.api.ModelOuterClass.Model.Builder, clarifai2.internal.grpc.api.ModelOuterClass.ModelOrBuilder> modelsBuilder_;

      /**
       * repeated .clarifai.api.Model models = 2;
       */
      public java.util.List getModelsList() {
        if (modelsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(models_);
        } else {
          return modelsBuilder_.getMessageList();
        }
      }
      /**
       * repeated .clarifai.api.Model models = 2;
       */
      public int getModelsCount() {
        if (modelsBuilder_ == null) {
          return models_.size();
        } else {
          return modelsBuilder_.getCount();
        }
      }
      /**
       * repeated .clarifai.api.Model models = 2;
       */
      public clarifai2.internal.grpc.api.ModelOuterClass.Model getModels(int index) {
        if (modelsBuilder_ == null) {
          return models_.get(index);
        } else {
          return modelsBuilder_.getMessage(index);
        }
      }
      /**
       * repeated .clarifai.api.Model models = 2;
       */
      public Builder setModels(
          int index, clarifai2.internal.grpc.api.ModelOuterClass.Model value) {
        if (modelsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureModelsIsMutable();
          models_.set(index, value);
          onChanged();
        } else {
          modelsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .clarifai.api.Model models = 2;
       */
      public Builder setModels(
          int index, clarifai2.internal.grpc.api.ModelOuterClass.Model.Builder builderForValue) {
        if (modelsBuilder_ == null) {
          ensureModelsIsMutable();
          models_.set(index, builderForValue.build());
          onChanged();
        } else {
          modelsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .clarifai.api.Model models = 2;
       */
      public Builder addModels(clarifai2.internal.grpc.api.ModelOuterClass.Model value) {
        if (modelsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureModelsIsMutable();
          models_.add(value);
          onChanged();
        } else {
          modelsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * repeated .clarifai.api.Model models = 2;
       */
      public Builder addModels(
          int index, clarifai2.internal.grpc.api.ModelOuterClass.Model value) {
        if (modelsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureModelsIsMutable();
          models_.add(index, value);
          onChanged();
        } else {
          modelsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .clarifai.api.Model models = 2;
       */
      public Builder addModels(
          clarifai2.internal.grpc.api.ModelOuterClass.Model.Builder builderForValue) {
        if (modelsBuilder_ == null) {
          ensureModelsIsMutable();
          models_.add(builderForValue.build());
          onChanged();
        } else {
          modelsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .clarifai.api.Model models = 2;
       */
      public Builder addModels(
          int index, clarifai2.internal.grpc.api.ModelOuterClass.Model.Builder builderForValue) {
        if (modelsBuilder_ == null) {
          ensureModelsIsMutable();
          models_.add(index, builderForValue.build());
          onChanged();
        } else {
          modelsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .clarifai.api.Model models = 2;
       */
      public Builder addAllModels(
          java.lang.Iterable values) {
        if (modelsBuilder_ == null) {
          ensureModelsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, models_);
          onChanged();
        } else {
          modelsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * repeated .clarifai.api.Model models = 2;
       */
      public Builder clearModels() {
        if (modelsBuilder_ == null) {
          models_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
          onChanged();
        } else {
          modelsBuilder_.clear();
        }
        return this;
      }
      /**
       * repeated .clarifai.api.Model models = 2;
       */
      public Builder removeModels(int index) {
        if (modelsBuilder_ == null) {
          ensureModelsIsMutable();
          models_.remove(index);
          onChanged();
        } else {
          modelsBuilder_.remove(index);
        }
        return this;
      }
      /**
       * repeated .clarifai.api.Model models = 2;
       */
      public clarifai2.internal.grpc.api.ModelOuterClass.Model.Builder getModelsBuilder(
          int index) {
        return getModelsFieldBuilder().getBuilder(index);
      }
      /**
       * repeated .clarifai.api.Model models = 2;
       */
      public clarifai2.internal.grpc.api.ModelOuterClass.ModelOrBuilder getModelsOrBuilder(
          int index) {
        if (modelsBuilder_ == null) {
          return models_.get(index);  } else {
          return modelsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * repeated .clarifai.api.Model models = 2;
       */
      public java.util.List 
           getModelsOrBuilderList() {
        if (modelsBuilder_ != null) {
          return modelsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(models_);
        }
      }
      /**
       * repeated .clarifai.api.Model models = 2;
       */
      public clarifai2.internal.grpc.api.ModelOuterClass.Model.Builder addModelsBuilder() {
        return getModelsFieldBuilder().addBuilder(
            clarifai2.internal.grpc.api.ModelOuterClass.Model.getDefaultInstance());
      }
      /**
       * repeated .clarifai.api.Model models = 2;
       */
      public clarifai2.internal.grpc.api.ModelOuterClass.Model.Builder addModelsBuilder(
          int index) {
        return getModelsFieldBuilder().addBuilder(
            index, clarifai2.internal.grpc.api.ModelOuterClass.Model.getDefaultInstance());
      }
      /**
       * repeated .clarifai.api.Model models = 2;
       */
      public java.util.List 
           getModelsBuilderList() {
        return getModelsFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          clarifai2.internal.grpc.api.ModelOuterClass.Model, clarifai2.internal.grpc.api.ModelOuterClass.Model.Builder, clarifai2.internal.grpc.api.ModelOuterClass.ModelOrBuilder> 
          getModelsFieldBuilder() {
        if (modelsBuilder_ == null) {
          modelsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              clarifai2.internal.grpc.api.ModelOuterClass.Model, clarifai2.internal.grpc.api.ModelOuterClass.Model.Builder, clarifai2.internal.grpc.api.ModelOuterClass.ModelOrBuilder>(
                  models_,
                  ((bitField0_ & 0x00000002) == 0x00000002),
                  getParentForChildren(),
                  isClean());
          models_ = null;
        }
        return modelsBuilder_;
      }

      private java.lang.Object action_ = "";
      /**
       * string action = 3;
       */
      public java.lang.String getAction() {
        java.lang.Object ref = action_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          action_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * string action = 3;
       */
      public com.google.protobuf.ByteString
          getActionBytes() {
        java.lang.Object ref = action_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          action_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * string action = 3;
       */
      public Builder setAction(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        action_ = value;
        onChanged();
        return this;
      }
      /**
       * string action = 3;
       */
      public Builder clearAction() {
        
        action_ = getDefaultInstance().getAction();
        onChanged();
        return this;
      }
      /**
       * string action = 3;
       */
      public Builder setActionBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        action_ = 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.PatchModelsRequest)
    }

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

    public static clarifai2.internal.grpc.api.ModelOuterClass.PatchModelsRequest getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser
        PARSER = new com.google.protobuf.AbstractParser() {
      public PatchModelsRequest parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new PatchModelsRequest(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.ModelOuterClass.PatchModelsRequest getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface DeleteModelRequestOrBuilder extends
      // @@protoc_insertion_point(interface_extends:clarifai.api.DeleteModelRequest)
      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();

    /**
     * string model_id = 2;
     */
    java.lang.String getModelId();
    /**
     * string model_id = 2;
     */
    com.google.protobuf.ByteString
        getModelIdBytes();
  }
  /**
   * Protobuf type {@code clarifai.api.DeleteModelRequest}
   */
  public  static final class DeleteModelRequest extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:clarifai.api.DeleteModelRequest)
      DeleteModelRequestOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use DeleteModelRequest.newBuilder() to construct.
    private DeleteModelRequest(com.google.protobuf.GeneratedMessageV3.Builder builder) {
      super(builder);
    }
    private DeleteModelRequest() {
      modelId_ = "";
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private DeleteModelRequest(
        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: {
              java.lang.String s = input.readStringRequireUtf8();

              modelId_ = 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 {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return clarifai2.internal.grpc.api.ModelOuterClass.internal_static_clarifai_api_DeleteModelRequest_descriptor;
    }

    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return clarifai2.internal.grpc.api.ModelOuterClass.internal_static_clarifai_api_DeleteModelRequest_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              clarifai2.internal.grpc.api.ModelOuterClass.DeleteModelRequest.class, clarifai2.internal.grpc.api.ModelOuterClass.DeleteModelRequest.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 MODEL_ID_FIELD_NUMBER = 2;
    private volatile java.lang.Object modelId_;
    /**
     * string model_id = 2;
     */
    public java.lang.String getModelId() {
      java.lang.Object ref = modelId_;
      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();
        modelId_ = s;
        return s;
      }
    }
    /**
     * string model_id = 2;
     */
    public com.google.protobuf.ByteString
        getModelIdBytes() {
      java.lang.Object ref = modelId_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        modelId_ = 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 {
      if (userAppId_ != null) {
        output.writeMessage(1, getUserAppId());
      }
      if (!getModelIdBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, modelId_);
      }
      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 (!getModelIdBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, modelId_);
      }
      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.ModelOuterClass.DeleteModelRequest)) {
        return super.equals(obj);
      }
      clarifai2.internal.grpc.api.ModelOuterClass.DeleteModelRequest other = (clarifai2.internal.grpc.api.ModelOuterClass.DeleteModelRequest) obj;

      boolean result = true;
      result = result && (hasUserAppId() == other.hasUserAppId());
      if (hasUserAppId()) {
        result = result && getUserAppId()
            .equals(other.getUserAppId());
      }
      result = result && getModelId()
          .equals(other.getModelId());
      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();
      }
      hash = (37 * hash) + MODEL_ID_FIELD_NUMBER;
      hash = (53 * hash) + getModelId().hashCode();
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static clarifai2.internal.grpc.api.ModelOuterClass.DeleteModelRequest parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static clarifai2.internal.grpc.api.ModelOuterClass.DeleteModelRequest 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.ModelOuterClass.DeleteModelRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static clarifai2.internal.grpc.api.ModelOuterClass.DeleteModelRequest 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.ModelOuterClass.DeleteModelRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static clarifai2.internal.grpc.api.ModelOuterClass.DeleteModelRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static clarifai2.internal.grpc.api.ModelOuterClass.DeleteModelRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static clarifai2.internal.grpc.api.ModelOuterClass.DeleteModelRequest 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.ModelOuterClass.DeleteModelRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static clarifai2.internal.grpc.api.ModelOuterClass.DeleteModelRequest 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.ModelOuterClass.DeleteModelRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static clarifai2.internal.grpc.api.ModelOuterClass.DeleteModelRequest 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.ModelOuterClass.DeleteModelRequest 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.DeleteModelRequest}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:clarifai.api.DeleteModelRequest)
        clarifai2.internal.grpc.api.ModelOuterClass.DeleteModelRequestOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return clarifai2.internal.grpc.api.ModelOuterClass.internal_static_clarifai_api_DeleteModelRequest_descriptor;
      }

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return clarifai2.internal.grpc.api.ModelOuterClass.internal_static_clarifai_api_DeleteModelRequest_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                clarifai2.internal.grpc.api.ModelOuterClass.DeleteModelRequest.class, clarifai2.internal.grpc.api.ModelOuterClass.DeleteModelRequest.Builder.class);
      }

      // Construct using clarifai2.internal.grpc.api.ModelOuterClass.DeleteModelRequest.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;
        }
        modelId_ = "";

        return this;
      }

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

      public clarifai2.internal.grpc.api.ModelOuterClass.DeleteModelRequest getDefaultInstanceForType() {
        return clarifai2.internal.grpc.api.ModelOuterClass.DeleteModelRequest.getDefaultInstance();
      }

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

      public clarifai2.internal.grpc.api.ModelOuterClass.DeleteModelRequest buildPartial() {
        clarifai2.internal.grpc.api.ModelOuterClass.DeleteModelRequest result = new clarifai2.internal.grpc.api.ModelOuterClass.DeleteModelRequest(this);
        if (userAppIdBuilder_ == null) {
          result.userAppId_ = userAppId_;
        } else {
          result.userAppId_ = userAppIdBuilder_.build();
        }
        result.modelId_ = modelId_;
        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.ModelOuterClass.DeleteModelRequest) {
          return mergeFrom((clarifai2.internal.grpc.api.ModelOuterClass.DeleteModelRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(clarifai2.internal.grpc.api.ModelOuterClass.DeleteModelRequest other) {
        if (other == clarifai2.internal.grpc.api.ModelOuterClass.DeleteModelRequest.getDefaultInstance()) return this;
        if (other.hasUserAppId()) {
          mergeUserAppId(other.getUserAppId());
        }
        if (!other.getModelId().isEmpty()) {
          modelId_ = other.modelId_;
          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.ModelOuterClass.DeleteModelRequest parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (clarifai2.internal.grpc.api.ModelOuterClass.DeleteModelRequest) 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 java.lang.Object modelId_ = "";
      /**
       * string model_id = 2;
       */
      public java.lang.String getModelId() {
        java.lang.Object ref = modelId_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          modelId_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * string model_id = 2;
       */
      public com.google.protobuf.ByteString
          getModelIdBytes() {
        java.lang.Object ref = modelId_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          modelId_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * string model_id = 2;
       */
      public Builder setModelId(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        modelId_ = value;
        onChanged();
        return this;
      }
      /**
       * string model_id = 2;
       */
      public Builder clearModelId() {
        
        modelId_ = getDefaultInstance().getModelId();
        onChanged();
        return this;
      }
      /**
       * string model_id = 2;
       */
      public Builder setModelIdBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        modelId_ = 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.DeleteModelRequest)
    }

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

    public static clarifai2.internal.grpc.api.ModelOuterClass.DeleteModelRequest getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser
        PARSER = new com.google.protobuf.AbstractParser() {
      public DeleteModelRequest parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new DeleteModelRequest(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.ModelOuterClass.DeleteModelRequest getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface DeleteModelsRequestOrBuilder extends
      // @@protoc_insertion_point(interface_extends:clarifai.api.DeleteModelsRequest)
      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();

    /**
     * repeated string ids = 2;
     */
    java.util.List
        getIdsList();
    /**
     * repeated string ids = 2;
     */
    int getIdsCount();
    /**
     * repeated string ids = 2;
     */
    java.lang.String getIds(int index);
    /**
     * repeated string ids = 2;
     */
    com.google.protobuf.ByteString
        getIdsBytes(int index);

    /**
     * bool delete_all = 3;
     */
    boolean getDeleteAll();
  }
  /**
   * Protobuf type {@code clarifai.api.DeleteModelsRequest}
   */
  public  static final class DeleteModelsRequest extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:clarifai.api.DeleteModelsRequest)
      DeleteModelsRequestOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use DeleteModelsRequest.newBuilder() to construct.
    private DeleteModelsRequest(com.google.protobuf.GeneratedMessageV3.Builder builder) {
      super(builder);
    }
    private DeleteModelsRequest() {
      ids_ = com.google.protobuf.LazyStringArrayList.EMPTY;
      deleteAll_ = false;
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private DeleteModelsRequest(
        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: {
              java.lang.String s = input.readStringRequireUtf8();
              if (!((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
                ids_ = new com.google.protobuf.LazyStringArrayList();
                mutable_bitField0_ |= 0x00000002;
              }
              ids_.add(s);
              break;
            }
            case 24: {

              deleteAll_ = 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 {
        if (((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
          ids_ = ids_.getUnmodifiableView();
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return clarifai2.internal.grpc.api.ModelOuterClass.internal_static_clarifai_api_DeleteModelsRequest_descriptor;
    }

    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return clarifai2.internal.grpc.api.ModelOuterClass.internal_static_clarifai_api_DeleteModelsRequest_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              clarifai2.internal.grpc.api.ModelOuterClass.DeleteModelsRequest.class, clarifai2.internal.grpc.api.ModelOuterClass.DeleteModelsRequest.Builder.class);
    }

    private int bitField0_;
    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 IDS_FIELD_NUMBER = 2;
    private com.google.protobuf.LazyStringList ids_;
    /**
     * repeated string ids = 2;
     */
    public com.google.protobuf.ProtocolStringList
        getIdsList() {
      return ids_;
    }
    /**
     * repeated string ids = 2;
     */
    public int getIdsCount() {
      return ids_.size();
    }
    /**
     * repeated string ids = 2;
     */
    public java.lang.String getIds(int index) {
      return ids_.get(index);
    }
    /**
     * repeated string ids = 2;
     */
    public com.google.protobuf.ByteString
        getIdsBytes(int index) {
      return ids_.getByteString(index);
    }

    public static final int DELETE_ALL_FIELD_NUMBER = 3;
    private boolean deleteAll_;
    /**
     * bool delete_all = 3;
     */
    public boolean getDeleteAll() {
      return deleteAll_;
    }

    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());
      }
      for (int i = 0; i < ids_.size(); i++) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, ids_.getRaw(i));
      }
      if (deleteAll_ != false) {
        output.writeBool(3, deleteAll_);
      }
      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());
      }
      {
        int dataSize = 0;
        for (int i = 0; i < ids_.size(); i++) {
          dataSize += computeStringSizeNoTag(ids_.getRaw(i));
        }
        size += dataSize;
        size += 1 * getIdsList().size();
      }
      if (deleteAll_ != false) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(3, deleteAll_);
      }
      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.ModelOuterClass.DeleteModelsRequest)) {
        return super.equals(obj);
      }
      clarifai2.internal.grpc.api.ModelOuterClass.DeleteModelsRequest other = (clarifai2.internal.grpc.api.ModelOuterClass.DeleteModelsRequest) obj;

      boolean result = true;
      result = result && (hasUserAppId() == other.hasUserAppId());
      if (hasUserAppId()) {
        result = result && getUserAppId()
            .equals(other.getUserAppId());
      }
      result = result && getIdsList()
          .equals(other.getIdsList());
      result = result && (getDeleteAll()
          == other.getDeleteAll());
      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 (getIdsCount() > 0) {
        hash = (37 * hash) + IDS_FIELD_NUMBER;
        hash = (53 * hash) + getIdsList().hashCode();
      }
      hash = (37 * hash) + DELETE_ALL_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
          getDeleteAll());
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static clarifai2.internal.grpc.api.ModelOuterClass.DeleteModelsRequest parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static clarifai2.internal.grpc.api.ModelOuterClass.DeleteModelsRequest 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.ModelOuterClass.DeleteModelsRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static clarifai2.internal.grpc.api.ModelOuterClass.DeleteModelsRequest 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.ModelOuterClass.DeleteModelsRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static clarifai2.internal.grpc.api.ModelOuterClass.DeleteModelsRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static clarifai2.internal.grpc.api.ModelOuterClass.DeleteModelsRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static clarifai2.internal.grpc.api.ModelOuterClass.DeleteModelsRequest 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.ModelOuterClass.DeleteModelsRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static clarifai2.internal.grpc.api.ModelOuterClass.DeleteModelsRequest 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.ModelOuterClass.DeleteModelsRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static clarifai2.internal.grpc.api.ModelOuterClass.DeleteModelsRequest 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.ModelOuterClass.DeleteModelsRequest 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.DeleteModelsRequest}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:clarifai.api.DeleteModelsRequest)
        clarifai2.internal.grpc.api.ModelOuterClass.DeleteModelsRequestOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return clarifai2.internal.grpc.api.ModelOuterClass.internal_static_clarifai_api_DeleteModelsRequest_descriptor;
      }

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return clarifai2.internal.grpc.api.ModelOuterClass.internal_static_clarifai_api_DeleteModelsRequest_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                clarifai2.internal.grpc.api.ModelOuterClass.DeleteModelsRequest.class, clarifai2.internal.grpc.api.ModelOuterClass.DeleteModelsRequest.Builder.class);
      }

      // Construct using clarifai2.internal.grpc.api.ModelOuterClass.DeleteModelsRequest.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;
        }
        ids_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000002);
        deleteAll_ = false;

        return this;
      }

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

      public clarifai2.internal.grpc.api.ModelOuterClass.DeleteModelsRequest getDefaultInstanceForType() {
        return clarifai2.internal.grpc.api.ModelOuterClass.DeleteModelsRequest.getDefaultInstance();
      }

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

      public clarifai2.internal.grpc.api.ModelOuterClass.DeleteModelsRequest buildPartial() {
        clarifai2.internal.grpc.api.ModelOuterClass.DeleteModelsRequest result = new clarifai2.internal.grpc.api.ModelOuterClass.DeleteModelsRequest(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (userAppIdBuilder_ == null) {
          result.userAppId_ = userAppId_;
        } else {
          result.userAppId_ = userAppIdBuilder_.build();
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          ids_ = ids_.getUnmodifiableView();
          bitField0_ = (bitField0_ & ~0x00000002);
        }
        result.ids_ = ids_;
        result.deleteAll_ = deleteAll_;
        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.ModelOuterClass.DeleteModelsRequest) {
          return mergeFrom((clarifai2.internal.grpc.api.ModelOuterClass.DeleteModelsRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(clarifai2.internal.grpc.api.ModelOuterClass.DeleteModelsRequest other) {
        if (other == clarifai2.internal.grpc.api.ModelOuterClass.DeleteModelsRequest.getDefaultInstance()) return this;
        if (other.hasUserAppId()) {
          mergeUserAppId(other.getUserAppId());
        }
        if (!other.ids_.isEmpty()) {
          if (ids_.isEmpty()) {
            ids_ = other.ids_;
            bitField0_ = (bitField0_ & ~0x00000002);
          } else {
            ensureIdsIsMutable();
            ids_.addAll(other.ids_);
          }
          onChanged();
        }
        if (other.getDeleteAll() != false) {
          setDeleteAll(other.getDeleteAll());
        }
        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.ModelOuterClass.DeleteModelsRequest parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (clarifai2.internal.grpc.api.ModelOuterClass.DeleteModelsRequest) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      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 com.google.protobuf.LazyStringList ids_ = com.google.protobuf.LazyStringArrayList.EMPTY;
      private void ensureIdsIsMutable() {
        if (!((bitField0_ & 0x00000002) == 0x00000002)) {
          ids_ = new com.google.protobuf.LazyStringArrayList(ids_);
          bitField0_ |= 0x00000002;
         }
      }
      /**
       * repeated string ids = 2;
       */
      public com.google.protobuf.ProtocolStringList
          getIdsList() {
        return ids_.getUnmodifiableView();
      }
      /**
       * repeated string ids = 2;
       */
      public int getIdsCount() {
        return ids_.size();
      }
      /**
       * repeated string ids = 2;
       */
      public java.lang.String getIds(int index) {
        return ids_.get(index);
      }
      /**
       * repeated string ids = 2;
       */
      public com.google.protobuf.ByteString
          getIdsBytes(int index) {
        return ids_.getByteString(index);
      }
      /**
       * repeated string ids = 2;
       */
      public Builder setIds(
          int index, java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureIdsIsMutable();
        ids_.set(index, value);
        onChanged();
        return this;
      }
      /**
       * repeated string ids = 2;
       */
      public Builder addIds(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureIdsIsMutable();
        ids_.add(value);
        onChanged();
        return this;
      }
      /**
       * repeated string ids = 2;
       */
      public Builder addAllIds(
          java.lang.Iterable values) {
        ensureIdsIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, ids_);
        onChanged();
        return this;
      }
      /**
       * repeated string ids = 2;
       */
      public Builder clearIds() {
        ids_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000002);
        onChanged();
        return this;
      }
      /**
       * repeated string ids = 2;
       */
      public Builder addIdsBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        ensureIdsIsMutable();
        ids_.add(value);
        onChanged();
        return this;
      }

      private boolean deleteAll_ ;
      /**
       * bool delete_all = 3;
       */
      public boolean getDeleteAll() {
        return deleteAll_;
      }
      /**
       * bool delete_all = 3;
       */
      public Builder setDeleteAll(boolean value) {
        
        deleteAll_ = value;
        onChanged();
        return this;
      }
      /**
       * bool delete_all = 3;
       */
      public Builder clearDeleteAll() {
        
        deleteAll_ = 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.DeleteModelsRequest)
    }

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

    public static clarifai2.internal.grpc.api.ModelOuterClass.DeleteModelsRequest getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser
        PARSER = new com.google.protobuf.AbstractParser() {
      public DeleteModelsRequest parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new DeleteModelsRequest(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.ModelOuterClass.DeleteModelsRequest getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface PostModelsSearchesRequestOrBuilder extends
      // @@protoc_insertion_point(interface_extends:clarifai.api.PostModelsSearchesRequest)
      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.ModelQuery model_query = 2;
     */
    boolean hasModelQuery();
    /**
     * .clarifai.api.ModelQuery model_query = 2;
     */
    clarifai2.internal.grpc.api.ModelOuterClass.ModelQuery getModelQuery();
    /**
     * .clarifai.api.ModelQuery model_query = 2;
     */
    clarifai2.internal.grpc.api.ModelOuterClass.ModelQueryOrBuilder getModelQueryOrBuilder();

    /**
     * .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();
  }
  /**
   * Protobuf type {@code clarifai.api.PostModelsSearchesRequest}
   */
  public  static final class PostModelsSearchesRequest extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:clarifai.api.PostModelsSearchesRequest)
      PostModelsSearchesRequestOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use PostModelsSearchesRequest.newBuilder() to construct.
    private PostModelsSearchesRequest(com.google.protobuf.GeneratedMessageV3.Builder builder) {
      super(builder);
    }
    private PostModelsSearchesRequest() {
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private PostModelsSearchesRequest(
        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.ModelOuterClass.ModelQuery.Builder subBuilder = null;
              if (modelQuery_ != null) {
                subBuilder = modelQuery_.toBuilder();
              }
              modelQuery_ = input.readMessage(clarifai2.internal.grpc.api.ModelOuterClass.ModelQuery.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(modelQuery_);
                modelQuery_ = 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;
            }
          }
        }
      } 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.ModelOuterClass.internal_static_clarifai_api_PostModelsSearchesRequest_descriptor;
    }

    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return clarifai2.internal.grpc.api.ModelOuterClass.internal_static_clarifai_api_PostModelsSearchesRequest_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              clarifai2.internal.grpc.api.ModelOuterClass.PostModelsSearchesRequest.class, clarifai2.internal.grpc.api.ModelOuterClass.PostModelsSearchesRequest.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 MODEL_QUERY_FIELD_NUMBER = 2;
    private clarifai2.internal.grpc.api.ModelOuterClass.ModelQuery modelQuery_;
    /**
     * .clarifai.api.ModelQuery model_query = 2;
     */
    public boolean hasModelQuery() {
      return modelQuery_ != null;
    }
    /**
     * .clarifai.api.ModelQuery model_query = 2;
     */
    public clarifai2.internal.grpc.api.ModelOuterClass.ModelQuery getModelQuery() {
      return modelQuery_ == null ? clarifai2.internal.grpc.api.ModelOuterClass.ModelQuery.getDefaultInstance() : modelQuery_;
    }
    /**
     * .clarifai.api.ModelQuery model_query = 2;
     */
    public clarifai2.internal.grpc.api.ModelOuterClass.ModelQueryOrBuilder getModelQueryOrBuilder() {
      return getModelQuery();
    }

    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();
    }

    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 (modelQuery_ != null) {
        output.writeMessage(2, getModelQuery());
      }
      if (pagination_ != null) {
        output.writeMessage(3, getPagination());
      }
      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 (modelQuery_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, getModelQuery());
      }
      if (pagination_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, getPagination());
      }
      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.ModelOuterClass.PostModelsSearchesRequest)) {
        return super.equals(obj);
      }
      clarifai2.internal.grpc.api.ModelOuterClass.PostModelsSearchesRequest other = (clarifai2.internal.grpc.api.ModelOuterClass.PostModelsSearchesRequest) obj;

      boolean result = true;
      result = result && (hasUserAppId() == other.hasUserAppId());
      if (hasUserAppId()) {
        result = result && getUserAppId()
            .equals(other.getUserAppId());
      }
      result = result && (hasModelQuery() == other.hasModelQuery());
      if (hasModelQuery()) {
        result = result && getModelQuery()
            .equals(other.getModelQuery());
      }
      result = result && (hasPagination() == other.hasPagination());
      if (hasPagination()) {
        result = result && getPagination()
            .equals(other.getPagination());
      }
      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 (hasModelQuery()) {
        hash = (37 * hash) + MODEL_QUERY_FIELD_NUMBER;
        hash = (53 * hash) + getModelQuery().hashCode();
      }
      if (hasPagination()) {
        hash = (37 * hash) + PAGINATION_FIELD_NUMBER;
        hash = (53 * hash) + getPagination().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static clarifai2.internal.grpc.api.ModelOuterClass.PostModelsSearchesRequest parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static clarifai2.internal.grpc.api.ModelOuterClass.PostModelsSearchesRequest 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.ModelOuterClass.PostModelsSearchesRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static clarifai2.internal.grpc.api.ModelOuterClass.PostModelsSearchesRequest 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.ModelOuterClass.PostModelsSearchesRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static clarifai2.internal.grpc.api.ModelOuterClass.PostModelsSearchesRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static clarifai2.internal.grpc.api.ModelOuterClass.PostModelsSearchesRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static clarifai2.internal.grpc.api.ModelOuterClass.PostModelsSearchesRequest 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.ModelOuterClass.PostModelsSearchesRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static clarifai2.internal.grpc.api.ModelOuterClass.PostModelsSearchesRequest 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.ModelOuterClass.PostModelsSearchesRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static clarifai2.internal.grpc.api.ModelOuterClass.PostModelsSearchesRequest 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.ModelOuterClass.PostModelsSearchesRequest 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.PostModelsSearchesRequest}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:clarifai.api.PostModelsSearchesRequest)
        clarifai2.internal.grpc.api.ModelOuterClass.PostModelsSearchesRequestOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return clarifai2.internal.grpc.api.ModelOuterClass.internal_static_clarifai_api_PostModelsSearchesRequest_descriptor;
      }

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return clarifai2.internal.grpc.api.ModelOuterClass.internal_static_clarifai_api_PostModelsSearchesRequest_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                clarifai2.internal.grpc.api.ModelOuterClass.PostModelsSearchesRequest.class, clarifai2.internal.grpc.api.ModelOuterClass.PostModelsSearchesRequest.Builder.class);
      }

      // Construct using clarifai2.internal.grpc.api.ModelOuterClass.PostModelsSearchesRequest.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 (modelQueryBuilder_ == null) {
          modelQuery_ = null;
        } else {
          modelQuery_ = null;
          modelQueryBuilder_ = null;
        }
        if (paginationBuilder_ == null) {
          pagination_ = null;
        } else {
          pagination_ = null;
          paginationBuilder_ = null;
        }
        return this;
      }

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

      public clarifai2.internal.grpc.api.ModelOuterClass.PostModelsSearchesRequest getDefaultInstanceForType() {
        return clarifai2.internal.grpc.api.ModelOuterClass.PostModelsSearchesRequest.getDefaultInstance();
      }

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

      public clarifai2.internal.grpc.api.ModelOuterClass.PostModelsSearchesRequest buildPartial() {
        clarifai2.internal.grpc.api.ModelOuterClass.PostModelsSearchesRequest result = new clarifai2.internal.grpc.api.ModelOuterClass.PostModelsSearchesRequest(this);
        if (userAppIdBuilder_ == null) {
          result.userAppId_ = userAppId_;
        } else {
          result.userAppId_ = userAppIdBuilder_.build();
        }
        if (modelQueryBuilder_ == null) {
          result.modelQuery_ = modelQuery_;
        } else {
          result.modelQuery_ = modelQueryBuilder_.build();
        }
        if (paginationBuilder_ == null) {
          result.pagination_ = pagination_;
        } else {
          result.pagination_ = paginationBuilder_.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.ModelOuterClass.PostModelsSearchesRequest) {
          return mergeFrom((clarifai2.internal.grpc.api.ModelOuterClass.PostModelsSearchesRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(clarifai2.internal.grpc.api.ModelOuterClass.PostModelsSearchesRequest other) {
        if (other == clarifai2.internal.grpc.api.ModelOuterClass.PostModelsSearchesRequest.getDefaultInstance()) return this;
        if (other.hasUserAppId()) {
          mergeUserAppId(other.getUserAppId());
        }
        if (other.hasModelQuery()) {
          mergeModelQuery(other.getModelQuery());
        }
        if (other.hasPagination()) {
          mergePagination(other.getPagination());
        }
        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.ModelOuterClass.PostModelsSearchesRequest parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (clarifai2.internal.grpc.api.ModelOuterClass.PostModelsSearchesRequest) 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.ModelOuterClass.ModelQuery modelQuery_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
          clarifai2.internal.grpc.api.ModelOuterClass.ModelQuery, clarifai2.internal.grpc.api.ModelOuterClass.ModelQuery.Builder, clarifai2.internal.grpc.api.ModelOuterClass.ModelQueryOrBuilder> modelQueryBuilder_;
      /**
       * .clarifai.api.ModelQuery model_query = 2;
       */
      public boolean hasModelQuery() {
        return modelQueryBuilder_ != null || modelQuery_ != null;
      }
      /**
       * .clarifai.api.ModelQuery model_query = 2;
       */
      public clarifai2.internal.grpc.api.ModelOuterClass.ModelQuery getModelQuery() {
        if (modelQueryBuilder_ == null) {
          return modelQuery_ == null ? clarifai2.internal.grpc.api.ModelOuterClass.ModelQuery.getDefaultInstance() : modelQuery_;
        } else {
          return modelQueryBuilder_.getMessage();
        }
      }
      /**
       * .clarifai.api.ModelQuery model_query = 2;
       */
      public Builder setModelQuery(clarifai2.internal.grpc.api.ModelOuterClass.ModelQuery value) {
        if (modelQueryBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          modelQuery_ = value;
          onChanged();
        } else {
          modelQueryBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * .clarifai.api.ModelQuery model_query = 2;
       */
      public Builder setModelQuery(
          clarifai2.internal.grpc.api.ModelOuterClass.ModelQuery.Builder builderForValue) {
        if (modelQueryBuilder_ == null) {
          modelQuery_ = builderForValue.build();
          onChanged();
        } else {
          modelQueryBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * .clarifai.api.ModelQuery model_query = 2;
       */
      public Builder mergeModelQuery(clarifai2.internal.grpc.api.ModelOuterClass.ModelQuery value) {
        if (modelQueryBuilder_ == null) {
          if (modelQuery_ != null) {
            modelQuery_ =
              clarifai2.internal.grpc.api.ModelOuterClass.ModelQuery.newBuilder(modelQuery_).mergeFrom(value).buildPartial();
          } else {
            modelQuery_ = value;
          }
          onChanged();
        } else {
          modelQueryBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * .clarifai.api.ModelQuery model_query = 2;
       */
      public Builder clearModelQuery() {
        if (modelQueryBuilder_ == null) {
          modelQuery_ = null;
          onChanged();
        } else {
          modelQuery_ = null;
          modelQueryBuilder_ = null;
        }

        return this;
      }
      /**
       * .clarifai.api.ModelQuery model_query = 2;
       */
      public clarifai2.internal.grpc.api.ModelOuterClass.ModelQuery.Builder getModelQueryBuilder() {
        
        onChanged();
        return getModelQueryFieldBuilder().getBuilder();
      }
      /**
       * .clarifai.api.ModelQuery model_query = 2;
       */
      public clarifai2.internal.grpc.api.ModelOuterClass.ModelQueryOrBuilder getModelQueryOrBuilder() {
        if (modelQueryBuilder_ != null) {
          return modelQueryBuilder_.getMessageOrBuilder();
        } else {
          return modelQuery_ == null ?
              clarifai2.internal.grpc.api.ModelOuterClass.ModelQuery.getDefaultInstance() : modelQuery_;
        }
      }
      /**
       * .clarifai.api.ModelQuery model_query = 2;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          clarifai2.internal.grpc.api.ModelOuterClass.ModelQuery, clarifai2.internal.grpc.api.ModelOuterClass.ModelQuery.Builder, clarifai2.internal.grpc.api.ModelOuterClass.ModelQueryOrBuilder> 
          getModelQueryFieldBuilder() {
        if (modelQueryBuilder_ == null) {
          modelQueryBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              clarifai2.internal.grpc.api.ModelOuterClass.ModelQuery, clarifai2.internal.grpc.api.ModelOuterClass.ModelQuery.Builder, clarifai2.internal.grpc.api.ModelOuterClass.ModelQueryOrBuilder>(
                  getModelQuery(),
                  getParentForChildren(),
                  isClean());
          modelQuery_ = null;
        }
        return modelQueryBuilder_;
      }

      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_;
      }
      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.PostModelsSearchesRequest)
    }

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

    public static clarifai2.internal.grpc.api.ModelOuterClass.PostModelsSearchesRequest getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser
        PARSER = new com.google.protobuf.AbstractParser() {
      public PostModelsSearchesRequest parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new PostModelsSearchesRequest(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.ModelOuterClass.PostModelsSearchesRequest getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface SingleModelResponseOrBuilder extends
      // @@protoc_insertion_point(interface_extends:clarifai.api.SingleModelResponse)
      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();

    /**
     * .clarifai.api.Model model = 2;
     */
    boolean hasModel();
    /**
     * .clarifai.api.Model model = 2;
     */
    clarifai2.internal.grpc.api.ModelOuterClass.Model getModel();
    /**
     * .clarifai.api.Model model = 2;
     */
    clarifai2.internal.grpc.api.ModelOuterClass.ModelOrBuilder getModelOrBuilder();
  }
  /**
   * Protobuf type {@code clarifai.api.SingleModelResponse}
   */
  public  static final class SingleModelResponse extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:clarifai.api.SingleModelResponse)
      SingleModelResponseOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use SingleModelResponse.newBuilder() to construct.
    private SingleModelResponse(com.google.protobuf.GeneratedMessageV3.Builder builder) {
      super(builder);
    }
    private SingleModelResponse() {
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private SingleModelResponse(
        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: {
              clarifai2.internal.grpc.api.ModelOuterClass.Model.Builder subBuilder = null;
              if (model_ != null) {
                subBuilder = model_.toBuilder();
              }
              model_ = input.readMessage(clarifai2.internal.grpc.api.ModelOuterClass.Model.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(model_);
                model_ = 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.ModelOuterClass.internal_static_clarifai_api_SingleModelResponse_descriptor;
    }

    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return clarifai2.internal.grpc.api.ModelOuterClass.internal_static_clarifai_api_SingleModelResponse_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              clarifai2.internal.grpc.api.ModelOuterClass.SingleModelResponse.class, clarifai2.internal.grpc.api.ModelOuterClass.SingleModelResponse.Builder.class);
    }

    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 MODEL_FIELD_NUMBER = 2;
    private clarifai2.internal.grpc.api.ModelOuterClass.Model model_;
    /**
     * .clarifai.api.Model model = 2;
     */
    public boolean hasModel() {
      return model_ != null;
    }
    /**
     * .clarifai.api.Model model = 2;
     */
    public clarifai2.internal.grpc.api.ModelOuterClass.Model getModel() {
      return model_ == null ? clarifai2.internal.grpc.api.ModelOuterClass.Model.getDefaultInstance() : model_;
    }
    /**
     * .clarifai.api.Model model = 2;
     */
    public clarifai2.internal.grpc.api.ModelOuterClass.ModelOrBuilder getModelOrBuilder() {
      return getModel();
    }

    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 (model_ != null) {
        output.writeMessage(2, getModel());
      }
      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 (model_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, getModel());
      }
      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.ModelOuterClass.SingleModelResponse)) {
        return super.equals(obj);
      }
      clarifai2.internal.grpc.api.ModelOuterClass.SingleModelResponse other = (clarifai2.internal.grpc.api.ModelOuterClass.SingleModelResponse) obj;

      boolean result = true;
      result = result && (hasStatus() == other.hasStatus());
      if (hasStatus()) {
        result = result && getStatus()
            .equals(other.getStatus());
      }
      result = result && (hasModel() == other.hasModel());
      if (hasModel()) {
        result = result && getModel()
            .equals(other.getModel());
      }
      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();
      }
      if (hasModel()) {
        hash = (37 * hash) + MODEL_FIELD_NUMBER;
        hash = (53 * hash) + getModel().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static clarifai2.internal.grpc.api.ModelOuterClass.SingleModelResponse parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static clarifai2.internal.grpc.api.ModelOuterClass.SingleModelResponse 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.ModelOuterClass.SingleModelResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static clarifai2.internal.grpc.api.ModelOuterClass.SingleModelResponse 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.ModelOuterClass.SingleModelResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static clarifai2.internal.grpc.api.ModelOuterClass.SingleModelResponse parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static clarifai2.internal.grpc.api.ModelOuterClass.SingleModelResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static clarifai2.internal.grpc.api.ModelOuterClass.SingleModelResponse 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.ModelOuterClass.SingleModelResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static clarifai2.internal.grpc.api.ModelOuterClass.SingleModelResponse 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.ModelOuterClass.SingleModelResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static clarifai2.internal.grpc.api.ModelOuterClass.SingleModelResponse 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.ModelOuterClass.SingleModelResponse 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.SingleModelResponse}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:clarifai.api.SingleModelResponse)
        clarifai2.internal.grpc.api.ModelOuterClass.SingleModelResponseOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return clarifai2.internal.grpc.api.ModelOuterClass.internal_static_clarifai_api_SingleModelResponse_descriptor;
      }

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return clarifai2.internal.grpc.api.ModelOuterClass.internal_static_clarifai_api_SingleModelResponse_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                clarifai2.internal.grpc.api.ModelOuterClass.SingleModelResponse.class, clarifai2.internal.grpc.api.ModelOuterClass.SingleModelResponse.Builder.class);
      }

      // Construct using clarifai2.internal.grpc.api.ModelOuterClass.SingleModelResponse.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 (statusBuilder_ == null) {
          status_ = null;
        } else {
          status_ = null;
          statusBuilder_ = null;
        }
        if (modelBuilder_ == null) {
          model_ = null;
        } else {
          model_ = null;
          modelBuilder_ = null;
        }
        return this;
      }

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

      public clarifai2.internal.grpc.api.ModelOuterClass.SingleModelResponse getDefaultInstanceForType() {
        return clarifai2.internal.grpc.api.ModelOuterClass.SingleModelResponse.getDefaultInstance();
      }

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

      public clarifai2.internal.grpc.api.ModelOuterClass.SingleModelResponse buildPartial() {
        clarifai2.internal.grpc.api.ModelOuterClass.SingleModelResponse result = new clarifai2.internal.grpc.api.ModelOuterClass.SingleModelResponse(this);
        if (statusBuilder_ == null) {
          result.status_ = status_;
        } else {
          result.status_ = statusBuilder_.build();
        }
        if (modelBuilder_ == null) {
          result.model_ = model_;
        } else {
          result.model_ = modelBuilder_.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.ModelOuterClass.SingleModelResponse) {
          return mergeFrom((clarifai2.internal.grpc.api.ModelOuterClass.SingleModelResponse)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(clarifai2.internal.grpc.api.ModelOuterClass.SingleModelResponse other) {
        if (other == clarifai2.internal.grpc.api.ModelOuterClass.SingleModelResponse.getDefaultInstance()) return this;
        if (other.hasStatus()) {
          mergeStatus(other.getStatus());
        }
        if (other.hasModel()) {
          mergeModel(other.getModel());
        }
        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.ModelOuterClass.SingleModelResponse parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (clarifai2.internal.grpc.api.ModelOuterClass.SingleModelResponse) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      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 clarifai2.internal.grpc.api.ModelOuterClass.Model model_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
          clarifai2.internal.grpc.api.ModelOuterClass.Model, clarifai2.internal.grpc.api.ModelOuterClass.Model.Builder, clarifai2.internal.grpc.api.ModelOuterClass.ModelOrBuilder> modelBuilder_;
      /**
       * .clarifai.api.Model model = 2;
       */
      public boolean hasModel() {
        return modelBuilder_ != null || model_ != null;
      }
      /**
       * .clarifai.api.Model model = 2;
       */
      public clarifai2.internal.grpc.api.ModelOuterClass.Model getModel() {
        if (modelBuilder_ == null) {
          return model_ == null ? clarifai2.internal.grpc.api.ModelOuterClass.Model.getDefaultInstance() : model_;
        } else {
          return modelBuilder_.getMessage();
        }
      }
      /**
       * .clarifai.api.Model model = 2;
       */
      public Builder setModel(clarifai2.internal.grpc.api.ModelOuterClass.Model value) {
        if (modelBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          model_ = value;
          onChanged();
        } else {
          modelBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * .clarifai.api.Model model = 2;
       */
      public Builder setModel(
          clarifai2.internal.grpc.api.ModelOuterClass.Model.Builder builderForValue) {
        if (modelBuilder_ == null) {
          model_ = builderForValue.build();
          onChanged();
        } else {
          modelBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * .clarifai.api.Model model = 2;
       */
      public Builder mergeModel(clarifai2.internal.grpc.api.ModelOuterClass.Model value) {
        if (modelBuilder_ == null) {
          if (model_ != null) {
            model_ =
              clarifai2.internal.grpc.api.ModelOuterClass.Model.newBuilder(model_).mergeFrom(value).buildPartial();
          } else {
            model_ = value;
          }
          onChanged();
        } else {
          modelBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * .clarifai.api.Model model = 2;
       */
      public Builder clearModel() {
        if (modelBuilder_ == null) {
          model_ = null;
          onChanged();
        } else {
          model_ = null;
          modelBuilder_ = null;
        }

        return this;
      }
      /**
       * .clarifai.api.Model model = 2;
       */
      public clarifai2.internal.grpc.api.ModelOuterClass.Model.Builder getModelBuilder() {
        
        onChanged();
        return getModelFieldBuilder().getBuilder();
      }
      /**
       * .clarifai.api.Model model = 2;
       */
      public clarifai2.internal.grpc.api.ModelOuterClass.ModelOrBuilder getModelOrBuilder() {
        if (modelBuilder_ != null) {
          return modelBuilder_.getMessageOrBuilder();
        } else {
          return model_ == null ?
              clarifai2.internal.grpc.api.ModelOuterClass.Model.getDefaultInstance() : model_;
        }
      }
      /**
       * .clarifai.api.Model model = 2;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          clarifai2.internal.grpc.api.ModelOuterClass.Model, clarifai2.internal.grpc.api.ModelOuterClass.Model.Builder, clarifai2.internal.grpc.api.ModelOuterClass.ModelOrBuilder> 
          getModelFieldBuilder() {
        if (modelBuilder_ == null) {
          modelBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              clarifai2.internal.grpc.api.ModelOuterClass.Model, clarifai2.internal.grpc.api.ModelOuterClass.Model.Builder, clarifai2.internal.grpc.api.ModelOuterClass.ModelOrBuilder>(
                  getModel(),
                  getParentForChildren(),
                  isClean());
          model_ = null;
        }
        return modelBuilder_;
      }
      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.SingleModelResponse)
    }

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

    public static clarifai2.internal.grpc.api.ModelOuterClass.SingleModelResponse getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser
        PARSER = new com.google.protobuf.AbstractParser() {
      public SingleModelResponse parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new SingleModelResponse(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.ModelOuterClass.SingleModelResponse getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface MultiModelResponseOrBuilder extends
      // @@protoc_insertion_point(interface_extends:clarifai.api.MultiModelResponse)
      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();

    /**
     * repeated .clarifai.api.Model models = 2 [(.clarifai.api.utils.cl_show_if_empty) = true];
     */
    java.util.List 
        getModelsList();
    /**
     * repeated .clarifai.api.Model models = 2 [(.clarifai.api.utils.cl_show_if_empty) = true];
     */
    clarifai2.internal.grpc.api.ModelOuterClass.Model getModels(int index);
    /**
     * repeated .clarifai.api.Model models = 2 [(.clarifai.api.utils.cl_show_if_empty) = true];
     */
    int getModelsCount();
    /**
     * repeated .clarifai.api.Model models = 2 [(.clarifai.api.utils.cl_show_if_empty) = true];
     */
    java.util.List 
        getModelsOrBuilderList();
    /**
     * repeated .clarifai.api.Model models = 2 [(.clarifai.api.utils.cl_show_if_empty) = true];
     */
    clarifai2.internal.grpc.api.ModelOuterClass.ModelOrBuilder getModelsOrBuilder(
        int index);
  }
  /**
   * Protobuf type {@code clarifai.api.MultiModelResponse}
   */
  public  static final class MultiModelResponse extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:clarifai.api.MultiModelResponse)
      MultiModelResponseOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use MultiModelResponse.newBuilder() to construct.
    private MultiModelResponse(com.google.protobuf.GeneratedMessageV3.Builder builder) {
      super(builder);
    }
    private MultiModelResponse() {
      models_ = java.util.Collections.emptyList();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private MultiModelResponse(
        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: {
              if (!((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
                models_ = new java.util.ArrayList();
                mutable_bitField0_ |= 0x00000002;
              }
              models_.add(
                  input.readMessage(clarifai2.internal.grpc.api.ModelOuterClass.Model.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_ & 0x00000002) == 0x00000002)) {
          models_ = java.util.Collections.unmodifiableList(models_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return clarifai2.internal.grpc.api.ModelOuterClass.internal_static_clarifai_api_MultiModelResponse_descriptor;
    }

    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return clarifai2.internal.grpc.api.ModelOuterClass.internal_static_clarifai_api_MultiModelResponse_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              clarifai2.internal.grpc.api.ModelOuterClass.MultiModelResponse.class, clarifai2.internal.grpc.api.ModelOuterClass.MultiModelResponse.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 MODELS_FIELD_NUMBER = 2;
    private java.util.List models_;
    /**
     * repeated .clarifai.api.Model models = 2 [(.clarifai.api.utils.cl_show_if_empty) = true];
     */
    public java.util.List getModelsList() {
      return models_;
    }
    /**
     * repeated .clarifai.api.Model models = 2 [(.clarifai.api.utils.cl_show_if_empty) = true];
     */
    public java.util.List 
        getModelsOrBuilderList() {
      return models_;
    }
    /**
     * repeated .clarifai.api.Model models = 2 [(.clarifai.api.utils.cl_show_if_empty) = true];
     */
    public int getModelsCount() {
      return models_.size();
    }
    /**
     * repeated .clarifai.api.Model models = 2 [(.clarifai.api.utils.cl_show_if_empty) = true];
     */
    public clarifai2.internal.grpc.api.ModelOuterClass.Model getModels(int index) {
      return models_.get(index);
    }
    /**
     * repeated .clarifai.api.Model models = 2 [(.clarifai.api.utils.cl_show_if_empty) = true];
     */
    public clarifai2.internal.grpc.api.ModelOuterClass.ModelOrBuilder getModelsOrBuilder(
        int index) {
      return models_.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());
      }
      for (int i = 0; i < models_.size(); i++) {
        output.writeMessage(2, models_.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());
      }
      for (int i = 0; i < models_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, models_.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.ModelOuterClass.MultiModelResponse)) {
        return super.equals(obj);
      }
      clarifai2.internal.grpc.api.ModelOuterClass.MultiModelResponse other = (clarifai2.internal.grpc.api.ModelOuterClass.MultiModelResponse) obj;

      boolean result = true;
      result = result && (hasStatus() == other.hasStatus());
      if (hasStatus()) {
        result = result && getStatus()
            .equals(other.getStatus());
      }
      result = result && getModelsList()
          .equals(other.getModelsList());
      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();
      }
      if (getModelsCount() > 0) {
        hash = (37 * hash) + MODELS_FIELD_NUMBER;
        hash = (53 * hash) + getModelsList().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static clarifai2.internal.grpc.api.ModelOuterClass.MultiModelResponse parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static clarifai2.internal.grpc.api.ModelOuterClass.MultiModelResponse 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.ModelOuterClass.MultiModelResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static clarifai2.internal.grpc.api.ModelOuterClass.MultiModelResponse 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.ModelOuterClass.MultiModelResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static clarifai2.internal.grpc.api.ModelOuterClass.MultiModelResponse parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static clarifai2.internal.grpc.api.ModelOuterClass.MultiModelResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static clarifai2.internal.grpc.api.ModelOuterClass.MultiModelResponse 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.ModelOuterClass.MultiModelResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static clarifai2.internal.grpc.api.ModelOuterClass.MultiModelResponse 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.ModelOuterClass.MultiModelResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static clarifai2.internal.grpc.api.ModelOuterClass.MultiModelResponse 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.ModelOuterClass.MultiModelResponse 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.MultiModelResponse}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:clarifai.api.MultiModelResponse)
        clarifai2.internal.grpc.api.ModelOuterClass.MultiModelResponseOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return clarifai2.internal.grpc.api.ModelOuterClass.internal_static_clarifai_api_MultiModelResponse_descriptor;
      }

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return clarifai2.internal.grpc.api.ModelOuterClass.internal_static_clarifai_api_MultiModelResponse_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                clarifai2.internal.grpc.api.ModelOuterClass.MultiModelResponse.class, clarifai2.internal.grpc.api.ModelOuterClass.MultiModelResponse.Builder.class);
      }

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

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getModelsFieldBuilder();
        }
      }
      public Builder clear() {
        super.clear();
        if (statusBuilder_ == null) {
          status_ = null;
        } else {
          status_ = null;
          statusBuilder_ = null;
        }
        if (modelsBuilder_ == null) {
          models_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
        } else {
          modelsBuilder_.clear();
        }
        return this;
      }

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

      public clarifai2.internal.grpc.api.ModelOuterClass.MultiModelResponse getDefaultInstanceForType() {
        return clarifai2.internal.grpc.api.ModelOuterClass.MultiModelResponse.getDefaultInstance();
      }

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

      public clarifai2.internal.grpc.api.ModelOuterClass.MultiModelResponse buildPartial() {
        clarifai2.internal.grpc.api.ModelOuterClass.MultiModelResponse result = new clarifai2.internal.grpc.api.ModelOuterClass.MultiModelResponse(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (statusBuilder_ == null) {
          result.status_ = status_;
        } else {
          result.status_ = statusBuilder_.build();
        }
        if (modelsBuilder_ == null) {
          if (((bitField0_ & 0x00000002) == 0x00000002)) {
            models_ = java.util.Collections.unmodifiableList(models_);
            bitField0_ = (bitField0_ & ~0x00000002);
          }
          result.models_ = models_;
        } else {
          result.models_ = modelsBuilder_.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.ModelOuterClass.MultiModelResponse) {
          return mergeFrom((clarifai2.internal.grpc.api.ModelOuterClass.MultiModelResponse)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(clarifai2.internal.grpc.api.ModelOuterClass.MultiModelResponse other) {
        if (other == clarifai2.internal.grpc.api.ModelOuterClass.MultiModelResponse.getDefaultInstance()) return this;
        if (other.hasStatus()) {
          mergeStatus(other.getStatus());
        }
        if (modelsBuilder_ == null) {
          if (!other.models_.isEmpty()) {
            if (models_.isEmpty()) {
              models_ = other.models_;
              bitField0_ = (bitField0_ & ~0x00000002);
            } else {
              ensureModelsIsMutable();
              models_.addAll(other.models_);
            }
            onChanged();
          }
        } else {
          if (!other.models_.isEmpty()) {
            if (modelsBuilder_.isEmpty()) {
              modelsBuilder_.dispose();
              modelsBuilder_ = null;
              models_ = other.models_;
              bitField0_ = (bitField0_ & ~0x00000002);
              modelsBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getModelsFieldBuilder() : null;
            } else {
              modelsBuilder_.addAllMessages(other.models_);
            }
          }
        }
        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.ModelOuterClass.MultiModelResponse parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (clarifai2.internal.grpc.api.ModelOuterClass.MultiModelResponse) 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.util.List models_ =
        java.util.Collections.emptyList();
      private void ensureModelsIsMutable() {
        if (!((bitField0_ & 0x00000002) == 0x00000002)) {
          models_ = new java.util.ArrayList(models_);
          bitField0_ |= 0x00000002;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          clarifai2.internal.grpc.api.ModelOuterClass.Model, clarifai2.internal.grpc.api.ModelOuterClass.Model.Builder, clarifai2.internal.grpc.api.ModelOuterClass.ModelOrBuilder> modelsBuilder_;

      /**
       * repeated .clarifai.api.Model models = 2 [(.clarifai.api.utils.cl_show_if_empty) = true];
       */
      public java.util.List getModelsList() {
        if (modelsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(models_);
        } else {
          return modelsBuilder_.getMessageList();
        }
      }
      /**
       * repeated .clarifai.api.Model models = 2 [(.clarifai.api.utils.cl_show_if_empty) = true];
       */
      public int getModelsCount() {
        if (modelsBuilder_ == null) {
          return models_.size();
        } else {
          return modelsBuilder_.getCount();
        }
      }
      /**
       * repeated .clarifai.api.Model models = 2 [(.clarifai.api.utils.cl_show_if_empty) = true];
       */
      public clarifai2.internal.grpc.api.ModelOuterClass.Model getModels(int index) {
        if (modelsBuilder_ == null) {
          return models_.get(index);
        } else {
          return modelsBuilder_.getMessage(index);
        }
      }
      /**
       * repeated .clarifai.api.Model models = 2 [(.clarifai.api.utils.cl_show_if_empty) = true];
       */
      public Builder setModels(
          int index, clarifai2.internal.grpc.api.ModelOuterClass.Model value) {
        if (modelsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureModelsIsMutable();
          models_.set(index, value);
          onChanged();
        } else {
          modelsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .clarifai.api.Model models = 2 [(.clarifai.api.utils.cl_show_if_empty) = true];
       */
      public Builder setModels(
          int index, clarifai2.internal.grpc.api.ModelOuterClass.Model.Builder builderForValue) {
        if (modelsBuilder_ == null) {
          ensureModelsIsMutable();
          models_.set(index, builderForValue.build());
          onChanged();
        } else {
          modelsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .clarifai.api.Model models = 2 [(.clarifai.api.utils.cl_show_if_empty) = true];
       */
      public Builder addModels(clarifai2.internal.grpc.api.ModelOuterClass.Model value) {
        if (modelsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureModelsIsMutable();
          models_.add(value);
          onChanged();
        } else {
          modelsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * repeated .clarifai.api.Model models = 2 [(.clarifai.api.utils.cl_show_if_empty) = true];
       */
      public Builder addModels(
          int index, clarifai2.internal.grpc.api.ModelOuterClass.Model value) {
        if (modelsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureModelsIsMutable();
          models_.add(index, value);
          onChanged();
        } else {
          modelsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .clarifai.api.Model models = 2 [(.clarifai.api.utils.cl_show_if_empty) = true];
       */
      public Builder addModels(
          clarifai2.internal.grpc.api.ModelOuterClass.Model.Builder builderForValue) {
        if (modelsBuilder_ == null) {
          ensureModelsIsMutable();
          models_.add(builderForValue.build());
          onChanged();
        } else {
          modelsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .clarifai.api.Model models = 2 [(.clarifai.api.utils.cl_show_if_empty) = true];
       */
      public Builder addModels(
          int index, clarifai2.internal.grpc.api.ModelOuterClass.Model.Builder builderForValue) {
        if (modelsBuilder_ == null) {
          ensureModelsIsMutable();
          models_.add(index, builderForValue.build());
          onChanged();
        } else {
          modelsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .clarifai.api.Model models = 2 [(.clarifai.api.utils.cl_show_if_empty) = true];
       */
      public Builder addAllModels(
          java.lang.Iterable values) {
        if (modelsBuilder_ == null) {
          ensureModelsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, models_);
          onChanged();
        } else {
          modelsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * repeated .clarifai.api.Model models = 2 [(.clarifai.api.utils.cl_show_if_empty) = true];
       */
      public Builder clearModels() {
        if (modelsBuilder_ == null) {
          models_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
          onChanged();
        } else {
          modelsBuilder_.clear();
        }
        return this;
      }
      /**
       * repeated .clarifai.api.Model models = 2 [(.clarifai.api.utils.cl_show_if_empty) = true];
       */
      public Builder removeModels(int index) {
        if (modelsBuilder_ == null) {
          ensureModelsIsMutable();
          models_.remove(index);
          onChanged();
        } else {
          modelsBuilder_.remove(index);
        }
        return this;
      }
      /**
       * repeated .clarifai.api.Model models = 2 [(.clarifai.api.utils.cl_show_if_empty) = true];
       */
      public clarifai2.internal.grpc.api.ModelOuterClass.Model.Builder getModelsBuilder(
          int index) {
        return getModelsFieldBuilder().getBuilder(index);
      }
      /**
       * repeated .clarifai.api.Model models = 2 [(.clarifai.api.utils.cl_show_if_empty) = true];
       */
      public clarifai2.internal.grpc.api.ModelOuterClass.ModelOrBuilder getModelsOrBuilder(
          int index) {
        if (modelsBuilder_ == null) {
          return models_.get(index);  } else {
          return modelsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * repeated .clarifai.api.Model models = 2 [(.clarifai.api.utils.cl_show_if_empty) = true];
       */
      public java.util.List 
           getModelsOrBuilderList() {
        if (modelsBuilder_ != null) {
          return modelsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(models_);
        }
      }
      /**
       * repeated .clarifai.api.Model models = 2 [(.clarifai.api.utils.cl_show_if_empty) = true];
       */
      public clarifai2.internal.grpc.api.ModelOuterClass.Model.Builder addModelsBuilder() {
        return getModelsFieldBuilder().addBuilder(
            clarifai2.internal.grpc.api.ModelOuterClass.Model.getDefaultInstance());
      }
      /**
       * repeated .clarifai.api.Model models = 2 [(.clarifai.api.utils.cl_show_if_empty) = true];
       */
      public clarifai2.internal.grpc.api.ModelOuterClass.Model.Builder addModelsBuilder(
          int index) {
        return getModelsFieldBuilder().addBuilder(
            index, clarifai2.internal.grpc.api.ModelOuterClass.Model.getDefaultInstance());
      }
      /**
       * repeated .clarifai.api.Model models = 2 [(.clarifai.api.utils.cl_show_if_empty) = true];
       */
      public java.util.List 
           getModelsBuilderList() {
        return getModelsFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          clarifai2.internal.grpc.api.ModelOuterClass.Model, clarifai2.internal.grpc.api.ModelOuterClass.Model.Builder, clarifai2.internal.grpc.api.ModelOuterClass.ModelOrBuilder> 
          getModelsFieldBuilder() {
        if (modelsBuilder_ == null) {
          modelsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              clarifai2.internal.grpc.api.ModelOuterClass.Model, clarifai2.internal.grpc.api.ModelOuterClass.Model.Builder, clarifai2.internal.grpc.api.ModelOuterClass.ModelOrBuilder>(
                  models_,
                  ((bitField0_ & 0x00000002) == 0x00000002),
                  getParentForChildren(),
                  isClean());
          models_ = null;
        }
        return modelsBuilder_;
      }
      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.MultiModelResponse)
    }

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

    public static clarifai2.internal.grpc.api.ModelOuterClass.MultiModelResponse getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser
        PARSER = new com.google.protobuf.AbstractParser() {
      public MultiModelResponse parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new MultiModelResponse(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.ModelOuterClass.MultiModelResponse getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface SingleModelWeightResponseOrBuilder extends
      // @@protoc_insertion_point(interface_extends:clarifai.api.SingleModelWeightResponse)
      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();

    /**
     * .clarifai.api.Model model = 2;
     */
    boolean hasModel();
    /**
     * .clarifai.api.Model model = 2;
     */
    clarifai2.internal.grpc.api.ModelOuterClass.Model getModel();
    /**
     * .clarifai.api.Model model = 2;
     */
    clarifai2.internal.grpc.api.ModelOuterClass.ModelOrBuilder getModelOrBuilder();

    /**
     * bytes ct64 = 3;
     */
    com.google.protobuf.ByteString getCt64();

    /**
     * string proto_download_url = 4;
     */
    java.lang.String getProtoDownloadUrl();
    /**
     * string proto_download_url = 4;
     */
    com.google.protobuf.ByteString
        getProtoDownloadUrlBytes();
  }
  /**
   * Protobuf type {@code clarifai.api.SingleModelWeightResponse}
   */
  public  static final class SingleModelWeightResponse extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:clarifai.api.SingleModelWeightResponse)
      SingleModelWeightResponseOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use SingleModelWeightResponse.newBuilder() to construct.
    private SingleModelWeightResponse(com.google.protobuf.GeneratedMessageV3.Builder builder) {
      super(builder);
    }
    private SingleModelWeightResponse() {
      ct64_ = com.google.protobuf.ByteString.EMPTY;
      protoDownloadUrl_ = "";
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private SingleModelWeightResponse(
        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: {
              clarifai2.internal.grpc.api.ModelOuterClass.Model.Builder subBuilder = null;
              if (model_ != null) {
                subBuilder = model_.toBuilder();
              }
              model_ = input.readMessage(clarifai2.internal.grpc.api.ModelOuterClass.Model.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(model_);
                model_ = subBuilder.buildPartial();
              }

              break;
            }
            case 26: {

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

              protoDownloadUrl_ = 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 {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return clarifai2.internal.grpc.api.ModelOuterClass.internal_static_clarifai_api_SingleModelWeightResponse_descriptor;
    }

    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return clarifai2.internal.grpc.api.ModelOuterClass.internal_static_clarifai_api_SingleModelWeightResponse_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              clarifai2.internal.grpc.api.ModelOuterClass.SingleModelWeightResponse.class, clarifai2.internal.grpc.api.ModelOuterClass.SingleModelWeightResponse.Builder.class);
    }

    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 MODEL_FIELD_NUMBER = 2;
    private clarifai2.internal.grpc.api.ModelOuterClass.Model model_;
    /**
     * .clarifai.api.Model model = 2;
     */
    public boolean hasModel() {
      return model_ != null;
    }
    /**
     * .clarifai.api.Model model = 2;
     */
    public clarifai2.internal.grpc.api.ModelOuterClass.Model getModel() {
      return model_ == null ? clarifai2.internal.grpc.api.ModelOuterClass.Model.getDefaultInstance() : model_;
    }
    /**
     * .clarifai.api.Model model = 2;
     */
    public clarifai2.internal.grpc.api.ModelOuterClass.ModelOrBuilder getModelOrBuilder() {
      return getModel();
    }

    public static final int CT64_FIELD_NUMBER = 3;
    private com.google.protobuf.ByteString ct64_;
    /**
     * bytes ct64 = 3;
     */
    public com.google.protobuf.ByteString getCt64() {
      return ct64_;
    }

    public static final int PROTO_DOWNLOAD_URL_FIELD_NUMBER = 4;
    private volatile java.lang.Object protoDownloadUrl_;
    /**
     * string proto_download_url = 4;
     */
    public java.lang.String getProtoDownloadUrl() {
      java.lang.Object ref = protoDownloadUrl_;
      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();
        protoDownloadUrl_ = s;
        return s;
      }
    }
    /**
     * string proto_download_url = 4;
     */
    public com.google.protobuf.ByteString
        getProtoDownloadUrlBytes() {
      java.lang.Object ref = protoDownloadUrl_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        protoDownloadUrl_ = 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 {
      if (status_ != null) {
        output.writeMessage(1, getStatus());
      }
      if (model_ != null) {
        output.writeMessage(2, getModel());
      }
      if (!ct64_.isEmpty()) {
        output.writeBytes(3, ct64_);
      }
      if (!getProtoDownloadUrlBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 4, protoDownloadUrl_);
      }
      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 (model_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, getModel());
      }
      if (!ct64_.isEmpty()) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(3, ct64_);
      }
      if (!getProtoDownloadUrlBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, protoDownloadUrl_);
      }
      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.ModelOuterClass.SingleModelWeightResponse)) {
        return super.equals(obj);
      }
      clarifai2.internal.grpc.api.ModelOuterClass.SingleModelWeightResponse other = (clarifai2.internal.grpc.api.ModelOuterClass.SingleModelWeightResponse) obj;

      boolean result = true;
      result = result && (hasStatus() == other.hasStatus());
      if (hasStatus()) {
        result = result && getStatus()
            .equals(other.getStatus());
      }
      result = result && (hasModel() == other.hasModel());
      if (hasModel()) {
        result = result && getModel()
            .equals(other.getModel());
      }
      result = result && getCt64()
          .equals(other.getCt64());
      result = result && getProtoDownloadUrl()
          .equals(other.getProtoDownloadUrl());
      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();
      }
      if (hasModel()) {
        hash = (37 * hash) + MODEL_FIELD_NUMBER;
        hash = (53 * hash) + getModel().hashCode();
      }
      hash = (37 * hash) + CT64_FIELD_NUMBER;
      hash = (53 * hash) + getCt64().hashCode();
      hash = (37 * hash) + PROTO_DOWNLOAD_URL_FIELD_NUMBER;
      hash = (53 * hash) + getProtoDownloadUrl().hashCode();
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static clarifai2.internal.grpc.api.ModelOuterClass.SingleModelWeightResponse parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static clarifai2.internal.grpc.api.ModelOuterClass.SingleModelWeightResponse 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.ModelOuterClass.SingleModelWeightResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static clarifai2.internal.grpc.api.ModelOuterClass.SingleModelWeightResponse 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.ModelOuterClass.SingleModelWeightResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static clarifai2.internal.grpc.api.ModelOuterClass.SingleModelWeightResponse parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static clarifai2.internal.grpc.api.ModelOuterClass.SingleModelWeightResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static clarifai2.internal.grpc.api.ModelOuterClass.SingleModelWeightResponse 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.ModelOuterClass.SingleModelWeightResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static clarifai2.internal.grpc.api.ModelOuterClass.SingleModelWeightResponse 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.ModelOuterClass.SingleModelWeightResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static clarifai2.internal.grpc.api.ModelOuterClass.SingleModelWeightResponse 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.ModelOuterClass.SingleModelWeightResponse 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.SingleModelWeightResponse}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:clarifai.api.SingleModelWeightResponse)
        clarifai2.internal.grpc.api.ModelOuterClass.SingleModelWeightResponseOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return clarifai2.internal.grpc.api.ModelOuterClass.internal_static_clarifai_api_SingleModelWeightResponse_descriptor;
      }

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return clarifai2.internal.grpc.api.ModelOuterClass.internal_static_clarifai_api_SingleModelWeightResponse_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                clarifai2.internal.grpc.api.ModelOuterClass.SingleModelWeightResponse.class, clarifai2.internal.grpc.api.ModelOuterClass.SingleModelWeightResponse.Builder.class);
      }

      // Construct using clarifai2.internal.grpc.api.ModelOuterClass.SingleModelWeightResponse.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 (statusBuilder_ == null) {
          status_ = null;
        } else {
          status_ = null;
          statusBuilder_ = null;
        }
        if (modelBuilder_ == null) {
          model_ = null;
        } else {
          model_ = null;
          modelBuilder_ = null;
        }
        ct64_ = com.google.protobuf.ByteString.EMPTY;

        protoDownloadUrl_ = "";

        return this;
      }

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

      public clarifai2.internal.grpc.api.ModelOuterClass.SingleModelWeightResponse getDefaultInstanceForType() {
        return clarifai2.internal.grpc.api.ModelOuterClass.SingleModelWeightResponse.getDefaultInstance();
      }

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

      public clarifai2.internal.grpc.api.ModelOuterClass.SingleModelWeightResponse buildPartial() {
        clarifai2.internal.grpc.api.ModelOuterClass.SingleModelWeightResponse result = new clarifai2.internal.grpc.api.ModelOuterClass.SingleModelWeightResponse(this);
        if (statusBuilder_ == null) {
          result.status_ = status_;
        } else {
          result.status_ = statusBuilder_.build();
        }
        if (modelBuilder_ == null) {
          result.model_ = model_;
        } else {
          result.model_ = modelBuilder_.build();
        }
        result.ct64_ = ct64_;
        result.protoDownloadUrl_ = protoDownloadUrl_;
        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.ModelOuterClass.SingleModelWeightResponse) {
          return mergeFrom((clarifai2.internal.grpc.api.ModelOuterClass.SingleModelWeightResponse)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(clarifai2.internal.grpc.api.ModelOuterClass.SingleModelWeightResponse other) {
        if (other == clarifai2.internal.grpc.api.ModelOuterClass.SingleModelWeightResponse.getDefaultInstance()) return this;
        if (other.hasStatus()) {
          mergeStatus(other.getStatus());
        }
        if (other.hasModel()) {
          mergeModel(other.getModel());
        }
        if (other.getCt64() != com.google.protobuf.ByteString.EMPTY) {
          setCt64(other.getCt64());
        }
        if (!other.getProtoDownloadUrl().isEmpty()) {
          protoDownloadUrl_ = other.protoDownloadUrl_;
          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.ModelOuterClass.SingleModelWeightResponse parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (clarifai2.internal.grpc.api.ModelOuterClass.SingleModelWeightResponse) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      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 clarifai2.internal.grpc.api.ModelOuterClass.Model model_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
          clarifai2.internal.grpc.api.ModelOuterClass.Model, clarifai2.internal.grpc.api.ModelOuterClass.Model.Builder, clarifai2.internal.grpc.api.ModelOuterClass.ModelOrBuilder> modelBuilder_;
      /**
       * .clarifai.api.Model model = 2;
       */
      public boolean hasModel() {
        return modelBuilder_ != null || model_ != null;
      }
      /**
       * .clarifai.api.Model model = 2;
       */
      public clarifai2.internal.grpc.api.ModelOuterClass.Model getModel() {
        if (modelBuilder_ == null) {
          return model_ == null ? clarifai2.internal.grpc.api.ModelOuterClass.Model.getDefaultInstance() : model_;
        } else {
          return modelBuilder_.getMessage();
        }
      }
      /**
       * .clarifai.api.Model model = 2;
       */
      public Builder setModel(clarifai2.internal.grpc.api.ModelOuterClass.Model value) {
        if (modelBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          model_ = value;
          onChanged();
        } else {
          modelBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * .clarifai.api.Model model = 2;
       */
      public Builder setModel(
          clarifai2.internal.grpc.api.ModelOuterClass.Model.Builder builderForValue) {
        if (modelBuilder_ == null) {
          model_ = builderForValue.build();
          onChanged();
        } else {
          modelBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * .clarifai.api.Model model = 2;
       */
      public Builder mergeModel(clarifai2.internal.grpc.api.ModelOuterClass.Model value) {
        if (modelBuilder_ == null) {
          if (model_ != null) {
            model_ =
              clarifai2.internal.grpc.api.ModelOuterClass.Model.newBuilder(model_).mergeFrom(value).buildPartial();
          } else {
            model_ = value;
          }
          onChanged();
        } else {
          modelBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * .clarifai.api.Model model = 2;
       */
      public Builder clearModel() {
        if (modelBuilder_ == null) {
          model_ = null;
          onChanged();
        } else {
          model_ = null;
          modelBuilder_ = null;
        }

        return this;
      }
      /**
       * .clarifai.api.Model model = 2;
       */
      public clarifai2.internal.grpc.api.ModelOuterClass.Model.Builder getModelBuilder() {
        
        onChanged();
        return getModelFieldBuilder().getBuilder();
      }
      /**
       * .clarifai.api.Model model = 2;
       */
      public clarifai2.internal.grpc.api.ModelOuterClass.ModelOrBuilder getModelOrBuilder() {
        if (modelBuilder_ != null) {
          return modelBuilder_.getMessageOrBuilder();
        } else {
          return model_ == null ?
              clarifai2.internal.grpc.api.ModelOuterClass.Model.getDefaultInstance() : model_;
        }
      }
      /**
       * .clarifai.api.Model model = 2;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          clarifai2.internal.grpc.api.ModelOuterClass.Model, clarifai2.internal.grpc.api.ModelOuterClass.Model.Builder, clarifai2.internal.grpc.api.ModelOuterClass.ModelOrBuilder> 
          getModelFieldBuilder() {
        if (modelBuilder_ == null) {
          modelBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              clarifai2.internal.grpc.api.ModelOuterClass.Model, clarifai2.internal.grpc.api.ModelOuterClass.Model.Builder, clarifai2.internal.grpc.api.ModelOuterClass.ModelOrBuilder>(
                  getModel(),
                  getParentForChildren(),
                  isClean());
          model_ = null;
        }
        return modelBuilder_;
      }

      private com.google.protobuf.ByteString ct64_ = com.google.protobuf.ByteString.EMPTY;
      /**
       * bytes ct64 = 3;
       */
      public com.google.protobuf.ByteString getCt64() {
        return ct64_;
      }
      /**
       * bytes ct64 = 3;
       */
      public Builder setCt64(com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        ct64_ = value;
        onChanged();
        return this;
      }
      /**
       * bytes ct64 = 3;
       */
      public Builder clearCt64() {
        
        ct64_ = getDefaultInstance().getCt64();
        onChanged();
        return this;
      }

      private java.lang.Object protoDownloadUrl_ = "";
      /**
       * string proto_download_url = 4;
       */
      public java.lang.String getProtoDownloadUrl() {
        java.lang.Object ref = protoDownloadUrl_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          protoDownloadUrl_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * string proto_download_url = 4;
       */
      public com.google.protobuf.ByteString
          getProtoDownloadUrlBytes() {
        java.lang.Object ref = protoDownloadUrl_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          protoDownloadUrl_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * string proto_download_url = 4;
       */
      public Builder setProtoDownloadUrl(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        protoDownloadUrl_ = value;
        onChanged();
        return this;
      }
      /**
       * string proto_download_url = 4;
       */
      public Builder clearProtoDownloadUrl() {
        
        protoDownloadUrl_ = getDefaultInstance().getProtoDownloadUrl();
        onChanged();
        return this;
      }
      /**
       * string proto_download_url = 4;
       */
      public Builder setProtoDownloadUrlBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        protoDownloadUrl_ = 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.SingleModelWeightResponse)
    }

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

    public static clarifai2.internal.grpc.api.ModelOuterClass.SingleModelWeightResponse getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser
        PARSER = new com.google.protobuf.AbstractParser() {
      public SingleModelWeightResponse parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new SingleModelWeightResponse(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.ModelOuterClass.SingleModelWeightResponse getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_clarifai_api_Model_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_clarifai_api_Model_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_clarifai_api_OutputInfo_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_clarifai_api_OutputInfo_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_clarifai_api_OutputConfig_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_clarifai_api_OutputConfig_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_clarifai_api_ModelQuery_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_clarifai_api_ModelQuery_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_clarifai_api_GetModelRequest_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_clarifai_api_GetModelRequest_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_clarifai_api_GetModelOutputInfoRequest_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_clarifai_api_GetModelOutputInfoRequest_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_clarifai_api_ListModelsRequest_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_clarifai_api_ListModelsRequest_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_clarifai_api_PostModelsRequest_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_clarifai_api_PostModelsRequest_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_clarifai_api_PatchModelsRequest_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_clarifai_api_PatchModelsRequest_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_clarifai_api_DeleteModelRequest_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_clarifai_api_DeleteModelRequest_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_clarifai_api_DeleteModelsRequest_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_clarifai_api_DeleteModelsRequest_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_clarifai_api_PostModelsSearchesRequest_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_clarifai_api_PostModelsSearchesRequest_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_clarifai_api_SingleModelResponse_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_clarifai_api_SingleModelResponse_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_clarifai_api_MultiModelResponse_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_clarifai_api_MultiModelResponse_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_clarifai_api_SingleModelWeightResponse_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_clarifai_api_SingleModelWeightResponse_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\036proto/clarifai/api/model.proto\022\014clarif" +
      "ai.api\032\037proto/clarifai/api/common.proto\032" +
      "\035proto/clarifai/api/data.proto\032&proto/cl" +
      "arifai/api/model_version.proto\032 proto/cl" +
      "arifai/api/concept.proto\032&proto/clarifai" +
      "/api/status/status.proto\032)proto/clarifai" +
      "/api/utils/extensions.proto\0320proto/clari" +
      "fai/utils/pagination/pagination.proto\032\037g" +
      "oogle/protobuf/timestamp.proto\032\036google/p" +
      "rotobuf/wrappers.proto\"\337\001\n\005Model\022\n\n\002id\030\001" +
      " \001(\t\022\014\n\004name\030\002 \001(\t\022.\n\ncreated_at\030\003 \001(\0132\032" +
      ".google.protobuf.Timestamp\022\024\n\006app_id\030\004 \001" +
      "(\tB\004\200\265\030\001\022-\n\013output_info\030\005 \001(\0132\030.clarifai" +
      ".api.OutputInfo\0221\n\rmodel_version\030\006 \001(\0132\032" +
      ".clarifai.api.ModelVersion\022\024\n\014display_na" +
      "me\030\007 \001(\t\"\222\001\n\nOutputInfo\022 \n\004data\030\001 \001(\0132\022." +
      "clarifai.api.Data\0221\n\routput_config\030\002 \001(\013" +
      "2\032.clarifai.api.OutputConfig\022\017\n\007message\030" +
      "\003 \001(\t\022\014\n\004type\030\004 \001(\t\022\020\n\010type_ext\030\005 \001(\t\"\270\002" +
      "\n\014OutputConfig\022)\n\033concepts_mutually_excl" +
      "usive\030\001 \001(\010B\004\200\265\030\001\022 \n\022closed_environment\030" +
      "\002 \001(\010B\004\200\265\030\001\022\035\n\021existing_model_id\030\003 \001(\tB\002" +
      "\030\001\022\020\n\010language\030\004 \001(\t\022\030\n\020hyper_parameters" +
      "\030\005 \001(\t\022\032\n\014max_concepts\030\006 \001(\rB\004\200\265\030\001\022\027\n\tmi" +
      "n_value\030\007 \001(\002B\004\200\265\030\001\022.\n\017select_concepts\030\010" +
      " \003(\0132\025.clarifai.api.Concept\022\030\n\020training_" +
      "timeout\030\t \001(\r\022\021\n\tsample_ms\030\n \001(\r\"(\n\nMode" +
      "lQuery\022\014\n\004name\030\001 \001(\t\022\014\n\004type\030\002 \001(\t\"h\n\017Ge" +
      "tModelRequest\022/\n\013user_app_id\030\001 \001(\0132\032.cla" +
      "rifai.api.UserAppIDSet\022\020\n\010model_id\030\002 \001(\t" +
      "\022\022\n\nversion_id\030\003 \001(\t\"r\n\031GetModelOutputIn" +
      "foRequest\022/\n\013user_app_id\030\001 \001(\0132\032.clarifa" +
      "i.api.UserAppIDSet\022\020\n\010model_id\030\002 \001(\t\022\022\n\n" +
      "version_id\030\003 \001(\t\"q\n\021ListModelsRequest\022/\n" +
      "\013user_app_id\030\001 \001(\0132\032.clarifai.api.UserAp" +
      "pIDSet\022\014\n\004page\030\002 \001(\r\022\020\n\010per_page\030\003 \001(\r\022\013" +
      "\n\003ids\030\004 \003(\t\"\221\001\n\021PostModelsRequest\022/\n\013use" +
      "r_app_id\030\001 \001(\0132\032.clarifai.api.UserAppIDS" +
      "et\022&\n\005model\030\002 \001(\0132\023.clarifai.api.ModelB\002" +
      "\030\001\022#\n\006models\030\003 \003(\0132\023.clarifai.api.Model\"" +
      "z\n\022PatchModelsRequest\022/\n\013user_app_id\030\001 \001" +
      "(\0132\032.clarifai.api.UserAppIDSet\022#\n\006models" +
      "\030\002 \003(\0132\023.clarifai.api.Model\022\016\n\006action\030\003 " +
      "\001(\t\"W\n\022DeleteModelRequest\022/\n\013user_app_id" +
      "\030\001 \001(\0132\032.clarifai.api.UserAppIDSet\022\020\n\010mo" +
      "del_id\030\002 \001(\t\"g\n\023DeleteModelsRequest\022/\n\013u" +
      "ser_app_id\030\001 \001(\0132\032.clarifai.api.UserAppI" +
      "DSet\022\013\n\003ids\030\002 \003(\t\022\022\n\ndelete_all\030\003 \001(\010\"\251\001" +
      "\n\031PostModelsSearchesRequest\022/\n\013user_app_" +
      "id\030\001 \001(\0132\032.clarifai.api.UserAppIDSet\022-\n\013" +
      "model_query\030\002 \001(\0132\030.clarifai.api.ModelQu" +
      "ery\022,\n\npagination\030\003 \001(\0132\030.clarifai.api.P" +
      "agination\"f\n\023SingleModelResponse\022+\n\006stat" +
      "us\030\001 \001(\0132\033.clarifai.api.status.Status\022\"\n" +
      "\005model\030\002 \001(\0132\023.clarifai.api.Model\"l\n\022Mul" +
      "tiModelResponse\022+\n\006status\030\001 \001(\0132\033.clarif" +
      "ai.api.status.Status\022)\n\006models\030\002 \003(\0132\023.c" +
      "larifai.api.ModelB\004\200\265\030\001\"\226\001\n\031SingleModelW" +
      "eightResponse\022+\n\006status\030\001 \001(\0132\033.clarifai" +
      ".api.status.Status\022\"\n\005model\030\002 \001(\0132\023.clar" +
      "ifai.api.Model\022\014\n\004ct64\030\003 \001(\014\022\032\n\022proto_do" +
      "wnload_url\030\004 \001(\tBA\n\033clarifai2.internal.g" +
      "rpc.apiZ\003api\242\002\004CAIP\302\002\001_\312\002\021Clarifai\\Inter" +
      "nalb\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.DataOuterClass.getDescriptor(),
          clarifai2.internal.grpc.api.ModelVersionOuterClass.getDescriptor(),
          clarifai2.internal.grpc.api.ConceptOuterClass.getDescriptor(),
          clarifai2.internal.grpc.api.status.StatusOuterClass.getDescriptor(),
          clarifai2.internal.grpc.api.utils.Extensions.getDescriptor(),
          clarifai2.internal.grpc.api.PaginationOuterClass.getDescriptor(),
          com.google.protobuf.TimestampProto.getDescriptor(),
          com.google.protobuf.WrappersProto.getDescriptor(),
        }, assigner);
    internal_static_clarifai_api_Model_descriptor =
      getDescriptor().getMessageTypes().get(0);
    internal_static_clarifai_api_Model_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_clarifai_api_Model_descriptor,
        new java.lang.String[] { "Id", "Name", "CreatedAt", "AppId", "OutputInfo", "ModelVersion", "DisplayName", });
    internal_static_clarifai_api_OutputInfo_descriptor =
      getDescriptor().getMessageTypes().get(1);
    internal_static_clarifai_api_OutputInfo_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_clarifai_api_OutputInfo_descriptor,
        new java.lang.String[] { "Data", "OutputConfig", "Message", "Type", "TypeExt", });
    internal_static_clarifai_api_OutputConfig_descriptor =
      getDescriptor().getMessageTypes().get(2);
    internal_static_clarifai_api_OutputConfig_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_clarifai_api_OutputConfig_descriptor,
        new java.lang.String[] { "ConceptsMutuallyExclusive", "ClosedEnvironment", "ExistingModelId", "Language", "HyperParameters", "MaxConcepts", "MinValue", "SelectConcepts", "TrainingTimeout", "SampleMs", });
    internal_static_clarifai_api_ModelQuery_descriptor =
      getDescriptor().getMessageTypes().get(3);
    internal_static_clarifai_api_ModelQuery_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_clarifai_api_ModelQuery_descriptor,
        new java.lang.String[] { "Name", "Type", });
    internal_static_clarifai_api_GetModelRequest_descriptor =
      getDescriptor().getMessageTypes().get(4);
    internal_static_clarifai_api_GetModelRequest_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_clarifai_api_GetModelRequest_descriptor,
        new java.lang.String[] { "UserAppId", "ModelId", "VersionId", });
    internal_static_clarifai_api_GetModelOutputInfoRequest_descriptor =
      getDescriptor().getMessageTypes().get(5);
    internal_static_clarifai_api_GetModelOutputInfoRequest_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_clarifai_api_GetModelOutputInfoRequest_descriptor,
        new java.lang.String[] { "UserAppId", "ModelId", "VersionId", });
    internal_static_clarifai_api_ListModelsRequest_descriptor =
      getDescriptor().getMessageTypes().get(6);
    internal_static_clarifai_api_ListModelsRequest_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_clarifai_api_ListModelsRequest_descriptor,
        new java.lang.String[] { "UserAppId", "Page", "PerPage", "Ids", });
    internal_static_clarifai_api_PostModelsRequest_descriptor =
      getDescriptor().getMessageTypes().get(7);
    internal_static_clarifai_api_PostModelsRequest_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_clarifai_api_PostModelsRequest_descriptor,
        new java.lang.String[] { "UserAppId", "Model", "Models", });
    internal_static_clarifai_api_PatchModelsRequest_descriptor =
      getDescriptor().getMessageTypes().get(8);
    internal_static_clarifai_api_PatchModelsRequest_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_clarifai_api_PatchModelsRequest_descriptor,
        new java.lang.String[] { "UserAppId", "Models", "Action", });
    internal_static_clarifai_api_DeleteModelRequest_descriptor =
      getDescriptor().getMessageTypes().get(9);
    internal_static_clarifai_api_DeleteModelRequest_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_clarifai_api_DeleteModelRequest_descriptor,
        new java.lang.String[] { "UserAppId", "ModelId", });
    internal_static_clarifai_api_DeleteModelsRequest_descriptor =
      getDescriptor().getMessageTypes().get(10);
    internal_static_clarifai_api_DeleteModelsRequest_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_clarifai_api_DeleteModelsRequest_descriptor,
        new java.lang.String[] { "UserAppId", "Ids", "DeleteAll", });
    internal_static_clarifai_api_PostModelsSearchesRequest_descriptor =
      getDescriptor().getMessageTypes().get(11);
    internal_static_clarifai_api_PostModelsSearchesRequest_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_clarifai_api_PostModelsSearchesRequest_descriptor,
        new java.lang.String[] { "UserAppId", "ModelQuery", "Pagination", });
    internal_static_clarifai_api_SingleModelResponse_descriptor =
      getDescriptor().getMessageTypes().get(12);
    internal_static_clarifai_api_SingleModelResponse_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_clarifai_api_SingleModelResponse_descriptor,
        new java.lang.String[] { "Status", "Model", });
    internal_static_clarifai_api_MultiModelResponse_descriptor =
      getDescriptor().getMessageTypes().get(13);
    internal_static_clarifai_api_MultiModelResponse_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_clarifai_api_MultiModelResponse_descriptor,
        new java.lang.String[] { "Status", "Models", });
    internal_static_clarifai_api_SingleModelWeightResponse_descriptor =
      getDescriptor().getMessageTypes().get(14);
    internal_static_clarifai_api_SingleModelWeightResponse_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_clarifai_api_SingleModelWeightResponse_descriptor,
        new java.lang.String[] { "Status", "Model", "Ct64", "ProtoDownloadUrl", });
    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.DataOuterClass.getDescriptor();
    clarifai2.internal.grpc.api.ModelVersionOuterClass.getDescriptor();
    clarifai2.internal.grpc.api.ConceptOuterClass.getDescriptor();
    clarifai2.internal.grpc.api.status.StatusOuterClass.getDescriptor();
    clarifai2.internal.grpc.api.utils.Extensions.getDescriptor();
    clarifai2.internal.grpc.api.PaginationOuterClass.getDescriptor();
    com.google.protobuf.TimestampProto.getDescriptor();
    com.google.protobuf.WrappersProto.getDescriptor();
  }

  // @@protoc_insertion_point(outer_class_scope)
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy