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

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

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

package clarifai2.internal.grpc.api;

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

  public static void registerAllExtensions(
      com.google.protobuf.ExtensionRegistry registry) {
    registerAllExtensions(
        (com.google.protobuf.ExtensionRegistryLite) registry);
  }
  public interface FaceIdentityOrBuilder extends
      // @@protoc_insertion_point(interface_extends:clarifai.api.FaceIdentity)
      com.google.protobuf.MessageOrBuilder {

    /**
     * repeated .clarifai.api.Concept concepts = 1;
     */
    java.util.List 
        getConceptsList();
    /**
     * repeated .clarifai.api.Concept concepts = 1;
     */
    clarifai2.internal.grpc.api.ConceptOuterClass.Concept getConcepts(int index);
    /**
     * repeated .clarifai.api.Concept concepts = 1;
     */
    int getConceptsCount();
    /**
     * repeated .clarifai.api.Concept concepts = 1;
     */
    java.util.List 
        getConceptsOrBuilderList();
    /**
     * repeated .clarifai.api.Concept concepts = 1;
     */
    clarifai2.internal.grpc.api.ConceptOuterClass.ConceptOrBuilder getConceptsOrBuilder(
        int index);
  }
  /**
   * Protobuf type {@code clarifai.api.FaceIdentity}
   */
  public  static final class FaceIdentity extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:clarifai.api.FaceIdentity)
      FaceIdentityOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use FaceIdentity.newBuilder() to construct.
    private FaceIdentity(com.google.protobuf.GeneratedMessageV3.Builder builder) {
      super(builder);
    }
    private FaceIdentity() {
      concepts_ = java.util.Collections.emptyList();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private FaceIdentity(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownFieldProto3(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              if (!((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
                concepts_ = new java.util.ArrayList();
                mutable_bitField0_ |= 0x00000001;
              }
              concepts_.add(
                  input.readMessage(clarifai2.internal.grpc.api.ConceptOuterClass.Concept.parser(), extensionRegistry));
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
          concepts_ = java.util.Collections.unmodifiableList(concepts_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return clarifai2.internal.grpc.api.FaceOuterClass.internal_static_clarifai_api_FaceIdentity_descriptor;
    }

    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return clarifai2.internal.grpc.api.FaceOuterClass.internal_static_clarifai_api_FaceIdentity_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              clarifai2.internal.grpc.api.FaceOuterClass.FaceIdentity.class, clarifai2.internal.grpc.api.FaceOuterClass.FaceIdentity.Builder.class);
    }

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

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

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      for (int i = 0; i < concepts_.size(); i++) {
        output.writeMessage(1, concepts_.get(i));
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      for (int i = 0; i < concepts_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, concepts_.get(i));
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

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

      boolean result = true;
      result = result && getConceptsList()
          .equals(other.getConceptsList());
      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 (getConceptsCount() > 0) {
        hash = (37 * hash) + CONCEPTS_FIELD_NUMBER;
        hash = (53 * hash) + getConceptsList().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

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

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return clarifai2.internal.grpc.api.FaceOuterClass.internal_static_clarifai_api_FaceIdentity_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                clarifai2.internal.grpc.api.FaceOuterClass.FaceIdentity.class, clarifai2.internal.grpc.api.FaceOuterClass.FaceIdentity.Builder.class);
      }

      // Construct using clarifai2.internal.grpc.api.FaceOuterClass.FaceIdentity.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();
        }
      }
      public Builder clear() {
        super.clear();
        if (conceptsBuilder_ == null) {
          concepts_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
        } else {
          conceptsBuilder_.clear();
        }
        return this;
      }

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

      public clarifai2.internal.grpc.api.FaceOuterClass.FaceIdentity getDefaultInstanceForType() {
        return clarifai2.internal.grpc.api.FaceOuterClass.FaceIdentity.getDefaultInstance();
      }

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

      public clarifai2.internal.grpc.api.FaceOuterClass.FaceIdentity buildPartial() {
        clarifai2.internal.grpc.api.FaceOuterClass.FaceIdentity result = new clarifai2.internal.grpc.api.FaceOuterClass.FaceIdentity(this);
        int from_bitField0_ = bitField0_;
        if (conceptsBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001)) {
            concepts_ = java.util.Collections.unmodifiableList(concepts_);
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          result.concepts_ = concepts_;
        } else {
          result.concepts_ = conceptsBuilder_.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.FaceOuterClass.FaceIdentity) {
          return mergeFrom((clarifai2.internal.grpc.api.FaceOuterClass.FaceIdentity)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(clarifai2.internal.grpc.api.FaceOuterClass.FaceIdentity other) {
        if (other == clarifai2.internal.grpc.api.FaceOuterClass.FaceIdentity.getDefaultInstance()) return this;
        if (conceptsBuilder_ == null) {
          if (!other.concepts_.isEmpty()) {
            if (concepts_.isEmpty()) {
              concepts_ = other.concepts_;
              bitField0_ = (bitField0_ & ~0x00000001);
            } else {
              ensureConceptsIsMutable();
              concepts_.addAll(other.concepts_);
            }
            onChanged();
          }
        } else {
          if (!other.concepts_.isEmpty()) {
            if (conceptsBuilder_.isEmpty()) {
              conceptsBuilder_.dispose();
              conceptsBuilder_ = null;
              concepts_ = other.concepts_;
              bitField0_ = (bitField0_ & ~0x00000001);
              conceptsBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getConceptsFieldBuilder() : null;
            } else {
              conceptsBuilder_.addAllMessages(other.concepts_);
            }
          }
        }
        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.FaceOuterClass.FaceIdentity parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (clarifai2.internal.grpc.api.FaceOuterClass.FaceIdentity) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

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

      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 = 1;
       */
      public java.util.List getConceptsList() {
        if (conceptsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(concepts_);
        } else {
          return conceptsBuilder_.getMessageList();
        }
      }
      /**
       * repeated .clarifai.api.Concept concepts = 1;
       */
      public int getConceptsCount() {
        if (conceptsBuilder_ == null) {
          return concepts_.size();
        } else {
          return conceptsBuilder_.getCount();
        }
      }
      /**
       * repeated .clarifai.api.Concept concepts = 1;
       */
      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 = 1;
       */
      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 = 1;
       */
      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 = 1;
       */
      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 = 1;
       */
      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 = 1;
       */
      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 = 1;
       */
      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 = 1;
       */
      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 = 1;
       */
      public Builder clearConcepts() {
        if (conceptsBuilder_ == null) {
          concepts_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
        } else {
          conceptsBuilder_.clear();
        }
        return this;
      }
      /**
       * repeated .clarifai.api.Concept concepts = 1;
       */
      public Builder removeConcepts(int index) {
        if (conceptsBuilder_ == null) {
          ensureConceptsIsMutable();
          concepts_.remove(index);
          onChanged();
        } else {
          conceptsBuilder_.remove(index);
        }
        return this;
      }
      /**
       * repeated .clarifai.api.Concept concepts = 1;
       */
      public clarifai2.internal.grpc.api.ConceptOuterClass.Concept.Builder getConceptsBuilder(
          int index) {
        return getConceptsFieldBuilder().getBuilder(index);
      }
      /**
       * repeated .clarifai.api.Concept concepts = 1;
       */
      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 = 1;
       */
      public java.util.List 
           getConceptsOrBuilderList() {
        if (conceptsBuilder_ != null) {
          return conceptsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(concepts_);
        }
      }
      /**
       * repeated .clarifai.api.Concept concepts = 1;
       */
      public clarifai2.internal.grpc.api.ConceptOuterClass.Concept.Builder addConceptsBuilder() {
        return getConceptsFieldBuilder().addBuilder(
            clarifai2.internal.grpc.api.ConceptOuterClass.Concept.getDefaultInstance());
      }
      /**
       * repeated .clarifai.api.Concept concepts = 1;
       */
      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 = 1;
       */
      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_ & 0x00000001) == 0x00000001),
                  getParentForChildren(),
                  isClean());
          concepts_ = null;
        }
        return conceptsBuilder_;
      }
      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.FaceIdentity)
    }

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

    public static clarifai2.internal.grpc.api.FaceOuterClass.FaceIdentity getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

  }

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

    /**
     * repeated .clarifai.api.Concept concepts = 1;
     */
    java.util.List 
        getConceptsList();
    /**
     * repeated .clarifai.api.Concept concepts = 1;
     */
    clarifai2.internal.grpc.api.ConceptOuterClass.Concept getConcepts(int index);
    /**
     * repeated .clarifai.api.Concept concepts = 1;
     */
    int getConceptsCount();
    /**
     * repeated .clarifai.api.Concept concepts = 1;
     */
    java.util.List 
        getConceptsOrBuilderList();
    /**
     * repeated .clarifai.api.Concept concepts = 1;
     */
    clarifai2.internal.grpc.api.ConceptOuterClass.ConceptOrBuilder getConceptsOrBuilder(
        int index);
  }
  /**
   * Protobuf type {@code clarifai.api.FaceAge}
   */
  public  static final class FaceAge extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:clarifai.api.FaceAge)
      FaceAgeOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use FaceAge.newBuilder() to construct.
    private FaceAge(com.google.protobuf.GeneratedMessageV3.Builder builder) {
      super(builder);
    }
    private FaceAge() {
      concepts_ = java.util.Collections.emptyList();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private FaceAge(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownFieldProto3(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              if (!((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
                concepts_ = new java.util.ArrayList();
                mutable_bitField0_ |= 0x00000001;
              }
              concepts_.add(
                  input.readMessage(clarifai2.internal.grpc.api.ConceptOuterClass.Concept.parser(), extensionRegistry));
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
          concepts_ = java.util.Collections.unmodifiableList(concepts_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return clarifai2.internal.grpc.api.FaceOuterClass.internal_static_clarifai_api_FaceAge_descriptor;
    }

    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return clarifai2.internal.grpc.api.FaceOuterClass.internal_static_clarifai_api_FaceAge_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              clarifai2.internal.grpc.api.FaceOuterClass.FaceAge.class, clarifai2.internal.grpc.api.FaceOuterClass.FaceAge.Builder.class);
    }

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

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

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      for (int i = 0; i < concepts_.size(); i++) {
        output.writeMessage(1, concepts_.get(i));
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      for (int i = 0; i < concepts_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, concepts_.get(i));
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

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

      boolean result = true;
      result = result && getConceptsList()
          .equals(other.getConceptsList());
      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 (getConceptsCount() > 0) {
        hash = (37 * hash) + CONCEPTS_FIELD_NUMBER;
        hash = (53 * hash) + getConceptsList().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

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

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return clarifai2.internal.grpc.api.FaceOuterClass.internal_static_clarifai_api_FaceAge_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                clarifai2.internal.grpc.api.FaceOuterClass.FaceAge.class, clarifai2.internal.grpc.api.FaceOuterClass.FaceAge.Builder.class);
      }

      // Construct using clarifai2.internal.grpc.api.FaceOuterClass.FaceAge.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();
        }
      }
      public Builder clear() {
        super.clear();
        if (conceptsBuilder_ == null) {
          concepts_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
        } else {
          conceptsBuilder_.clear();
        }
        return this;
      }

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

      public clarifai2.internal.grpc.api.FaceOuterClass.FaceAge getDefaultInstanceForType() {
        return clarifai2.internal.grpc.api.FaceOuterClass.FaceAge.getDefaultInstance();
      }

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

      public clarifai2.internal.grpc.api.FaceOuterClass.FaceAge buildPartial() {
        clarifai2.internal.grpc.api.FaceOuterClass.FaceAge result = new clarifai2.internal.grpc.api.FaceOuterClass.FaceAge(this);
        int from_bitField0_ = bitField0_;
        if (conceptsBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001)) {
            concepts_ = java.util.Collections.unmodifiableList(concepts_);
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          result.concepts_ = concepts_;
        } else {
          result.concepts_ = conceptsBuilder_.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.FaceOuterClass.FaceAge) {
          return mergeFrom((clarifai2.internal.grpc.api.FaceOuterClass.FaceAge)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(clarifai2.internal.grpc.api.FaceOuterClass.FaceAge other) {
        if (other == clarifai2.internal.grpc.api.FaceOuterClass.FaceAge.getDefaultInstance()) return this;
        if (conceptsBuilder_ == null) {
          if (!other.concepts_.isEmpty()) {
            if (concepts_.isEmpty()) {
              concepts_ = other.concepts_;
              bitField0_ = (bitField0_ & ~0x00000001);
            } else {
              ensureConceptsIsMutable();
              concepts_.addAll(other.concepts_);
            }
            onChanged();
          }
        } else {
          if (!other.concepts_.isEmpty()) {
            if (conceptsBuilder_.isEmpty()) {
              conceptsBuilder_.dispose();
              conceptsBuilder_ = null;
              concepts_ = other.concepts_;
              bitField0_ = (bitField0_ & ~0x00000001);
              conceptsBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getConceptsFieldBuilder() : null;
            } else {
              conceptsBuilder_.addAllMessages(other.concepts_);
            }
          }
        }
        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.FaceOuterClass.FaceAge parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (clarifai2.internal.grpc.api.FaceOuterClass.FaceAge) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

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

      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 = 1;
       */
      public java.util.List getConceptsList() {
        if (conceptsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(concepts_);
        } else {
          return conceptsBuilder_.getMessageList();
        }
      }
      /**
       * repeated .clarifai.api.Concept concepts = 1;
       */
      public int getConceptsCount() {
        if (conceptsBuilder_ == null) {
          return concepts_.size();
        } else {
          return conceptsBuilder_.getCount();
        }
      }
      /**
       * repeated .clarifai.api.Concept concepts = 1;
       */
      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 = 1;
       */
      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 = 1;
       */
      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 = 1;
       */
      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 = 1;
       */
      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 = 1;
       */
      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 = 1;
       */
      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 = 1;
       */
      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 = 1;
       */
      public Builder clearConcepts() {
        if (conceptsBuilder_ == null) {
          concepts_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
        } else {
          conceptsBuilder_.clear();
        }
        return this;
      }
      /**
       * repeated .clarifai.api.Concept concepts = 1;
       */
      public Builder removeConcepts(int index) {
        if (conceptsBuilder_ == null) {
          ensureConceptsIsMutable();
          concepts_.remove(index);
          onChanged();
        } else {
          conceptsBuilder_.remove(index);
        }
        return this;
      }
      /**
       * repeated .clarifai.api.Concept concepts = 1;
       */
      public clarifai2.internal.grpc.api.ConceptOuterClass.Concept.Builder getConceptsBuilder(
          int index) {
        return getConceptsFieldBuilder().getBuilder(index);
      }
      /**
       * repeated .clarifai.api.Concept concepts = 1;
       */
      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 = 1;
       */
      public java.util.List 
           getConceptsOrBuilderList() {
        if (conceptsBuilder_ != null) {
          return conceptsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(concepts_);
        }
      }
      /**
       * repeated .clarifai.api.Concept concepts = 1;
       */
      public clarifai2.internal.grpc.api.ConceptOuterClass.Concept.Builder addConceptsBuilder() {
        return getConceptsFieldBuilder().addBuilder(
            clarifai2.internal.grpc.api.ConceptOuterClass.Concept.getDefaultInstance());
      }
      /**
       * repeated .clarifai.api.Concept concepts = 1;
       */
      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 = 1;
       */
      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_ & 0x00000001) == 0x00000001),
                  getParentForChildren(),
                  isClean());
          concepts_ = null;
        }
        return conceptsBuilder_;
      }
      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.FaceAge)
    }

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

    public static clarifai2.internal.grpc.api.FaceOuterClass.FaceAge getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

  }

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

    /**
     * repeated .clarifai.api.Concept concepts = 1;
     */
    java.util.List 
        getConceptsList();
    /**
     * repeated .clarifai.api.Concept concepts = 1;
     */
    clarifai2.internal.grpc.api.ConceptOuterClass.Concept getConcepts(int index);
    /**
     * repeated .clarifai.api.Concept concepts = 1;
     */
    int getConceptsCount();
    /**
     * repeated .clarifai.api.Concept concepts = 1;
     */
    java.util.List 
        getConceptsOrBuilderList();
    /**
     * repeated .clarifai.api.Concept concepts = 1;
     */
    clarifai2.internal.grpc.api.ConceptOuterClass.ConceptOrBuilder getConceptsOrBuilder(
        int index);
  }
  /**
   * Protobuf type {@code clarifai.api.FaceGenderIdentity}
   */
  public  static final class FaceGenderIdentity extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:clarifai.api.FaceGenderIdentity)
      FaceGenderIdentityOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use FaceGenderIdentity.newBuilder() to construct.
    private FaceGenderIdentity(com.google.protobuf.GeneratedMessageV3.Builder builder) {
      super(builder);
    }
    private FaceGenderIdentity() {
      concepts_ = java.util.Collections.emptyList();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private FaceGenderIdentity(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownFieldProto3(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              if (!((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
                concepts_ = new java.util.ArrayList();
                mutable_bitField0_ |= 0x00000001;
              }
              concepts_.add(
                  input.readMessage(clarifai2.internal.grpc.api.ConceptOuterClass.Concept.parser(), extensionRegistry));
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
          concepts_ = java.util.Collections.unmodifiableList(concepts_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return clarifai2.internal.grpc.api.FaceOuterClass.internal_static_clarifai_api_FaceGenderIdentity_descriptor;
    }

    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return clarifai2.internal.grpc.api.FaceOuterClass.internal_static_clarifai_api_FaceGenderIdentity_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              clarifai2.internal.grpc.api.FaceOuterClass.FaceGenderIdentity.class, clarifai2.internal.grpc.api.FaceOuterClass.FaceGenderIdentity.Builder.class);
    }

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

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

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      for (int i = 0; i < concepts_.size(); i++) {
        output.writeMessage(1, concepts_.get(i));
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      for (int i = 0; i < concepts_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, concepts_.get(i));
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

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

      boolean result = true;
      result = result && getConceptsList()
          .equals(other.getConceptsList());
      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 (getConceptsCount() > 0) {
        hash = (37 * hash) + CONCEPTS_FIELD_NUMBER;
        hash = (53 * hash) + getConceptsList().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

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

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return clarifai2.internal.grpc.api.FaceOuterClass.internal_static_clarifai_api_FaceGenderIdentity_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                clarifai2.internal.grpc.api.FaceOuterClass.FaceGenderIdentity.class, clarifai2.internal.grpc.api.FaceOuterClass.FaceGenderIdentity.Builder.class);
      }

      // Construct using clarifai2.internal.grpc.api.FaceOuterClass.FaceGenderIdentity.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();
        }
      }
      public Builder clear() {
        super.clear();
        if (conceptsBuilder_ == null) {
          concepts_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
        } else {
          conceptsBuilder_.clear();
        }
        return this;
      }

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

      public clarifai2.internal.grpc.api.FaceOuterClass.FaceGenderIdentity getDefaultInstanceForType() {
        return clarifai2.internal.grpc.api.FaceOuterClass.FaceGenderIdentity.getDefaultInstance();
      }

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

      public clarifai2.internal.grpc.api.FaceOuterClass.FaceGenderIdentity buildPartial() {
        clarifai2.internal.grpc.api.FaceOuterClass.FaceGenderIdentity result = new clarifai2.internal.grpc.api.FaceOuterClass.FaceGenderIdentity(this);
        int from_bitField0_ = bitField0_;
        if (conceptsBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001)) {
            concepts_ = java.util.Collections.unmodifiableList(concepts_);
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          result.concepts_ = concepts_;
        } else {
          result.concepts_ = conceptsBuilder_.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.FaceOuterClass.FaceGenderIdentity) {
          return mergeFrom((clarifai2.internal.grpc.api.FaceOuterClass.FaceGenderIdentity)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(clarifai2.internal.grpc.api.FaceOuterClass.FaceGenderIdentity other) {
        if (other == clarifai2.internal.grpc.api.FaceOuterClass.FaceGenderIdentity.getDefaultInstance()) return this;
        if (conceptsBuilder_ == null) {
          if (!other.concepts_.isEmpty()) {
            if (concepts_.isEmpty()) {
              concepts_ = other.concepts_;
              bitField0_ = (bitField0_ & ~0x00000001);
            } else {
              ensureConceptsIsMutable();
              concepts_.addAll(other.concepts_);
            }
            onChanged();
          }
        } else {
          if (!other.concepts_.isEmpty()) {
            if (conceptsBuilder_.isEmpty()) {
              conceptsBuilder_.dispose();
              conceptsBuilder_ = null;
              concepts_ = other.concepts_;
              bitField0_ = (bitField0_ & ~0x00000001);
              conceptsBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getConceptsFieldBuilder() : null;
            } else {
              conceptsBuilder_.addAllMessages(other.concepts_);
            }
          }
        }
        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.FaceOuterClass.FaceGenderIdentity parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (clarifai2.internal.grpc.api.FaceOuterClass.FaceGenderIdentity) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

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

      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 = 1;
       */
      public java.util.List getConceptsList() {
        if (conceptsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(concepts_);
        } else {
          return conceptsBuilder_.getMessageList();
        }
      }
      /**
       * repeated .clarifai.api.Concept concepts = 1;
       */
      public int getConceptsCount() {
        if (conceptsBuilder_ == null) {
          return concepts_.size();
        } else {
          return conceptsBuilder_.getCount();
        }
      }
      /**
       * repeated .clarifai.api.Concept concepts = 1;
       */
      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 = 1;
       */
      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 = 1;
       */
      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 = 1;
       */
      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 = 1;
       */
      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 = 1;
       */
      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 = 1;
       */
      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 = 1;
       */
      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 = 1;
       */
      public Builder clearConcepts() {
        if (conceptsBuilder_ == null) {
          concepts_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
        } else {
          conceptsBuilder_.clear();
        }
        return this;
      }
      /**
       * repeated .clarifai.api.Concept concepts = 1;
       */
      public Builder removeConcepts(int index) {
        if (conceptsBuilder_ == null) {
          ensureConceptsIsMutable();
          concepts_.remove(index);
          onChanged();
        } else {
          conceptsBuilder_.remove(index);
        }
        return this;
      }
      /**
       * repeated .clarifai.api.Concept concepts = 1;
       */
      public clarifai2.internal.grpc.api.ConceptOuterClass.Concept.Builder getConceptsBuilder(
          int index) {
        return getConceptsFieldBuilder().getBuilder(index);
      }
      /**
       * repeated .clarifai.api.Concept concepts = 1;
       */
      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 = 1;
       */
      public java.util.List 
           getConceptsOrBuilderList() {
        if (conceptsBuilder_ != null) {
          return conceptsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(concepts_);
        }
      }
      /**
       * repeated .clarifai.api.Concept concepts = 1;
       */
      public clarifai2.internal.grpc.api.ConceptOuterClass.Concept.Builder addConceptsBuilder() {
        return getConceptsFieldBuilder().addBuilder(
            clarifai2.internal.grpc.api.ConceptOuterClass.Concept.getDefaultInstance());
      }
      /**
       * repeated .clarifai.api.Concept concepts = 1;
       */
      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 = 1;
       */
      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_ & 0x00000001) == 0x00000001),
                  getParentForChildren(),
                  isClean());
          concepts_ = null;
        }
        return conceptsBuilder_;
      }
      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.FaceGenderIdentity)
    }

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

    public static clarifai2.internal.grpc.api.FaceOuterClass.FaceGenderIdentity getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

  }

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

    /**
     * repeated .clarifai.api.Concept concepts = 1;
     */
    java.util.List 
        getConceptsList();
    /**
     * repeated .clarifai.api.Concept concepts = 1;
     */
    clarifai2.internal.grpc.api.ConceptOuterClass.Concept getConcepts(int index);
    /**
     * repeated .clarifai.api.Concept concepts = 1;
     */
    int getConceptsCount();
    /**
     * repeated .clarifai.api.Concept concepts = 1;
     */
    java.util.List 
        getConceptsOrBuilderList();
    /**
     * repeated .clarifai.api.Concept concepts = 1;
     */
    clarifai2.internal.grpc.api.ConceptOuterClass.ConceptOrBuilder getConceptsOrBuilder(
        int index);
  }
  /**
   * Protobuf type {@code clarifai.api.FaceMCAffinity}
   */
  public  static final class FaceMCAffinity extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:clarifai.api.FaceMCAffinity)
      FaceMCAffinityOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use FaceMCAffinity.newBuilder() to construct.
    private FaceMCAffinity(com.google.protobuf.GeneratedMessageV3.Builder builder) {
      super(builder);
    }
    private FaceMCAffinity() {
      concepts_ = java.util.Collections.emptyList();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private FaceMCAffinity(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownFieldProto3(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              if (!((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
                concepts_ = new java.util.ArrayList();
                mutable_bitField0_ |= 0x00000001;
              }
              concepts_.add(
                  input.readMessage(clarifai2.internal.grpc.api.ConceptOuterClass.Concept.parser(), extensionRegistry));
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
          concepts_ = java.util.Collections.unmodifiableList(concepts_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return clarifai2.internal.grpc.api.FaceOuterClass.internal_static_clarifai_api_FaceMCAffinity_descriptor;
    }

    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return clarifai2.internal.grpc.api.FaceOuterClass.internal_static_clarifai_api_FaceMCAffinity_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              clarifai2.internal.grpc.api.FaceOuterClass.FaceMCAffinity.class, clarifai2.internal.grpc.api.FaceOuterClass.FaceMCAffinity.Builder.class);
    }

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

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

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      for (int i = 0; i < concepts_.size(); i++) {
        output.writeMessage(1, concepts_.get(i));
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      for (int i = 0; i < concepts_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, concepts_.get(i));
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

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

      boolean result = true;
      result = result && getConceptsList()
          .equals(other.getConceptsList());
      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 (getConceptsCount() > 0) {
        hash = (37 * hash) + CONCEPTS_FIELD_NUMBER;
        hash = (53 * hash) + getConceptsList().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

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

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return clarifai2.internal.grpc.api.FaceOuterClass.internal_static_clarifai_api_FaceMCAffinity_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                clarifai2.internal.grpc.api.FaceOuterClass.FaceMCAffinity.class, clarifai2.internal.grpc.api.FaceOuterClass.FaceMCAffinity.Builder.class);
      }

      // Construct using clarifai2.internal.grpc.api.FaceOuterClass.FaceMCAffinity.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();
        }
      }
      public Builder clear() {
        super.clear();
        if (conceptsBuilder_ == null) {
          concepts_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
        } else {
          conceptsBuilder_.clear();
        }
        return this;
      }

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

      public clarifai2.internal.grpc.api.FaceOuterClass.FaceMCAffinity getDefaultInstanceForType() {
        return clarifai2.internal.grpc.api.FaceOuterClass.FaceMCAffinity.getDefaultInstance();
      }

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

      public clarifai2.internal.grpc.api.FaceOuterClass.FaceMCAffinity buildPartial() {
        clarifai2.internal.grpc.api.FaceOuterClass.FaceMCAffinity result = new clarifai2.internal.grpc.api.FaceOuterClass.FaceMCAffinity(this);
        int from_bitField0_ = bitField0_;
        if (conceptsBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001)) {
            concepts_ = java.util.Collections.unmodifiableList(concepts_);
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          result.concepts_ = concepts_;
        } else {
          result.concepts_ = conceptsBuilder_.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.FaceOuterClass.FaceMCAffinity) {
          return mergeFrom((clarifai2.internal.grpc.api.FaceOuterClass.FaceMCAffinity)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(clarifai2.internal.grpc.api.FaceOuterClass.FaceMCAffinity other) {
        if (other == clarifai2.internal.grpc.api.FaceOuterClass.FaceMCAffinity.getDefaultInstance()) return this;
        if (conceptsBuilder_ == null) {
          if (!other.concepts_.isEmpty()) {
            if (concepts_.isEmpty()) {
              concepts_ = other.concepts_;
              bitField0_ = (bitField0_ & ~0x00000001);
            } else {
              ensureConceptsIsMutable();
              concepts_.addAll(other.concepts_);
            }
            onChanged();
          }
        } else {
          if (!other.concepts_.isEmpty()) {
            if (conceptsBuilder_.isEmpty()) {
              conceptsBuilder_.dispose();
              conceptsBuilder_ = null;
              concepts_ = other.concepts_;
              bitField0_ = (bitField0_ & ~0x00000001);
              conceptsBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getConceptsFieldBuilder() : null;
            } else {
              conceptsBuilder_.addAllMessages(other.concepts_);
            }
          }
        }
        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.FaceOuterClass.FaceMCAffinity parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (clarifai2.internal.grpc.api.FaceOuterClass.FaceMCAffinity) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

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

      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 = 1;
       */
      public java.util.List getConceptsList() {
        if (conceptsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(concepts_);
        } else {
          return conceptsBuilder_.getMessageList();
        }
      }
      /**
       * repeated .clarifai.api.Concept concepts = 1;
       */
      public int getConceptsCount() {
        if (conceptsBuilder_ == null) {
          return concepts_.size();
        } else {
          return conceptsBuilder_.getCount();
        }
      }
      /**
       * repeated .clarifai.api.Concept concepts = 1;
       */
      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 = 1;
       */
      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 = 1;
       */
      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 = 1;
       */
      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 = 1;
       */
      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 = 1;
       */
      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 = 1;
       */
      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 = 1;
       */
      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 = 1;
       */
      public Builder clearConcepts() {
        if (conceptsBuilder_ == null) {
          concepts_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
        } else {
          conceptsBuilder_.clear();
        }
        return this;
      }
      /**
       * repeated .clarifai.api.Concept concepts = 1;
       */
      public Builder removeConcepts(int index) {
        if (conceptsBuilder_ == null) {
          ensureConceptsIsMutable();
          concepts_.remove(index);
          onChanged();
        } else {
          conceptsBuilder_.remove(index);
        }
        return this;
      }
      /**
       * repeated .clarifai.api.Concept concepts = 1;
       */
      public clarifai2.internal.grpc.api.ConceptOuterClass.Concept.Builder getConceptsBuilder(
          int index) {
        return getConceptsFieldBuilder().getBuilder(index);
      }
      /**
       * repeated .clarifai.api.Concept concepts = 1;
       */
      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 = 1;
       */
      public java.util.List 
           getConceptsOrBuilderList() {
        if (conceptsBuilder_ != null) {
          return conceptsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(concepts_);
        }
      }
      /**
       * repeated .clarifai.api.Concept concepts = 1;
       */
      public clarifai2.internal.grpc.api.ConceptOuterClass.Concept.Builder addConceptsBuilder() {
        return getConceptsFieldBuilder().addBuilder(
            clarifai2.internal.grpc.api.ConceptOuterClass.Concept.getDefaultInstance());
      }
      /**
       * repeated .clarifai.api.Concept concepts = 1;
       */
      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 = 1;
       */
      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_ & 0x00000001) == 0x00000001),
                  getParentForChildren(),
                  isClean());
          concepts_ = null;
        }
        return conceptsBuilder_;
      }
      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.FaceMCAffinity)
    }

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

    public static clarifai2.internal.grpc.api.FaceOuterClass.FaceMCAffinity getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

  }

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

    /**
     * .clarifai.api.FaceIdentity identity = 1;
     */
    boolean hasIdentity();
    /**
     * .clarifai.api.FaceIdentity identity = 1;
     */
    clarifai2.internal.grpc.api.FaceOuterClass.FaceIdentity getIdentity();
    /**
     * .clarifai.api.FaceIdentity identity = 1;
     */
    clarifai2.internal.grpc.api.FaceOuterClass.FaceIdentityOrBuilder getIdentityOrBuilder();

    /**
     * .clarifai.api.FaceAge age_appearance = 2;
     */
    boolean hasAgeAppearance();
    /**
     * .clarifai.api.FaceAge age_appearance = 2;
     */
    clarifai2.internal.grpc.api.FaceOuterClass.FaceAge getAgeAppearance();
    /**
     * .clarifai.api.FaceAge age_appearance = 2;
     */
    clarifai2.internal.grpc.api.FaceOuterClass.FaceAgeOrBuilder getAgeAppearanceOrBuilder();

    /**
     * .clarifai.api.FaceGenderIdentity gender_appearance = 3;
     */
    boolean hasGenderAppearance();
    /**
     * .clarifai.api.FaceGenderIdentity gender_appearance = 3;
     */
    clarifai2.internal.grpc.api.FaceOuterClass.FaceGenderIdentity getGenderAppearance();
    /**
     * .clarifai.api.FaceGenderIdentity gender_appearance = 3;
     */
    clarifai2.internal.grpc.api.FaceOuterClass.FaceGenderIdentityOrBuilder getGenderAppearanceOrBuilder();

    /**
     * .clarifai.api.FaceMCAffinity multicultural_appearance = 4;
     */
    boolean hasMulticulturalAppearance();
    /**
     * .clarifai.api.FaceMCAffinity multicultural_appearance = 4;
     */
    clarifai2.internal.grpc.api.FaceOuterClass.FaceMCAffinity getMulticulturalAppearance();
    /**
     * .clarifai.api.FaceMCAffinity multicultural_appearance = 4;
     */
    clarifai2.internal.grpc.api.FaceOuterClass.FaceMCAffinityOrBuilder getMulticulturalAppearanceOrBuilder();
  }
  /**
   * Protobuf type {@code clarifai.api.Face}
   */
  public  static final class Face extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:clarifai.api.Face)
      FaceOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use Face.newBuilder() to construct.
    private Face(com.google.protobuf.GeneratedMessageV3.Builder builder) {
      super(builder);
    }
    private Face() {
    }

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

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

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

              break;
            }
            case 34: {
              clarifai2.internal.grpc.api.FaceOuterClass.FaceMCAffinity.Builder subBuilder = null;
              if (multiculturalAppearance_ != null) {
                subBuilder = multiculturalAppearance_.toBuilder();
              }
              multiculturalAppearance_ = input.readMessage(clarifai2.internal.grpc.api.FaceOuterClass.FaceMCAffinity.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(multiculturalAppearance_);
                multiculturalAppearance_ = 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.FaceOuterClass.internal_static_clarifai_api_Face_descriptor;
    }

    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return clarifai2.internal.grpc.api.FaceOuterClass.internal_static_clarifai_api_Face_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              clarifai2.internal.grpc.api.FaceOuterClass.Face.class, clarifai2.internal.grpc.api.FaceOuterClass.Face.Builder.class);
    }

    public static final int IDENTITY_FIELD_NUMBER = 1;
    private clarifai2.internal.grpc.api.FaceOuterClass.FaceIdentity identity_;
    /**
     * .clarifai.api.FaceIdentity identity = 1;
     */
    public boolean hasIdentity() {
      return identity_ != null;
    }
    /**
     * .clarifai.api.FaceIdentity identity = 1;
     */
    public clarifai2.internal.grpc.api.FaceOuterClass.FaceIdentity getIdentity() {
      return identity_ == null ? clarifai2.internal.grpc.api.FaceOuterClass.FaceIdentity.getDefaultInstance() : identity_;
    }
    /**
     * .clarifai.api.FaceIdentity identity = 1;
     */
    public clarifai2.internal.grpc.api.FaceOuterClass.FaceIdentityOrBuilder getIdentityOrBuilder() {
      return getIdentity();
    }

    public static final int AGE_APPEARANCE_FIELD_NUMBER = 2;
    private clarifai2.internal.grpc.api.FaceOuterClass.FaceAge ageAppearance_;
    /**
     * .clarifai.api.FaceAge age_appearance = 2;
     */
    public boolean hasAgeAppearance() {
      return ageAppearance_ != null;
    }
    /**
     * .clarifai.api.FaceAge age_appearance = 2;
     */
    public clarifai2.internal.grpc.api.FaceOuterClass.FaceAge getAgeAppearance() {
      return ageAppearance_ == null ? clarifai2.internal.grpc.api.FaceOuterClass.FaceAge.getDefaultInstance() : ageAppearance_;
    }
    /**
     * .clarifai.api.FaceAge age_appearance = 2;
     */
    public clarifai2.internal.grpc.api.FaceOuterClass.FaceAgeOrBuilder getAgeAppearanceOrBuilder() {
      return getAgeAppearance();
    }

    public static final int GENDER_APPEARANCE_FIELD_NUMBER = 3;
    private clarifai2.internal.grpc.api.FaceOuterClass.FaceGenderIdentity genderAppearance_;
    /**
     * .clarifai.api.FaceGenderIdentity gender_appearance = 3;
     */
    public boolean hasGenderAppearance() {
      return genderAppearance_ != null;
    }
    /**
     * .clarifai.api.FaceGenderIdentity gender_appearance = 3;
     */
    public clarifai2.internal.grpc.api.FaceOuterClass.FaceGenderIdentity getGenderAppearance() {
      return genderAppearance_ == null ? clarifai2.internal.grpc.api.FaceOuterClass.FaceGenderIdentity.getDefaultInstance() : genderAppearance_;
    }
    /**
     * .clarifai.api.FaceGenderIdentity gender_appearance = 3;
     */
    public clarifai2.internal.grpc.api.FaceOuterClass.FaceGenderIdentityOrBuilder getGenderAppearanceOrBuilder() {
      return getGenderAppearance();
    }

    public static final int MULTICULTURAL_APPEARANCE_FIELD_NUMBER = 4;
    private clarifai2.internal.grpc.api.FaceOuterClass.FaceMCAffinity multiculturalAppearance_;
    /**
     * .clarifai.api.FaceMCAffinity multicultural_appearance = 4;
     */
    public boolean hasMulticulturalAppearance() {
      return multiculturalAppearance_ != null;
    }
    /**
     * .clarifai.api.FaceMCAffinity multicultural_appearance = 4;
     */
    public clarifai2.internal.grpc.api.FaceOuterClass.FaceMCAffinity getMulticulturalAppearance() {
      return multiculturalAppearance_ == null ? clarifai2.internal.grpc.api.FaceOuterClass.FaceMCAffinity.getDefaultInstance() : multiculturalAppearance_;
    }
    /**
     * .clarifai.api.FaceMCAffinity multicultural_appearance = 4;
     */
    public clarifai2.internal.grpc.api.FaceOuterClass.FaceMCAffinityOrBuilder getMulticulturalAppearanceOrBuilder() {
      return getMulticulturalAppearance();
    }

    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 (identity_ != null) {
        output.writeMessage(1, getIdentity());
      }
      if (ageAppearance_ != null) {
        output.writeMessage(2, getAgeAppearance());
      }
      if (genderAppearance_ != null) {
        output.writeMessage(3, getGenderAppearance());
      }
      if (multiculturalAppearance_ != null) {
        output.writeMessage(4, getMulticulturalAppearance());
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      if (identity_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, getIdentity());
      }
      if (ageAppearance_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, getAgeAppearance());
      }
      if (genderAppearance_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, getGenderAppearance());
      }
      if (multiculturalAppearance_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(4, getMulticulturalAppearance());
      }
      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.FaceOuterClass.Face)) {
        return super.equals(obj);
      }
      clarifai2.internal.grpc.api.FaceOuterClass.Face other = (clarifai2.internal.grpc.api.FaceOuterClass.Face) obj;

      boolean result = true;
      result = result && (hasIdentity() == other.hasIdentity());
      if (hasIdentity()) {
        result = result && getIdentity()
            .equals(other.getIdentity());
      }
      result = result && (hasAgeAppearance() == other.hasAgeAppearance());
      if (hasAgeAppearance()) {
        result = result && getAgeAppearance()
            .equals(other.getAgeAppearance());
      }
      result = result && (hasGenderAppearance() == other.hasGenderAppearance());
      if (hasGenderAppearance()) {
        result = result && getGenderAppearance()
            .equals(other.getGenderAppearance());
      }
      result = result && (hasMulticulturalAppearance() == other.hasMulticulturalAppearance());
      if (hasMulticulturalAppearance()) {
        result = result && getMulticulturalAppearance()
            .equals(other.getMulticulturalAppearance());
      }
      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 (hasIdentity()) {
        hash = (37 * hash) + IDENTITY_FIELD_NUMBER;
        hash = (53 * hash) + getIdentity().hashCode();
      }
      if (hasAgeAppearance()) {
        hash = (37 * hash) + AGE_APPEARANCE_FIELD_NUMBER;
        hash = (53 * hash) + getAgeAppearance().hashCode();
      }
      if (hasGenderAppearance()) {
        hash = (37 * hash) + GENDER_APPEARANCE_FIELD_NUMBER;
        hash = (53 * hash) + getGenderAppearance().hashCode();
      }
      if (hasMulticulturalAppearance()) {
        hash = (37 * hash) + MULTICULTURAL_APPEARANCE_FIELD_NUMBER;
        hash = (53 * hash) + getMulticulturalAppearance().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

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

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return clarifai2.internal.grpc.api.FaceOuterClass.internal_static_clarifai_api_Face_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                clarifai2.internal.grpc.api.FaceOuterClass.Face.class, clarifai2.internal.grpc.api.FaceOuterClass.Face.Builder.class);
      }

      // Construct using clarifai2.internal.grpc.api.FaceOuterClass.Face.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 (identityBuilder_ == null) {
          identity_ = null;
        } else {
          identity_ = null;
          identityBuilder_ = null;
        }
        if (ageAppearanceBuilder_ == null) {
          ageAppearance_ = null;
        } else {
          ageAppearance_ = null;
          ageAppearanceBuilder_ = null;
        }
        if (genderAppearanceBuilder_ == null) {
          genderAppearance_ = null;
        } else {
          genderAppearance_ = null;
          genderAppearanceBuilder_ = null;
        }
        if (multiculturalAppearanceBuilder_ == null) {
          multiculturalAppearance_ = null;
        } else {
          multiculturalAppearance_ = null;
          multiculturalAppearanceBuilder_ = null;
        }
        return this;
      }

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

      public clarifai2.internal.grpc.api.FaceOuterClass.Face getDefaultInstanceForType() {
        return clarifai2.internal.grpc.api.FaceOuterClass.Face.getDefaultInstance();
      }

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

      public clarifai2.internal.grpc.api.FaceOuterClass.Face buildPartial() {
        clarifai2.internal.grpc.api.FaceOuterClass.Face result = new clarifai2.internal.grpc.api.FaceOuterClass.Face(this);
        if (identityBuilder_ == null) {
          result.identity_ = identity_;
        } else {
          result.identity_ = identityBuilder_.build();
        }
        if (ageAppearanceBuilder_ == null) {
          result.ageAppearance_ = ageAppearance_;
        } else {
          result.ageAppearance_ = ageAppearanceBuilder_.build();
        }
        if (genderAppearanceBuilder_ == null) {
          result.genderAppearance_ = genderAppearance_;
        } else {
          result.genderAppearance_ = genderAppearanceBuilder_.build();
        }
        if (multiculturalAppearanceBuilder_ == null) {
          result.multiculturalAppearance_ = multiculturalAppearance_;
        } else {
          result.multiculturalAppearance_ = multiculturalAppearanceBuilder_.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.FaceOuterClass.Face) {
          return mergeFrom((clarifai2.internal.grpc.api.FaceOuterClass.Face)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(clarifai2.internal.grpc.api.FaceOuterClass.Face other) {
        if (other == clarifai2.internal.grpc.api.FaceOuterClass.Face.getDefaultInstance()) return this;
        if (other.hasIdentity()) {
          mergeIdentity(other.getIdentity());
        }
        if (other.hasAgeAppearance()) {
          mergeAgeAppearance(other.getAgeAppearance());
        }
        if (other.hasGenderAppearance()) {
          mergeGenderAppearance(other.getGenderAppearance());
        }
        if (other.hasMulticulturalAppearance()) {
          mergeMulticulturalAppearance(other.getMulticulturalAppearance());
        }
        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.FaceOuterClass.Face parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (clarifai2.internal.grpc.api.FaceOuterClass.Face) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private clarifai2.internal.grpc.api.FaceOuterClass.FaceIdentity identity_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
          clarifai2.internal.grpc.api.FaceOuterClass.FaceIdentity, clarifai2.internal.grpc.api.FaceOuterClass.FaceIdentity.Builder, clarifai2.internal.grpc.api.FaceOuterClass.FaceIdentityOrBuilder> identityBuilder_;
      /**
       * .clarifai.api.FaceIdentity identity = 1;
       */
      public boolean hasIdentity() {
        return identityBuilder_ != null || identity_ != null;
      }
      /**
       * .clarifai.api.FaceIdentity identity = 1;
       */
      public clarifai2.internal.grpc.api.FaceOuterClass.FaceIdentity getIdentity() {
        if (identityBuilder_ == null) {
          return identity_ == null ? clarifai2.internal.grpc.api.FaceOuterClass.FaceIdentity.getDefaultInstance() : identity_;
        } else {
          return identityBuilder_.getMessage();
        }
      }
      /**
       * .clarifai.api.FaceIdentity identity = 1;
       */
      public Builder setIdentity(clarifai2.internal.grpc.api.FaceOuterClass.FaceIdentity value) {
        if (identityBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          identity_ = value;
          onChanged();
        } else {
          identityBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * .clarifai.api.FaceIdentity identity = 1;
       */
      public Builder setIdentity(
          clarifai2.internal.grpc.api.FaceOuterClass.FaceIdentity.Builder builderForValue) {
        if (identityBuilder_ == null) {
          identity_ = builderForValue.build();
          onChanged();
        } else {
          identityBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * .clarifai.api.FaceIdentity identity = 1;
       */
      public Builder mergeIdentity(clarifai2.internal.grpc.api.FaceOuterClass.FaceIdentity value) {
        if (identityBuilder_ == null) {
          if (identity_ != null) {
            identity_ =
              clarifai2.internal.grpc.api.FaceOuterClass.FaceIdentity.newBuilder(identity_).mergeFrom(value).buildPartial();
          } else {
            identity_ = value;
          }
          onChanged();
        } else {
          identityBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * .clarifai.api.FaceIdentity identity = 1;
       */
      public Builder clearIdentity() {
        if (identityBuilder_ == null) {
          identity_ = null;
          onChanged();
        } else {
          identity_ = null;
          identityBuilder_ = null;
        }

        return this;
      }
      /**
       * .clarifai.api.FaceIdentity identity = 1;
       */
      public clarifai2.internal.grpc.api.FaceOuterClass.FaceIdentity.Builder getIdentityBuilder() {
        
        onChanged();
        return getIdentityFieldBuilder().getBuilder();
      }
      /**
       * .clarifai.api.FaceIdentity identity = 1;
       */
      public clarifai2.internal.grpc.api.FaceOuterClass.FaceIdentityOrBuilder getIdentityOrBuilder() {
        if (identityBuilder_ != null) {
          return identityBuilder_.getMessageOrBuilder();
        } else {
          return identity_ == null ?
              clarifai2.internal.grpc.api.FaceOuterClass.FaceIdentity.getDefaultInstance() : identity_;
        }
      }
      /**
       * .clarifai.api.FaceIdentity identity = 1;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          clarifai2.internal.grpc.api.FaceOuterClass.FaceIdentity, clarifai2.internal.grpc.api.FaceOuterClass.FaceIdentity.Builder, clarifai2.internal.grpc.api.FaceOuterClass.FaceIdentityOrBuilder> 
          getIdentityFieldBuilder() {
        if (identityBuilder_ == null) {
          identityBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              clarifai2.internal.grpc.api.FaceOuterClass.FaceIdentity, clarifai2.internal.grpc.api.FaceOuterClass.FaceIdentity.Builder, clarifai2.internal.grpc.api.FaceOuterClass.FaceIdentityOrBuilder>(
                  getIdentity(),
                  getParentForChildren(),
                  isClean());
          identity_ = null;
        }
        return identityBuilder_;
      }

      private clarifai2.internal.grpc.api.FaceOuterClass.FaceAge ageAppearance_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
          clarifai2.internal.grpc.api.FaceOuterClass.FaceAge, clarifai2.internal.grpc.api.FaceOuterClass.FaceAge.Builder, clarifai2.internal.grpc.api.FaceOuterClass.FaceAgeOrBuilder> ageAppearanceBuilder_;
      /**
       * .clarifai.api.FaceAge age_appearance = 2;
       */
      public boolean hasAgeAppearance() {
        return ageAppearanceBuilder_ != null || ageAppearance_ != null;
      }
      /**
       * .clarifai.api.FaceAge age_appearance = 2;
       */
      public clarifai2.internal.grpc.api.FaceOuterClass.FaceAge getAgeAppearance() {
        if (ageAppearanceBuilder_ == null) {
          return ageAppearance_ == null ? clarifai2.internal.grpc.api.FaceOuterClass.FaceAge.getDefaultInstance() : ageAppearance_;
        } else {
          return ageAppearanceBuilder_.getMessage();
        }
      }
      /**
       * .clarifai.api.FaceAge age_appearance = 2;
       */
      public Builder setAgeAppearance(clarifai2.internal.grpc.api.FaceOuterClass.FaceAge value) {
        if (ageAppearanceBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ageAppearance_ = value;
          onChanged();
        } else {
          ageAppearanceBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * .clarifai.api.FaceAge age_appearance = 2;
       */
      public Builder setAgeAppearance(
          clarifai2.internal.grpc.api.FaceOuterClass.FaceAge.Builder builderForValue) {
        if (ageAppearanceBuilder_ == null) {
          ageAppearance_ = builderForValue.build();
          onChanged();
        } else {
          ageAppearanceBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * .clarifai.api.FaceAge age_appearance = 2;
       */
      public Builder mergeAgeAppearance(clarifai2.internal.grpc.api.FaceOuterClass.FaceAge value) {
        if (ageAppearanceBuilder_ == null) {
          if (ageAppearance_ != null) {
            ageAppearance_ =
              clarifai2.internal.grpc.api.FaceOuterClass.FaceAge.newBuilder(ageAppearance_).mergeFrom(value).buildPartial();
          } else {
            ageAppearance_ = value;
          }
          onChanged();
        } else {
          ageAppearanceBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * .clarifai.api.FaceAge age_appearance = 2;
       */
      public Builder clearAgeAppearance() {
        if (ageAppearanceBuilder_ == null) {
          ageAppearance_ = null;
          onChanged();
        } else {
          ageAppearance_ = null;
          ageAppearanceBuilder_ = null;
        }

        return this;
      }
      /**
       * .clarifai.api.FaceAge age_appearance = 2;
       */
      public clarifai2.internal.grpc.api.FaceOuterClass.FaceAge.Builder getAgeAppearanceBuilder() {
        
        onChanged();
        return getAgeAppearanceFieldBuilder().getBuilder();
      }
      /**
       * .clarifai.api.FaceAge age_appearance = 2;
       */
      public clarifai2.internal.grpc.api.FaceOuterClass.FaceAgeOrBuilder getAgeAppearanceOrBuilder() {
        if (ageAppearanceBuilder_ != null) {
          return ageAppearanceBuilder_.getMessageOrBuilder();
        } else {
          return ageAppearance_ == null ?
              clarifai2.internal.grpc.api.FaceOuterClass.FaceAge.getDefaultInstance() : ageAppearance_;
        }
      }
      /**
       * .clarifai.api.FaceAge age_appearance = 2;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          clarifai2.internal.grpc.api.FaceOuterClass.FaceAge, clarifai2.internal.grpc.api.FaceOuterClass.FaceAge.Builder, clarifai2.internal.grpc.api.FaceOuterClass.FaceAgeOrBuilder> 
          getAgeAppearanceFieldBuilder() {
        if (ageAppearanceBuilder_ == null) {
          ageAppearanceBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              clarifai2.internal.grpc.api.FaceOuterClass.FaceAge, clarifai2.internal.grpc.api.FaceOuterClass.FaceAge.Builder, clarifai2.internal.grpc.api.FaceOuterClass.FaceAgeOrBuilder>(
                  getAgeAppearance(),
                  getParentForChildren(),
                  isClean());
          ageAppearance_ = null;
        }
        return ageAppearanceBuilder_;
      }

      private clarifai2.internal.grpc.api.FaceOuterClass.FaceGenderIdentity genderAppearance_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
          clarifai2.internal.grpc.api.FaceOuterClass.FaceGenderIdentity, clarifai2.internal.grpc.api.FaceOuterClass.FaceGenderIdentity.Builder, clarifai2.internal.grpc.api.FaceOuterClass.FaceGenderIdentityOrBuilder> genderAppearanceBuilder_;
      /**
       * .clarifai.api.FaceGenderIdentity gender_appearance = 3;
       */
      public boolean hasGenderAppearance() {
        return genderAppearanceBuilder_ != null || genderAppearance_ != null;
      }
      /**
       * .clarifai.api.FaceGenderIdentity gender_appearance = 3;
       */
      public clarifai2.internal.grpc.api.FaceOuterClass.FaceGenderIdentity getGenderAppearance() {
        if (genderAppearanceBuilder_ == null) {
          return genderAppearance_ == null ? clarifai2.internal.grpc.api.FaceOuterClass.FaceGenderIdentity.getDefaultInstance() : genderAppearance_;
        } else {
          return genderAppearanceBuilder_.getMessage();
        }
      }
      /**
       * .clarifai.api.FaceGenderIdentity gender_appearance = 3;
       */
      public Builder setGenderAppearance(clarifai2.internal.grpc.api.FaceOuterClass.FaceGenderIdentity value) {
        if (genderAppearanceBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          genderAppearance_ = value;
          onChanged();
        } else {
          genderAppearanceBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * .clarifai.api.FaceGenderIdentity gender_appearance = 3;
       */
      public Builder setGenderAppearance(
          clarifai2.internal.grpc.api.FaceOuterClass.FaceGenderIdentity.Builder builderForValue) {
        if (genderAppearanceBuilder_ == null) {
          genderAppearance_ = builderForValue.build();
          onChanged();
        } else {
          genderAppearanceBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * .clarifai.api.FaceGenderIdentity gender_appearance = 3;
       */
      public Builder mergeGenderAppearance(clarifai2.internal.grpc.api.FaceOuterClass.FaceGenderIdentity value) {
        if (genderAppearanceBuilder_ == null) {
          if (genderAppearance_ != null) {
            genderAppearance_ =
              clarifai2.internal.grpc.api.FaceOuterClass.FaceGenderIdentity.newBuilder(genderAppearance_).mergeFrom(value).buildPartial();
          } else {
            genderAppearance_ = value;
          }
          onChanged();
        } else {
          genderAppearanceBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * .clarifai.api.FaceGenderIdentity gender_appearance = 3;
       */
      public Builder clearGenderAppearance() {
        if (genderAppearanceBuilder_ == null) {
          genderAppearance_ = null;
          onChanged();
        } else {
          genderAppearance_ = null;
          genderAppearanceBuilder_ = null;
        }

        return this;
      }
      /**
       * .clarifai.api.FaceGenderIdentity gender_appearance = 3;
       */
      public clarifai2.internal.grpc.api.FaceOuterClass.FaceGenderIdentity.Builder getGenderAppearanceBuilder() {
        
        onChanged();
        return getGenderAppearanceFieldBuilder().getBuilder();
      }
      /**
       * .clarifai.api.FaceGenderIdentity gender_appearance = 3;
       */
      public clarifai2.internal.grpc.api.FaceOuterClass.FaceGenderIdentityOrBuilder getGenderAppearanceOrBuilder() {
        if (genderAppearanceBuilder_ != null) {
          return genderAppearanceBuilder_.getMessageOrBuilder();
        } else {
          return genderAppearance_ == null ?
              clarifai2.internal.grpc.api.FaceOuterClass.FaceGenderIdentity.getDefaultInstance() : genderAppearance_;
        }
      }
      /**
       * .clarifai.api.FaceGenderIdentity gender_appearance = 3;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          clarifai2.internal.grpc.api.FaceOuterClass.FaceGenderIdentity, clarifai2.internal.grpc.api.FaceOuterClass.FaceGenderIdentity.Builder, clarifai2.internal.grpc.api.FaceOuterClass.FaceGenderIdentityOrBuilder> 
          getGenderAppearanceFieldBuilder() {
        if (genderAppearanceBuilder_ == null) {
          genderAppearanceBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              clarifai2.internal.grpc.api.FaceOuterClass.FaceGenderIdentity, clarifai2.internal.grpc.api.FaceOuterClass.FaceGenderIdentity.Builder, clarifai2.internal.grpc.api.FaceOuterClass.FaceGenderIdentityOrBuilder>(
                  getGenderAppearance(),
                  getParentForChildren(),
                  isClean());
          genderAppearance_ = null;
        }
        return genderAppearanceBuilder_;
      }

      private clarifai2.internal.grpc.api.FaceOuterClass.FaceMCAffinity multiculturalAppearance_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
          clarifai2.internal.grpc.api.FaceOuterClass.FaceMCAffinity, clarifai2.internal.grpc.api.FaceOuterClass.FaceMCAffinity.Builder, clarifai2.internal.grpc.api.FaceOuterClass.FaceMCAffinityOrBuilder> multiculturalAppearanceBuilder_;
      /**
       * .clarifai.api.FaceMCAffinity multicultural_appearance = 4;
       */
      public boolean hasMulticulturalAppearance() {
        return multiculturalAppearanceBuilder_ != null || multiculturalAppearance_ != null;
      }
      /**
       * .clarifai.api.FaceMCAffinity multicultural_appearance = 4;
       */
      public clarifai2.internal.grpc.api.FaceOuterClass.FaceMCAffinity getMulticulturalAppearance() {
        if (multiculturalAppearanceBuilder_ == null) {
          return multiculturalAppearance_ == null ? clarifai2.internal.grpc.api.FaceOuterClass.FaceMCAffinity.getDefaultInstance() : multiculturalAppearance_;
        } else {
          return multiculturalAppearanceBuilder_.getMessage();
        }
      }
      /**
       * .clarifai.api.FaceMCAffinity multicultural_appearance = 4;
       */
      public Builder setMulticulturalAppearance(clarifai2.internal.grpc.api.FaceOuterClass.FaceMCAffinity value) {
        if (multiculturalAppearanceBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          multiculturalAppearance_ = value;
          onChanged();
        } else {
          multiculturalAppearanceBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * .clarifai.api.FaceMCAffinity multicultural_appearance = 4;
       */
      public Builder setMulticulturalAppearance(
          clarifai2.internal.grpc.api.FaceOuterClass.FaceMCAffinity.Builder builderForValue) {
        if (multiculturalAppearanceBuilder_ == null) {
          multiculturalAppearance_ = builderForValue.build();
          onChanged();
        } else {
          multiculturalAppearanceBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * .clarifai.api.FaceMCAffinity multicultural_appearance = 4;
       */
      public Builder mergeMulticulturalAppearance(clarifai2.internal.grpc.api.FaceOuterClass.FaceMCAffinity value) {
        if (multiculturalAppearanceBuilder_ == null) {
          if (multiculturalAppearance_ != null) {
            multiculturalAppearance_ =
              clarifai2.internal.grpc.api.FaceOuterClass.FaceMCAffinity.newBuilder(multiculturalAppearance_).mergeFrom(value).buildPartial();
          } else {
            multiculturalAppearance_ = value;
          }
          onChanged();
        } else {
          multiculturalAppearanceBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * .clarifai.api.FaceMCAffinity multicultural_appearance = 4;
       */
      public Builder clearMulticulturalAppearance() {
        if (multiculturalAppearanceBuilder_ == null) {
          multiculturalAppearance_ = null;
          onChanged();
        } else {
          multiculturalAppearance_ = null;
          multiculturalAppearanceBuilder_ = null;
        }

        return this;
      }
      /**
       * .clarifai.api.FaceMCAffinity multicultural_appearance = 4;
       */
      public clarifai2.internal.grpc.api.FaceOuterClass.FaceMCAffinity.Builder getMulticulturalAppearanceBuilder() {
        
        onChanged();
        return getMulticulturalAppearanceFieldBuilder().getBuilder();
      }
      /**
       * .clarifai.api.FaceMCAffinity multicultural_appearance = 4;
       */
      public clarifai2.internal.grpc.api.FaceOuterClass.FaceMCAffinityOrBuilder getMulticulturalAppearanceOrBuilder() {
        if (multiculturalAppearanceBuilder_ != null) {
          return multiculturalAppearanceBuilder_.getMessageOrBuilder();
        } else {
          return multiculturalAppearance_ == null ?
              clarifai2.internal.grpc.api.FaceOuterClass.FaceMCAffinity.getDefaultInstance() : multiculturalAppearance_;
        }
      }
      /**
       * .clarifai.api.FaceMCAffinity multicultural_appearance = 4;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          clarifai2.internal.grpc.api.FaceOuterClass.FaceMCAffinity, clarifai2.internal.grpc.api.FaceOuterClass.FaceMCAffinity.Builder, clarifai2.internal.grpc.api.FaceOuterClass.FaceMCAffinityOrBuilder> 
          getMulticulturalAppearanceFieldBuilder() {
        if (multiculturalAppearanceBuilder_ == null) {
          multiculturalAppearanceBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              clarifai2.internal.grpc.api.FaceOuterClass.FaceMCAffinity, clarifai2.internal.grpc.api.FaceOuterClass.FaceMCAffinity.Builder, clarifai2.internal.grpc.api.FaceOuterClass.FaceMCAffinityOrBuilder>(
                  getMulticulturalAppearance(),
                  getParentForChildren(),
                  isClean());
          multiculturalAppearance_ = null;
        }
        return multiculturalAppearanceBuilder_;
      }
      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.Face)
    }

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

    public static clarifai2.internal.grpc.api.FaceOuterClass.Face getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

  }

  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_clarifai_api_FaceIdentity_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_clarifai_api_FaceIdentity_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_clarifai_api_FaceAge_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_clarifai_api_FaceAge_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_clarifai_api_FaceGenderIdentity_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_clarifai_api_FaceGenderIdentity_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_clarifai_api_FaceMCAffinity_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_clarifai_api_FaceMCAffinity_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_clarifai_api_Face_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_clarifai_api_Face_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/face.proto\022\014clarifa" +
      "i.api\032 proto/clarifai/api/concept.proto\"" +
      "7\n\014FaceIdentity\022\'\n\010concepts\030\001 \003(\0132\025.clar" +
      "ifai.api.Concept\"2\n\007FaceAge\022\'\n\010concepts\030" +
      "\001 \003(\0132\025.clarifai.api.Concept\"=\n\022FaceGend" +
      "erIdentity\022\'\n\010concepts\030\001 \003(\0132\025.clarifai." +
      "api.Concept\"9\n\016FaceMCAffinity\022\'\n\010concept" +
      "s\030\001 \003(\0132\025.clarifai.api.Concept\"\340\001\n\004Face\022" +
      ",\n\010identity\030\001 \001(\0132\032.clarifai.api.FaceIde" +
      "ntity\022-\n\016age_appearance\030\002 \001(\0132\025.clarifai" +
      ".api.FaceAge\022;\n\021gender_appearance\030\003 \001(\0132" +
      " .clarifai.api.FaceGenderIdentity\022>\n\030mul" +
      "ticultural_appearance\030\004 \001(\0132\034.clarifai.a" +
      "pi.FaceMCAffinityBA\n\033clarifai2.internal." +
      "grpc.apiZ\003api\242\002\004CAIP\302\002\001_\312\002\021Clarifai\\Inte" +
      "rnalb\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.ConceptOuterClass.getDescriptor(),
        }, assigner);
    internal_static_clarifai_api_FaceIdentity_descriptor =
      getDescriptor().getMessageTypes().get(0);
    internal_static_clarifai_api_FaceIdentity_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_clarifai_api_FaceIdentity_descriptor,
        new java.lang.String[] { "Concepts", });
    internal_static_clarifai_api_FaceAge_descriptor =
      getDescriptor().getMessageTypes().get(1);
    internal_static_clarifai_api_FaceAge_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_clarifai_api_FaceAge_descriptor,
        new java.lang.String[] { "Concepts", });
    internal_static_clarifai_api_FaceGenderIdentity_descriptor =
      getDescriptor().getMessageTypes().get(2);
    internal_static_clarifai_api_FaceGenderIdentity_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_clarifai_api_FaceGenderIdentity_descriptor,
        new java.lang.String[] { "Concepts", });
    internal_static_clarifai_api_FaceMCAffinity_descriptor =
      getDescriptor().getMessageTypes().get(3);
    internal_static_clarifai_api_FaceMCAffinity_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_clarifai_api_FaceMCAffinity_descriptor,
        new java.lang.String[] { "Concepts", });
    internal_static_clarifai_api_Face_descriptor =
      getDescriptor().getMessageTypes().get(4);
    internal_static_clarifai_api_Face_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_clarifai_api_Face_descriptor,
        new java.lang.String[] { "Identity", "AgeAppearance", "GenderAppearance", "MulticulturalAppearance", });
    clarifai2.internal.grpc.api.ConceptOuterClass.getDescriptor();
  }

  // @@protoc_insertion_point(outer_class_scope)
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy