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

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

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

package clarifai2.internal.grpc.api;

public final class DataOuterClass {
  private DataOuterClass() {}
  public static void registerAllExtensions(
      com.google.protobuf.ExtensionRegistryLite registry) {
  }

  public static void registerAllExtensions(
      com.google.protobuf.ExtensionRegistry registry) {
    registerAllExtensions(
        (com.google.protobuf.ExtensionRegistryLite) registry);
  }
  /**
   * Protobuf enum {@code clarifai.api.RegionInfoFeedback}
   */
  public enum RegionInfoFeedback
      implements com.google.protobuf.ProtocolMessageEnum {
    /**
     * accurate = 0;
     */
    accurate(0),
    /**
     * misplaced = 1;
     */
    misplaced(1),
    /**
     * not_detected = 2;
     */
    not_detected(2),
    /**
     * false_positive = 3;
     */
    false_positive(3),
    UNRECOGNIZED(-1),
    ;

    /**
     * accurate = 0;
     */
    public static final int accurate_VALUE = 0;
    /**
     * misplaced = 1;
     */
    public static final int misplaced_VALUE = 1;
    /**
     * not_detected = 2;
     */
    public static final int not_detected_VALUE = 2;
    /**
     * false_positive = 3;
     */
    public static final int false_positive_VALUE = 3;


    public final int getNumber() {
      if (this == UNRECOGNIZED) {
        throw new java.lang.IllegalArgumentException(
            "Can't get the number of an unknown enum value.");
      }
      return value;
    }

    /**
     * @deprecated Use {@link #forNumber(int)} instead.
     */
    @java.lang.Deprecated
    public static RegionInfoFeedback valueOf(int value) {
      return forNumber(value);
    }

    public static RegionInfoFeedback forNumber(int value) {
      switch (value) {
        case 0: return accurate;
        case 1: return misplaced;
        case 2: return not_detected;
        case 3: return false_positive;
        default: return null;
      }
    }

    public static com.google.protobuf.Internal.EnumLiteMap
        internalGetValueMap() {
      return internalValueMap;
    }
    private static final com.google.protobuf.Internal.EnumLiteMap<
        RegionInfoFeedback> internalValueMap =
          new com.google.protobuf.Internal.EnumLiteMap() {
            public RegionInfoFeedback findValueByNumber(int number) {
              return RegionInfoFeedback.forNumber(number);
            }
          };

    public final com.google.protobuf.Descriptors.EnumValueDescriptor
        getValueDescriptor() {
      return getDescriptor().getValues().get(ordinal());
    }
    public final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptorForType() {
      return getDescriptor();
    }
    public static final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptor() {
      return clarifai2.internal.grpc.api.DataOuterClass.getDescriptor().getEnumTypes().get(0);
    }

    private static final RegionInfoFeedback[] VALUES = values();

    public static RegionInfoFeedback valueOf(
        com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
      if (desc.getType() != getDescriptor()) {
        throw new java.lang.IllegalArgumentException(
          "EnumValueDescriptor is not for this type.");
      }
      if (desc.getIndex() == -1) {
        return UNRECOGNIZED;
      }
      return VALUES[desc.getIndex()];
    }

    private final int value;

    private RegionInfoFeedback(int value) {
      this.value = value;
    }

    // @@protoc_insertion_point(enum_scope:clarifai.api.RegionInfoFeedback)
  }

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

    /**
     * .clarifai.api.Image image = 1;
     */
    boolean hasImage();
    /**
     * .clarifai.api.Image image = 1;
     */
    clarifai2.internal.grpc.api.ImageOuterClass.Image getImage();
    /**
     * .clarifai.api.Image image = 1;
     */
    clarifai2.internal.grpc.api.ImageOuterClass.ImageOrBuilder getImageOrBuilder();

    /**
     * .clarifai.api.Video video = 2;
     */
    boolean hasVideo();
    /**
     * .clarifai.api.Video video = 2;
     */
    clarifai2.internal.grpc.api.VideoOuterClass.Video getVideo();
    /**
     * .clarifai.api.Video video = 2;
     */
    clarifai2.internal.grpc.api.VideoOuterClass.VideoOrBuilder getVideoOrBuilder();

    /**
     * repeated .clarifai.api.Concept concepts = 3;
     */
    java.util.List
        getConceptsList();
    /**
     * repeated .clarifai.api.Concept concepts = 3;
     */
    clarifai2.internal.grpc.api.ConceptOuterClass.Concept getConcepts(int index);
    /**
     * repeated .clarifai.api.Concept concepts = 3;
     */
    int getConceptsCount();
    /**
     * repeated .clarifai.api.Concept concepts = 3;
     */
    java.util.List
        getConceptsOrBuilderList();
    /**
     * repeated .clarifai.api.Concept concepts = 3;
     */
    clarifai2.internal.grpc.api.ConceptOuterClass.ConceptOrBuilder getConceptsOrBuilder(
        int index);

    /**
     * .clarifai.api.Face face = 4;
     */
    boolean hasFace();
    /**
     * .clarifai.api.Face face = 4;
     */
    clarifai2.internal.grpc.api.FaceOuterClass.Face getFace();
    /**
     * .clarifai.api.Face face = 4;
     */
    clarifai2.internal.grpc.api.FaceOuterClass.FaceOrBuilder getFaceOrBuilder();

    /**
     * .google.protobuf.Struct metadata = 5;
     */
    boolean hasMetadata();
    /**
     * .google.protobuf.Struct metadata = 5;
     */
    com.google.protobuf.Struct getMetadata();
    /**
     * .google.protobuf.Struct metadata = 5;
     */
    com.google.protobuf.StructOrBuilder getMetadataOrBuilder();

    /**
     * .clarifai.api.Geo geo = 6;
     */
    boolean hasGeo();
    /**
     * .clarifai.api.Geo geo = 6;
     */
    clarifai2.internal.grpc.api.GeoOuterClass.Geo getGeo();
    /**
     * .clarifai.api.Geo geo = 6;
     */
    clarifai2.internal.grpc.api.GeoOuterClass.GeoOrBuilder getGeoOrBuilder();

    /**
     * repeated .clarifai.api.Color colors = 7;
     */
    java.util.List
        getColorsList();
    /**
     * repeated .clarifai.api.Color colors = 7;
     */
    clarifai2.internal.grpc.api.ColorOuterClass.Color getColors(int index);
    /**
     * repeated .clarifai.api.Color colors = 7;
     */
    int getColorsCount();
    /**
     * repeated .clarifai.api.Color colors = 7;
     */
    java.util.List
        getColorsOrBuilderList();
    /**
     * repeated .clarifai.api.Color colors = 7;
     */
    clarifai2.internal.grpc.api.ColorOuterClass.ColorOrBuilder getColorsOrBuilder(
        int index);

    /**
     * repeated .clarifai.api.Cluster clusters = 8;
     */
    java.util.List
        getClustersList();
    /**
     * repeated .clarifai.api.Cluster clusters = 8;
     */
    clarifai2.internal.grpc.api.ClusterOuterClass.Cluster getClusters(int index);
    /**
     * repeated .clarifai.api.Cluster clusters = 8;
     */
    int getClustersCount();
    /**
     * repeated .clarifai.api.Cluster clusters = 8;
     */
    java.util.List
        getClustersOrBuilderList();
    /**
     * repeated .clarifai.api.Cluster clusters = 8;
     */
    clarifai2.internal.grpc.api.ClusterOuterClass.ClusterOrBuilder getClustersOrBuilder(
        int index);

    /**
     * repeated .clarifai.api.Embedding embeddings = 9;
     */
    java.util.List
        getEmbeddingsList();
    /**
     * repeated .clarifai.api.Embedding embeddings = 9;
     */
    clarifai2.internal.grpc.api.EmbeddingOuterClass.Embedding getEmbeddings(int index);
    /**
     * repeated .clarifai.api.Embedding embeddings = 9;
     */
    int getEmbeddingsCount();
    /**
     * repeated .clarifai.api.Embedding embeddings = 9;
     */
    java.util.List
        getEmbeddingsOrBuilderList();
    /**
     * repeated .clarifai.api.Embedding embeddings = 9;
     */
    clarifai2.internal.grpc.api.EmbeddingOuterClass.EmbeddingOrBuilder getEmbeddingsOrBuilder(
        int index);

    /**
     * .clarifai.api.Focus focus = 10;
     */
    boolean hasFocus();
    /**
     * .clarifai.api.Focus focus = 10;
     */
    clarifai2.internal.grpc.api.FocusOuterClass.Focus getFocus();
    /**
     * .clarifai.api.Focus focus = 10;
     */
    clarifai2.internal.grpc.api.FocusOuterClass.FocusOrBuilder getFocusOrBuilder();

    /**
     * repeated .clarifai.api.Region regions = 11;
     */
    java.util.List
        getRegionsList();
    /**
     * repeated .clarifai.api.Region regions = 11;
     */
    clarifai2.internal.grpc.api.DataOuterClass.Region getRegions(int index);
    /**
     * repeated .clarifai.api.Region regions = 11;
     */
    int getRegionsCount();
    /**
     * repeated .clarifai.api.Region regions = 11;
     */
    java.util.List
        getRegionsOrBuilderList();
    /**
     * repeated .clarifai.api.Region regions = 11;
     */
    clarifai2.internal.grpc.api.DataOuterClass.RegionOrBuilder getRegionsOrBuilder(
        int index);

    /**
     * repeated .clarifai.api.Frame frames = 12;
     */
    java.util.List
        getFramesList();
    /**
     * repeated .clarifai.api.Frame frames = 12;
     */
    clarifai2.internal.grpc.api.DataOuterClass.Frame getFrames(int index);
    /**
     * repeated .clarifai.api.Frame frames = 12;
     */
    int getFramesCount();
    /**
     * repeated .clarifai.api.Frame frames = 12;
     */
    java.util.List
        getFramesOrBuilderList();
    /**
     * repeated .clarifai.api.Frame frames = 12;
     */
    clarifai2.internal.grpc.api.DataOuterClass.FrameOrBuilder getFramesOrBuilder(
        int index);

    /**
     * .clarifai.api.Text text = 13;
     */
    boolean hasText();
    /**
     * .clarifai.api.Text text = 13;
     */
    clarifai2.internal.grpc.api.TextOuterClass.Text getText();
    /**
     * .clarifai.api.Text text = 13;
     */
    clarifai2.internal.grpc.api.TextOuterClass.TextOrBuilder getTextOrBuilder();
  }
  /**
   * Protobuf type {@code clarifai.api.Data}
   */
  public  static final class Data extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:clarifai.api.Data)
      DataOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use Data.newBuilder() to construct.
    private Data(com.google.protobuf.GeneratedMessageV3.Builder builder) {
      super(builder);
    }
    private Data() {
      concepts_ = java.util.Collections.emptyList();
      colors_ = java.util.Collections.emptyList();
      clusters_ = java.util.Collections.emptyList();
      embeddings_ = java.util.Collections.emptyList();
      regions_ = java.util.Collections.emptyList();
      frames_ = java.util.Collections.emptyList();
    }

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

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

              break;
            }
            case 26: {
              if (!((mutable_bitField0_ & 0x00000004) == 0x00000004)) {
                concepts_ = new java.util.ArrayList();
                mutable_bitField0_ |= 0x00000004;
              }
              concepts_.add(
                  input.readMessage(clarifai2.internal.grpc.api.ConceptOuterClass.Concept.parser(), extensionRegistry));
              break;
            }
            case 34: {
              clarifai2.internal.grpc.api.FaceOuterClass.Face.Builder subBuilder = null;
              if (face_ != null) {
                subBuilder = face_.toBuilder();
              }
              face_ = input.readMessage(clarifai2.internal.grpc.api.FaceOuterClass.Face.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(face_);
                face_ = subBuilder.buildPartial();
              }

              break;
            }
            case 42: {
              com.google.protobuf.Struct.Builder subBuilder = null;
              if (metadata_ != null) {
                subBuilder = metadata_.toBuilder();
              }
              metadata_ = input.readMessage(com.google.protobuf.Struct.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(metadata_);
                metadata_ = subBuilder.buildPartial();
              }

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

              break;
            }
            case 58: {
              if (!((mutable_bitField0_ & 0x00000040) == 0x00000040)) {
                colors_ = new java.util.ArrayList();
                mutable_bitField0_ |= 0x00000040;
              }
              colors_.add(
                  input.readMessage(clarifai2.internal.grpc.api.ColorOuterClass.Color.parser(), extensionRegistry));
              break;
            }
            case 66: {
              if (!((mutable_bitField0_ & 0x00000080) == 0x00000080)) {
                clusters_ = new java.util.ArrayList();
                mutable_bitField0_ |= 0x00000080;
              }
              clusters_.add(
                  input.readMessage(clarifai2.internal.grpc.api.ClusterOuterClass.Cluster.parser(), extensionRegistry));
              break;
            }
            case 74: {
              if (!((mutable_bitField0_ & 0x00000100) == 0x00000100)) {
                embeddings_ = new java.util.ArrayList();
                mutable_bitField0_ |= 0x00000100;
              }
              embeddings_.add(
                  input.readMessage(clarifai2.internal.grpc.api.EmbeddingOuterClass.Embedding.parser(), extensionRegistry));
              break;
            }
            case 82: {
              clarifai2.internal.grpc.api.FocusOuterClass.Focus.Builder subBuilder = null;
              if (focus_ != null) {
                subBuilder = focus_.toBuilder();
              }
              focus_ = input.readMessage(clarifai2.internal.grpc.api.FocusOuterClass.Focus.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(focus_);
                focus_ = subBuilder.buildPartial();
              }

              break;
            }
            case 90: {
              if (!((mutable_bitField0_ & 0x00000400) == 0x00000400)) {
                regions_ = new java.util.ArrayList();
                mutable_bitField0_ |= 0x00000400;
              }
              regions_.add(
                  input.readMessage(clarifai2.internal.grpc.api.DataOuterClass.Region.parser(), extensionRegistry));
              break;
            }
            case 98: {
              if (!((mutable_bitField0_ & 0x00000800) == 0x00000800)) {
                frames_ = new java.util.ArrayList();
                mutable_bitField0_ |= 0x00000800;
              }
              frames_.add(
                  input.readMessage(clarifai2.internal.grpc.api.DataOuterClass.Frame.parser(), extensionRegistry));
              break;
            }
            case 106: {
              clarifai2.internal.grpc.api.TextOuterClass.Text.Builder subBuilder = null;
              if (text_ != null) {
                subBuilder = text_.toBuilder();
              }
              text_ = input.readMessage(clarifai2.internal.grpc.api.TextOuterClass.Text.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(text_);
                text_ = 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 {
        if (((mutable_bitField0_ & 0x00000004) == 0x00000004)) {
          concepts_ = java.util.Collections.unmodifiableList(concepts_);
        }
        if (((mutable_bitField0_ & 0x00000040) == 0x00000040)) {
          colors_ = java.util.Collections.unmodifiableList(colors_);
        }
        if (((mutable_bitField0_ & 0x00000080) == 0x00000080)) {
          clusters_ = java.util.Collections.unmodifiableList(clusters_);
        }
        if (((mutable_bitField0_ & 0x00000100) == 0x00000100)) {
          embeddings_ = java.util.Collections.unmodifiableList(embeddings_);
        }
        if (((mutable_bitField0_ & 0x00000400) == 0x00000400)) {
          regions_ = java.util.Collections.unmodifiableList(regions_);
        }
        if (((mutable_bitField0_ & 0x00000800) == 0x00000800)) {
          frames_ = java.util.Collections.unmodifiableList(frames_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return clarifai2.internal.grpc.api.DataOuterClass.internal_static_clarifai_api_Data_descriptor;
    }

    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return clarifai2.internal.grpc.api.DataOuterClass.internal_static_clarifai_api_Data_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              clarifai2.internal.grpc.api.DataOuterClass.Data.class, clarifai2.internal.grpc.api.DataOuterClass.Data.Builder.class);
    }

    private int bitField0_;
    public static final int IMAGE_FIELD_NUMBER = 1;
    private clarifai2.internal.grpc.api.ImageOuterClass.Image image_;
    /**
     * .clarifai.api.Image image = 1;
     */
    public boolean hasImage() {
      return image_ != null;
    }
    /**
     * .clarifai.api.Image image = 1;
     */
    public clarifai2.internal.grpc.api.ImageOuterClass.Image getImage() {
      return image_ == null ? clarifai2.internal.grpc.api.ImageOuterClass.Image.getDefaultInstance() : image_;
    }
    /**
     * .clarifai.api.Image image = 1;
     */
    public clarifai2.internal.grpc.api.ImageOuterClass.ImageOrBuilder getImageOrBuilder() {
      return getImage();
    }

    public static final int VIDEO_FIELD_NUMBER = 2;
    private clarifai2.internal.grpc.api.VideoOuterClass.Video video_;
    /**
     * .clarifai.api.Video video = 2;
     */
    public boolean hasVideo() {
      return video_ != null;
    }
    /**
     * .clarifai.api.Video video = 2;
     */
    public clarifai2.internal.grpc.api.VideoOuterClass.Video getVideo() {
      return video_ == null ? clarifai2.internal.grpc.api.VideoOuterClass.Video.getDefaultInstance() : video_;
    }
    /**
     * .clarifai.api.Video video = 2;
     */
    public clarifai2.internal.grpc.api.VideoOuterClass.VideoOrBuilder getVideoOrBuilder() {
      return getVideo();
    }

    public static final int CONCEPTS_FIELD_NUMBER = 3;
    private java.util.List concepts_;
    /**
     * repeated .clarifai.api.Concept concepts = 3;
     */
    public java.util.List getConceptsList() {
      return concepts_;
    }
    /**
     * repeated .clarifai.api.Concept concepts = 3;
     */
    public java.util.List
        getConceptsOrBuilderList() {
      return concepts_;
    }
    /**
     * repeated .clarifai.api.Concept concepts = 3;
     */
    public int getConceptsCount() {
      return concepts_.size();
    }
    /**
     * repeated .clarifai.api.Concept concepts = 3;
     */
    public clarifai2.internal.grpc.api.ConceptOuterClass.Concept getConcepts(int index) {
      return concepts_.get(index);
    }
    /**
     * repeated .clarifai.api.Concept concepts = 3;
     */
    public clarifai2.internal.grpc.api.ConceptOuterClass.ConceptOrBuilder getConceptsOrBuilder(
        int index) {
      return concepts_.get(index);
    }

    public static final int FACE_FIELD_NUMBER = 4;
    private clarifai2.internal.grpc.api.FaceOuterClass.Face face_;
    /**
     * .clarifai.api.Face face = 4;
     */
    public boolean hasFace() {
      return face_ != null;
    }
    /**
     * .clarifai.api.Face face = 4;
     */
    public clarifai2.internal.grpc.api.FaceOuterClass.Face getFace() {
      return face_ == null ? clarifai2.internal.grpc.api.FaceOuterClass.Face.getDefaultInstance() : face_;
    }
    /**
     * .clarifai.api.Face face = 4;
     */
    public clarifai2.internal.grpc.api.FaceOuterClass.FaceOrBuilder getFaceOrBuilder() {
      return getFace();
    }

    public static final int METADATA_FIELD_NUMBER = 5;
    private com.google.protobuf.Struct metadata_;
    /**
     * .google.protobuf.Struct metadata = 5;
     */
    public boolean hasMetadata() {
      return metadata_ != null;
    }
    /**
     * .google.protobuf.Struct metadata = 5;
     */
    public com.google.protobuf.Struct getMetadata() {
      return metadata_ == null ? com.google.protobuf.Struct.getDefaultInstance() : metadata_;
    }
    /**
     * .google.protobuf.Struct metadata = 5;
     */
    public com.google.protobuf.StructOrBuilder getMetadataOrBuilder() {
      return getMetadata();
    }

    public static final int GEO_FIELD_NUMBER = 6;
    private clarifai2.internal.grpc.api.GeoOuterClass.Geo geo_;
    /**
     * .clarifai.api.Geo geo = 6;
     */
    public boolean hasGeo() {
      return geo_ != null;
    }
    /**
     * .clarifai.api.Geo geo = 6;
     */
    public clarifai2.internal.grpc.api.GeoOuterClass.Geo getGeo() {
      return geo_ == null ? clarifai2.internal.grpc.api.GeoOuterClass.Geo.getDefaultInstance() : geo_;
    }
    /**
     * .clarifai.api.Geo geo = 6;
     */
    public clarifai2.internal.grpc.api.GeoOuterClass.GeoOrBuilder getGeoOrBuilder() {
      return getGeo();
    }

    public static final int COLORS_FIELD_NUMBER = 7;
    private java.util.List colors_;
    /**
     * repeated .clarifai.api.Color colors = 7;
     */
    public java.util.List getColorsList() {
      return colors_;
    }
    /**
     * repeated .clarifai.api.Color colors = 7;
     */
    public java.util.List
        getColorsOrBuilderList() {
      return colors_;
    }
    /**
     * repeated .clarifai.api.Color colors = 7;
     */
    public int getColorsCount() {
      return colors_.size();
    }
    /**
     * repeated .clarifai.api.Color colors = 7;
     */
    public clarifai2.internal.grpc.api.ColorOuterClass.Color getColors(int index) {
      return colors_.get(index);
    }
    /**
     * repeated .clarifai.api.Color colors = 7;
     */
    public clarifai2.internal.grpc.api.ColorOuterClass.ColorOrBuilder getColorsOrBuilder(
        int index) {
      return colors_.get(index);
    }

    public static final int CLUSTERS_FIELD_NUMBER = 8;
    private java.util.List clusters_;
    /**
     * repeated .clarifai.api.Cluster clusters = 8;
     */
    public java.util.List getClustersList() {
      return clusters_;
    }
    /**
     * repeated .clarifai.api.Cluster clusters = 8;
     */
    public java.util.List
        getClustersOrBuilderList() {
      return clusters_;
    }
    /**
     * repeated .clarifai.api.Cluster clusters = 8;
     */
    public int getClustersCount() {
      return clusters_.size();
    }
    /**
     * repeated .clarifai.api.Cluster clusters = 8;
     */
    public clarifai2.internal.grpc.api.ClusterOuterClass.Cluster getClusters(int index) {
      return clusters_.get(index);
    }
    /**
     * repeated .clarifai.api.Cluster clusters = 8;
     */
    public clarifai2.internal.grpc.api.ClusterOuterClass.ClusterOrBuilder getClustersOrBuilder(
        int index) {
      return clusters_.get(index);
    }

    public static final int EMBEDDINGS_FIELD_NUMBER = 9;
    private java.util.List embeddings_;
    /**
     * repeated .clarifai.api.Embedding embeddings = 9;
     */
    public java.util.List getEmbeddingsList() {
      return embeddings_;
    }
    /**
     * repeated .clarifai.api.Embedding embeddings = 9;
     */
    public java.util.List
        getEmbeddingsOrBuilderList() {
      return embeddings_;
    }
    /**
     * repeated .clarifai.api.Embedding embeddings = 9;
     */
    public int getEmbeddingsCount() {
      return embeddings_.size();
    }
    /**
     * repeated .clarifai.api.Embedding embeddings = 9;
     */
    public clarifai2.internal.grpc.api.EmbeddingOuterClass.Embedding getEmbeddings(int index) {
      return embeddings_.get(index);
    }
    /**
     * repeated .clarifai.api.Embedding embeddings = 9;
     */
    public clarifai2.internal.grpc.api.EmbeddingOuterClass.EmbeddingOrBuilder getEmbeddingsOrBuilder(
        int index) {
      return embeddings_.get(index);
    }

    public static final int FOCUS_FIELD_NUMBER = 10;
    private clarifai2.internal.grpc.api.FocusOuterClass.Focus focus_;
    /**
     * .clarifai.api.Focus focus = 10;
     */
    public boolean hasFocus() {
      return focus_ != null;
    }
    /**
     * .clarifai.api.Focus focus = 10;
     */
    public clarifai2.internal.grpc.api.FocusOuterClass.Focus getFocus() {
      return focus_ == null ? clarifai2.internal.grpc.api.FocusOuterClass.Focus.getDefaultInstance() : focus_;
    }
    /**
     * .clarifai.api.Focus focus = 10;
     */
    public clarifai2.internal.grpc.api.FocusOuterClass.FocusOrBuilder getFocusOrBuilder() {
      return getFocus();
    }

    public static final int REGIONS_FIELD_NUMBER = 11;
    private java.util.List regions_;
    /**
     * repeated .clarifai.api.Region regions = 11;
     */
    public java.util.List getRegionsList() {
      return regions_;
    }
    /**
     * repeated .clarifai.api.Region regions = 11;
     */
    public java.util.List
        getRegionsOrBuilderList() {
      return regions_;
    }
    /**
     * repeated .clarifai.api.Region regions = 11;
     */
    public int getRegionsCount() {
      return regions_.size();
    }
    /**
     * repeated .clarifai.api.Region regions = 11;
     */
    public clarifai2.internal.grpc.api.DataOuterClass.Region getRegions(int index) {
      return regions_.get(index);
    }
    /**
     * repeated .clarifai.api.Region regions = 11;
     */
    public clarifai2.internal.grpc.api.DataOuterClass.RegionOrBuilder getRegionsOrBuilder(
        int index) {
      return regions_.get(index);
    }

    public static final int FRAMES_FIELD_NUMBER = 12;
    private java.util.List frames_;
    /**
     * repeated .clarifai.api.Frame frames = 12;
     */
    public java.util.List getFramesList() {
      return frames_;
    }
    /**
     * repeated .clarifai.api.Frame frames = 12;
     */
    public java.util.List
        getFramesOrBuilderList() {
      return frames_;
    }
    /**
     * repeated .clarifai.api.Frame frames = 12;
     */
    public int getFramesCount() {
      return frames_.size();
    }
    /**
     * repeated .clarifai.api.Frame frames = 12;
     */
    public clarifai2.internal.grpc.api.DataOuterClass.Frame getFrames(int index) {
      return frames_.get(index);
    }
    /**
     * repeated .clarifai.api.Frame frames = 12;
     */
    public clarifai2.internal.grpc.api.DataOuterClass.FrameOrBuilder getFramesOrBuilder(
        int index) {
      return frames_.get(index);
    }

    public static final int TEXT_FIELD_NUMBER = 13;
    private clarifai2.internal.grpc.api.TextOuterClass.Text text_;
    /**
     * .clarifai.api.Text text = 13;
     */
    public boolean hasText() {
      return text_ != null;
    }
    /**
     * .clarifai.api.Text text = 13;
     */
    public clarifai2.internal.grpc.api.TextOuterClass.Text getText() {
      return text_ == null ? clarifai2.internal.grpc.api.TextOuterClass.Text.getDefaultInstance() : text_;
    }
    /**
     * .clarifai.api.Text text = 13;
     */
    public clarifai2.internal.grpc.api.TextOuterClass.TextOrBuilder getTextOrBuilder() {
      return getText();
    }

    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 (image_ != null) {
        output.writeMessage(1, getImage());
      }
      if (video_ != null) {
        output.writeMessage(2, getVideo());
      }
      for (int i = 0; i < concepts_.size(); i++) {
        output.writeMessage(3, concepts_.get(i));
      }
      if (face_ != null) {
        output.writeMessage(4, getFace());
      }
      if (metadata_ != null) {
        output.writeMessage(5, getMetadata());
      }
      if (geo_ != null) {
        output.writeMessage(6, getGeo());
      }
      for (int i = 0; i < colors_.size(); i++) {
        output.writeMessage(7, colors_.get(i));
      }
      for (int i = 0; i < clusters_.size(); i++) {
        output.writeMessage(8, clusters_.get(i));
      }
      for (int i = 0; i < embeddings_.size(); i++) {
        output.writeMessage(9, embeddings_.get(i));
      }
      if (focus_ != null) {
        output.writeMessage(10, getFocus());
      }
      for (int i = 0; i < regions_.size(); i++) {
        output.writeMessage(11, regions_.get(i));
      }
      for (int i = 0; i < frames_.size(); i++) {
        output.writeMessage(12, frames_.get(i));
      }
      if (text_ != null) {
        output.writeMessage(13, getText());
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      if (image_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, getImage());
      }
      if (video_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, getVideo());
      }
      for (int i = 0; i < concepts_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, concepts_.get(i));
      }
      if (face_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(4, getFace());
      }
      if (metadata_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(5, getMetadata());
      }
      if (geo_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(6, getGeo());
      }
      for (int i = 0; i < colors_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(7, colors_.get(i));
      }
      for (int i = 0; i < clusters_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(8, clusters_.get(i));
      }
      for (int i = 0; i < embeddings_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(9, embeddings_.get(i));
      }
      if (focus_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(10, getFocus());
      }
      for (int i = 0; i < regions_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(11, regions_.get(i));
      }
      for (int i = 0; i < frames_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(12, frames_.get(i));
      }
      if (text_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(13, getText());
      }
      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.DataOuterClass.Data)) {
        return super.equals(obj);
      }
      clarifai2.internal.grpc.api.DataOuterClass.Data other = (clarifai2.internal.grpc.api.DataOuterClass.Data) obj;

      boolean result = true;
      result = result && (hasImage() == other.hasImage());
      if (hasImage()) {
        result = result && getImage()
            .equals(other.getImage());
      }
      result = result && (hasVideo() == other.hasVideo());
      if (hasVideo()) {
        result = result && getVideo()
            .equals(other.getVideo());
      }
      result = result && getConceptsList()
          .equals(other.getConceptsList());
      result = result && (hasFace() == other.hasFace());
      if (hasFace()) {
        result = result && getFace()
            .equals(other.getFace());
      }
      result = result && (hasMetadata() == other.hasMetadata());
      if (hasMetadata()) {
        result = result && getMetadata()
            .equals(other.getMetadata());
      }
      result = result && (hasGeo() == other.hasGeo());
      if (hasGeo()) {
        result = result && getGeo()
            .equals(other.getGeo());
      }
      result = result && getColorsList()
          .equals(other.getColorsList());
      result = result && getClustersList()
          .equals(other.getClustersList());
      result = result && getEmbeddingsList()
          .equals(other.getEmbeddingsList());
      result = result && (hasFocus() == other.hasFocus());
      if (hasFocus()) {
        result = result && getFocus()
            .equals(other.getFocus());
      }
      result = result && getRegionsList()
          .equals(other.getRegionsList());
      result = result && getFramesList()
          .equals(other.getFramesList());
      result = result && (hasText() == other.hasText());
      if (hasText()) {
        result = result && getText()
            .equals(other.getText());
      }
      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 (hasImage()) {
        hash = (37 * hash) + IMAGE_FIELD_NUMBER;
        hash = (53 * hash) + getImage().hashCode();
      }
      if (hasVideo()) {
        hash = (37 * hash) + VIDEO_FIELD_NUMBER;
        hash = (53 * hash) + getVideo().hashCode();
      }
      if (getConceptsCount() > 0) {
        hash = (37 * hash) + CONCEPTS_FIELD_NUMBER;
        hash = (53 * hash) + getConceptsList().hashCode();
      }
      if (hasFace()) {
        hash = (37 * hash) + FACE_FIELD_NUMBER;
        hash = (53 * hash) + getFace().hashCode();
      }
      if (hasMetadata()) {
        hash = (37 * hash) + METADATA_FIELD_NUMBER;
        hash = (53 * hash) + getMetadata().hashCode();
      }
      if (hasGeo()) {
        hash = (37 * hash) + GEO_FIELD_NUMBER;
        hash = (53 * hash) + getGeo().hashCode();
      }
      if (getColorsCount() > 0) {
        hash = (37 * hash) + COLORS_FIELD_NUMBER;
        hash = (53 * hash) + getColorsList().hashCode();
      }
      if (getClustersCount() > 0) {
        hash = (37 * hash) + CLUSTERS_FIELD_NUMBER;
        hash = (53 * hash) + getClustersList().hashCode();
      }
      if (getEmbeddingsCount() > 0) {
        hash = (37 * hash) + EMBEDDINGS_FIELD_NUMBER;
        hash = (53 * hash) + getEmbeddingsList().hashCode();
      }
      if (hasFocus()) {
        hash = (37 * hash) + FOCUS_FIELD_NUMBER;
        hash = (53 * hash) + getFocus().hashCode();
      }
      if (getRegionsCount() > 0) {
        hash = (37 * hash) + REGIONS_FIELD_NUMBER;
        hash = (53 * hash) + getRegionsList().hashCode();
      }
      if (getFramesCount() > 0) {
        hash = (37 * hash) + FRAMES_FIELD_NUMBER;
        hash = (53 * hash) + getFramesList().hashCode();
      }
      if (hasText()) {
        hash = (37 * hash) + TEXT_FIELD_NUMBER;
        hash = (53 * hash) + getText().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

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

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return clarifai2.internal.grpc.api.DataOuterClass.internal_static_clarifai_api_Data_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                clarifai2.internal.grpc.api.DataOuterClass.Data.class, clarifai2.internal.grpc.api.DataOuterClass.Data.Builder.class);
      }

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

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getConceptsFieldBuilder();
          getColorsFieldBuilder();
          getClustersFieldBuilder();
          getEmbeddingsFieldBuilder();
          getRegionsFieldBuilder();
          getFramesFieldBuilder();
        }
      }
      public Builder clear() {
        super.clear();
        if (imageBuilder_ == null) {
          image_ = null;
        } else {
          image_ = null;
          imageBuilder_ = null;
        }
        if (videoBuilder_ == null) {
          video_ = null;
        } else {
          video_ = null;
          videoBuilder_ = null;
        }
        if (conceptsBuilder_ == null) {
          concepts_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000004);
        } else {
          conceptsBuilder_.clear();
        }
        if (faceBuilder_ == null) {
          face_ = null;
        } else {
          face_ = null;
          faceBuilder_ = null;
        }
        if (metadataBuilder_ == null) {
          metadata_ = null;
        } else {
          metadata_ = null;
          metadataBuilder_ = null;
        }
        if (geoBuilder_ == null) {
          geo_ = null;
        } else {
          geo_ = null;
          geoBuilder_ = null;
        }
        if (colorsBuilder_ == null) {
          colors_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000040);
        } else {
          colorsBuilder_.clear();
        }
        if (clustersBuilder_ == null) {
          clusters_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000080);
        } else {
          clustersBuilder_.clear();
        }
        if (embeddingsBuilder_ == null) {
          embeddings_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000100);
        } else {
          embeddingsBuilder_.clear();
        }
        if (focusBuilder_ == null) {
          focus_ = null;
        } else {
          focus_ = null;
          focusBuilder_ = null;
        }
        if (regionsBuilder_ == null) {
          regions_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000400);
        } else {
          regionsBuilder_.clear();
        }
        if (framesBuilder_ == null) {
          frames_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000800);
        } else {
          framesBuilder_.clear();
        }
        if (textBuilder_ == null) {
          text_ = null;
        } else {
          text_ = null;
          textBuilder_ = null;
        }
        return this;
      }

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

      public clarifai2.internal.grpc.api.DataOuterClass.Data getDefaultInstanceForType() {
        return clarifai2.internal.grpc.api.DataOuterClass.Data.getDefaultInstance();
      }

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

      public clarifai2.internal.grpc.api.DataOuterClass.Data buildPartial() {
        clarifai2.internal.grpc.api.DataOuterClass.Data result = new clarifai2.internal.grpc.api.DataOuterClass.Data(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (imageBuilder_ == null) {
          result.image_ = image_;
        } else {
          result.image_ = imageBuilder_.build();
        }
        if (videoBuilder_ == null) {
          result.video_ = video_;
        } else {
          result.video_ = videoBuilder_.build();
        }
        if (conceptsBuilder_ == null) {
          if (((bitField0_ & 0x00000004) == 0x00000004)) {
            concepts_ = java.util.Collections.unmodifiableList(concepts_);
            bitField0_ = (bitField0_ & ~0x00000004);
          }
          result.concepts_ = concepts_;
        } else {
          result.concepts_ = conceptsBuilder_.build();
        }
        if (faceBuilder_ == null) {
          result.face_ = face_;
        } else {
          result.face_ = faceBuilder_.build();
        }
        if (metadataBuilder_ == null) {
          result.metadata_ = metadata_;
        } else {
          result.metadata_ = metadataBuilder_.build();
        }
        if (geoBuilder_ == null) {
          result.geo_ = geo_;
        } else {
          result.geo_ = geoBuilder_.build();
        }
        if (colorsBuilder_ == null) {
          if (((bitField0_ & 0x00000040) == 0x00000040)) {
            colors_ = java.util.Collections.unmodifiableList(colors_);
            bitField0_ = (bitField0_ & ~0x00000040);
          }
          result.colors_ = colors_;
        } else {
          result.colors_ = colorsBuilder_.build();
        }
        if (clustersBuilder_ == null) {
          if (((bitField0_ & 0x00000080) == 0x00000080)) {
            clusters_ = java.util.Collections.unmodifiableList(clusters_);
            bitField0_ = (bitField0_ & ~0x00000080);
          }
          result.clusters_ = clusters_;
        } else {
          result.clusters_ = clustersBuilder_.build();
        }
        if (embeddingsBuilder_ == null) {
          if (((bitField0_ & 0x00000100) == 0x00000100)) {
            embeddings_ = java.util.Collections.unmodifiableList(embeddings_);
            bitField0_ = (bitField0_ & ~0x00000100);
          }
          result.embeddings_ = embeddings_;
        } else {
          result.embeddings_ = embeddingsBuilder_.build();
        }
        if (focusBuilder_ == null) {
          result.focus_ = focus_;
        } else {
          result.focus_ = focusBuilder_.build();
        }
        if (regionsBuilder_ == null) {
          if (((bitField0_ & 0x00000400) == 0x00000400)) {
            regions_ = java.util.Collections.unmodifiableList(regions_);
            bitField0_ = (bitField0_ & ~0x00000400);
          }
          result.regions_ = regions_;
        } else {
          result.regions_ = regionsBuilder_.build();
        }
        if (framesBuilder_ == null) {
          if (((bitField0_ & 0x00000800) == 0x00000800)) {
            frames_ = java.util.Collections.unmodifiableList(frames_);
            bitField0_ = (bitField0_ & ~0x00000800);
          }
          result.frames_ = frames_;
        } else {
          result.frames_ = framesBuilder_.build();
        }
        if (textBuilder_ == null) {
          result.text_ = text_;
        } else {
          result.text_ = textBuilder_.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.DataOuterClass.Data) {
          return mergeFrom((clarifai2.internal.grpc.api.DataOuterClass.Data)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(clarifai2.internal.grpc.api.DataOuterClass.Data other) {
        if (other == clarifai2.internal.grpc.api.DataOuterClass.Data.getDefaultInstance()) return this;
        if (other.hasImage()) {
          mergeImage(other.getImage());
        }
        if (other.hasVideo()) {
          mergeVideo(other.getVideo());
        }
        if (conceptsBuilder_ == null) {
          if (!other.concepts_.isEmpty()) {
            if (concepts_.isEmpty()) {
              concepts_ = other.concepts_;
              bitField0_ = (bitField0_ & ~0x00000004);
            } else {
              ensureConceptsIsMutable();
              concepts_.addAll(other.concepts_);
            }
            onChanged();
          }
        } else {
          if (!other.concepts_.isEmpty()) {
            if (conceptsBuilder_.isEmpty()) {
              conceptsBuilder_.dispose();
              conceptsBuilder_ = null;
              concepts_ = other.concepts_;
              bitField0_ = (bitField0_ & ~0x00000004);
              conceptsBuilder_ =
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getConceptsFieldBuilder() : null;
            } else {
              conceptsBuilder_.addAllMessages(other.concepts_);
            }
          }
        }
        if (other.hasFace()) {
          mergeFace(other.getFace());
        }
        if (other.hasMetadata()) {
          mergeMetadata(other.getMetadata());
        }
        if (other.hasGeo()) {
          mergeGeo(other.getGeo());
        }
        if (colorsBuilder_ == null) {
          if (!other.colors_.isEmpty()) {
            if (colors_.isEmpty()) {
              colors_ = other.colors_;
              bitField0_ = (bitField0_ & ~0x00000040);
            } else {
              ensureColorsIsMutable();
              colors_.addAll(other.colors_);
            }
            onChanged();
          }
        } else {
          if (!other.colors_.isEmpty()) {
            if (colorsBuilder_.isEmpty()) {
              colorsBuilder_.dispose();
              colorsBuilder_ = null;
              colors_ = other.colors_;
              bitField0_ = (bitField0_ & ~0x00000040);
              colorsBuilder_ =
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getColorsFieldBuilder() : null;
            } else {
              colorsBuilder_.addAllMessages(other.colors_);
            }
          }
        }
        if (clustersBuilder_ == null) {
          if (!other.clusters_.isEmpty()) {
            if (clusters_.isEmpty()) {
              clusters_ = other.clusters_;
              bitField0_ = (bitField0_ & ~0x00000080);
            } else {
              ensureClustersIsMutable();
              clusters_.addAll(other.clusters_);
            }
            onChanged();
          }
        } else {
          if (!other.clusters_.isEmpty()) {
            if (clustersBuilder_.isEmpty()) {
              clustersBuilder_.dispose();
              clustersBuilder_ = null;
              clusters_ = other.clusters_;
              bitField0_ = (bitField0_ & ~0x00000080);
              clustersBuilder_ =
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getClustersFieldBuilder() : null;
            } else {
              clustersBuilder_.addAllMessages(other.clusters_);
            }
          }
        }
        if (embeddingsBuilder_ == null) {
          if (!other.embeddings_.isEmpty()) {
            if (embeddings_.isEmpty()) {
              embeddings_ = other.embeddings_;
              bitField0_ = (bitField0_ & ~0x00000100);
            } else {
              ensureEmbeddingsIsMutable();
              embeddings_.addAll(other.embeddings_);
            }
            onChanged();
          }
        } else {
          if (!other.embeddings_.isEmpty()) {
            if (embeddingsBuilder_.isEmpty()) {
              embeddingsBuilder_.dispose();
              embeddingsBuilder_ = null;
              embeddings_ = other.embeddings_;
              bitField0_ = (bitField0_ & ~0x00000100);
              embeddingsBuilder_ =
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getEmbeddingsFieldBuilder() : null;
            } else {
              embeddingsBuilder_.addAllMessages(other.embeddings_);
            }
          }
        }
        if (other.hasFocus()) {
          mergeFocus(other.getFocus());
        }
        if (regionsBuilder_ == null) {
          if (!other.regions_.isEmpty()) {
            if (regions_.isEmpty()) {
              regions_ = other.regions_;
              bitField0_ = (bitField0_ & ~0x00000400);
            } else {
              ensureRegionsIsMutable();
              regions_.addAll(other.regions_);
            }
            onChanged();
          }
        } else {
          if (!other.regions_.isEmpty()) {
            if (regionsBuilder_.isEmpty()) {
              regionsBuilder_.dispose();
              regionsBuilder_ = null;
              regions_ = other.regions_;
              bitField0_ = (bitField0_ & ~0x00000400);
              regionsBuilder_ =
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getRegionsFieldBuilder() : null;
            } else {
              regionsBuilder_.addAllMessages(other.regions_);
            }
          }
        }
        if (framesBuilder_ == null) {
          if (!other.frames_.isEmpty()) {
            if (frames_.isEmpty()) {
              frames_ = other.frames_;
              bitField0_ = (bitField0_ & ~0x00000800);
            } else {
              ensureFramesIsMutable();
              frames_.addAll(other.frames_);
            }
            onChanged();
          }
        } else {
          if (!other.frames_.isEmpty()) {
            if (framesBuilder_.isEmpty()) {
              framesBuilder_.dispose();
              framesBuilder_ = null;
              frames_ = other.frames_;
              bitField0_ = (bitField0_ & ~0x00000800);
              framesBuilder_ =
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getFramesFieldBuilder() : null;
            } else {
              framesBuilder_.addAllMessages(other.frames_);
            }
          }
        }
        if (other.hasText()) {
          mergeText(other.getText());
        }
        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.DataOuterClass.Data parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (clarifai2.internal.grpc.api.DataOuterClass.Data) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private clarifai2.internal.grpc.api.ImageOuterClass.Image image_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
          clarifai2.internal.grpc.api.ImageOuterClass.Image, clarifai2.internal.grpc.api.ImageOuterClass.Image.Builder, clarifai2.internal.grpc.api.ImageOuterClass.ImageOrBuilder> imageBuilder_;
      /**
       * .clarifai.api.Image image = 1;
       */
      public boolean hasImage() {
        return imageBuilder_ != null || image_ != null;
      }
      /**
       * .clarifai.api.Image image = 1;
       */
      public clarifai2.internal.grpc.api.ImageOuterClass.Image getImage() {
        if (imageBuilder_ == null) {
          return image_ == null ? clarifai2.internal.grpc.api.ImageOuterClass.Image.getDefaultInstance() : image_;
        } else {
          return imageBuilder_.getMessage();
        }
      }
      /**
       * .clarifai.api.Image image = 1;
       */
      public Builder setImage(clarifai2.internal.grpc.api.ImageOuterClass.Image value) {
        if (imageBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          image_ = value;
          onChanged();
        } else {
          imageBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * .clarifai.api.Image image = 1;
       */
      public Builder setImage(
          clarifai2.internal.grpc.api.ImageOuterClass.Image.Builder builderForValue) {
        if (imageBuilder_ == null) {
          image_ = builderForValue.build();
          onChanged();
        } else {
          imageBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * .clarifai.api.Image image = 1;
       */
      public Builder mergeImage(clarifai2.internal.grpc.api.ImageOuterClass.Image value) {
        if (imageBuilder_ == null) {
          if (image_ != null) {
            image_ =
              clarifai2.internal.grpc.api.ImageOuterClass.Image.newBuilder(image_).mergeFrom(value).buildPartial();
          } else {
            image_ = value;
          }
          onChanged();
        } else {
          imageBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * .clarifai.api.Image image = 1;
       */
      public Builder clearImage() {
        if (imageBuilder_ == null) {
          image_ = null;
          onChanged();
        } else {
          image_ = null;
          imageBuilder_ = null;
        }

        return this;
      }
      /**
       * .clarifai.api.Image image = 1;
       */
      public clarifai2.internal.grpc.api.ImageOuterClass.Image.Builder getImageBuilder() {

        onChanged();
        return getImageFieldBuilder().getBuilder();
      }
      /**
       * .clarifai.api.Image image = 1;
       */
      public clarifai2.internal.grpc.api.ImageOuterClass.ImageOrBuilder getImageOrBuilder() {
        if (imageBuilder_ != null) {
          return imageBuilder_.getMessageOrBuilder();
        } else {
          return image_ == null ?
              clarifai2.internal.grpc.api.ImageOuterClass.Image.getDefaultInstance() : image_;
        }
      }
      /**
       * .clarifai.api.Image image = 1;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          clarifai2.internal.grpc.api.ImageOuterClass.Image, clarifai2.internal.grpc.api.ImageOuterClass.Image.Builder, clarifai2.internal.grpc.api.ImageOuterClass.ImageOrBuilder>
          getImageFieldBuilder() {
        if (imageBuilder_ == null) {
          imageBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              clarifai2.internal.grpc.api.ImageOuterClass.Image, clarifai2.internal.grpc.api.ImageOuterClass.Image.Builder, clarifai2.internal.grpc.api.ImageOuterClass.ImageOrBuilder>(
                  getImage(),
                  getParentForChildren(),
                  isClean());
          image_ = null;
        }
        return imageBuilder_;
      }

      private clarifai2.internal.grpc.api.VideoOuterClass.Video video_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
          clarifai2.internal.grpc.api.VideoOuterClass.Video, clarifai2.internal.grpc.api.VideoOuterClass.Video.Builder, clarifai2.internal.grpc.api.VideoOuterClass.VideoOrBuilder> videoBuilder_;
      /**
       * .clarifai.api.Video video = 2;
       */
      public boolean hasVideo() {
        return videoBuilder_ != null || video_ != null;
      }
      /**
       * .clarifai.api.Video video = 2;
       */
      public clarifai2.internal.grpc.api.VideoOuterClass.Video getVideo() {
        if (videoBuilder_ == null) {
          return video_ == null ? clarifai2.internal.grpc.api.VideoOuterClass.Video.getDefaultInstance() : video_;
        } else {
          return videoBuilder_.getMessage();
        }
      }
      /**
       * .clarifai.api.Video video = 2;
       */
      public Builder setVideo(clarifai2.internal.grpc.api.VideoOuterClass.Video value) {
        if (videoBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          video_ = value;
          onChanged();
        } else {
          videoBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * .clarifai.api.Video video = 2;
       */
      public Builder setVideo(
          clarifai2.internal.grpc.api.VideoOuterClass.Video.Builder builderForValue) {
        if (videoBuilder_ == null) {
          video_ = builderForValue.build();
          onChanged();
        } else {
          videoBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * .clarifai.api.Video video = 2;
       */
      public Builder mergeVideo(clarifai2.internal.grpc.api.VideoOuterClass.Video value) {
        if (videoBuilder_ == null) {
          if (video_ != null) {
            video_ =
              clarifai2.internal.grpc.api.VideoOuterClass.Video.newBuilder(video_).mergeFrom(value).buildPartial();
          } else {
            video_ = value;
          }
          onChanged();
        } else {
          videoBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * .clarifai.api.Video video = 2;
       */
      public Builder clearVideo() {
        if (videoBuilder_ == null) {
          video_ = null;
          onChanged();
        } else {
          video_ = null;
          videoBuilder_ = null;
        }

        return this;
      }
      /**
       * .clarifai.api.Video video = 2;
       */
      public clarifai2.internal.grpc.api.VideoOuterClass.Video.Builder getVideoBuilder() {

        onChanged();
        return getVideoFieldBuilder().getBuilder();
      }
      /**
       * .clarifai.api.Video video = 2;
       */
      public clarifai2.internal.grpc.api.VideoOuterClass.VideoOrBuilder getVideoOrBuilder() {
        if (videoBuilder_ != null) {
          return videoBuilder_.getMessageOrBuilder();
        } else {
          return video_ == null ?
              clarifai2.internal.grpc.api.VideoOuterClass.Video.getDefaultInstance() : video_;
        }
      }
      /**
       * .clarifai.api.Video video = 2;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          clarifai2.internal.grpc.api.VideoOuterClass.Video, clarifai2.internal.grpc.api.VideoOuterClass.Video.Builder, clarifai2.internal.grpc.api.VideoOuterClass.VideoOrBuilder>
          getVideoFieldBuilder() {
        if (videoBuilder_ == null) {
          videoBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              clarifai2.internal.grpc.api.VideoOuterClass.Video, clarifai2.internal.grpc.api.VideoOuterClass.Video.Builder, clarifai2.internal.grpc.api.VideoOuterClass.VideoOrBuilder>(
                  getVideo(),
                  getParentForChildren(),
                  isClean());
          video_ = null;
        }
        return videoBuilder_;
      }

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

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

      /**
       * repeated .clarifai.api.Concept concepts = 3;
       */
      public java.util.List getConceptsList() {
        if (conceptsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(concepts_);
        } else {
          return conceptsBuilder_.getMessageList();
        }
      }
      /**
       * repeated .clarifai.api.Concept concepts = 3;
       */
      public int getConceptsCount() {
        if (conceptsBuilder_ == null) {
          return concepts_.size();
        } else {
          return conceptsBuilder_.getCount();
        }
      }
      /**
       * repeated .clarifai.api.Concept concepts = 3;
       */
      public clarifai2.internal.grpc.api.ConceptOuterClass.Concept getConcepts(int index) {
        if (conceptsBuilder_ == null) {
          return concepts_.get(index);
        } else {
          return conceptsBuilder_.getMessage(index);
        }
      }
      /**
       * repeated .clarifai.api.Concept concepts = 3;
       */
      public Builder setConcepts(
          int index, clarifai2.internal.grpc.api.ConceptOuterClass.Concept value) {
        if (conceptsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureConceptsIsMutable();
          concepts_.set(index, value);
          onChanged();
        } else {
          conceptsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .clarifai.api.Concept concepts = 3;
       */
      public Builder setConcepts(
          int index, clarifai2.internal.grpc.api.ConceptOuterClass.Concept.Builder builderForValue) {
        if (conceptsBuilder_ == null) {
          ensureConceptsIsMutable();
          concepts_.set(index, builderForValue.build());
          onChanged();
        } else {
          conceptsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .clarifai.api.Concept concepts = 3;
       */
      public Builder addConcepts(clarifai2.internal.grpc.api.ConceptOuterClass.Concept value) {
        if (conceptsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureConceptsIsMutable();
          concepts_.add(value);
          onChanged();
        } else {
          conceptsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * repeated .clarifai.api.Concept concepts = 3;
       */
      public Builder addConcepts(
          int index, clarifai2.internal.grpc.api.ConceptOuterClass.Concept value) {
        if (conceptsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureConceptsIsMutable();
          concepts_.add(index, value);
          onChanged();
        } else {
          conceptsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .clarifai.api.Concept concepts = 3;
       */
      public Builder addConcepts(
          clarifai2.internal.grpc.api.ConceptOuterClass.Concept.Builder builderForValue) {
        if (conceptsBuilder_ == null) {
          ensureConceptsIsMutable();
          concepts_.add(builderForValue.build());
          onChanged();
        } else {
          conceptsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .clarifai.api.Concept concepts = 3;
       */
      public Builder addConcepts(
          int index, clarifai2.internal.grpc.api.ConceptOuterClass.Concept.Builder builderForValue) {
        if (conceptsBuilder_ == null) {
          ensureConceptsIsMutable();
          concepts_.add(index, builderForValue.build());
          onChanged();
        } else {
          conceptsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .clarifai.api.Concept concepts = 3;
       */
      public Builder addAllConcepts(
          java.lang.Iterable values) {
        if (conceptsBuilder_ == null) {
          ensureConceptsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, concepts_);
          onChanged();
        } else {
          conceptsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * repeated .clarifai.api.Concept concepts = 3;
       */
      public Builder clearConcepts() {
        if (conceptsBuilder_ == null) {
          concepts_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000004);
          onChanged();
        } else {
          conceptsBuilder_.clear();
        }
        return this;
      }
      /**
       * repeated .clarifai.api.Concept concepts = 3;
       */
      public Builder removeConcepts(int index) {
        if (conceptsBuilder_ == null) {
          ensureConceptsIsMutable();
          concepts_.remove(index);
          onChanged();
        } else {
          conceptsBuilder_.remove(index);
        }
        return this;
      }
      /**
       * repeated .clarifai.api.Concept concepts = 3;
       */
      public clarifai2.internal.grpc.api.ConceptOuterClass.Concept.Builder getConceptsBuilder(
          int index) {
        return getConceptsFieldBuilder().getBuilder(index);
      }
      /**
       * repeated .clarifai.api.Concept concepts = 3;
       */
      public clarifai2.internal.grpc.api.ConceptOuterClass.ConceptOrBuilder getConceptsOrBuilder(
          int index) {
        if (conceptsBuilder_ == null) {
          return concepts_.get(index);  } else {
          return conceptsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * repeated .clarifai.api.Concept concepts = 3;
       */
      public java.util.List
           getConceptsOrBuilderList() {
        if (conceptsBuilder_ != null) {
          return conceptsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(concepts_);
        }
      }
      /**
       * repeated .clarifai.api.Concept concepts = 3;
       */
      public clarifai2.internal.grpc.api.ConceptOuterClass.Concept.Builder addConceptsBuilder() {
        return getConceptsFieldBuilder().addBuilder(
            clarifai2.internal.grpc.api.ConceptOuterClass.Concept.getDefaultInstance());
      }
      /**
       * repeated .clarifai.api.Concept concepts = 3;
       */
      public clarifai2.internal.grpc.api.ConceptOuterClass.Concept.Builder addConceptsBuilder(
          int index) {
        return getConceptsFieldBuilder().addBuilder(
            index, clarifai2.internal.grpc.api.ConceptOuterClass.Concept.getDefaultInstance());
      }
      /**
       * repeated .clarifai.api.Concept concepts = 3;
       */
      public java.util.List
           getConceptsBuilderList() {
        return getConceptsFieldBuilder().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>
          getConceptsFieldBuilder() {
        if (conceptsBuilder_ == null) {
          conceptsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              clarifai2.internal.grpc.api.ConceptOuterClass.Concept, clarifai2.internal.grpc.api.ConceptOuterClass.Concept.Builder, clarifai2.internal.grpc.api.ConceptOuterClass.ConceptOrBuilder>(
                  concepts_,
                  ((bitField0_ & 0x00000004) == 0x00000004),
                  getParentForChildren(),
                  isClean());
          concepts_ = null;
        }
        return conceptsBuilder_;
      }

      private clarifai2.internal.grpc.api.FaceOuterClass.Face face_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
          clarifai2.internal.grpc.api.FaceOuterClass.Face, clarifai2.internal.grpc.api.FaceOuterClass.Face.Builder, clarifai2.internal.grpc.api.FaceOuterClass.FaceOrBuilder> faceBuilder_;
      /**
       * .clarifai.api.Face face = 4;
       */
      public boolean hasFace() {
        return faceBuilder_ != null || face_ != null;
      }
      /**
       * .clarifai.api.Face face = 4;
       */
      public clarifai2.internal.grpc.api.FaceOuterClass.Face getFace() {
        if (faceBuilder_ == null) {
          return face_ == null ? clarifai2.internal.grpc.api.FaceOuterClass.Face.getDefaultInstance() : face_;
        } else {
          return faceBuilder_.getMessage();
        }
      }
      /**
       * .clarifai.api.Face face = 4;
       */
      public Builder setFace(clarifai2.internal.grpc.api.FaceOuterClass.Face value) {
        if (faceBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          face_ = value;
          onChanged();
        } else {
          faceBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * .clarifai.api.Face face = 4;
       */
      public Builder setFace(
          clarifai2.internal.grpc.api.FaceOuterClass.Face.Builder builderForValue) {
        if (faceBuilder_ == null) {
          face_ = builderForValue.build();
          onChanged();
        } else {
          faceBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * .clarifai.api.Face face = 4;
       */
      public Builder mergeFace(clarifai2.internal.grpc.api.FaceOuterClass.Face value) {
        if (faceBuilder_ == null) {
          if (face_ != null) {
            face_ =
              clarifai2.internal.grpc.api.FaceOuterClass.Face.newBuilder(face_).mergeFrom(value).buildPartial();
          } else {
            face_ = value;
          }
          onChanged();
        } else {
          faceBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * .clarifai.api.Face face = 4;
       */
      public Builder clearFace() {
        if (faceBuilder_ == null) {
          face_ = null;
          onChanged();
        } else {
          face_ = null;
          faceBuilder_ = null;
        }

        return this;
      }
      /**
       * .clarifai.api.Face face = 4;
       */
      public clarifai2.internal.grpc.api.FaceOuterClass.Face.Builder getFaceBuilder() {

        onChanged();
        return getFaceFieldBuilder().getBuilder();
      }
      /**
       * .clarifai.api.Face face = 4;
       */
      public clarifai2.internal.grpc.api.FaceOuterClass.FaceOrBuilder getFaceOrBuilder() {
        if (faceBuilder_ != null) {
          return faceBuilder_.getMessageOrBuilder();
        } else {
          return face_ == null ?
              clarifai2.internal.grpc.api.FaceOuterClass.Face.getDefaultInstance() : face_;
        }
      }
      /**
       * .clarifai.api.Face face = 4;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          clarifai2.internal.grpc.api.FaceOuterClass.Face, clarifai2.internal.grpc.api.FaceOuterClass.Face.Builder, clarifai2.internal.grpc.api.FaceOuterClass.FaceOrBuilder>
          getFaceFieldBuilder() {
        if (faceBuilder_ == null) {
          faceBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              clarifai2.internal.grpc.api.FaceOuterClass.Face, clarifai2.internal.grpc.api.FaceOuterClass.Face.Builder, clarifai2.internal.grpc.api.FaceOuterClass.FaceOrBuilder>(
                  getFace(),
                  getParentForChildren(),
                  isClean());
          face_ = null;
        }
        return faceBuilder_;
      }

      private com.google.protobuf.Struct metadata_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.protobuf.Struct, com.google.protobuf.Struct.Builder, com.google.protobuf.StructOrBuilder> metadataBuilder_;
      /**
       * .google.protobuf.Struct metadata = 5;
       */
      public boolean hasMetadata() {
        return metadataBuilder_ != null || metadata_ != null;
      }
      /**
       * .google.protobuf.Struct metadata = 5;
       */
      public com.google.protobuf.Struct getMetadata() {
        if (metadataBuilder_ == null) {
          return metadata_ == null ? com.google.protobuf.Struct.getDefaultInstance() : metadata_;
        } else {
          return metadataBuilder_.getMessage();
        }
      }
      /**
       * .google.protobuf.Struct metadata = 5;
       */
      public Builder setMetadata(com.google.protobuf.Struct value) {
        if (metadataBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          metadata_ = value;
          onChanged();
        } else {
          metadataBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * .google.protobuf.Struct metadata = 5;
       */
      public Builder setMetadata(
          com.google.protobuf.Struct.Builder builderForValue) {
        if (metadataBuilder_ == null) {
          metadata_ = builderForValue.build();
          onChanged();
        } else {
          metadataBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * .google.protobuf.Struct metadata = 5;
       */
      public Builder mergeMetadata(com.google.protobuf.Struct value) {
        if (metadataBuilder_ == null) {
          if (metadata_ != null) {
            metadata_ =
              com.google.protobuf.Struct.newBuilder(metadata_).mergeFrom(value).buildPartial();
          } else {
            metadata_ = value;
          }
          onChanged();
        } else {
          metadataBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * .google.protobuf.Struct metadata = 5;
       */
      public Builder clearMetadata() {
        if (metadataBuilder_ == null) {
          metadata_ = null;
          onChanged();
        } else {
          metadata_ = null;
          metadataBuilder_ = null;
        }

        return this;
      }
      /**
       * .google.protobuf.Struct metadata = 5;
       */
      public com.google.protobuf.Struct.Builder getMetadataBuilder() {

        onChanged();
        return getMetadataFieldBuilder().getBuilder();
      }
      /**
       * .google.protobuf.Struct metadata = 5;
       */
      public com.google.protobuf.StructOrBuilder getMetadataOrBuilder() {
        if (metadataBuilder_ != null) {
          return metadataBuilder_.getMessageOrBuilder();
        } else {
          return metadata_ == null ?
              com.google.protobuf.Struct.getDefaultInstance() : metadata_;
        }
      }
      /**
       * .google.protobuf.Struct metadata = 5;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.protobuf.Struct, com.google.protobuf.Struct.Builder, com.google.protobuf.StructOrBuilder>
          getMetadataFieldBuilder() {
        if (metadataBuilder_ == null) {
          metadataBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.google.protobuf.Struct, com.google.protobuf.Struct.Builder, com.google.protobuf.StructOrBuilder>(
                  getMetadata(),
                  getParentForChildren(),
                  isClean());
          metadata_ = null;
        }
        return metadataBuilder_;
      }

      private clarifai2.internal.grpc.api.GeoOuterClass.Geo geo_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
          clarifai2.internal.grpc.api.GeoOuterClass.Geo, clarifai2.internal.grpc.api.GeoOuterClass.Geo.Builder, clarifai2.internal.grpc.api.GeoOuterClass.GeoOrBuilder> geoBuilder_;
      /**
       * .clarifai.api.Geo geo = 6;
       */
      public boolean hasGeo() {
        return geoBuilder_ != null || geo_ != null;
      }
      /**
       * .clarifai.api.Geo geo = 6;
       */
      public clarifai2.internal.grpc.api.GeoOuterClass.Geo getGeo() {
        if (geoBuilder_ == null) {
          return geo_ == null ? clarifai2.internal.grpc.api.GeoOuterClass.Geo.getDefaultInstance() : geo_;
        } else {
          return geoBuilder_.getMessage();
        }
      }
      /**
       * .clarifai.api.Geo geo = 6;
       */
      public Builder setGeo(clarifai2.internal.grpc.api.GeoOuterClass.Geo value) {
        if (geoBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          geo_ = value;
          onChanged();
        } else {
          geoBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * .clarifai.api.Geo geo = 6;
       */
      public Builder setGeo(
          clarifai2.internal.grpc.api.GeoOuterClass.Geo.Builder builderForValue) {
        if (geoBuilder_ == null) {
          geo_ = builderForValue.build();
          onChanged();
        } else {
          geoBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * .clarifai.api.Geo geo = 6;
       */
      public Builder mergeGeo(clarifai2.internal.grpc.api.GeoOuterClass.Geo value) {
        if (geoBuilder_ == null) {
          if (geo_ != null) {
            geo_ =
              clarifai2.internal.grpc.api.GeoOuterClass.Geo.newBuilder(geo_).mergeFrom(value).buildPartial();
          } else {
            geo_ = value;
          }
          onChanged();
        } else {
          geoBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * .clarifai.api.Geo geo = 6;
       */
      public Builder clearGeo() {
        if (geoBuilder_ == null) {
          geo_ = null;
          onChanged();
        } else {
          geo_ = null;
          geoBuilder_ = null;
        }

        return this;
      }
      /**
       * .clarifai.api.Geo geo = 6;
       */
      public clarifai2.internal.grpc.api.GeoOuterClass.Geo.Builder getGeoBuilder() {

        onChanged();
        return getGeoFieldBuilder().getBuilder();
      }
      /**
       * .clarifai.api.Geo geo = 6;
       */
      public clarifai2.internal.grpc.api.GeoOuterClass.GeoOrBuilder getGeoOrBuilder() {
        if (geoBuilder_ != null) {
          return geoBuilder_.getMessageOrBuilder();
        } else {
          return geo_ == null ?
              clarifai2.internal.grpc.api.GeoOuterClass.Geo.getDefaultInstance() : geo_;
        }
      }
      /**
       * .clarifai.api.Geo geo = 6;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          clarifai2.internal.grpc.api.GeoOuterClass.Geo, clarifai2.internal.grpc.api.GeoOuterClass.Geo.Builder, clarifai2.internal.grpc.api.GeoOuterClass.GeoOrBuilder>
          getGeoFieldBuilder() {
        if (geoBuilder_ == null) {
          geoBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              clarifai2.internal.grpc.api.GeoOuterClass.Geo, clarifai2.internal.grpc.api.GeoOuterClass.Geo.Builder, clarifai2.internal.grpc.api.GeoOuterClass.GeoOrBuilder>(
                  getGeo(),
                  getParentForChildren(),
                  isClean());
          geo_ = null;
        }
        return geoBuilder_;
      }

      private java.util.List colors_ =
        java.util.Collections.emptyList();
      private void ensureColorsIsMutable() {
        if (!((bitField0_ & 0x00000040) == 0x00000040)) {
          colors_ = new java.util.ArrayList(colors_);
          bitField0_ |= 0x00000040;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          clarifai2.internal.grpc.api.ColorOuterClass.Color, clarifai2.internal.grpc.api.ColorOuterClass.Color.Builder, clarifai2.internal.grpc.api.ColorOuterClass.ColorOrBuilder> colorsBuilder_;

      /**
       * repeated .clarifai.api.Color colors = 7;
       */
      public java.util.List getColorsList() {
        if (colorsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(colors_);
        } else {
          return colorsBuilder_.getMessageList();
        }
      }
      /**
       * repeated .clarifai.api.Color colors = 7;
       */
      public int getColorsCount() {
        if (colorsBuilder_ == null) {
          return colors_.size();
        } else {
          return colorsBuilder_.getCount();
        }
      }
      /**
       * repeated .clarifai.api.Color colors = 7;
       */
      public clarifai2.internal.grpc.api.ColorOuterClass.Color getColors(int index) {
        if (colorsBuilder_ == null) {
          return colors_.get(index);
        } else {
          return colorsBuilder_.getMessage(index);
        }
      }
      /**
       * repeated .clarifai.api.Color colors = 7;
       */
      public Builder setColors(
          int index, clarifai2.internal.grpc.api.ColorOuterClass.Color value) {
        if (colorsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureColorsIsMutable();
          colors_.set(index, value);
          onChanged();
        } else {
          colorsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .clarifai.api.Color colors = 7;
       */
      public Builder setColors(
          int index, clarifai2.internal.grpc.api.ColorOuterClass.Color.Builder builderForValue) {
        if (colorsBuilder_ == null) {
          ensureColorsIsMutable();
          colors_.set(index, builderForValue.build());
          onChanged();
        } else {
          colorsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .clarifai.api.Color colors = 7;
       */
      public Builder addColors(clarifai2.internal.grpc.api.ColorOuterClass.Color value) {
        if (colorsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureColorsIsMutable();
          colors_.add(value);
          onChanged();
        } else {
          colorsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * repeated .clarifai.api.Color colors = 7;
       */
      public Builder addColors(
          int index, clarifai2.internal.grpc.api.ColorOuterClass.Color value) {
        if (colorsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureColorsIsMutable();
          colors_.add(index, value);
          onChanged();
        } else {
          colorsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .clarifai.api.Color colors = 7;
       */
      public Builder addColors(
          clarifai2.internal.grpc.api.ColorOuterClass.Color.Builder builderForValue) {
        if (colorsBuilder_ == null) {
          ensureColorsIsMutable();
          colors_.add(builderForValue.build());
          onChanged();
        } else {
          colorsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .clarifai.api.Color colors = 7;
       */
      public Builder addColors(
          int index, clarifai2.internal.grpc.api.ColorOuterClass.Color.Builder builderForValue) {
        if (colorsBuilder_ == null) {
          ensureColorsIsMutable();
          colors_.add(index, builderForValue.build());
          onChanged();
        } else {
          colorsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .clarifai.api.Color colors = 7;
       */
      public Builder addAllColors(
          java.lang.Iterable values) {
        if (colorsBuilder_ == null) {
          ensureColorsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, colors_);
          onChanged();
        } else {
          colorsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * repeated .clarifai.api.Color colors = 7;
       */
      public Builder clearColors() {
        if (colorsBuilder_ == null) {
          colors_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000040);
          onChanged();
        } else {
          colorsBuilder_.clear();
        }
        return this;
      }
      /**
       * repeated .clarifai.api.Color colors = 7;
       */
      public Builder removeColors(int index) {
        if (colorsBuilder_ == null) {
          ensureColorsIsMutable();
          colors_.remove(index);
          onChanged();
        } else {
          colorsBuilder_.remove(index);
        }
        return this;
      }
      /**
       * repeated .clarifai.api.Color colors = 7;
       */
      public clarifai2.internal.grpc.api.ColorOuterClass.Color.Builder getColorsBuilder(
          int index) {
        return getColorsFieldBuilder().getBuilder(index);
      }
      /**
       * repeated .clarifai.api.Color colors = 7;
       */
      public clarifai2.internal.grpc.api.ColorOuterClass.ColorOrBuilder getColorsOrBuilder(
          int index) {
        if (colorsBuilder_ == null) {
          return colors_.get(index);  } else {
          return colorsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * repeated .clarifai.api.Color colors = 7;
       */
      public java.util.List
           getColorsOrBuilderList() {
        if (colorsBuilder_ != null) {
          return colorsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(colors_);
        }
      }
      /**
       * repeated .clarifai.api.Color colors = 7;
       */
      public clarifai2.internal.grpc.api.ColorOuterClass.Color.Builder addColorsBuilder() {
        return getColorsFieldBuilder().addBuilder(
            clarifai2.internal.grpc.api.ColorOuterClass.Color.getDefaultInstance());
      }
      /**
       * repeated .clarifai.api.Color colors = 7;
       */
      public clarifai2.internal.grpc.api.ColorOuterClass.Color.Builder addColorsBuilder(
          int index) {
        return getColorsFieldBuilder().addBuilder(
            index, clarifai2.internal.grpc.api.ColorOuterClass.Color.getDefaultInstance());
      }
      /**
       * repeated .clarifai.api.Color colors = 7;
       */
      public java.util.List
           getColorsBuilderList() {
        return getColorsFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          clarifai2.internal.grpc.api.ColorOuterClass.Color, clarifai2.internal.grpc.api.ColorOuterClass.Color.Builder, clarifai2.internal.grpc.api.ColorOuterClass.ColorOrBuilder>
          getColorsFieldBuilder() {
        if (colorsBuilder_ == null) {
          colorsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              clarifai2.internal.grpc.api.ColorOuterClass.Color, clarifai2.internal.grpc.api.ColorOuterClass.Color.Builder, clarifai2.internal.grpc.api.ColorOuterClass.ColorOrBuilder>(
                  colors_,
                  ((bitField0_ & 0x00000040) == 0x00000040),
                  getParentForChildren(),
                  isClean());
          colors_ = null;
        }
        return colorsBuilder_;
      }

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

      private com.google.protobuf.RepeatedFieldBuilderV3<
          clarifai2.internal.grpc.api.ClusterOuterClass.Cluster, clarifai2.internal.grpc.api.ClusterOuterClass.Cluster.Builder, clarifai2.internal.grpc.api.ClusterOuterClass.ClusterOrBuilder> clustersBuilder_;

      /**
       * repeated .clarifai.api.Cluster clusters = 8;
       */
      public java.util.List getClustersList() {
        if (clustersBuilder_ == null) {
          return java.util.Collections.unmodifiableList(clusters_);
        } else {
          return clustersBuilder_.getMessageList();
        }
      }
      /**
       * repeated .clarifai.api.Cluster clusters = 8;
       */
      public int getClustersCount() {
        if (clustersBuilder_ == null) {
          return clusters_.size();
        } else {
          return clustersBuilder_.getCount();
        }
      }
      /**
       * repeated .clarifai.api.Cluster clusters = 8;
       */
      public clarifai2.internal.grpc.api.ClusterOuterClass.Cluster getClusters(int index) {
        if (clustersBuilder_ == null) {
          return clusters_.get(index);
        } else {
          return clustersBuilder_.getMessage(index);
        }
      }
      /**
       * repeated .clarifai.api.Cluster clusters = 8;
       */
      public Builder setClusters(
          int index, clarifai2.internal.grpc.api.ClusterOuterClass.Cluster value) {
        if (clustersBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureClustersIsMutable();
          clusters_.set(index, value);
          onChanged();
        } else {
          clustersBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .clarifai.api.Cluster clusters = 8;
       */
      public Builder setClusters(
          int index, clarifai2.internal.grpc.api.ClusterOuterClass.Cluster.Builder builderForValue) {
        if (clustersBuilder_ == null) {
          ensureClustersIsMutable();
          clusters_.set(index, builderForValue.build());
          onChanged();
        } else {
          clustersBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .clarifai.api.Cluster clusters = 8;
       */
      public Builder addClusters(clarifai2.internal.grpc.api.ClusterOuterClass.Cluster value) {
        if (clustersBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureClustersIsMutable();
          clusters_.add(value);
          onChanged();
        } else {
          clustersBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * repeated .clarifai.api.Cluster clusters = 8;
       */
      public Builder addClusters(
          int index, clarifai2.internal.grpc.api.ClusterOuterClass.Cluster value) {
        if (clustersBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureClustersIsMutable();
          clusters_.add(index, value);
          onChanged();
        } else {
          clustersBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .clarifai.api.Cluster clusters = 8;
       */
      public Builder addClusters(
          clarifai2.internal.grpc.api.ClusterOuterClass.Cluster.Builder builderForValue) {
        if (clustersBuilder_ == null) {
          ensureClustersIsMutable();
          clusters_.add(builderForValue.build());
          onChanged();
        } else {
          clustersBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .clarifai.api.Cluster clusters = 8;
       */
      public Builder addClusters(
          int index, clarifai2.internal.grpc.api.ClusterOuterClass.Cluster.Builder builderForValue) {
        if (clustersBuilder_ == null) {
          ensureClustersIsMutable();
          clusters_.add(index, builderForValue.build());
          onChanged();
        } else {
          clustersBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .clarifai.api.Cluster clusters = 8;
       */
      public Builder addAllClusters(
          java.lang.Iterable values) {
        if (clustersBuilder_ == null) {
          ensureClustersIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, clusters_);
          onChanged();
        } else {
          clustersBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * repeated .clarifai.api.Cluster clusters = 8;
       */
      public Builder clearClusters() {
        if (clustersBuilder_ == null) {
          clusters_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000080);
          onChanged();
        } else {
          clustersBuilder_.clear();
        }
        return this;
      }
      /**
       * repeated .clarifai.api.Cluster clusters = 8;
       */
      public Builder removeClusters(int index) {
        if (clustersBuilder_ == null) {
          ensureClustersIsMutable();
          clusters_.remove(index);
          onChanged();
        } else {
          clustersBuilder_.remove(index);
        }
        return this;
      }
      /**
       * repeated .clarifai.api.Cluster clusters = 8;
       */
      public clarifai2.internal.grpc.api.ClusterOuterClass.Cluster.Builder getClustersBuilder(
          int index) {
        return getClustersFieldBuilder().getBuilder(index);
      }
      /**
       * repeated .clarifai.api.Cluster clusters = 8;
       */
      public clarifai2.internal.grpc.api.ClusterOuterClass.ClusterOrBuilder getClustersOrBuilder(
          int index) {
        if (clustersBuilder_ == null) {
          return clusters_.get(index);  } else {
          return clustersBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * repeated .clarifai.api.Cluster clusters = 8;
       */
      public java.util.List
           getClustersOrBuilderList() {
        if (clustersBuilder_ != null) {
          return clustersBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(clusters_);
        }
      }
      /**
       * repeated .clarifai.api.Cluster clusters = 8;
       */
      public clarifai2.internal.grpc.api.ClusterOuterClass.Cluster.Builder addClustersBuilder() {
        return getClustersFieldBuilder().addBuilder(
            clarifai2.internal.grpc.api.ClusterOuterClass.Cluster.getDefaultInstance());
      }
      /**
       * repeated .clarifai.api.Cluster clusters = 8;
       */
      public clarifai2.internal.grpc.api.ClusterOuterClass.Cluster.Builder addClustersBuilder(
          int index) {
        return getClustersFieldBuilder().addBuilder(
            index, clarifai2.internal.grpc.api.ClusterOuterClass.Cluster.getDefaultInstance());
      }
      /**
       * repeated .clarifai.api.Cluster clusters = 8;
       */
      public java.util.List
           getClustersBuilderList() {
        return getClustersFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          clarifai2.internal.grpc.api.ClusterOuterClass.Cluster, clarifai2.internal.grpc.api.ClusterOuterClass.Cluster.Builder, clarifai2.internal.grpc.api.ClusterOuterClass.ClusterOrBuilder>
          getClustersFieldBuilder() {
        if (clustersBuilder_ == null) {
          clustersBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              clarifai2.internal.grpc.api.ClusterOuterClass.Cluster, clarifai2.internal.grpc.api.ClusterOuterClass.Cluster.Builder, clarifai2.internal.grpc.api.ClusterOuterClass.ClusterOrBuilder>(
                  clusters_,
                  ((bitField0_ & 0x00000080) == 0x00000080),
                  getParentForChildren(),
                  isClean());
          clusters_ = null;
        }
        return clustersBuilder_;
      }

      private java.util.List embeddings_ =
        java.util.Collections.emptyList();
      private void ensureEmbeddingsIsMutable() {
        if (!((bitField0_ & 0x00000100) == 0x00000100)) {
          embeddings_ = new java.util.ArrayList(embeddings_);
          bitField0_ |= 0x00000100;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          clarifai2.internal.grpc.api.EmbeddingOuterClass.Embedding, clarifai2.internal.grpc.api.EmbeddingOuterClass.Embedding.Builder, clarifai2.internal.grpc.api.EmbeddingOuterClass.EmbeddingOrBuilder> embeddingsBuilder_;

      /**
       * repeated .clarifai.api.Embedding embeddings = 9;
       */
      public java.util.List getEmbeddingsList() {
        if (embeddingsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(embeddings_);
        } else {
          return embeddingsBuilder_.getMessageList();
        }
      }
      /**
       * repeated .clarifai.api.Embedding embeddings = 9;
       */
      public int getEmbeddingsCount() {
        if (embeddingsBuilder_ == null) {
          return embeddings_.size();
        } else {
          return embeddingsBuilder_.getCount();
        }
      }
      /**
       * repeated .clarifai.api.Embedding embeddings = 9;
       */
      public clarifai2.internal.grpc.api.EmbeddingOuterClass.Embedding getEmbeddings(int index) {
        if (embeddingsBuilder_ == null) {
          return embeddings_.get(index);
        } else {
          return embeddingsBuilder_.getMessage(index);
        }
      }
      /**
       * repeated .clarifai.api.Embedding embeddings = 9;
       */
      public Builder setEmbeddings(
          int index, clarifai2.internal.grpc.api.EmbeddingOuterClass.Embedding value) {
        if (embeddingsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureEmbeddingsIsMutable();
          embeddings_.set(index, value);
          onChanged();
        } else {
          embeddingsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .clarifai.api.Embedding embeddings = 9;
       */
      public Builder setEmbeddings(
          int index, clarifai2.internal.grpc.api.EmbeddingOuterClass.Embedding.Builder builderForValue) {
        if (embeddingsBuilder_ == null) {
          ensureEmbeddingsIsMutable();
          embeddings_.set(index, builderForValue.build());
          onChanged();
        } else {
          embeddingsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .clarifai.api.Embedding embeddings = 9;
       */
      public Builder addEmbeddings(clarifai2.internal.grpc.api.EmbeddingOuterClass.Embedding value) {
        if (embeddingsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureEmbeddingsIsMutable();
          embeddings_.add(value);
          onChanged();
        } else {
          embeddingsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * repeated .clarifai.api.Embedding embeddings = 9;
       */
      public Builder addEmbeddings(
          int index, clarifai2.internal.grpc.api.EmbeddingOuterClass.Embedding value) {
        if (embeddingsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureEmbeddingsIsMutable();
          embeddings_.add(index, value);
          onChanged();
        } else {
          embeddingsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .clarifai.api.Embedding embeddings = 9;
       */
      public Builder addEmbeddings(
          clarifai2.internal.grpc.api.EmbeddingOuterClass.Embedding.Builder builderForValue) {
        if (embeddingsBuilder_ == null) {
          ensureEmbeddingsIsMutable();
          embeddings_.add(builderForValue.build());
          onChanged();
        } else {
          embeddingsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .clarifai.api.Embedding embeddings = 9;
       */
      public Builder addEmbeddings(
          int index, clarifai2.internal.grpc.api.EmbeddingOuterClass.Embedding.Builder builderForValue) {
        if (embeddingsBuilder_ == null) {
          ensureEmbeddingsIsMutable();
          embeddings_.add(index, builderForValue.build());
          onChanged();
        } else {
          embeddingsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .clarifai.api.Embedding embeddings = 9;
       */
      public Builder addAllEmbeddings(
          java.lang.Iterable values) {
        if (embeddingsBuilder_ == null) {
          ensureEmbeddingsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, embeddings_);
          onChanged();
        } else {
          embeddingsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * repeated .clarifai.api.Embedding embeddings = 9;
       */
      public Builder clearEmbeddings() {
        if (embeddingsBuilder_ == null) {
          embeddings_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000100);
          onChanged();
        } else {
          embeddingsBuilder_.clear();
        }
        return this;
      }
      /**
       * repeated .clarifai.api.Embedding embeddings = 9;
       */
      public Builder removeEmbeddings(int index) {
        if (embeddingsBuilder_ == null) {
          ensureEmbeddingsIsMutable();
          embeddings_.remove(index);
          onChanged();
        } else {
          embeddingsBuilder_.remove(index);
        }
        return this;
      }
      /**
       * repeated .clarifai.api.Embedding embeddings = 9;
       */
      public clarifai2.internal.grpc.api.EmbeddingOuterClass.Embedding.Builder getEmbeddingsBuilder(
          int index) {
        return getEmbeddingsFieldBuilder().getBuilder(index);
      }
      /**
       * repeated .clarifai.api.Embedding embeddings = 9;
       */
      public clarifai2.internal.grpc.api.EmbeddingOuterClass.EmbeddingOrBuilder getEmbeddingsOrBuilder(
          int index) {
        if (embeddingsBuilder_ == null) {
          return embeddings_.get(index);  } else {
          return embeddingsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * repeated .clarifai.api.Embedding embeddings = 9;
       */
      public java.util.List
           getEmbeddingsOrBuilderList() {
        if (embeddingsBuilder_ != null) {
          return embeddingsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(embeddings_);
        }
      }
      /**
       * repeated .clarifai.api.Embedding embeddings = 9;
       */
      public clarifai2.internal.grpc.api.EmbeddingOuterClass.Embedding.Builder addEmbeddingsBuilder() {
        return getEmbeddingsFieldBuilder().addBuilder(
            clarifai2.internal.grpc.api.EmbeddingOuterClass.Embedding.getDefaultInstance());
      }
      /**
       * repeated .clarifai.api.Embedding embeddings = 9;
       */
      public clarifai2.internal.grpc.api.EmbeddingOuterClass.Embedding.Builder addEmbeddingsBuilder(
          int index) {
        return getEmbeddingsFieldBuilder().addBuilder(
            index, clarifai2.internal.grpc.api.EmbeddingOuterClass.Embedding.getDefaultInstance());
      }
      /**
       * repeated .clarifai.api.Embedding embeddings = 9;
       */
      public java.util.List
           getEmbeddingsBuilderList() {
        return getEmbeddingsFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          clarifai2.internal.grpc.api.EmbeddingOuterClass.Embedding, clarifai2.internal.grpc.api.EmbeddingOuterClass.Embedding.Builder, clarifai2.internal.grpc.api.EmbeddingOuterClass.EmbeddingOrBuilder>
          getEmbeddingsFieldBuilder() {
        if (embeddingsBuilder_ == null) {
          embeddingsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              clarifai2.internal.grpc.api.EmbeddingOuterClass.Embedding, clarifai2.internal.grpc.api.EmbeddingOuterClass.Embedding.Builder, clarifai2.internal.grpc.api.EmbeddingOuterClass.EmbeddingOrBuilder>(
                  embeddings_,
                  ((bitField0_ & 0x00000100) == 0x00000100),
                  getParentForChildren(),
                  isClean());
          embeddings_ = null;
        }
        return embeddingsBuilder_;
      }

      private clarifai2.internal.grpc.api.FocusOuterClass.Focus focus_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
          clarifai2.internal.grpc.api.FocusOuterClass.Focus, clarifai2.internal.grpc.api.FocusOuterClass.Focus.Builder, clarifai2.internal.grpc.api.FocusOuterClass.FocusOrBuilder> focusBuilder_;
      /**
       * .clarifai.api.Focus focus = 10;
       */
      public boolean hasFocus() {
        return focusBuilder_ != null || focus_ != null;
      }
      /**
       * .clarifai.api.Focus focus = 10;
       */
      public clarifai2.internal.grpc.api.FocusOuterClass.Focus getFocus() {
        if (focusBuilder_ == null) {
          return focus_ == null ? clarifai2.internal.grpc.api.FocusOuterClass.Focus.getDefaultInstance() : focus_;
        } else {
          return focusBuilder_.getMessage();
        }
      }
      /**
       * .clarifai.api.Focus focus = 10;
       */
      public Builder setFocus(clarifai2.internal.grpc.api.FocusOuterClass.Focus value) {
        if (focusBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          focus_ = value;
          onChanged();
        } else {
          focusBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * .clarifai.api.Focus focus = 10;
       */
      public Builder setFocus(
          clarifai2.internal.grpc.api.FocusOuterClass.Focus.Builder builderForValue) {
        if (focusBuilder_ == null) {
          focus_ = builderForValue.build();
          onChanged();
        } else {
          focusBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * .clarifai.api.Focus focus = 10;
       */
      public Builder mergeFocus(clarifai2.internal.grpc.api.FocusOuterClass.Focus value) {
        if (focusBuilder_ == null) {
          if (focus_ != null) {
            focus_ =
              clarifai2.internal.grpc.api.FocusOuterClass.Focus.newBuilder(focus_).mergeFrom(value).buildPartial();
          } else {
            focus_ = value;
          }
          onChanged();
        } else {
          focusBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * .clarifai.api.Focus focus = 10;
       */
      public Builder clearFocus() {
        if (focusBuilder_ == null) {
          focus_ = null;
          onChanged();
        } else {
          focus_ = null;
          focusBuilder_ = null;
        }

        return this;
      }
      /**
       * .clarifai.api.Focus focus = 10;
       */
      public clarifai2.internal.grpc.api.FocusOuterClass.Focus.Builder getFocusBuilder() {

        onChanged();
        return getFocusFieldBuilder().getBuilder();
      }
      /**
       * .clarifai.api.Focus focus = 10;
       */
      public clarifai2.internal.grpc.api.FocusOuterClass.FocusOrBuilder getFocusOrBuilder() {
        if (focusBuilder_ != null) {
          return focusBuilder_.getMessageOrBuilder();
        } else {
          return focus_ == null ?
              clarifai2.internal.grpc.api.FocusOuterClass.Focus.getDefaultInstance() : focus_;
        }
      }
      /**
       * .clarifai.api.Focus focus = 10;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          clarifai2.internal.grpc.api.FocusOuterClass.Focus, clarifai2.internal.grpc.api.FocusOuterClass.Focus.Builder, clarifai2.internal.grpc.api.FocusOuterClass.FocusOrBuilder>
          getFocusFieldBuilder() {
        if (focusBuilder_ == null) {
          focusBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              clarifai2.internal.grpc.api.FocusOuterClass.Focus, clarifai2.internal.grpc.api.FocusOuterClass.Focus.Builder, clarifai2.internal.grpc.api.FocusOuterClass.FocusOrBuilder>(
                  getFocus(),
                  getParentForChildren(),
                  isClean());
          focus_ = null;
        }
        return focusBuilder_;
      }

      private java.util.List regions_ =
        java.util.Collections.emptyList();
      private void ensureRegionsIsMutable() {
        if (!((bitField0_ & 0x00000400) == 0x00000400)) {
          regions_ = new java.util.ArrayList(regions_);
          bitField0_ |= 0x00000400;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          clarifai2.internal.grpc.api.DataOuterClass.Region, clarifai2.internal.grpc.api.DataOuterClass.Region.Builder, clarifai2.internal.grpc.api.DataOuterClass.RegionOrBuilder> regionsBuilder_;

      /**
       * repeated .clarifai.api.Region regions = 11;
       */
      public java.util.List getRegionsList() {
        if (regionsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(regions_);
        } else {
          return regionsBuilder_.getMessageList();
        }
      }
      /**
       * repeated .clarifai.api.Region regions = 11;
       */
      public int getRegionsCount() {
        if (regionsBuilder_ == null) {
          return regions_.size();
        } else {
          return regionsBuilder_.getCount();
        }
      }
      /**
       * repeated .clarifai.api.Region regions = 11;
       */
      public clarifai2.internal.grpc.api.DataOuterClass.Region getRegions(int index) {
        if (regionsBuilder_ == null) {
          return regions_.get(index);
        } else {
          return regionsBuilder_.getMessage(index);
        }
      }
      /**
       * repeated .clarifai.api.Region regions = 11;
       */
      public Builder setRegions(
          int index, clarifai2.internal.grpc.api.DataOuterClass.Region value) {
        if (regionsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureRegionsIsMutable();
          regions_.set(index, value);
          onChanged();
        } else {
          regionsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .clarifai.api.Region regions = 11;
       */
      public Builder setRegions(
          int index, clarifai2.internal.grpc.api.DataOuterClass.Region.Builder builderForValue) {
        if (regionsBuilder_ == null) {
          ensureRegionsIsMutable();
          regions_.set(index, builderForValue.build());
          onChanged();
        } else {
          regionsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .clarifai.api.Region regions = 11;
       */
      public Builder addRegions(clarifai2.internal.grpc.api.DataOuterClass.Region value) {
        if (regionsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureRegionsIsMutable();
          regions_.add(value);
          onChanged();
        } else {
          regionsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * repeated .clarifai.api.Region regions = 11;
       */
      public Builder addRegions(
          int index, clarifai2.internal.grpc.api.DataOuterClass.Region value) {
        if (regionsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureRegionsIsMutable();
          regions_.add(index, value);
          onChanged();
        } else {
          regionsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .clarifai.api.Region regions = 11;
       */
      public Builder addRegions(
          clarifai2.internal.grpc.api.DataOuterClass.Region.Builder builderForValue) {
        if (regionsBuilder_ == null) {
          ensureRegionsIsMutable();
          regions_.add(builderForValue.build());
          onChanged();
        } else {
          regionsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .clarifai.api.Region regions = 11;
       */
      public Builder addRegions(
          int index, clarifai2.internal.grpc.api.DataOuterClass.Region.Builder builderForValue) {
        if (regionsBuilder_ == null) {
          ensureRegionsIsMutable();
          regions_.add(index, builderForValue.build());
          onChanged();
        } else {
          regionsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .clarifai.api.Region regions = 11;
       */
      public Builder addAllRegions(
          java.lang.Iterable values) {
        if (regionsBuilder_ == null) {
          ensureRegionsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, regions_);
          onChanged();
        } else {
          regionsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * repeated .clarifai.api.Region regions = 11;
       */
      public Builder clearRegions() {
        if (regionsBuilder_ == null) {
          regions_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000400);
          onChanged();
        } else {
          regionsBuilder_.clear();
        }
        return this;
      }
      /**
       * repeated .clarifai.api.Region regions = 11;
       */
      public Builder removeRegions(int index) {
        if (regionsBuilder_ == null) {
          ensureRegionsIsMutable();
          regions_.remove(index);
          onChanged();
        } else {
          regionsBuilder_.remove(index);
        }
        return this;
      }
      /**
       * repeated .clarifai.api.Region regions = 11;
       */
      public clarifai2.internal.grpc.api.DataOuterClass.Region.Builder getRegionsBuilder(
          int index) {
        return getRegionsFieldBuilder().getBuilder(index);
      }
      /**
       * repeated .clarifai.api.Region regions = 11;
       */
      public clarifai2.internal.grpc.api.DataOuterClass.RegionOrBuilder getRegionsOrBuilder(
          int index) {
        if (regionsBuilder_ == null) {
          return regions_.get(index);  } else {
          return regionsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * repeated .clarifai.api.Region regions = 11;
       */
      public java.util.List
           getRegionsOrBuilderList() {
        if (regionsBuilder_ != null) {
          return regionsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(regions_);
        }
      }
      /**
       * repeated .clarifai.api.Region regions = 11;
       */
      public clarifai2.internal.grpc.api.DataOuterClass.Region.Builder addRegionsBuilder() {
        return getRegionsFieldBuilder().addBuilder(
            clarifai2.internal.grpc.api.DataOuterClass.Region.getDefaultInstance());
      }
      /**
       * repeated .clarifai.api.Region regions = 11;
       */
      public clarifai2.internal.grpc.api.DataOuterClass.Region.Builder addRegionsBuilder(
          int index) {
        return getRegionsFieldBuilder().addBuilder(
            index, clarifai2.internal.grpc.api.DataOuterClass.Region.getDefaultInstance());
      }
      /**
       * repeated .clarifai.api.Region regions = 11;
       */
      public java.util.List
           getRegionsBuilderList() {
        return getRegionsFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          clarifai2.internal.grpc.api.DataOuterClass.Region, clarifai2.internal.grpc.api.DataOuterClass.Region.Builder, clarifai2.internal.grpc.api.DataOuterClass.RegionOrBuilder>
          getRegionsFieldBuilder() {
        if (regionsBuilder_ == null) {
          regionsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              clarifai2.internal.grpc.api.DataOuterClass.Region, clarifai2.internal.grpc.api.DataOuterClass.Region.Builder, clarifai2.internal.grpc.api.DataOuterClass.RegionOrBuilder>(
                  regions_,
                  ((bitField0_ & 0x00000400) == 0x00000400),
                  getParentForChildren(),
                  isClean());
          regions_ = null;
        }
        return regionsBuilder_;
      }

      private java.util.List frames_ =
        java.util.Collections.emptyList();
      private void ensureFramesIsMutable() {
        if (!((bitField0_ & 0x00000800) == 0x00000800)) {
          frames_ = new java.util.ArrayList(frames_);
          bitField0_ |= 0x00000800;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          clarifai2.internal.grpc.api.DataOuterClass.Frame, clarifai2.internal.grpc.api.DataOuterClass.Frame.Builder, clarifai2.internal.grpc.api.DataOuterClass.FrameOrBuilder> framesBuilder_;

      /**
       * repeated .clarifai.api.Frame frames = 12;
       */
      public java.util.List getFramesList() {
        if (framesBuilder_ == null) {
          return java.util.Collections.unmodifiableList(frames_);
        } else {
          return framesBuilder_.getMessageList();
        }
      }
      /**
       * repeated .clarifai.api.Frame frames = 12;
       */
      public int getFramesCount() {
        if (framesBuilder_ == null) {
          return frames_.size();
        } else {
          return framesBuilder_.getCount();
        }
      }
      /**
       * repeated .clarifai.api.Frame frames = 12;
       */
      public clarifai2.internal.grpc.api.DataOuterClass.Frame getFrames(int index) {
        if (framesBuilder_ == null) {
          return frames_.get(index);
        } else {
          return framesBuilder_.getMessage(index);
        }
      }
      /**
       * repeated .clarifai.api.Frame frames = 12;
       */
      public Builder setFrames(
          int index, clarifai2.internal.grpc.api.DataOuterClass.Frame value) {
        if (framesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureFramesIsMutable();
          frames_.set(index, value);
          onChanged();
        } else {
          framesBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .clarifai.api.Frame frames = 12;
       */
      public Builder setFrames(
          int index, clarifai2.internal.grpc.api.DataOuterClass.Frame.Builder builderForValue) {
        if (framesBuilder_ == null) {
          ensureFramesIsMutable();
          frames_.set(index, builderForValue.build());
          onChanged();
        } else {
          framesBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .clarifai.api.Frame frames = 12;
       */
      public Builder addFrames(clarifai2.internal.grpc.api.DataOuterClass.Frame value) {
        if (framesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureFramesIsMutable();
          frames_.add(value);
          onChanged();
        } else {
          framesBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * repeated .clarifai.api.Frame frames = 12;
       */
      public Builder addFrames(
          int index, clarifai2.internal.grpc.api.DataOuterClass.Frame value) {
        if (framesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureFramesIsMutable();
          frames_.add(index, value);
          onChanged();
        } else {
          framesBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .clarifai.api.Frame frames = 12;
       */
      public Builder addFrames(
          clarifai2.internal.grpc.api.DataOuterClass.Frame.Builder builderForValue) {
        if (framesBuilder_ == null) {
          ensureFramesIsMutable();
          frames_.add(builderForValue.build());
          onChanged();
        } else {
          framesBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .clarifai.api.Frame frames = 12;
       */
      public Builder addFrames(
          int index, clarifai2.internal.grpc.api.DataOuterClass.Frame.Builder builderForValue) {
        if (framesBuilder_ == null) {
          ensureFramesIsMutable();
          frames_.add(index, builderForValue.build());
          onChanged();
        } else {
          framesBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .clarifai.api.Frame frames = 12;
       */
      public Builder addAllFrames(
          java.lang.Iterable values) {
        if (framesBuilder_ == null) {
          ensureFramesIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, frames_);
          onChanged();
        } else {
          framesBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * repeated .clarifai.api.Frame frames = 12;
       */
      public Builder clearFrames() {
        if (framesBuilder_ == null) {
          frames_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000800);
          onChanged();
        } else {
          framesBuilder_.clear();
        }
        return this;
      }
      /**
       * repeated .clarifai.api.Frame frames = 12;
       */
      public Builder removeFrames(int index) {
        if (framesBuilder_ == null) {
          ensureFramesIsMutable();
          frames_.remove(index);
          onChanged();
        } else {
          framesBuilder_.remove(index);
        }
        return this;
      }
      /**
       * repeated .clarifai.api.Frame frames = 12;
       */
      public clarifai2.internal.grpc.api.DataOuterClass.Frame.Builder getFramesBuilder(
          int index) {
        return getFramesFieldBuilder().getBuilder(index);
      }
      /**
       * repeated .clarifai.api.Frame frames = 12;
       */
      public clarifai2.internal.grpc.api.DataOuterClass.FrameOrBuilder getFramesOrBuilder(
          int index) {
        if (framesBuilder_ == null) {
          return frames_.get(index);  } else {
          return framesBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * repeated .clarifai.api.Frame frames = 12;
       */
      public java.util.List
           getFramesOrBuilderList() {
        if (framesBuilder_ != null) {
          return framesBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(frames_);
        }
      }
      /**
       * repeated .clarifai.api.Frame frames = 12;
       */
      public clarifai2.internal.grpc.api.DataOuterClass.Frame.Builder addFramesBuilder() {
        return getFramesFieldBuilder().addBuilder(
            clarifai2.internal.grpc.api.DataOuterClass.Frame.getDefaultInstance());
      }
      /**
       * repeated .clarifai.api.Frame frames = 12;
       */
      public clarifai2.internal.grpc.api.DataOuterClass.Frame.Builder addFramesBuilder(
          int index) {
        return getFramesFieldBuilder().addBuilder(
            index, clarifai2.internal.grpc.api.DataOuterClass.Frame.getDefaultInstance());
      }
      /**
       * repeated .clarifai.api.Frame frames = 12;
       */
      public java.util.List
           getFramesBuilderList() {
        return getFramesFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          clarifai2.internal.grpc.api.DataOuterClass.Frame, clarifai2.internal.grpc.api.DataOuterClass.Frame.Builder, clarifai2.internal.grpc.api.DataOuterClass.FrameOrBuilder>
          getFramesFieldBuilder() {
        if (framesBuilder_ == null) {
          framesBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              clarifai2.internal.grpc.api.DataOuterClass.Frame, clarifai2.internal.grpc.api.DataOuterClass.Frame.Builder, clarifai2.internal.grpc.api.DataOuterClass.FrameOrBuilder>(
                  frames_,
                  ((bitField0_ & 0x00000800) == 0x00000800),
                  getParentForChildren(),
                  isClean());
          frames_ = null;
        }
        return framesBuilder_;
      }

      private clarifai2.internal.grpc.api.TextOuterClass.Text text_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
          clarifai2.internal.grpc.api.TextOuterClass.Text, clarifai2.internal.grpc.api.TextOuterClass.Text.Builder, clarifai2.internal.grpc.api.TextOuterClass.TextOrBuilder> textBuilder_;
      /**
       * .clarifai.api.Text text = 13;
       */
      public boolean hasText() {
        return textBuilder_ != null || text_ != null;
      }
      /**
       * .clarifai.api.Text text = 13;
       */
      public clarifai2.internal.grpc.api.TextOuterClass.Text getText() {
        if (textBuilder_ == null) {
          return text_ == null ? clarifai2.internal.grpc.api.TextOuterClass.Text.getDefaultInstance() : text_;
        } else {
          return textBuilder_.getMessage();
        }
      }
      /**
       * .clarifai.api.Text text = 13;
       */
      public Builder setText(clarifai2.internal.grpc.api.TextOuterClass.Text value) {
        if (textBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          text_ = value;
          onChanged();
        } else {
          textBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * .clarifai.api.Text text = 13;
       */
      public Builder setText(
          clarifai2.internal.grpc.api.TextOuterClass.Text.Builder builderForValue) {
        if (textBuilder_ == null) {
          text_ = builderForValue.build();
          onChanged();
        } else {
          textBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * .clarifai.api.Text text = 13;
       */
      public Builder mergeText(clarifai2.internal.grpc.api.TextOuterClass.Text value) {
        if (textBuilder_ == null) {
          if (text_ != null) {
            text_ =
              clarifai2.internal.grpc.api.TextOuterClass.Text.newBuilder(text_).mergeFrom(value).buildPartial();
          } else {
            text_ = value;
          }
          onChanged();
        } else {
          textBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * .clarifai.api.Text text = 13;
       */
      public Builder clearText() {
        if (textBuilder_ == null) {
          text_ = null;
          onChanged();
        } else {
          text_ = null;
          textBuilder_ = null;
        }

        return this;
      }
      /**
       * .clarifai.api.Text text = 13;
       */
      public clarifai2.internal.grpc.api.TextOuterClass.Text.Builder getTextBuilder() {

        onChanged();
        return getTextFieldBuilder().getBuilder();
      }
      /**
       * .clarifai.api.Text text = 13;
       */
      public clarifai2.internal.grpc.api.TextOuterClass.TextOrBuilder getTextOrBuilder() {
        if (textBuilder_ != null) {
          return textBuilder_.getMessageOrBuilder();
        } else {
          return text_ == null ?
              clarifai2.internal.grpc.api.TextOuterClass.Text.getDefaultInstance() : text_;
        }
      }
      /**
       * .clarifai.api.Text text = 13;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          clarifai2.internal.grpc.api.TextOuterClass.Text, clarifai2.internal.grpc.api.TextOuterClass.Text.Builder, clarifai2.internal.grpc.api.TextOuterClass.TextOrBuilder>
          getTextFieldBuilder() {
        if (textBuilder_ == null) {
          textBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              clarifai2.internal.grpc.api.TextOuterClass.Text, clarifai2.internal.grpc.api.TextOuterClass.Text.Builder, clarifai2.internal.grpc.api.TextOuterClass.TextOrBuilder>(
                  getText(),
                  getParentForChildren(),
                  isClean());
          text_ = null;
        }
        return textBuilder_;
      }
      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.Data)
    }

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

    public static clarifai2.internal.grpc.api.DataOuterClass.Data getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

  }

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

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

    /**
     * .clarifai.api.RegionInfo region_info = 2;
     */
    boolean hasRegionInfo();
    /**
     * .clarifai.api.RegionInfo region_info = 2;
     */
    clarifai2.internal.grpc.api.DataOuterClass.RegionInfo getRegionInfo();
    /**
     * .clarifai.api.RegionInfo region_info = 2;
     */
    clarifai2.internal.grpc.api.DataOuterClass.RegionInfoOrBuilder getRegionInfoOrBuilder();

    /**
     * .clarifai.api.Data data = 3;
     */
    boolean hasData();
    /**
     * .clarifai.api.Data data = 3;
     */
    clarifai2.internal.grpc.api.DataOuterClass.Data getData();
    /**
     * .clarifai.api.Data data = 3;
     */
    clarifai2.internal.grpc.api.DataOuterClass.DataOrBuilder getDataOrBuilder();
  }
  /**
   * Protobuf type {@code clarifai.api.Region}
   */
  public  static final class Region extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:clarifai.api.Region)
      RegionOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use Region.newBuilder() to construct.
    private Region(com.google.protobuf.GeneratedMessageV3.Builder builder) {
      super(builder);
    }
    private Region() {
      id_ = "";
    }

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

              break;
            }
            case 26: {
              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;
            }
          }
        }
      } 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.DataOuterClass.internal_static_clarifai_api_Region_descriptor;
    }

    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return clarifai2.internal.grpc.api.DataOuterClass.internal_static_clarifai_api_Region_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              clarifai2.internal.grpc.api.DataOuterClass.Region.class, clarifai2.internal.grpc.api.DataOuterClass.Region.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 REGION_INFO_FIELD_NUMBER = 2;
    private clarifai2.internal.grpc.api.DataOuterClass.RegionInfo regionInfo_;
    /**
     * .clarifai.api.RegionInfo region_info = 2;
     */
    public boolean hasRegionInfo() {
      return regionInfo_ != null;
    }
    /**
     * .clarifai.api.RegionInfo region_info = 2;
     */
    public clarifai2.internal.grpc.api.DataOuterClass.RegionInfo getRegionInfo() {
      return regionInfo_ == null ? clarifai2.internal.grpc.api.DataOuterClass.RegionInfo.getDefaultInstance() : regionInfo_;
    }
    /**
     * .clarifai.api.RegionInfo region_info = 2;
     */
    public clarifai2.internal.grpc.api.DataOuterClass.RegionInfoOrBuilder getRegionInfoOrBuilder() {
      return getRegionInfo();
    }

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

    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 (regionInfo_ != null) {
        output.writeMessage(2, getRegionInfo());
      }
      if (data_ != null) {
        output.writeMessage(3, getData());
      }
      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 (regionInfo_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, getRegionInfo());
      }
      if (data_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, getData());
      }
      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.DataOuterClass.Region)) {
        return super.equals(obj);
      }
      clarifai2.internal.grpc.api.DataOuterClass.Region other = (clarifai2.internal.grpc.api.DataOuterClass.Region) obj;

      boolean result = true;
      result = result && getId()
          .equals(other.getId());
      result = result && (hasRegionInfo() == other.hasRegionInfo());
      if (hasRegionInfo()) {
        result = result && getRegionInfo()
            .equals(other.getRegionInfo());
      }
      result = result && (hasData() == other.hasData());
      if (hasData()) {
        result = result && getData()
            .equals(other.getData());
      }
      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();
      if (hasRegionInfo()) {
        hash = (37 * hash) + REGION_INFO_FIELD_NUMBER;
        hash = (53 * hash) + getRegionInfo().hashCode();
      }
      if (hasData()) {
        hash = (37 * hash) + DATA_FIELD_NUMBER;
        hash = (53 * hash) + getData().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

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

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return clarifai2.internal.grpc.api.DataOuterClass.internal_static_clarifai_api_Region_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                clarifai2.internal.grpc.api.DataOuterClass.Region.class, clarifai2.internal.grpc.api.DataOuterClass.Region.Builder.class);
      }

      // Construct using clarifai2.internal.grpc.api.DataOuterClass.Region.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_ = "";

        if (regionInfoBuilder_ == null) {
          regionInfo_ = null;
        } else {
          regionInfo_ = null;
          regionInfoBuilder_ = null;
        }
        if (dataBuilder_ == null) {
          data_ = null;
        } else {
          data_ = null;
          dataBuilder_ = null;
        }
        return this;
      }

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

      public clarifai2.internal.grpc.api.DataOuterClass.Region getDefaultInstanceForType() {
        return clarifai2.internal.grpc.api.DataOuterClass.Region.getDefaultInstance();
      }

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

      public clarifai2.internal.grpc.api.DataOuterClass.Region buildPartial() {
        clarifai2.internal.grpc.api.DataOuterClass.Region result = new clarifai2.internal.grpc.api.DataOuterClass.Region(this);
        result.id_ = id_;
        if (regionInfoBuilder_ == null) {
          result.regionInfo_ = regionInfo_;
        } else {
          result.regionInfo_ = regionInfoBuilder_.build();
        }
        if (dataBuilder_ == null) {
          result.data_ = data_;
        } else {
          result.data_ = dataBuilder_.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.DataOuterClass.Region) {
          return mergeFrom((clarifai2.internal.grpc.api.DataOuterClass.Region)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(clarifai2.internal.grpc.api.DataOuterClass.Region other) {
        if (other == clarifai2.internal.grpc.api.DataOuterClass.Region.getDefaultInstance()) return this;
        if (!other.getId().isEmpty()) {
          id_ = other.id_;
          onChanged();
        }
        if (other.hasRegionInfo()) {
          mergeRegionInfo(other.getRegionInfo());
        }
        if (other.hasData()) {
          mergeData(other.getData());
        }
        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.DataOuterClass.Region parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (clarifai2.internal.grpc.api.DataOuterClass.Region) 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 clarifai2.internal.grpc.api.DataOuterClass.RegionInfo regionInfo_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
          clarifai2.internal.grpc.api.DataOuterClass.RegionInfo, clarifai2.internal.grpc.api.DataOuterClass.RegionInfo.Builder, clarifai2.internal.grpc.api.DataOuterClass.RegionInfoOrBuilder> regionInfoBuilder_;
      /**
       * .clarifai.api.RegionInfo region_info = 2;
       */
      public boolean hasRegionInfo() {
        return regionInfoBuilder_ != null || regionInfo_ != null;
      }
      /**
       * .clarifai.api.RegionInfo region_info = 2;
       */
      public clarifai2.internal.grpc.api.DataOuterClass.RegionInfo getRegionInfo() {
        if (regionInfoBuilder_ == null) {
          return regionInfo_ == null ? clarifai2.internal.grpc.api.DataOuterClass.RegionInfo.getDefaultInstance() : regionInfo_;
        } else {
          return regionInfoBuilder_.getMessage();
        }
      }
      /**
       * .clarifai.api.RegionInfo region_info = 2;
       */
      public Builder setRegionInfo(clarifai2.internal.grpc.api.DataOuterClass.RegionInfo value) {
        if (regionInfoBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          regionInfo_ = value;
          onChanged();
        } else {
          regionInfoBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * .clarifai.api.RegionInfo region_info = 2;
       */
      public Builder setRegionInfo(
          clarifai2.internal.grpc.api.DataOuterClass.RegionInfo.Builder builderForValue) {
        if (regionInfoBuilder_ == null) {
          regionInfo_ = builderForValue.build();
          onChanged();
        } else {
          regionInfoBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * .clarifai.api.RegionInfo region_info = 2;
       */
      public Builder mergeRegionInfo(clarifai2.internal.grpc.api.DataOuterClass.RegionInfo value) {
        if (regionInfoBuilder_ == null) {
          if (regionInfo_ != null) {
            regionInfo_ =
              clarifai2.internal.grpc.api.DataOuterClass.RegionInfo.newBuilder(regionInfo_).mergeFrom(value).buildPartial();
          } else {
            regionInfo_ = value;
          }
          onChanged();
        } else {
          regionInfoBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * .clarifai.api.RegionInfo region_info = 2;
       */
      public Builder clearRegionInfo() {
        if (regionInfoBuilder_ == null) {
          regionInfo_ = null;
          onChanged();
        } else {
          regionInfo_ = null;
          regionInfoBuilder_ = null;
        }

        return this;
      }
      /**
       * .clarifai.api.RegionInfo region_info = 2;
       */
      public clarifai2.internal.grpc.api.DataOuterClass.RegionInfo.Builder getRegionInfoBuilder() {

        onChanged();
        return getRegionInfoFieldBuilder().getBuilder();
      }
      /**
       * .clarifai.api.RegionInfo region_info = 2;
       */
      public clarifai2.internal.grpc.api.DataOuterClass.RegionInfoOrBuilder getRegionInfoOrBuilder() {
        if (regionInfoBuilder_ != null) {
          return regionInfoBuilder_.getMessageOrBuilder();
        } else {
          return regionInfo_ == null ?
              clarifai2.internal.grpc.api.DataOuterClass.RegionInfo.getDefaultInstance() : regionInfo_;
        }
      }
      /**
       * .clarifai.api.RegionInfo region_info = 2;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          clarifai2.internal.grpc.api.DataOuterClass.RegionInfo, clarifai2.internal.grpc.api.DataOuterClass.RegionInfo.Builder, clarifai2.internal.grpc.api.DataOuterClass.RegionInfoOrBuilder>
          getRegionInfoFieldBuilder() {
        if (regionInfoBuilder_ == null) {
          regionInfoBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              clarifai2.internal.grpc.api.DataOuterClass.RegionInfo, clarifai2.internal.grpc.api.DataOuterClass.RegionInfo.Builder, clarifai2.internal.grpc.api.DataOuterClass.RegionInfoOrBuilder>(
                  getRegionInfo(),
                  getParentForChildren(),
                  isClean());
          regionInfo_ = null;
        }
        return regionInfoBuilder_;
      }

      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 = 3;
       */
      public boolean hasData() {
        return dataBuilder_ != null || data_ != null;
      }
      /**
       * .clarifai.api.Data data = 3;
       */
      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 = 3;
       */
      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 = 3;
       */
      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 = 3;
       */
      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 = 3;
       */
      public Builder clearData() {
        if (dataBuilder_ == null) {
          data_ = null;
          onChanged();
        } else {
          data_ = null;
          dataBuilder_ = null;
        }

        return this;
      }
      /**
       * .clarifai.api.Data data = 3;
       */
      public clarifai2.internal.grpc.api.DataOuterClass.Data.Builder getDataBuilder() {

        onChanged();
        return getDataFieldBuilder().getBuilder();
      }
      /**
       * .clarifai.api.Data data = 3;
       */
      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 = 3;
       */
      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_;
      }
      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.Region)
    }

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

    public static clarifai2.internal.grpc.api.DataOuterClass.Region getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

  }

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

    /**
     * .clarifai.api.BoundingBox bounding_box = 1;
     */
    boolean hasBoundingBox();
    /**
     * .clarifai.api.BoundingBox bounding_box = 1;
     */
    clarifai2.internal.grpc.api.DataOuterClass.BoundingBox getBoundingBox();
    /**
     * .clarifai.api.BoundingBox bounding_box = 1;
     */
    clarifai2.internal.grpc.api.DataOuterClass.BoundingBoxOrBuilder getBoundingBoxOrBuilder();

    /**
     * float value = 2;
     */
    float getValue();

    /**
     * .clarifai.api.RegionInfoFeedback feedback = 3;
     */
    int getFeedbackValue();
    /**
     * .clarifai.api.RegionInfoFeedback feedback = 3;
     */
    clarifai2.internal.grpc.api.DataOuterClass.RegionInfoFeedback getFeedback();

    /**
     * .clarifai.api.Mask mask = 4;
     */
    boolean hasMask();
    /**
     * .clarifai.api.Mask mask = 4;
     */
    clarifai2.internal.grpc.api.DataOuterClass.Mask getMask();
    /**
     * .clarifai.api.Mask mask = 4;
     */
    clarifai2.internal.grpc.api.DataOuterClass.MaskOrBuilder getMaskOrBuilder();
  }
  /**
   * Protobuf type {@code clarifai.api.RegionInfo}
   */
  public  static final class RegionInfo extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:clarifai.api.RegionInfo)
      RegionInfoOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use RegionInfo.newBuilder() to construct.
    private RegionInfo(com.google.protobuf.GeneratedMessageV3.Builder builder) {
      super(builder);
    }
    private RegionInfo() {
      value_ = 0F;
      feedback_ = 0;
    }

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

              break;
            }
            case 21: {

              value_ = input.readFloat();
              break;
            }
            case 24: {
              int rawValue = input.readEnum();

              feedback_ = rawValue;
              break;
            }
            case 34: {
              clarifai2.internal.grpc.api.DataOuterClass.Mask.Builder subBuilder = null;
              if (mask_ != null) {
                subBuilder = mask_.toBuilder();
              }
              mask_ = input.readMessage(clarifai2.internal.grpc.api.DataOuterClass.Mask.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(mask_);
                mask_ = 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.DataOuterClass.internal_static_clarifai_api_RegionInfo_descriptor;
    }

    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return clarifai2.internal.grpc.api.DataOuterClass.internal_static_clarifai_api_RegionInfo_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              clarifai2.internal.grpc.api.DataOuterClass.RegionInfo.class, clarifai2.internal.grpc.api.DataOuterClass.RegionInfo.Builder.class);
    }

    public static final int BOUNDING_BOX_FIELD_NUMBER = 1;
    private clarifai2.internal.grpc.api.DataOuterClass.BoundingBox boundingBox_;
    /**
     * .clarifai.api.BoundingBox bounding_box = 1;
     */
    public boolean hasBoundingBox() {
      return boundingBox_ != null;
    }
    /**
     * .clarifai.api.BoundingBox bounding_box = 1;
     */
    public clarifai2.internal.grpc.api.DataOuterClass.BoundingBox getBoundingBox() {
      return boundingBox_ == null ? clarifai2.internal.grpc.api.DataOuterClass.BoundingBox.getDefaultInstance() : boundingBox_;
    }
    /**
     * .clarifai.api.BoundingBox bounding_box = 1;
     */
    public clarifai2.internal.grpc.api.DataOuterClass.BoundingBoxOrBuilder getBoundingBoxOrBuilder() {
      return getBoundingBox();
    }

    public static final int VALUE_FIELD_NUMBER = 2;
    private float value_;
    /**
     * float value = 2;
     */
    public float getValue() {
      return value_;
    }

    public static final int FEEDBACK_FIELD_NUMBER = 3;
    private int feedback_;
    /**
     * .clarifai.api.RegionInfoFeedback feedback = 3;
     */
    public int getFeedbackValue() {
      return feedback_;
    }
    /**
     * .clarifai.api.RegionInfoFeedback feedback = 3;
     */
    public clarifai2.internal.grpc.api.DataOuterClass.RegionInfoFeedback getFeedback() {
      clarifai2.internal.grpc.api.DataOuterClass.RegionInfoFeedback result = clarifai2.internal.grpc.api.DataOuterClass.RegionInfoFeedback.valueOf(feedback_);
      return result == null ? clarifai2.internal.grpc.api.DataOuterClass.RegionInfoFeedback.UNRECOGNIZED : result;
    }

    public static final int MASK_FIELD_NUMBER = 4;
    private clarifai2.internal.grpc.api.DataOuterClass.Mask mask_;
    /**
     * .clarifai.api.Mask mask = 4;
     */
    public boolean hasMask() {
      return mask_ != null;
    }
    /**
     * .clarifai.api.Mask mask = 4;
     */
    public clarifai2.internal.grpc.api.DataOuterClass.Mask getMask() {
      return mask_ == null ? clarifai2.internal.grpc.api.DataOuterClass.Mask.getDefaultInstance() : mask_;
    }
    /**
     * .clarifai.api.Mask mask = 4;
     */
    public clarifai2.internal.grpc.api.DataOuterClass.MaskOrBuilder getMaskOrBuilder() {
      return getMask();
    }

    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 (boundingBox_ != null) {
        output.writeMessage(1, getBoundingBox());
      }
      if (value_ != 0F) {
        output.writeFloat(2, value_);
      }
      if (feedback_ != clarifai2.internal.grpc.api.DataOuterClass.RegionInfoFeedback.accurate.getNumber()) {
        output.writeEnum(3, feedback_);
      }
      if (mask_ != null) {
        output.writeMessage(4, getMask());
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      if (boundingBox_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, getBoundingBox());
      }
      if (value_ != 0F) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(2, value_);
      }
      if (feedback_ != clarifai2.internal.grpc.api.DataOuterClass.RegionInfoFeedback.accurate.getNumber()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(3, feedback_);
      }
      if (mask_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(4, getMask());
      }
      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.DataOuterClass.RegionInfo)) {
        return super.equals(obj);
      }
      clarifai2.internal.grpc.api.DataOuterClass.RegionInfo other = (clarifai2.internal.grpc.api.DataOuterClass.RegionInfo) obj;

      boolean result = true;
      result = result && (hasBoundingBox() == other.hasBoundingBox());
      if (hasBoundingBox()) {
        result = result && getBoundingBox()
            .equals(other.getBoundingBox());
      }
      result = result && (
          java.lang.Float.floatToIntBits(getValue())
          == java.lang.Float.floatToIntBits(
              other.getValue()));
      result = result && feedback_ == other.feedback_;
      result = result && (hasMask() == other.hasMask());
      if (hasMask()) {
        result = result && getMask()
            .equals(other.getMask());
      }
      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 (hasBoundingBox()) {
        hash = (37 * hash) + BOUNDING_BOX_FIELD_NUMBER;
        hash = (53 * hash) + getBoundingBox().hashCode();
      }
      hash = (37 * hash) + VALUE_FIELD_NUMBER;
      hash = (53 * hash) + java.lang.Float.floatToIntBits(
          getValue());
      hash = (37 * hash) + FEEDBACK_FIELD_NUMBER;
      hash = (53 * hash) + feedback_;
      if (hasMask()) {
        hash = (37 * hash) + MASK_FIELD_NUMBER;
        hash = (53 * hash) + getMask().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

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

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return clarifai2.internal.grpc.api.DataOuterClass.internal_static_clarifai_api_RegionInfo_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                clarifai2.internal.grpc.api.DataOuterClass.RegionInfo.class, clarifai2.internal.grpc.api.DataOuterClass.RegionInfo.Builder.class);
      }

      // Construct using clarifai2.internal.grpc.api.DataOuterClass.RegionInfo.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 (boundingBoxBuilder_ == null) {
          boundingBox_ = null;
        } else {
          boundingBox_ = null;
          boundingBoxBuilder_ = null;
        }
        value_ = 0F;

        feedback_ = 0;

        if (maskBuilder_ == null) {
          mask_ = null;
        } else {
          mask_ = null;
          maskBuilder_ = null;
        }
        return this;
      }

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

      public clarifai2.internal.grpc.api.DataOuterClass.RegionInfo getDefaultInstanceForType() {
        return clarifai2.internal.grpc.api.DataOuterClass.RegionInfo.getDefaultInstance();
      }

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

      public clarifai2.internal.grpc.api.DataOuterClass.RegionInfo buildPartial() {
        clarifai2.internal.grpc.api.DataOuterClass.RegionInfo result = new clarifai2.internal.grpc.api.DataOuterClass.RegionInfo(this);
        if (boundingBoxBuilder_ == null) {
          result.boundingBox_ = boundingBox_;
        } else {
          result.boundingBox_ = boundingBoxBuilder_.build();
        }
        result.value_ = value_;
        result.feedback_ = feedback_;
        if (maskBuilder_ == null) {
          result.mask_ = mask_;
        } else {
          result.mask_ = maskBuilder_.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.DataOuterClass.RegionInfo) {
          return mergeFrom((clarifai2.internal.grpc.api.DataOuterClass.RegionInfo)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(clarifai2.internal.grpc.api.DataOuterClass.RegionInfo other) {
        if (other == clarifai2.internal.grpc.api.DataOuterClass.RegionInfo.getDefaultInstance()) return this;
        if (other.hasBoundingBox()) {
          mergeBoundingBox(other.getBoundingBox());
        }
        if (other.getValue() != 0F) {
          setValue(other.getValue());
        }
        if (other.feedback_ != 0) {
          setFeedbackValue(other.getFeedbackValue());
        }
        if (other.hasMask()) {
          mergeMask(other.getMask());
        }
        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.DataOuterClass.RegionInfo parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (clarifai2.internal.grpc.api.DataOuterClass.RegionInfo) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private clarifai2.internal.grpc.api.DataOuterClass.BoundingBox boundingBox_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
          clarifai2.internal.grpc.api.DataOuterClass.BoundingBox, clarifai2.internal.grpc.api.DataOuterClass.BoundingBox.Builder, clarifai2.internal.grpc.api.DataOuterClass.BoundingBoxOrBuilder> boundingBoxBuilder_;
      /**
       * .clarifai.api.BoundingBox bounding_box = 1;
       */
      public boolean hasBoundingBox() {
        return boundingBoxBuilder_ != null || boundingBox_ != null;
      }
      /**
       * .clarifai.api.BoundingBox bounding_box = 1;
       */
      public clarifai2.internal.grpc.api.DataOuterClass.BoundingBox getBoundingBox() {
        if (boundingBoxBuilder_ == null) {
          return boundingBox_ == null ? clarifai2.internal.grpc.api.DataOuterClass.BoundingBox.getDefaultInstance() : boundingBox_;
        } else {
          return boundingBoxBuilder_.getMessage();
        }
      }
      /**
       * .clarifai.api.BoundingBox bounding_box = 1;
       */
      public Builder setBoundingBox(clarifai2.internal.grpc.api.DataOuterClass.BoundingBox value) {
        if (boundingBoxBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          boundingBox_ = value;
          onChanged();
        } else {
          boundingBoxBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * .clarifai.api.BoundingBox bounding_box = 1;
       */
      public Builder setBoundingBox(
          clarifai2.internal.grpc.api.DataOuterClass.BoundingBox.Builder builderForValue) {
        if (boundingBoxBuilder_ == null) {
          boundingBox_ = builderForValue.build();
          onChanged();
        } else {
          boundingBoxBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * .clarifai.api.BoundingBox bounding_box = 1;
       */
      public Builder mergeBoundingBox(clarifai2.internal.grpc.api.DataOuterClass.BoundingBox value) {
        if (boundingBoxBuilder_ == null) {
          if (boundingBox_ != null) {
            boundingBox_ =
              clarifai2.internal.grpc.api.DataOuterClass.BoundingBox.newBuilder(boundingBox_).mergeFrom(value).buildPartial();
          } else {
            boundingBox_ = value;
          }
          onChanged();
        } else {
          boundingBoxBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * .clarifai.api.BoundingBox bounding_box = 1;
       */
      public Builder clearBoundingBox() {
        if (boundingBoxBuilder_ == null) {
          boundingBox_ = null;
          onChanged();
        } else {
          boundingBox_ = null;
          boundingBoxBuilder_ = null;
        }

        return this;
      }
      /**
       * .clarifai.api.BoundingBox bounding_box = 1;
       */
      public clarifai2.internal.grpc.api.DataOuterClass.BoundingBox.Builder getBoundingBoxBuilder() {

        onChanged();
        return getBoundingBoxFieldBuilder().getBuilder();
      }
      /**
       * .clarifai.api.BoundingBox bounding_box = 1;
       */
      public clarifai2.internal.grpc.api.DataOuterClass.BoundingBoxOrBuilder getBoundingBoxOrBuilder() {
        if (boundingBoxBuilder_ != null) {
          return boundingBoxBuilder_.getMessageOrBuilder();
        } else {
          return boundingBox_ == null ?
              clarifai2.internal.grpc.api.DataOuterClass.BoundingBox.getDefaultInstance() : boundingBox_;
        }
      }
      /**
       * .clarifai.api.BoundingBox bounding_box = 1;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          clarifai2.internal.grpc.api.DataOuterClass.BoundingBox, clarifai2.internal.grpc.api.DataOuterClass.BoundingBox.Builder, clarifai2.internal.grpc.api.DataOuterClass.BoundingBoxOrBuilder>
          getBoundingBoxFieldBuilder() {
        if (boundingBoxBuilder_ == null) {
          boundingBoxBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              clarifai2.internal.grpc.api.DataOuterClass.BoundingBox, clarifai2.internal.grpc.api.DataOuterClass.BoundingBox.Builder, clarifai2.internal.grpc.api.DataOuterClass.BoundingBoxOrBuilder>(
                  getBoundingBox(),
                  getParentForChildren(),
                  isClean());
          boundingBox_ = null;
        }
        return boundingBoxBuilder_;
      }

      private float value_ ;
      /**
       * float value = 2;
       */
      public float getValue() {
        return value_;
      }
      /**
       * float value = 2;
       */
      public Builder setValue(float value) {

        value_ = value;
        onChanged();
        return this;
      }
      /**
       * float value = 2;
       */
      public Builder clearValue() {

        value_ = 0F;
        onChanged();
        return this;
      }

      private int feedback_ = 0;
      /**
       * .clarifai.api.RegionInfoFeedback feedback = 3;
       */
      public int getFeedbackValue() {
        return feedback_;
      }
      /**
       * .clarifai.api.RegionInfoFeedback feedback = 3;
       */
      public Builder setFeedbackValue(int value) {
        feedback_ = value;
        onChanged();
        return this;
      }
      /**
       * .clarifai.api.RegionInfoFeedback feedback = 3;
       */
      public clarifai2.internal.grpc.api.DataOuterClass.RegionInfoFeedback getFeedback() {
        clarifai2.internal.grpc.api.DataOuterClass.RegionInfoFeedback result = clarifai2.internal.grpc.api.DataOuterClass.RegionInfoFeedback.valueOf(feedback_);
        return result == null ? clarifai2.internal.grpc.api.DataOuterClass.RegionInfoFeedback.UNRECOGNIZED : result;
      }
      /**
       * .clarifai.api.RegionInfoFeedback feedback = 3;
       */
      public Builder setFeedback(clarifai2.internal.grpc.api.DataOuterClass.RegionInfoFeedback value) {
        if (value == null) {
          throw new NullPointerException();
        }

        feedback_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * .clarifai.api.RegionInfoFeedback feedback = 3;
       */
      public Builder clearFeedback() {

        feedback_ = 0;
        onChanged();
        return this;
      }

      private clarifai2.internal.grpc.api.DataOuterClass.Mask mask_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
          clarifai2.internal.grpc.api.DataOuterClass.Mask, clarifai2.internal.grpc.api.DataOuterClass.Mask.Builder, clarifai2.internal.grpc.api.DataOuterClass.MaskOrBuilder> maskBuilder_;
      /**
       * .clarifai.api.Mask mask = 4;
       */
      public boolean hasMask() {
        return maskBuilder_ != null || mask_ != null;
      }
      /**
       * .clarifai.api.Mask mask = 4;
       */
      public clarifai2.internal.grpc.api.DataOuterClass.Mask getMask() {
        if (maskBuilder_ == null) {
          return mask_ == null ? clarifai2.internal.grpc.api.DataOuterClass.Mask.getDefaultInstance() : mask_;
        } else {
          return maskBuilder_.getMessage();
        }
      }
      /**
       * .clarifai.api.Mask mask = 4;
       */
      public Builder setMask(clarifai2.internal.grpc.api.DataOuterClass.Mask value) {
        if (maskBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          mask_ = value;
          onChanged();
        } else {
          maskBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * .clarifai.api.Mask mask = 4;
       */
      public Builder setMask(
          clarifai2.internal.grpc.api.DataOuterClass.Mask.Builder builderForValue) {
        if (maskBuilder_ == null) {
          mask_ = builderForValue.build();
          onChanged();
        } else {
          maskBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * .clarifai.api.Mask mask = 4;
       */
      public Builder mergeMask(clarifai2.internal.grpc.api.DataOuterClass.Mask value) {
        if (maskBuilder_ == null) {
          if (mask_ != null) {
            mask_ =
              clarifai2.internal.grpc.api.DataOuterClass.Mask.newBuilder(mask_).mergeFrom(value).buildPartial();
          } else {
            mask_ = value;
          }
          onChanged();
        } else {
          maskBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * .clarifai.api.Mask mask = 4;
       */
      public Builder clearMask() {
        if (maskBuilder_ == null) {
          mask_ = null;
          onChanged();
        } else {
          mask_ = null;
          maskBuilder_ = null;
        }

        return this;
      }
      /**
       * .clarifai.api.Mask mask = 4;
       */
      public clarifai2.internal.grpc.api.DataOuterClass.Mask.Builder getMaskBuilder() {

        onChanged();
        return getMaskFieldBuilder().getBuilder();
      }
      /**
       * .clarifai.api.Mask mask = 4;
       */
      public clarifai2.internal.grpc.api.DataOuterClass.MaskOrBuilder getMaskOrBuilder() {
        if (maskBuilder_ != null) {
          return maskBuilder_.getMessageOrBuilder();
        } else {
          return mask_ == null ?
              clarifai2.internal.grpc.api.DataOuterClass.Mask.getDefaultInstance() : mask_;
        }
      }
      /**
       * .clarifai.api.Mask mask = 4;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          clarifai2.internal.grpc.api.DataOuterClass.Mask, clarifai2.internal.grpc.api.DataOuterClass.Mask.Builder, clarifai2.internal.grpc.api.DataOuterClass.MaskOrBuilder>
          getMaskFieldBuilder() {
        if (maskBuilder_ == null) {
          maskBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              clarifai2.internal.grpc.api.DataOuterClass.Mask, clarifai2.internal.grpc.api.DataOuterClass.Mask.Builder, clarifai2.internal.grpc.api.DataOuterClass.MaskOrBuilder>(
                  getMask(),
                  getParentForChildren(),
                  isClean());
          mask_ = null;
        }
        return maskBuilder_;
      }
      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.RegionInfo)
    }

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

    public static clarifai2.internal.grpc.api.DataOuterClass.RegionInfo getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

  }

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

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

    /**
     * float left_col = 2 [(.clarifai.api.utils.cl_show_if_empty) = true];
     */
    float getLeftCol();

    /**
     * float bottom_row = 3 [(.clarifai.api.utils.cl_show_if_empty) = true];
     */
    float getBottomRow();

    /**
     * float right_col = 4 [(.clarifai.api.utils.cl_show_if_empty) = true];
     */
    float getRightCol();
  }
  /**
   * Protobuf type {@code clarifai.api.BoundingBox}
   */
  public  static final class BoundingBox extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:clarifai.api.BoundingBox)
      BoundingBoxOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use BoundingBox.newBuilder() to construct.
    private BoundingBox(com.google.protobuf.GeneratedMessageV3.Builder builder) {
      super(builder);
    }
    private BoundingBox() {
      topRow_ = 0F;
      leftCol_ = 0F;
      bottomRow_ = 0F;
      rightCol_ = 0F;
    }

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

              topRow_ = input.readFloat();
              break;
            }
            case 21: {

              leftCol_ = input.readFloat();
              break;
            }
            case 29: {

              bottomRow_ = input.readFloat();
              break;
            }
            case 37: {

              rightCol_ = input.readFloat();
              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.DataOuterClass.internal_static_clarifai_api_BoundingBox_descriptor;
    }

    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return clarifai2.internal.grpc.api.DataOuterClass.internal_static_clarifai_api_BoundingBox_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              clarifai2.internal.grpc.api.DataOuterClass.BoundingBox.class, clarifai2.internal.grpc.api.DataOuterClass.BoundingBox.Builder.class);
    }

    public static final int TOP_ROW_FIELD_NUMBER = 1;
    private float topRow_;
    /**
     * float top_row = 1 [(.clarifai.api.utils.cl_show_if_empty) = true];
     */
    public float getTopRow() {
      return topRow_;
    }

    public static final int LEFT_COL_FIELD_NUMBER = 2;
    private float leftCol_;
    /**
     * float left_col = 2 [(.clarifai.api.utils.cl_show_if_empty) = true];
     */
    public float getLeftCol() {
      return leftCol_;
    }

    public static final int BOTTOM_ROW_FIELD_NUMBER = 3;
    private float bottomRow_;
    /**
     * float bottom_row = 3 [(.clarifai.api.utils.cl_show_if_empty) = true];
     */
    public float getBottomRow() {
      return bottomRow_;
    }

    public static final int RIGHT_COL_FIELD_NUMBER = 4;
    private float rightCol_;
    /**
     * float right_col = 4 [(.clarifai.api.utils.cl_show_if_empty) = true];
     */
    public float getRightCol() {
      return rightCol_;
    }

    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 (topRow_ != 0F) {
        output.writeFloat(1, topRow_);
      }
      if (leftCol_ != 0F) {
        output.writeFloat(2, leftCol_);
      }
      if (bottomRow_ != 0F) {
        output.writeFloat(3, bottomRow_);
      }
      if (rightCol_ != 0F) {
        output.writeFloat(4, rightCol_);
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      if (topRow_ != 0F) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(1, topRow_);
      }
      if (leftCol_ != 0F) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(2, leftCol_);
      }
      if (bottomRow_ != 0F) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(3, bottomRow_);
      }
      if (rightCol_ != 0F) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(4, rightCol_);
      }
      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.DataOuterClass.BoundingBox)) {
        return super.equals(obj);
      }
      clarifai2.internal.grpc.api.DataOuterClass.BoundingBox other = (clarifai2.internal.grpc.api.DataOuterClass.BoundingBox) obj;

      boolean result = true;
      result = result && (
          java.lang.Float.floatToIntBits(getTopRow())
          == java.lang.Float.floatToIntBits(
              other.getTopRow()));
      result = result && (
          java.lang.Float.floatToIntBits(getLeftCol())
          == java.lang.Float.floatToIntBits(
              other.getLeftCol()));
      result = result && (
          java.lang.Float.floatToIntBits(getBottomRow())
          == java.lang.Float.floatToIntBits(
              other.getBottomRow()));
      result = result && (
          java.lang.Float.floatToIntBits(getRightCol())
          == java.lang.Float.floatToIntBits(
              other.getRightCol()));
      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) + TOP_ROW_FIELD_NUMBER;
      hash = (53 * hash) + java.lang.Float.floatToIntBits(
          getTopRow());
      hash = (37 * hash) + LEFT_COL_FIELD_NUMBER;
      hash = (53 * hash) + java.lang.Float.floatToIntBits(
          getLeftCol());
      hash = (37 * hash) + BOTTOM_ROW_FIELD_NUMBER;
      hash = (53 * hash) + java.lang.Float.floatToIntBits(
          getBottomRow());
      hash = (37 * hash) + RIGHT_COL_FIELD_NUMBER;
      hash = (53 * hash) + java.lang.Float.floatToIntBits(
          getRightCol());
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

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

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return clarifai2.internal.grpc.api.DataOuterClass.internal_static_clarifai_api_BoundingBox_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                clarifai2.internal.grpc.api.DataOuterClass.BoundingBox.class, clarifai2.internal.grpc.api.DataOuterClass.BoundingBox.Builder.class);
      }

      // Construct using clarifai2.internal.grpc.api.DataOuterClass.BoundingBox.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();
        topRow_ = 0F;

        leftCol_ = 0F;

        bottomRow_ = 0F;

        rightCol_ = 0F;

        return this;
      }

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

      public clarifai2.internal.grpc.api.DataOuterClass.BoundingBox getDefaultInstanceForType() {
        return clarifai2.internal.grpc.api.DataOuterClass.BoundingBox.getDefaultInstance();
      }

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

      public clarifai2.internal.grpc.api.DataOuterClass.BoundingBox buildPartial() {
        clarifai2.internal.grpc.api.DataOuterClass.BoundingBox result = new clarifai2.internal.grpc.api.DataOuterClass.BoundingBox(this);
        result.topRow_ = topRow_;
        result.leftCol_ = leftCol_;
        result.bottomRow_ = bottomRow_;
        result.rightCol_ = rightCol_;
        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.DataOuterClass.BoundingBox) {
          return mergeFrom((clarifai2.internal.grpc.api.DataOuterClass.BoundingBox)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(clarifai2.internal.grpc.api.DataOuterClass.BoundingBox other) {
        if (other == clarifai2.internal.grpc.api.DataOuterClass.BoundingBox.getDefaultInstance()) return this;
        if (other.getTopRow() != 0F) {
          setTopRow(other.getTopRow());
        }
        if (other.getLeftCol() != 0F) {
          setLeftCol(other.getLeftCol());
        }
        if (other.getBottomRow() != 0F) {
          setBottomRow(other.getBottomRow());
        }
        if (other.getRightCol() != 0F) {
          setRightCol(other.getRightCol());
        }
        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.DataOuterClass.BoundingBox parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (clarifai2.internal.grpc.api.DataOuterClass.BoundingBox) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private float topRow_ ;
      /**
       * float top_row = 1 [(.clarifai.api.utils.cl_show_if_empty) = true];
       */
      public float getTopRow() {
        return topRow_;
      }
      /**
       * float top_row = 1 [(.clarifai.api.utils.cl_show_if_empty) = true];
       */
      public Builder setTopRow(float value) {

        topRow_ = value;
        onChanged();
        return this;
      }
      /**
       * float top_row = 1 [(.clarifai.api.utils.cl_show_if_empty) = true];
       */
      public Builder clearTopRow() {

        topRow_ = 0F;
        onChanged();
        return this;
      }

      private float leftCol_ ;
      /**
       * float left_col = 2 [(.clarifai.api.utils.cl_show_if_empty) = true];
       */
      public float getLeftCol() {
        return leftCol_;
      }
      /**
       * float left_col = 2 [(.clarifai.api.utils.cl_show_if_empty) = true];
       */
      public Builder setLeftCol(float value) {

        leftCol_ = value;
        onChanged();
        return this;
      }
      /**
       * float left_col = 2 [(.clarifai.api.utils.cl_show_if_empty) = true];
       */
      public Builder clearLeftCol() {

        leftCol_ = 0F;
        onChanged();
        return this;
      }

      private float bottomRow_ ;
      /**
       * float bottom_row = 3 [(.clarifai.api.utils.cl_show_if_empty) = true];
       */
      public float getBottomRow() {
        return bottomRow_;
      }
      /**
       * float bottom_row = 3 [(.clarifai.api.utils.cl_show_if_empty) = true];
       */
      public Builder setBottomRow(float value) {

        bottomRow_ = value;
        onChanged();
        return this;
      }
      /**
       * float bottom_row = 3 [(.clarifai.api.utils.cl_show_if_empty) = true];
       */
      public Builder clearBottomRow() {

        bottomRow_ = 0F;
        onChanged();
        return this;
      }

      private float rightCol_ ;
      /**
       * float right_col = 4 [(.clarifai.api.utils.cl_show_if_empty) = true];
       */
      public float getRightCol() {
        return rightCol_;
      }
      /**
       * float right_col = 4 [(.clarifai.api.utils.cl_show_if_empty) = true];
       */
      public Builder setRightCol(float value) {

        rightCol_ = value;
        onChanged();
        return this;
      }
      /**
       * float right_col = 4 [(.clarifai.api.utils.cl_show_if_empty) = true];
       */
      public Builder clearRightCol() {

        rightCol_ = 0F;
        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.BoundingBox)
    }

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

    public static clarifai2.internal.grpc.api.DataOuterClass.BoundingBox getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

  }

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

    /**
     * uint32 index = 1 [(.clarifai.api.utils.cl_show_if_empty) = true];
     */
    int getIndex();

    /**
     * uint32 time = 2 [(.clarifai.api.utils.cl_show_if_empty) = true];
     */
    int getTime();
  }
  /**
   * Protobuf type {@code clarifai.api.FrameInfo}
   */
  public  static final class FrameInfo extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:clarifai.api.FrameInfo)
      FrameInfoOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use FrameInfo.newBuilder() to construct.
    private FrameInfo(com.google.protobuf.GeneratedMessageV3.Builder builder) {
      super(builder);
    }
    private FrameInfo() {
      index_ = 0;
      time_ = 0;
    }

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

              index_ = input.readUInt32();
              break;
            }
            case 16: {

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

    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return clarifai2.internal.grpc.api.DataOuterClass.internal_static_clarifai_api_FrameInfo_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              clarifai2.internal.grpc.api.DataOuterClass.FrameInfo.class, clarifai2.internal.grpc.api.DataOuterClass.FrameInfo.Builder.class);
    }

    public static final int INDEX_FIELD_NUMBER = 1;
    private int index_;
    /**
     * uint32 index = 1 [(.clarifai.api.utils.cl_show_if_empty) = true];
     */
    public int getIndex() {
      return index_;
    }

    public static final int TIME_FIELD_NUMBER = 2;
    private int time_;
    /**
     * uint32 time = 2 [(.clarifai.api.utils.cl_show_if_empty) = true];
     */
    public int getTime() {
      return time_;
    }

    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 (index_ != 0) {
        output.writeUInt32(1, index_);
      }
      if (time_ != 0) {
        output.writeUInt32(2, time_);
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      if (index_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, index_);
      }
      if (time_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, time_);
      }
      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.DataOuterClass.FrameInfo)) {
        return super.equals(obj);
      }
      clarifai2.internal.grpc.api.DataOuterClass.FrameInfo other = (clarifai2.internal.grpc.api.DataOuterClass.FrameInfo) obj;

      boolean result = true;
      result = result && (getIndex()
          == other.getIndex());
      result = result && (getTime()
          == other.getTime());
      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) + INDEX_FIELD_NUMBER;
      hash = (53 * hash) + getIndex();
      hash = (37 * hash) + TIME_FIELD_NUMBER;
      hash = (53 * hash) + getTime();
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

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

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return clarifai2.internal.grpc.api.DataOuterClass.internal_static_clarifai_api_FrameInfo_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                clarifai2.internal.grpc.api.DataOuterClass.FrameInfo.class, clarifai2.internal.grpc.api.DataOuterClass.FrameInfo.Builder.class);
      }

      // Construct using clarifai2.internal.grpc.api.DataOuterClass.FrameInfo.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();
        index_ = 0;

        time_ = 0;

        return this;
      }

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

      public clarifai2.internal.grpc.api.DataOuterClass.FrameInfo getDefaultInstanceForType() {
        return clarifai2.internal.grpc.api.DataOuterClass.FrameInfo.getDefaultInstance();
      }

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

      public clarifai2.internal.grpc.api.DataOuterClass.FrameInfo buildPartial() {
        clarifai2.internal.grpc.api.DataOuterClass.FrameInfo result = new clarifai2.internal.grpc.api.DataOuterClass.FrameInfo(this);
        result.index_ = index_;
        result.time_ = time_;
        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.DataOuterClass.FrameInfo) {
          return mergeFrom((clarifai2.internal.grpc.api.DataOuterClass.FrameInfo)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(clarifai2.internal.grpc.api.DataOuterClass.FrameInfo other) {
        if (other == clarifai2.internal.grpc.api.DataOuterClass.FrameInfo.getDefaultInstance()) return this;
        if (other.getIndex() != 0) {
          setIndex(other.getIndex());
        }
        if (other.getTime() != 0) {
          setTime(other.getTime());
        }
        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.DataOuterClass.FrameInfo parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (clarifai2.internal.grpc.api.DataOuterClass.FrameInfo) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int index_ ;
      /**
       * uint32 index = 1 [(.clarifai.api.utils.cl_show_if_empty) = true];
       */
      public int getIndex() {
        return index_;
      }
      /**
       * uint32 index = 1 [(.clarifai.api.utils.cl_show_if_empty) = true];
       */
      public Builder setIndex(int value) {

        index_ = value;
        onChanged();
        return this;
      }
      /**
       * uint32 index = 1 [(.clarifai.api.utils.cl_show_if_empty) = true];
       */
      public Builder clearIndex() {

        index_ = 0;
        onChanged();
        return this;
      }

      private int time_ ;
      /**
       * uint32 time = 2 [(.clarifai.api.utils.cl_show_if_empty) = true];
       */
      public int getTime() {
        return time_;
      }
      /**
       * uint32 time = 2 [(.clarifai.api.utils.cl_show_if_empty) = true];
       */
      public Builder setTime(int value) {

        time_ = value;
        onChanged();
        return this;
      }
      /**
       * uint32 time = 2 [(.clarifai.api.utils.cl_show_if_empty) = true];
       */
      public Builder clearTime() {

        time_ = 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.FrameInfo)
    }

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

    public static clarifai2.internal.grpc.api.DataOuterClass.FrameInfo getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

  }

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

    /**
     * .clarifai.api.FrameInfo frame_info = 1;
     */
    boolean hasFrameInfo();
    /**
     * .clarifai.api.FrameInfo frame_info = 1;
     */
    clarifai2.internal.grpc.api.DataOuterClass.FrameInfo getFrameInfo();
    /**
     * .clarifai.api.FrameInfo frame_info = 1;
     */
    clarifai2.internal.grpc.api.DataOuterClass.FrameInfoOrBuilder getFrameInfoOrBuilder();

    /**
     * .clarifai.api.Data data = 2;
     */
    boolean hasData();
    /**
     * .clarifai.api.Data data = 2;
     */
    clarifai2.internal.grpc.api.DataOuterClass.Data getData();
    /**
     * .clarifai.api.Data data = 2;
     */
    clarifai2.internal.grpc.api.DataOuterClass.DataOrBuilder getDataOrBuilder();
  }
  /**
   * Protobuf type {@code clarifai.api.Frame}
   */
  public  static final class Frame extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:clarifai.api.Frame)
      FrameOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use Frame.newBuilder() to construct.
    private Frame(com.google.protobuf.GeneratedMessageV3.Builder builder) {
      super(builder);
    }
    private Frame() {
    }

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

              break;
            }
            case 18: {
              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;
            }
          }
        }
      } 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.DataOuterClass.internal_static_clarifai_api_Frame_descriptor;
    }

    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return clarifai2.internal.grpc.api.DataOuterClass.internal_static_clarifai_api_Frame_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              clarifai2.internal.grpc.api.DataOuterClass.Frame.class, clarifai2.internal.grpc.api.DataOuterClass.Frame.Builder.class);
    }

    public static final int FRAME_INFO_FIELD_NUMBER = 1;
    private clarifai2.internal.grpc.api.DataOuterClass.FrameInfo frameInfo_;
    /**
     * .clarifai.api.FrameInfo frame_info = 1;
     */
    public boolean hasFrameInfo() {
      return frameInfo_ != null;
    }
    /**
     * .clarifai.api.FrameInfo frame_info = 1;
     */
    public clarifai2.internal.grpc.api.DataOuterClass.FrameInfo getFrameInfo() {
      return frameInfo_ == null ? clarifai2.internal.grpc.api.DataOuterClass.FrameInfo.getDefaultInstance() : frameInfo_;
    }
    /**
     * .clarifai.api.FrameInfo frame_info = 1;
     */
    public clarifai2.internal.grpc.api.DataOuterClass.FrameInfoOrBuilder getFrameInfoOrBuilder() {
      return getFrameInfo();
    }

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

    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 (frameInfo_ != null) {
        output.writeMessage(1, getFrameInfo());
      }
      if (data_ != null) {
        output.writeMessage(2, getData());
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      if (frameInfo_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, getFrameInfo());
      }
      if (data_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, getData());
      }
      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.DataOuterClass.Frame)) {
        return super.equals(obj);
      }
      clarifai2.internal.grpc.api.DataOuterClass.Frame other = (clarifai2.internal.grpc.api.DataOuterClass.Frame) obj;

      boolean result = true;
      result = result && (hasFrameInfo() == other.hasFrameInfo());
      if (hasFrameInfo()) {
        result = result && getFrameInfo()
            .equals(other.getFrameInfo());
      }
      result = result && (hasData() == other.hasData());
      if (hasData()) {
        result = result && getData()
            .equals(other.getData());
      }
      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 (hasFrameInfo()) {
        hash = (37 * hash) + FRAME_INFO_FIELD_NUMBER;
        hash = (53 * hash) + getFrameInfo().hashCode();
      }
      if (hasData()) {
        hash = (37 * hash) + DATA_FIELD_NUMBER;
        hash = (53 * hash) + getData().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

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

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return clarifai2.internal.grpc.api.DataOuterClass.internal_static_clarifai_api_Frame_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                clarifai2.internal.grpc.api.DataOuterClass.Frame.class, clarifai2.internal.grpc.api.DataOuterClass.Frame.Builder.class);
      }

      // Construct using clarifai2.internal.grpc.api.DataOuterClass.Frame.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 (frameInfoBuilder_ == null) {
          frameInfo_ = null;
        } else {
          frameInfo_ = null;
          frameInfoBuilder_ = null;
        }
        if (dataBuilder_ == null) {
          data_ = null;
        } else {
          data_ = null;
          dataBuilder_ = null;
        }
        return this;
      }

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

      public clarifai2.internal.grpc.api.DataOuterClass.Frame getDefaultInstanceForType() {
        return clarifai2.internal.grpc.api.DataOuterClass.Frame.getDefaultInstance();
      }

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

      public clarifai2.internal.grpc.api.DataOuterClass.Frame buildPartial() {
        clarifai2.internal.grpc.api.DataOuterClass.Frame result = new clarifai2.internal.grpc.api.DataOuterClass.Frame(this);
        if (frameInfoBuilder_ == null) {
          result.frameInfo_ = frameInfo_;
        } else {
          result.frameInfo_ = frameInfoBuilder_.build();
        }
        if (dataBuilder_ == null) {
          result.data_ = data_;
        } else {
          result.data_ = dataBuilder_.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.DataOuterClass.Frame) {
          return mergeFrom((clarifai2.internal.grpc.api.DataOuterClass.Frame)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(clarifai2.internal.grpc.api.DataOuterClass.Frame other) {
        if (other == clarifai2.internal.grpc.api.DataOuterClass.Frame.getDefaultInstance()) return this;
        if (other.hasFrameInfo()) {
          mergeFrameInfo(other.getFrameInfo());
        }
        if (other.hasData()) {
          mergeData(other.getData());
        }
        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.DataOuterClass.Frame parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (clarifai2.internal.grpc.api.DataOuterClass.Frame) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private clarifai2.internal.grpc.api.DataOuterClass.FrameInfo frameInfo_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
          clarifai2.internal.grpc.api.DataOuterClass.FrameInfo, clarifai2.internal.grpc.api.DataOuterClass.FrameInfo.Builder, clarifai2.internal.grpc.api.DataOuterClass.FrameInfoOrBuilder> frameInfoBuilder_;
      /**
       * .clarifai.api.FrameInfo frame_info = 1;
       */
      public boolean hasFrameInfo() {
        return frameInfoBuilder_ != null || frameInfo_ != null;
      }
      /**
       * .clarifai.api.FrameInfo frame_info = 1;
       */
      public clarifai2.internal.grpc.api.DataOuterClass.FrameInfo getFrameInfo() {
        if (frameInfoBuilder_ == null) {
          return frameInfo_ == null ? clarifai2.internal.grpc.api.DataOuterClass.FrameInfo.getDefaultInstance() : frameInfo_;
        } else {
          return frameInfoBuilder_.getMessage();
        }
      }
      /**
       * .clarifai.api.FrameInfo frame_info = 1;
       */
      public Builder setFrameInfo(clarifai2.internal.grpc.api.DataOuterClass.FrameInfo value) {
        if (frameInfoBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          frameInfo_ = value;
          onChanged();
        } else {
          frameInfoBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * .clarifai.api.FrameInfo frame_info = 1;
       */
      public Builder setFrameInfo(
          clarifai2.internal.grpc.api.DataOuterClass.FrameInfo.Builder builderForValue) {
        if (frameInfoBuilder_ == null) {
          frameInfo_ = builderForValue.build();
          onChanged();
        } else {
          frameInfoBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * .clarifai.api.FrameInfo frame_info = 1;
       */
      public Builder mergeFrameInfo(clarifai2.internal.grpc.api.DataOuterClass.FrameInfo value) {
        if (frameInfoBuilder_ == null) {
          if (frameInfo_ != null) {
            frameInfo_ =
              clarifai2.internal.grpc.api.DataOuterClass.FrameInfo.newBuilder(frameInfo_).mergeFrom(value).buildPartial();
          } else {
            frameInfo_ = value;
          }
          onChanged();
        } else {
          frameInfoBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * .clarifai.api.FrameInfo frame_info = 1;
       */
      public Builder clearFrameInfo() {
        if (frameInfoBuilder_ == null) {
          frameInfo_ = null;
          onChanged();
        } else {
          frameInfo_ = null;
          frameInfoBuilder_ = null;
        }

        return this;
      }
      /**
       * .clarifai.api.FrameInfo frame_info = 1;
       */
      public clarifai2.internal.grpc.api.DataOuterClass.FrameInfo.Builder getFrameInfoBuilder() {

        onChanged();
        return getFrameInfoFieldBuilder().getBuilder();
      }
      /**
       * .clarifai.api.FrameInfo frame_info = 1;
       */
      public clarifai2.internal.grpc.api.DataOuterClass.FrameInfoOrBuilder getFrameInfoOrBuilder() {
        if (frameInfoBuilder_ != null) {
          return frameInfoBuilder_.getMessageOrBuilder();
        } else {
          return frameInfo_ == null ?
              clarifai2.internal.grpc.api.DataOuterClass.FrameInfo.getDefaultInstance() : frameInfo_;
        }
      }
      /**
       * .clarifai.api.FrameInfo frame_info = 1;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          clarifai2.internal.grpc.api.DataOuterClass.FrameInfo, clarifai2.internal.grpc.api.DataOuterClass.FrameInfo.Builder, clarifai2.internal.grpc.api.DataOuterClass.FrameInfoOrBuilder>
          getFrameInfoFieldBuilder() {
        if (frameInfoBuilder_ == null) {
          frameInfoBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              clarifai2.internal.grpc.api.DataOuterClass.FrameInfo, clarifai2.internal.grpc.api.DataOuterClass.FrameInfo.Builder, clarifai2.internal.grpc.api.DataOuterClass.FrameInfoOrBuilder>(
                  getFrameInfo(),
                  getParentForChildren(),
                  isClean());
          frameInfo_ = null;
        }
        return frameInfoBuilder_;
      }

      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 = 2;
       */
      public boolean hasData() {
        return dataBuilder_ != null || data_ != null;
      }
      /**
       * .clarifai.api.Data data = 2;
       */
      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 = 2;
       */
      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 = 2;
       */
      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 = 2;
       */
      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 = 2;
       */
      public Builder clearData() {
        if (dataBuilder_ == null) {
          data_ = null;
          onChanged();
        } else {
          data_ = null;
          dataBuilder_ = null;
        }

        return this;
      }
      /**
       * .clarifai.api.Data data = 2;
       */
      public clarifai2.internal.grpc.api.DataOuterClass.Data.Builder getDataBuilder() {

        onChanged();
        return getDataFieldBuilder().getBuilder();
      }
      /**
       * .clarifai.api.Data data = 2;
       */
      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 = 2;
       */
      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_;
      }
      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.Frame)
    }

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

    public static clarifai2.internal.grpc.api.DataOuterClass.Frame getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

  }

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

    /**
     * .clarifai.api.Color color = 1;
     */
    boolean hasColor();
    /**
     * .clarifai.api.Color color = 1;
     */
    clarifai2.internal.grpc.api.ColorOuterClass.Color getColor();
    /**
     * .clarifai.api.Color color = 1;
     */
    clarifai2.internal.grpc.api.ColorOuterClass.ColorOrBuilder getColorOrBuilder();

    /**
     * .clarifai.api.Image image = 2;
     */
    boolean hasImage();
    /**
     * .clarifai.api.Image image = 2;
     */
    clarifai2.internal.grpc.api.ImageOuterClass.Image getImage();
    /**
     * .clarifai.api.Image image = 2;
     */
    clarifai2.internal.grpc.api.ImageOuterClass.ImageOrBuilder getImageOrBuilder();
  }
  /**
   * Protobuf type {@code clarifai.api.Mask}
   */
  public  static final class Mask extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:clarifai.api.Mask)
      MaskOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use Mask.newBuilder() to construct.
    private Mask(com.google.protobuf.GeneratedMessageV3.Builder builder) {
      super(builder);
    }
    private Mask() {
    }

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

              break;
            }
            case 18: {
              clarifai2.internal.grpc.api.ImageOuterClass.Image.Builder subBuilder = null;
              if (image_ != null) {
                subBuilder = image_.toBuilder();
              }
              image_ = input.readMessage(clarifai2.internal.grpc.api.ImageOuterClass.Image.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(image_);
                image_ = 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.DataOuterClass.internal_static_clarifai_api_Mask_descriptor;
    }

    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return clarifai2.internal.grpc.api.DataOuterClass.internal_static_clarifai_api_Mask_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              clarifai2.internal.grpc.api.DataOuterClass.Mask.class, clarifai2.internal.grpc.api.DataOuterClass.Mask.Builder.class);
    }

    public static final int COLOR_FIELD_NUMBER = 1;
    private clarifai2.internal.grpc.api.ColorOuterClass.Color color_;
    /**
     * .clarifai.api.Color color = 1;
     */
    public boolean hasColor() {
      return color_ != null;
    }
    /**
     * .clarifai.api.Color color = 1;
     */
    public clarifai2.internal.grpc.api.ColorOuterClass.Color getColor() {
      return color_ == null ? clarifai2.internal.grpc.api.ColorOuterClass.Color.getDefaultInstance() : color_;
    }
    /**
     * .clarifai.api.Color color = 1;
     */
    public clarifai2.internal.grpc.api.ColorOuterClass.ColorOrBuilder getColorOrBuilder() {
      return getColor();
    }

    public static final int IMAGE_FIELD_NUMBER = 2;
    private clarifai2.internal.grpc.api.ImageOuterClass.Image image_;
    /**
     * .clarifai.api.Image image = 2;
     */
    public boolean hasImage() {
      return image_ != null;
    }
    /**
     * .clarifai.api.Image image = 2;
     */
    public clarifai2.internal.grpc.api.ImageOuterClass.Image getImage() {
      return image_ == null ? clarifai2.internal.grpc.api.ImageOuterClass.Image.getDefaultInstance() : image_;
    }
    /**
     * .clarifai.api.Image image = 2;
     */
    public clarifai2.internal.grpc.api.ImageOuterClass.ImageOrBuilder getImageOrBuilder() {
      return getImage();
    }

    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 (color_ != null) {
        output.writeMessage(1, getColor());
      }
      if (image_ != null) {
        output.writeMessage(2, getImage());
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      if (color_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, getColor());
      }
      if (image_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, getImage());
      }
      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.DataOuterClass.Mask)) {
        return super.equals(obj);
      }
      clarifai2.internal.grpc.api.DataOuterClass.Mask other = (clarifai2.internal.grpc.api.DataOuterClass.Mask) obj;

      boolean result = true;
      result = result && (hasColor() == other.hasColor());
      if (hasColor()) {
        result = result && getColor()
            .equals(other.getColor());
      }
      result = result && (hasImage() == other.hasImage());
      if (hasImage()) {
        result = result && getImage()
            .equals(other.getImage());
      }
      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 (hasColor()) {
        hash = (37 * hash) + COLOR_FIELD_NUMBER;
        hash = (53 * hash) + getColor().hashCode();
      }
      if (hasImage()) {
        hash = (37 * hash) + IMAGE_FIELD_NUMBER;
        hash = (53 * hash) + getImage().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

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

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return clarifai2.internal.grpc.api.DataOuterClass.internal_static_clarifai_api_Mask_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                clarifai2.internal.grpc.api.DataOuterClass.Mask.class, clarifai2.internal.grpc.api.DataOuterClass.Mask.Builder.class);
      }

      // Construct using clarifai2.internal.grpc.api.DataOuterClass.Mask.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 (colorBuilder_ == null) {
          color_ = null;
        } else {
          color_ = null;
          colorBuilder_ = null;
        }
        if (imageBuilder_ == null) {
          image_ = null;
        } else {
          image_ = null;
          imageBuilder_ = null;
        }
        return this;
      }

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

      public clarifai2.internal.grpc.api.DataOuterClass.Mask getDefaultInstanceForType() {
        return clarifai2.internal.grpc.api.DataOuterClass.Mask.getDefaultInstance();
      }

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

      public clarifai2.internal.grpc.api.DataOuterClass.Mask buildPartial() {
        clarifai2.internal.grpc.api.DataOuterClass.Mask result = new clarifai2.internal.grpc.api.DataOuterClass.Mask(this);
        if (colorBuilder_ == null) {
          result.color_ = color_;
        } else {
          result.color_ = colorBuilder_.build();
        }
        if (imageBuilder_ == null) {
          result.image_ = image_;
        } else {
          result.image_ = imageBuilder_.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.DataOuterClass.Mask) {
          return mergeFrom((clarifai2.internal.grpc.api.DataOuterClass.Mask)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(clarifai2.internal.grpc.api.DataOuterClass.Mask other) {
        if (other == clarifai2.internal.grpc.api.DataOuterClass.Mask.getDefaultInstance()) return this;
        if (other.hasColor()) {
          mergeColor(other.getColor());
        }
        if (other.hasImage()) {
          mergeImage(other.getImage());
        }
        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.DataOuterClass.Mask parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (clarifai2.internal.grpc.api.DataOuterClass.Mask) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private clarifai2.internal.grpc.api.ColorOuterClass.Color color_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
          clarifai2.internal.grpc.api.ColorOuterClass.Color, clarifai2.internal.grpc.api.ColorOuterClass.Color.Builder, clarifai2.internal.grpc.api.ColorOuterClass.ColorOrBuilder> colorBuilder_;
      /**
       * .clarifai.api.Color color = 1;
       */
      public boolean hasColor() {
        return colorBuilder_ != null || color_ != null;
      }
      /**
       * .clarifai.api.Color color = 1;
       */
      public clarifai2.internal.grpc.api.ColorOuterClass.Color getColor() {
        if (colorBuilder_ == null) {
          return color_ == null ? clarifai2.internal.grpc.api.ColorOuterClass.Color.getDefaultInstance() : color_;
        } else {
          return colorBuilder_.getMessage();
        }
      }
      /**
       * .clarifai.api.Color color = 1;
       */
      public Builder setColor(clarifai2.internal.grpc.api.ColorOuterClass.Color value) {
        if (colorBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          color_ = value;
          onChanged();
        } else {
          colorBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * .clarifai.api.Color color = 1;
       */
      public Builder setColor(
          clarifai2.internal.grpc.api.ColorOuterClass.Color.Builder builderForValue) {
        if (colorBuilder_ == null) {
          color_ = builderForValue.build();
          onChanged();
        } else {
          colorBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * .clarifai.api.Color color = 1;
       */
      public Builder mergeColor(clarifai2.internal.grpc.api.ColorOuterClass.Color value) {
        if (colorBuilder_ == null) {
          if (color_ != null) {
            color_ =
              clarifai2.internal.grpc.api.ColorOuterClass.Color.newBuilder(color_).mergeFrom(value).buildPartial();
          } else {
            color_ = value;
          }
          onChanged();
        } else {
          colorBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * .clarifai.api.Color color = 1;
       */
      public Builder clearColor() {
        if (colorBuilder_ == null) {
          color_ = null;
          onChanged();
        } else {
          color_ = null;
          colorBuilder_ = null;
        }

        return this;
      }
      /**
       * .clarifai.api.Color color = 1;
       */
      public clarifai2.internal.grpc.api.ColorOuterClass.Color.Builder getColorBuilder() {

        onChanged();
        return getColorFieldBuilder().getBuilder();
      }
      /**
       * .clarifai.api.Color color = 1;
       */
      public clarifai2.internal.grpc.api.ColorOuterClass.ColorOrBuilder getColorOrBuilder() {
        if (colorBuilder_ != null) {
          return colorBuilder_.getMessageOrBuilder();
        } else {
          return color_ == null ?
              clarifai2.internal.grpc.api.ColorOuterClass.Color.getDefaultInstance() : color_;
        }
      }
      /**
       * .clarifai.api.Color color = 1;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          clarifai2.internal.grpc.api.ColorOuterClass.Color, clarifai2.internal.grpc.api.ColorOuterClass.Color.Builder, clarifai2.internal.grpc.api.ColorOuterClass.ColorOrBuilder>
          getColorFieldBuilder() {
        if (colorBuilder_ == null) {
          colorBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              clarifai2.internal.grpc.api.ColorOuterClass.Color, clarifai2.internal.grpc.api.ColorOuterClass.Color.Builder, clarifai2.internal.grpc.api.ColorOuterClass.ColorOrBuilder>(
                  getColor(),
                  getParentForChildren(),
                  isClean());
          color_ = null;
        }
        return colorBuilder_;
      }

      private clarifai2.internal.grpc.api.ImageOuterClass.Image image_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
          clarifai2.internal.grpc.api.ImageOuterClass.Image, clarifai2.internal.grpc.api.ImageOuterClass.Image.Builder, clarifai2.internal.grpc.api.ImageOuterClass.ImageOrBuilder> imageBuilder_;
      /**
       * .clarifai.api.Image image = 2;
       */
      public boolean hasImage() {
        return imageBuilder_ != null || image_ != null;
      }
      /**
       * .clarifai.api.Image image = 2;
       */
      public clarifai2.internal.grpc.api.ImageOuterClass.Image getImage() {
        if (imageBuilder_ == null) {
          return image_ == null ? clarifai2.internal.grpc.api.ImageOuterClass.Image.getDefaultInstance() : image_;
        } else {
          return imageBuilder_.getMessage();
        }
      }
      /**
       * .clarifai.api.Image image = 2;
       */
      public Builder setImage(clarifai2.internal.grpc.api.ImageOuterClass.Image value) {
        if (imageBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          image_ = value;
          onChanged();
        } else {
          imageBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * .clarifai.api.Image image = 2;
       */
      public Builder setImage(
          clarifai2.internal.grpc.api.ImageOuterClass.Image.Builder builderForValue) {
        if (imageBuilder_ == null) {
          image_ = builderForValue.build();
          onChanged();
        } else {
          imageBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * .clarifai.api.Image image = 2;
       */
      public Builder mergeImage(clarifai2.internal.grpc.api.ImageOuterClass.Image value) {
        if (imageBuilder_ == null) {
          if (image_ != null) {
            image_ =
              clarifai2.internal.grpc.api.ImageOuterClass.Image.newBuilder(image_).mergeFrom(value).buildPartial();
          } else {
            image_ = value;
          }
          onChanged();
        } else {
          imageBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * .clarifai.api.Image image = 2;
       */
      public Builder clearImage() {
        if (imageBuilder_ == null) {
          image_ = null;
          onChanged();
        } else {
          image_ = null;
          imageBuilder_ = null;
        }

        return this;
      }
      /**
       * .clarifai.api.Image image = 2;
       */
      public clarifai2.internal.grpc.api.ImageOuterClass.Image.Builder getImageBuilder() {

        onChanged();
        return getImageFieldBuilder().getBuilder();
      }
      /**
       * .clarifai.api.Image image = 2;
       */
      public clarifai2.internal.grpc.api.ImageOuterClass.ImageOrBuilder getImageOrBuilder() {
        if (imageBuilder_ != null) {
          return imageBuilder_.getMessageOrBuilder();
        } else {
          return image_ == null ?
              clarifai2.internal.grpc.api.ImageOuterClass.Image.getDefaultInstance() : image_;
        }
      }
      /**
       * .clarifai.api.Image image = 2;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          clarifai2.internal.grpc.api.ImageOuterClass.Image, clarifai2.internal.grpc.api.ImageOuterClass.Image.Builder, clarifai2.internal.grpc.api.ImageOuterClass.ImageOrBuilder>
          getImageFieldBuilder() {
        if (imageBuilder_ == null) {
          imageBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              clarifai2.internal.grpc.api.ImageOuterClass.Image, clarifai2.internal.grpc.api.ImageOuterClass.Image.Builder, clarifai2.internal.grpc.api.ImageOuterClass.ImageOrBuilder>(
                  getImage(),
                  getParentForChildren(),
                  isClean());
          image_ = null;
        }
        return imageBuilder_;
      }
      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.Mask)
    }

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

    public static clarifai2.internal.grpc.api.DataOuterClass.Mask getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

  }

  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_clarifai_api_Data_descriptor;
  private static final
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_clarifai_api_Data_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_clarifai_api_Region_descriptor;
  private static final
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_clarifai_api_Region_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_clarifai_api_RegionInfo_descriptor;
  private static final
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_clarifai_api_RegionInfo_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_clarifai_api_BoundingBox_descriptor;
  private static final
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_clarifai_api_BoundingBox_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_clarifai_api_FrameInfo_descriptor;
  private static final
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_clarifai_api_FrameInfo_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_clarifai_api_Frame_descriptor;
  private static final
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_clarifai_api_Frame_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_clarifai_api_Mask_descriptor;
  private static final
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_clarifai_api_Mask_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\035proto/clarifai/api/data.proto\022\014clarifa" +
      "i.api\032 proto/clarifai/api/cluster.proto\032" +
      "\036proto/clarifai/api/color.proto\032\037proto/c" +
      "larifai/api/common.proto\032 proto/clarifai" +
      "/api/concept.proto\032\"proto/clarifai/api/e" +
      "mbedding.proto\032\035proto/clarifai/api/face." +
      "proto\032\036proto/clarifai/api/focus.proto\032\034p" +
      "roto/clarifai/api/geo.proto\032\036proto/clari" +
      "fai/api/image.proto\032\035proto/clarifai/api/" +
      "text.proto\032\036proto/clarifai/api/video.pro" +
      "to\032)proto/clarifai/api/utils/extensions." +
      "proto\032\034google/protobuf/struct.proto\"\361\003\n\004" +
      "Data\022\"\n\005image\030\001 \001(\0132\023.clarifai.api.Image" +
      "\022\"\n\005video\030\002 \001(\0132\023.clarifai.api.Video\022\'\n\010" +
      "concepts\030\003 \003(\0132\025.clarifai.api.Concept\022 \n" +
      "\004face\030\004 \001(\0132\022.clarifai.api.Face\022)\n\010metad" +
      "ata\030\005 \001(\0132\027.google.protobuf.Struct\022\036\n\003ge" +
      "o\030\006 \001(\0132\021.clarifai.api.Geo\022#\n\006colors\030\007 \003" +
      "(\0132\023.clarifai.api.Color\022\'\n\010clusters\030\010 \003(" +
      "\0132\025.clarifai.api.Cluster\022+\n\nembeddings\030\t" +
      " \003(\0132\027.clarifai.api.Embedding\022\"\n\005focus\030\n" +
      " \001(\0132\023.clarifai.api.Focus\022%\n\007regions\030\013 \003" +
      "(\0132\024.clarifai.api.Region\022#\n\006frames\030\014 \003(\013" +
      "2\023.clarifai.api.Frame\022 \n\004text\030\r \001(\0132\022.cl" +
      "arifai.api.Text\"e\n\006Region\022\n\n\002id\030\001 \001(\t\022-\n" +
      "\013region_info\030\002 \001(\0132\030.clarifai.api.Region" +
      "Info\022 \n\004data\030\003 \001(\0132\022.clarifai.api.Data\"\242" +
      "\001\n\nRegionInfo\022/\n\014bounding_box\030\001 \001(\0132\031.cl" +
      "arifai.api.BoundingBox\022\r\n\005value\030\002 \001(\002\0222\n" +
      "\010feedback\030\003 \001(\0162 .clarifai.api.RegionInf" +
      "oFeedback\022 \n\004mask\030\004 \001(\0132\022.clarifai.api.M" +
      "ask\"o\n\013BoundingBox\022\025\n\007top_row\030\001 \001(\002B\004\200\265\030" +
      "\001\022\026\n\010left_col\030\002 \001(\002B\004\200\265\030\001\022\030\n\nbottom_row\030" +
      "\003 \001(\002B\004\200\265\030\001\022\027\n\tright_col\030\004 \001(\002B\004\200\265\030\001\"4\n\t" +
      "FrameInfo\022\023\n\005index\030\001 \001(\rB\004\200\265\030\001\022\022\n\004time\030\002" +
      " \001(\rB\004\200\265\030\001\"V\n\005Frame\022+\n\nframe_info\030\001 \001(\0132" +
      "\027.clarifai.api.FrameInfo\022 \n\004data\030\002 \001(\0132\022" +
      ".clarifai.api.Data\"N\n\004Mask\022\"\n\005color\030\001 \001(" +
      "\0132\023.clarifai.api.Color\022\"\n\005image\030\002 \001(\0132\023." +
      "clarifai.api.Image*W\n\022RegionInfoFeedback" +
      "\022\014\n\010accurate\020\000\022\r\n\tmisplaced\020\001\022\020\n\014not_det" +
      "ected\020\002\022\022\n\016false_positive\020\003BA\n\033clarifai2" +
      ".internal.grpc.apiZ\003api\242\002\004CAIP\302\002\001_\312\002\021Cla" +
      "rifai\\Internalb\006proto3"
    };
    com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner =
        new com.google.protobuf.Descriptors.FileDescriptor.    InternalDescriptorAssigner() {
          public com.google.protobuf.ExtensionRegistry assignDescriptors(
              com.google.protobuf.Descriptors.FileDescriptor root) {
            descriptor = root;
            return null;
          }
        };
    com.google.protobuf.Descriptors.FileDescriptor
      .internalBuildGeneratedFileFrom(descriptorData,
        new com.google.protobuf.Descriptors.FileDescriptor[] {
          clarifai2.internal.grpc.api.ClusterOuterClass.getDescriptor(),
          clarifai2.internal.grpc.api.ColorOuterClass.getDescriptor(),
          clarifai2.internal.grpc.api.Common.getDescriptor(),
          clarifai2.internal.grpc.api.ConceptOuterClass.getDescriptor(),
          clarifai2.internal.grpc.api.EmbeddingOuterClass.getDescriptor(),
          clarifai2.internal.grpc.api.FaceOuterClass.getDescriptor(),
          clarifai2.internal.grpc.api.FocusOuterClass.getDescriptor(),
          clarifai2.internal.grpc.api.GeoOuterClass.getDescriptor(),
          clarifai2.internal.grpc.api.ImageOuterClass.getDescriptor(),
          clarifai2.internal.grpc.api.TextOuterClass.getDescriptor(),
          clarifai2.internal.grpc.api.VideoOuterClass.getDescriptor(),
          clarifai2.internal.grpc.api.utils.Extensions.getDescriptor(),
          com.google.protobuf.StructProto.getDescriptor(),
        }, assigner);
    internal_static_clarifai_api_Data_descriptor =
      getDescriptor().getMessageTypes().get(0);
    internal_static_clarifai_api_Data_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_clarifai_api_Data_descriptor,
        new java.lang.String[] { "Image", "Video", "Concepts", "Face", "Metadata", "Geo", "Colors", "Clusters", "Embeddings", "Focus", "Regions", "Frames", "Text", });
    internal_static_clarifai_api_Region_descriptor =
      getDescriptor().getMessageTypes().get(1);
    internal_static_clarifai_api_Region_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_clarifai_api_Region_descriptor,
        new java.lang.String[] { "Id", "RegionInfo", "Data", });
    internal_static_clarifai_api_RegionInfo_descriptor =
      getDescriptor().getMessageTypes().get(2);
    internal_static_clarifai_api_RegionInfo_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_clarifai_api_RegionInfo_descriptor,
        new java.lang.String[] { "BoundingBox", "Value", "Feedback", "Mask", });
    internal_static_clarifai_api_BoundingBox_descriptor =
      getDescriptor().getMessageTypes().get(3);
    internal_static_clarifai_api_BoundingBox_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_clarifai_api_BoundingBox_descriptor,
        new java.lang.String[] { "TopRow", "LeftCol", "BottomRow", "RightCol", });
    internal_static_clarifai_api_FrameInfo_descriptor =
      getDescriptor().getMessageTypes().get(4);
    internal_static_clarifai_api_FrameInfo_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_clarifai_api_FrameInfo_descriptor,
        new java.lang.String[] { "Index", "Time", });
    internal_static_clarifai_api_Frame_descriptor =
      getDescriptor().getMessageTypes().get(5);
    internal_static_clarifai_api_Frame_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_clarifai_api_Frame_descriptor,
        new java.lang.String[] { "FrameInfo", "Data", });
    internal_static_clarifai_api_Mask_descriptor =
      getDescriptor().getMessageTypes().get(6);
    internal_static_clarifai_api_Mask_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_clarifai_api_Mask_descriptor,
        new java.lang.String[] { "Color", "Image", });
    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.ClusterOuterClass.getDescriptor();
    clarifai2.internal.grpc.api.ColorOuterClass.getDescriptor();
    clarifai2.internal.grpc.api.Common.getDescriptor();
    clarifai2.internal.grpc.api.ConceptOuterClass.getDescriptor();
    clarifai2.internal.grpc.api.EmbeddingOuterClass.getDescriptor();
    clarifai2.internal.grpc.api.FaceOuterClass.getDescriptor();
    clarifai2.internal.grpc.api.FocusOuterClass.getDescriptor();
    clarifai2.internal.grpc.api.GeoOuterClass.getDescriptor();
    clarifai2.internal.grpc.api.ImageOuterClass.getDescriptor();
    clarifai2.internal.grpc.api.TextOuterClass.getDescriptor();
    clarifai2.internal.grpc.api.VideoOuterClass.getDescriptor();
    clarifai2.internal.grpc.api.utils.Extensions.getDescriptor();
    com.google.protobuf.StructProto.getDescriptor();
  }

  // @@protoc_insertion_point(outer_class_scope)
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy