@java.lang.Override
    public Builder mergeFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                analyzer_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000001;
                break;
              } // case 10
            case 18:
              {
                operator_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000002;
                break;
              } // case 18
            case 26:
              {
                com.google.cloud.visionai.v1.AnalyzerDefinition.StreamInput m =
                    input.readMessage(
                        com.google.cloud.visionai.v1.AnalyzerDefinition.StreamInput.parser(),
                        extensionRegistry);
                if (inputsBuilder_ == null) {
                  ensureInputsIsMutable();
                  inputs_.add(m);
                } else {
                  inputsBuilder_.addMessage(m);
                }
                break;
              } // case 26
            case 34:
              {
                com.google.protobuf.MapEntry<
                        java.lang.String, com.google.cloud.visionai.v1.AttributeValue>
                    attrs__ =
                        input.readMessage(
                            AttrsDefaultEntryHolder.defaultEntry.getParserForType(),
                            extensionRegistry);
                internalGetMutableAttrs()
                    .ensureBuilderMap()
                    .put(attrs__.getKey(), attrs__.getValue());
                bitField0_ |= 0x00000008;
                break;
              } // case 34
            case 42:
              {
                input.readMessage(getDebugOptionsFieldBuilder().getBuilder(), extensionRegistry);
                bitField0_ |= 0x00000010;
                break;
              } // case 42
            case 50:
              {
                input.readMessage(getOperatorOptionFieldBuilder().getBuilder(), extensionRegistry);
                bitField0_ |= 0x00000020;
                break;
              } // case 50
            default:
              {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
          } // switch (tag)
        } // while (!done)
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.unwrapIOException();
      } finally {
        onChanged();
      } // finally
      return this;
    }
<pre>
Defines an Analyzer.

An analyzer processes data from its input streams using the logic defined in
the Operator that it represents. Of course, it produces data for the output
streams declared in the Operator.
</pre>

Protobuf type {@code google.cloud.visionai.v1.AnalyzerDefinition}
java-visionai/proto-google-cloud-visionai-v1/src/main/java/com/google/cloud/visionai/v1/AnalyzerDefinition.java