ArtifactVerificationOptions.java

// Generated by the protocol buffer compiler.  DO NOT EDIT!
// NO CHECKED-IN PROTOBUF GENCODE
// source: sigstore_verification.proto
// Protobuf Java Version: 4.30.2

package dev.sigstore.proto.verification.v1;

/**
 * <pre>
 * A light-weight set of options/policies for identifying trusted signers,
 * used during verification of a single artifact.
 * </pre>
 *
 * Protobuf type {@code dev.sigstore.verification.v1.ArtifactVerificationOptions}
 */
@javax.annotation.Generated(value="protoc", comments="annotations:ArtifactVerificationOptions.java.pb.meta")
public final class ArtifactVerificationOptions extends
    com.google.protobuf.GeneratedMessage implements
    // @@protoc_insertion_point(message_implements:dev.sigstore.verification.v1.ArtifactVerificationOptions)
    ArtifactVerificationOptionsOrBuilder {
private static final long serialVersionUID = 0L;
  static {
    com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
      com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
      /* major= */ 4,
      /* minor= */ 30,
      /* patch= */ 2,
      /* suffix= */ "",
      ArtifactVerificationOptions.class.getName());
  }
  // Use ArtifactVerificationOptions.newBuilder() to construct.
  private ArtifactVerificationOptions(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
    super(builder);
  }
  private ArtifactVerificationOptions() {
  }

  public static final com.google.protobuf.Descriptors.Descriptor
      getDescriptor() {
    return dev.sigstore.proto.verification.v1.VerificationProto.internal_static_dev_sigstore_verification_v1_ArtifactVerificationOptions_descriptor;
  }

  @java.lang.Override
  protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internalGetFieldAccessorTable() {
    return dev.sigstore.proto.verification.v1.VerificationProto.internal_static_dev_sigstore_verification_v1_ArtifactVerificationOptions_fieldAccessorTable
        .ensureFieldAccessorsInitialized(
            dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.class, dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.Builder.class);
  }

  public interface TlogOptionsOrBuilder extends
      // @@protoc_insertion_point(interface_extends:dev.sigstore.verification.v1.ArtifactVerificationOptions.TlogOptions)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     * Number of transparency logs the entry must appear on.
     * </pre>
     *
     * <code>int32 threshold = 1;</code>
     * @return The threshold.
     */
    int getThreshold();

    /**
     * <pre>
     * Perform an online inclusion proof.
     * </pre>
     *
     * <code>bool perform_online_verification = 2;</code>
     * @return The performOnlineVerification.
     */
    boolean getPerformOnlineVerification();

    /**
     * <pre>
     * Disable verification for transparency logs.
     * </pre>
     *
     * <code>bool disable = 3;</code>
     * @return The disable.
     */
    boolean getDisable();
  }
  /**
   * Protobuf type {@code dev.sigstore.verification.v1.ArtifactVerificationOptions.TlogOptions}
   */
  public static final class TlogOptions extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:dev.sigstore.verification.v1.ArtifactVerificationOptions.TlogOptions)
      TlogOptionsOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 30,
        /* patch= */ 2,
        /* suffix= */ "",
        TlogOptions.class.getName());
    }
    // Use TlogOptions.newBuilder() to construct.
    private TlogOptions(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
    }
    private TlogOptions() {
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return dev.sigstore.proto.verification.v1.VerificationProto.internal_static_dev_sigstore_verification_v1_ArtifactVerificationOptions_TlogOptions_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return dev.sigstore.proto.verification.v1.VerificationProto.internal_static_dev_sigstore_verification_v1_ArtifactVerificationOptions_TlogOptions_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.TlogOptions.class, dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.TlogOptions.Builder.class);
    }

    public static final int THRESHOLD_FIELD_NUMBER = 1;
    private int threshold_ = 0;
    /**
     * <pre>
     * Number of transparency logs the entry must appear on.
     * </pre>
     *
     * <code>int32 threshold = 1;</code>
     * @return The threshold.
     */
    @java.lang.Override
    public int getThreshold() {
      return threshold_;
    }

    public static final int PERFORM_ONLINE_VERIFICATION_FIELD_NUMBER = 2;
    private boolean performOnlineVerification_ = false;
    /**
     * <pre>
     * Perform an online inclusion proof.
     * </pre>
     *
     * <code>bool perform_online_verification = 2;</code>
     * @return The performOnlineVerification.
     */
    @java.lang.Override
    public boolean getPerformOnlineVerification() {
      return performOnlineVerification_;
    }

    public static final int DISABLE_FIELD_NUMBER = 3;
    private boolean disable_ = false;
    /**
     * <pre>
     * Disable verification for transparency logs.
     * </pre>
     *
     * <code>bool disable = 3;</code>
     * @return The disable.
     */
    @java.lang.Override
    public boolean getDisable() {
      return disable_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (threshold_ != 0) {
        output.writeInt32(1, threshold_);
      }
      if (performOnlineVerification_ != false) {
        output.writeBool(2, performOnlineVerification_);
      }
      if (disable_ != false) {
        output.writeBool(3, disable_);
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (threshold_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, threshold_);
      }
      if (performOnlineVerification_ != false) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(2, performOnlineVerification_);
      }
      if (disable_ != false) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(3, disable_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.TlogOptions)) {
        return super.equals(obj);
      }
      dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.TlogOptions other = (dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.TlogOptions) obj;

      if (getThreshold()
          != other.getThreshold()) return false;
      if (getPerformOnlineVerification()
          != other.getPerformOnlineVerification()) return false;
      if (getDisable()
          != other.getDisable()) return false;
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + THRESHOLD_FIELD_NUMBER;
      hash = (53 * hash) + getThreshold();
      hash = (37 * hash) + PERFORM_ONLINE_VERIFICATION_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
          getPerformOnlineVerification());
      hash = (37 * hash) + DISABLE_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
          getDisable());
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.TlogOptions parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.TlogOptions parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.TlogOptions parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.TlogOptions parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.TlogOptions parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.TlogOptions parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.TlogOptions parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.TlogOptions parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.TlogOptions parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.TlogOptions parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.TlogOptions parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.TlogOptions parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.TlogOptions prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code dev.sigstore.verification.v1.ArtifactVerificationOptions.TlogOptions}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:dev.sigstore.verification.v1.ArtifactVerificationOptions.TlogOptions)
        dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.TlogOptionsOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return dev.sigstore.proto.verification.v1.VerificationProto.internal_static_dev_sigstore_verification_v1_ArtifactVerificationOptions_TlogOptions_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return dev.sigstore.proto.verification.v1.VerificationProto.internal_static_dev_sigstore_verification_v1_ArtifactVerificationOptions_TlogOptions_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.TlogOptions.class, dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.TlogOptions.Builder.class);
      }

      // Construct using dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.TlogOptions.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        threshold_ = 0;
        performOnlineVerification_ = false;
        disable_ = false;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return dev.sigstore.proto.verification.v1.VerificationProto.internal_static_dev_sigstore_verification_v1_ArtifactVerificationOptions_TlogOptions_descriptor;
      }

      @java.lang.Override
      public dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.TlogOptions getDefaultInstanceForType() {
        return dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.TlogOptions.getDefaultInstance();
      }

      @java.lang.Override
      public dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.TlogOptions build() {
        dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.TlogOptions result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.TlogOptions buildPartial() {
        dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.TlogOptions result = new dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.TlogOptions(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.TlogOptions result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.threshold_ = threshold_;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.performOnlineVerification_ = performOnlineVerification_;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.disable_ = disable_;
        }
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.TlogOptions) {
          return mergeFrom((dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.TlogOptions)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.TlogOptions other) {
        if (other == dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.TlogOptions.getDefaultInstance()) return this;
        if (other.getThreshold() != 0) {
          setThreshold(other.getThreshold());
        }
        if (other.getPerformOnlineVerification() != false) {
          setPerformOnlineVerification(other.getPerformOnlineVerification());
        }
        if (other.getDisable() != false) {
          setDisable(other.getDisable());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @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 8: {
                threshold_ = input.readInt32();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 16: {
                performOnlineVerification_ = input.readBool();
                bitField0_ |= 0x00000002;
                break;
              } // case 16
              case 24: {
                disable_ = input.readBool();
                bitField0_ |= 0x00000004;
                break;
              } // case 24
              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;
      }
      private int bitField0_;

      private int threshold_ ;
      /**
       * <pre>
       * Number of transparency logs the entry must appear on.
       * </pre>
       *
       * <code>int32 threshold = 1;</code>
       * @return The threshold.
       */
      @java.lang.Override
      public int getThreshold() {
        return threshold_;
      }
      /**
       * <pre>
       * Number of transparency logs the entry must appear on.
       * </pre>
       *
       * <code>int32 threshold = 1;</code>
       * @param value The threshold to set.
       * @return This builder for chaining.
       */
      public Builder setThreshold(int value) {

        threshold_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Number of transparency logs the entry must appear on.
       * </pre>
       *
       * <code>int32 threshold = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearThreshold() {
        bitField0_ = (bitField0_ & ~0x00000001);
        threshold_ = 0;
        onChanged();
        return this;
      }

      private boolean performOnlineVerification_ ;
      /**
       * <pre>
       * Perform an online inclusion proof.
       * </pre>
       *
       * <code>bool perform_online_verification = 2;</code>
       * @return The performOnlineVerification.
       */
      @java.lang.Override
      public boolean getPerformOnlineVerification() {
        return performOnlineVerification_;
      }
      /**
       * <pre>
       * Perform an online inclusion proof.
       * </pre>
       *
       * <code>bool perform_online_verification = 2;</code>
       * @param value The performOnlineVerification to set.
       * @return This builder for chaining.
       */
      public Builder setPerformOnlineVerification(boolean value) {

        performOnlineVerification_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Perform an online inclusion proof.
       * </pre>
       *
       * <code>bool perform_online_verification = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearPerformOnlineVerification() {
        bitField0_ = (bitField0_ & ~0x00000002);
        performOnlineVerification_ = false;
        onChanged();
        return this;
      }

      private boolean disable_ ;
      /**
       * <pre>
       * Disable verification for transparency logs.
       * </pre>
       *
       * <code>bool disable = 3;</code>
       * @return The disable.
       */
      @java.lang.Override
      public boolean getDisable() {
        return disable_;
      }
      /**
       * <pre>
       * Disable verification for transparency logs.
       * </pre>
       *
       * <code>bool disable = 3;</code>
       * @param value The disable to set.
       * @return This builder for chaining.
       */
      public Builder setDisable(boolean value) {

        disable_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Disable verification for transparency logs.
       * </pre>
       *
       * <code>bool disable = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearDisable() {
        bitField0_ = (bitField0_ & ~0x00000004);
        disable_ = false;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:dev.sigstore.verification.v1.ArtifactVerificationOptions.TlogOptions)
    }

    // @@protoc_insertion_point(class_scope:dev.sigstore.verification.v1.ArtifactVerificationOptions.TlogOptions)
    private static final dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.TlogOptions DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.TlogOptions();
    }

    public static dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.TlogOptions getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<TlogOptions>
        PARSER = new com.google.protobuf.AbstractParser<TlogOptions>() {
      @java.lang.Override
      public TlogOptions parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

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

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

    @java.lang.Override
    public dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.TlogOptions getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface CtlogOptionsOrBuilder extends
      // @@protoc_insertion_point(interface_extends:dev.sigstore.verification.v1.ArtifactVerificationOptions.CtlogOptions)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     * The number of ct transparency logs the certificate must
     * appear on.
     * </pre>
     *
     * <code>int32 threshold = 1;</code>
     * @return The threshold.
     */
    int getThreshold();

    /**
     * <pre>
     * Disable ct transparency log verification
     * </pre>
     *
     * <code>bool disable = 3;</code>
     * @return The disable.
     */
    boolean getDisable();
  }
  /**
   * Protobuf type {@code dev.sigstore.verification.v1.ArtifactVerificationOptions.CtlogOptions}
   */
  public static final class CtlogOptions extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:dev.sigstore.verification.v1.ArtifactVerificationOptions.CtlogOptions)
      CtlogOptionsOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 30,
        /* patch= */ 2,
        /* suffix= */ "",
        CtlogOptions.class.getName());
    }
    // Use CtlogOptions.newBuilder() to construct.
    private CtlogOptions(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
    }
    private CtlogOptions() {
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return dev.sigstore.proto.verification.v1.VerificationProto.internal_static_dev_sigstore_verification_v1_ArtifactVerificationOptions_CtlogOptions_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return dev.sigstore.proto.verification.v1.VerificationProto.internal_static_dev_sigstore_verification_v1_ArtifactVerificationOptions_CtlogOptions_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.CtlogOptions.class, dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.CtlogOptions.Builder.class);
    }

    public static final int THRESHOLD_FIELD_NUMBER = 1;
    private int threshold_ = 0;
    /**
     * <pre>
     * The number of ct transparency logs the certificate must
     * appear on.
     * </pre>
     *
     * <code>int32 threshold = 1;</code>
     * @return The threshold.
     */
    @java.lang.Override
    public int getThreshold() {
      return threshold_;
    }

    public static final int DISABLE_FIELD_NUMBER = 3;
    private boolean disable_ = false;
    /**
     * <pre>
     * Disable ct transparency log verification
     * </pre>
     *
     * <code>bool disable = 3;</code>
     * @return The disable.
     */
    @java.lang.Override
    public boolean getDisable() {
      return disable_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (threshold_ != 0) {
        output.writeInt32(1, threshold_);
      }
      if (disable_ != false) {
        output.writeBool(3, disable_);
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (threshold_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, threshold_);
      }
      if (disable_ != false) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(3, disable_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.CtlogOptions)) {
        return super.equals(obj);
      }
      dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.CtlogOptions other = (dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.CtlogOptions) obj;

      if (getThreshold()
          != other.getThreshold()) return false;
      if (getDisable()
          != other.getDisable()) return false;
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + THRESHOLD_FIELD_NUMBER;
      hash = (53 * hash) + getThreshold();
      hash = (37 * hash) + DISABLE_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
          getDisable());
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.CtlogOptions parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.CtlogOptions parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.CtlogOptions parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.CtlogOptions parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.CtlogOptions parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.CtlogOptions parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.CtlogOptions parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.CtlogOptions parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.CtlogOptions parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.CtlogOptions parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.CtlogOptions parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.CtlogOptions parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.CtlogOptions prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code dev.sigstore.verification.v1.ArtifactVerificationOptions.CtlogOptions}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:dev.sigstore.verification.v1.ArtifactVerificationOptions.CtlogOptions)
        dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.CtlogOptionsOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return dev.sigstore.proto.verification.v1.VerificationProto.internal_static_dev_sigstore_verification_v1_ArtifactVerificationOptions_CtlogOptions_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return dev.sigstore.proto.verification.v1.VerificationProto.internal_static_dev_sigstore_verification_v1_ArtifactVerificationOptions_CtlogOptions_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.CtlogOptions.class, dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.CtlogOptions.Builder.class);
      }

      // Construct using dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.CtlogOptions.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        threshold_ = 0;
        disable_ = false;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return dev.sigstore.proto.verification.v1.VerificationProto.internal_static_dev_sigstore_verification_v1_ArtifactVerificationOptions_CtlogOptions_descriptor;
      }

      @java.lang.Override
      public dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.CtlogOptions getDefaultInstanceForType() {
        return dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.CtlogOptions.getDefaultInstance();
      }

      @java.lang.Override
      public dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.CtlogOptions build() {
        dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.CtlogOptions result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.CtlogOptions buildPartial() {
        dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.CtlogOptions result = new dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.CtlogOptions(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.CtlogOptions result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.threshold_ = threshold_;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.disable_ = disable_;
        }
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.CtlogOptions) {
          return mergeFrom((dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.CtlogOptions)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.CtlogOptions other) {
        if (other == dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.CtlogOptions.getDefaultInstance()) return this;
        if (other.getThreshold() != 0) {
          setThreshold(other.getThreshold());
        }
        if (other.getDisable() != false) {
          setDisable(other.getDisable());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @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 8: {
                threshold_ = input.readInt32();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 24: {
                disable_ = input.readBool();
                bitField0_ |= 0x00000002;
                break;
              } // case 24
              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;
      }
      private int bitField0_;

      private int threshold_ ;
      /**
       * <pre>
       * The number of ct transparency logs the certificate must
       * appear on.
       * </pre>
       *
       * <code>int32 threshold = 1;</code>
       * @return The threshold.
       */
      @java.lang.Override
      public int getThreshold() {
        return threshold_;
      }
      /**
       * <pre>
       * The number of ct transparency logs the certificate must
       * appear on.
       * </pre>
       *
       * <code>int32 threshold = 1;</code>
       * @param value The threshold to set.
       * @return This builder for chaining.
       */
      public Builder setThreshold(int value) {

        threshold_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * The number of ct transparency logs the certificate must
       * appear on.
       * </pre>
       *
       * <code>int32 threshold = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearThreshold() {
        bitField0_ = (bitField0_ & ~0x00000001);
        threshold_ = 0;
        onChanged();
        return this;
      }

      private boolean disable_ ;
      /**
       * <pre>
       * Disable ct transparency log verification
       * </pre>
       *
       * <code>bool disable = 3;</code>
       * @return The disable.
       */
      @java.lang.Override
      public boolean getDisable() {
        return disable_;
      }
      /**
       * <pre>
       * Disable ct transparency log verification
       * </pre>
       *
       * <code>bool disable = 3;</code>
       * @param value The disable to set.
       * @return This builder for chaining.
       */
      public Builder setDisable(boolean value) {

        disable_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Disable ct transparency log verification
       * </pre>
       *
       * <code>bool disable = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearDisable() {
        bitField0_ = (bitField0_ & ~0x00000002);
        disable_ = false;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:dev.sigstore.verification.v1.ArtifactVerificationOptions.CtlogOptions)
    }

    // @@protoc_insertion_point(class_scope:dev.sigstore.verification.v1.ArtifactVerificationOptions.CtlogOptions)
    private static final dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.CtlogOptions DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.CtlogOptions();
    }

    public static dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.CtlogOptions getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<CtlogOptions>
        PARSER = new com.google.protobuf.AbstractParser<CtlogOptions>() {
      @java.lang.Override
      public CtlogOptions parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

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

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

    @java.lang.Override
    public dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.CtlogOptions getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface TimestampAuthorityOptionsOrBuilder extends
      // @@protoc_insertion_point(interface_extends:dev.sigstore.verification.v1.ArtifactVerificationOptions.TimestampAuthorityOptions)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     * The number of signed timestamps that are expected.
     * </pre>
     *
     * <code>int32 threshold = 1;</code>
     * @return The threshold.
     */
    int getThreshold();

    /**
     * <pre>
     * Disable signed timestamp verification.
     * </pre>
     *
     * <code>bool disable = 2;</code>
     * @return The disable.
     */
    boolean getDisable();
  }
  /**
   * Protobuf type {@code dev.sigstore.verification.v1.ArtifactVerificationOptions.TimestampAuthorityOptions}
   */
  public static final class TimestampAuthorityOptions extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:dev.sigstore.verification.v1.ArtifactVerificationOptions.TimestampAuthorityOptions)
      TimestampAuthorityOptionsOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 30,
        /* patch= */ 2,
        /* suffix= */ "",
        TimestampAuthorityOptions.class.getName());
    }
    // Use TimestampAuthorityOptions.newBuilder() to construct.
    private TimestampAuthorityOptions(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
    }
    private TimestampAuthorityOptions() {
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return dev.sigstore.proto.verification.v1.VerificationProto.internal_static_dev_sigstore_verification_v1_ArtifactVerificationOptions_TimestampAuthorityOptions_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return dev.sigstore.proto.verification.v1.VerificationProto.internal_static_dev_sigstore_verification_v1_ArtifactVerificationOptions_TimestampAuthorityOptions_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.TimestampAuthorityOptions.class, dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.TimestampAuthorityOptions.Builder.class);
    }

    public static final int THRESHOLD_FIELD_NUMBER = 1;
    private int threshold_ = 0;
    /**
     * <pre>
     * The number of signed timestamps that are expected.
     * </pre>
     *
     * <code>int32 threshold = 1;</code>
     * @return The threshold.
     */
    @java.lang.Override
    public int getThreshold() {
      return threshold_;
    }

    public static final int DISABLE_FIELD_NUMBER = 2;
    private boolean disable_ = false;
    /**
     * <pre>
     * Disable signed timestamp verification.
     * </pre>
     *
     * <code>bool disable = 2;</code>
     * @return The disable.
     */
    @java.lang.Override
    public boolean getDisable() {
      return disable_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (threshold_ != 0) {
        output.writeInt32(1, threshold_);
      }
      if (disable_ != false) {
        output.writeBool(2, disable_);
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (threshold_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, threshold_);
      }
      if (disable_ != false) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(2, disable_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.TimestampAuthorityOptions)) {
        return super.equals(obj);
      }
      dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.TimestampAuthorityOptions other = (dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.TimestampAuthorityOptions) obj;

      if (getThreshold()
          != other.getThreshold()) return false;
      if (getDisable()
          != other.getDisable()) return false;
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + THRESHOLD_FIELD_NUMBER;
      hash = (53 * hash) + getThreshold();
      hash = (37 * hash) + DISABLE_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
          getDisable());
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.TimestampAuthorityOptions parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.TimestampAuthorityOptions parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.TimestampAuthorityOptions parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.TimestampAuthorityOptions parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.TimestampAuthorityOptions parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.TimestampAuthorityOptions parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.TimestampAuthorityOptions parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.TimestampAuthorityOptions parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.TimestampAuthorityOptions parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.TimestampAuthorityOptions parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.TimestampAuthorityOptions parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.TimestampAuthorityOptions parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.TimestampAuthorityOptions prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code dev.sigstore.verification.v1.ArtifactVerificationOptions.TimestampAuthorityOptions}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:dev.sigstore.verification.v1.ArtifactVerificationOptions.TimestampAuthorityOptions)
        dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.TimestampAuthorityOptionsOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return dev.sigstore.proto.verification.v1.VerificationProto.internal_static_dev_sigstore_verification_v1_ArtifactVerificationOptions_TimestampAuthorityOptions_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return dev.sigstore.proto.verification.v1.VerificationProto.internal_static_dev_sigstore_verification_v1_ArtifactVerificationOptions_TimestampAuthorityOptions_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.TimestampAuthorityOptions.class, dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.TimestampAuthorityOptions.Builder.class);
      }

      // Construct using dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.TimestampAuthorityOptions.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        threshold_ = 0;
        disable_ = false;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return dev.sigstore.proto.verification.v1.VerificationProto.internal_static_dev_sigstore_verification_v1_ArtifactVerificationOptions_TimestampAuthorityOptions_descriptor;
      }

      @java.lang.Override
      public dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.TimestampAuthorityOptions getDefaultInstanceForType() {
        return dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.TimestampAuthorityOptions.getDefaultInstance();
      }

      @java.lang.Override
      public dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.TimestampAuthorityOptions build() {
        dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.TimestampAuthorityOptions result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.TimestampAuthorityOptions buildPartial() {
        dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.TimestampAuthorityOptions result = new dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.TimestampAuthorityOptions(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.TimestampAuthorityOptions result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.threshold_ = threshold_;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.disable_ = disable_;
        }
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.TimestampAuthorityOptions) {
          return mergeFrom((dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.TimestampAuthorityOptions)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.TimestampAuthorityOptions other) {
        if (other == dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.TimestampAuthorityOptions.getDefaultInstance()) return this;
        if (other.getThreshold() != 0) {
          setThreshold(other.getThreshold());
        }
        if (other.getDisable() != false) {
          setDisable(other.getDisable());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @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 8: {
                threshold_ = input.readInt32();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 16: {
                disable_ = input.readBool();
                bitField0_ |= 0x00000002;
                break;
              } // case 16
              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;
      }
      private int bitField0_;

      private int threshold_ ;
      /**
       * <pre>
       * The number of signed timestamps that are expected.
       * </pre>
       *
       * <code>int32 threshold = 1;</code>
       * @return The threshold.
       */
      @java.lang.Override
      public int getThreshold() {
        return threshold_;
      }
      /**
       * <pre>
       * The number of signed timestamps that are expected.
       * </pre>
       *
       * <code>int32 threshold = 1;</code>
       * @param value The threshold to set.
       * @return This builder for chaining.
       */
      public Builder setThreshold(int value) {

        threshold_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * The number of signed timestamps that are expected.
       * </pre>
       *
       * <code>int32 threshold = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearThreshold() {
        bitField0_ = (bitField0_ & ~0x00000001);
        threshold_ = 0;
        onChanged();
        return this;
      }

      private boolean disable_ ;
      /**
       * <pre>
       * Disable signed timestamp verification.
       * </pre>
       *
       * <code>bool disable = 2;</code>
       * @return The disable.
       */
      @java.lang.Override
      public boolean getDisable() {
        return disable_;
      }
      /**
       * <pre>
       * Disable signed timestamp verification.
       * </pre>
       *
       * <code>bool disable = 2;</code>
       * @param value The disable to set.
       * @return This builder for chaining.
       */
      public Builder setDisable(boolean value) {

        disable_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Disable signed timestamp verification.
       * </pre>
       *
       * <code>bool disable = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearDisable() {
        bitField0_ = (bitField0_ & ~0x00000002);
        disable_ = false;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:dev.sigstore.verification.v1.ArtifactVerificationOptions.TimestampAuthorityOptions)
    }

    // @@protoc_insertion_point(class_scope:dev.sigstore.verification.v1.ArtifactVerificationOptions.TimestampAuthorityOptions)
    private static final dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.TimestampAuthorityOptions DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.TimestampAuthorityOptions();
    }

    public static dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.TimestampAuthorityOptions getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<TimestampAuthorityOptions>
        PARSER = new com.google.protobuf.AbstractParser<TimestampAuthorityOptions>() {
      @java.lang.Override
      public TimestampAuthorityOptions parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

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

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

    @java.lang.Override
    public dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.TimestampAuthorityOptions getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface TlogIntegratedTimestampOptionsOrBuilder extends
      // @@protoc_insertion_point(interface_extends:dev.sigstore.verification.v1.ArtifactVerificationOptions.TlogIntegratedTimestampOptions)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     * The number of integrated timestamps that are expected.
     * </pre>
     *
     * <code>int32 threshold = 1;</code>
     * @return The threshold.
     */
    int getThreshold();

    /**
     * <pre>
     * Disable integrated timestamp verification.
     * </pre>
     *
     * <code>bool disable = 2;</code>
     * @return The disable.
     */
    boolean getDisable();
  }
  /**
   * Protobuf type {@code dev.sigstore.verification.v1.ArtifactVerificationOptions.TlogIntegratedTimestampOptions}
   */
  public static final class TlogIntegratedTimestampOptions extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:dev.sigstore.verification.v1.ArtifactVerificationOptions.TlogIntegratedTimestampOptions)
      TlogIntegratedTimestampOptionsOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 30,
        /* patch= */ 2,
        /* suffix= */ "",
        TlogIntegratedTimestampOptions.class.getName());
    }
    // Use TlogIntegratedTimestampOptions.newBuilder() to construct.
    private TlogIntegratedTimestampOptions(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
    }
    private TlogIntegratedTimestampOptions() {
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return dev.sigstore.proto.verification.v1.VerificationProto.internal_static_dev_sigstore_verification_v1_ArtifactVerificationOptions_TlogIntegratedTimestampOptions_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return dev.sigstore.proto.verification.v1.VerificationProto.internal_static_dev_sigstore_verification_v1_ArtifactVerificationOptions_TlogIntegratedTimestampOptions_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.TlogIntegratedTimestampOptions.class, dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.TlogIntegratedTimestampOptions.Builder.class);
    }

    public static final int THRESHOLD_FIELD_NUMBER = 1;
    private int threshold_ = 0;
    /**
     * <pre>
     * The number of integrated timestamps that are expected.
     * </pre>
     *
     * <code>int32 threshold = 1;</code>
     * @return The threshold.
     */
    @java.lang.Override
    public int getThreshold() {
      return threshold_;
    }

    public static final int DISABLE_FIELD_NUMBER = 2;
    private boolean disable_ = false;
    /**
     * <pre>
     * Disable integrated timestamp verification.
     * </pre>
     *
     * <code>bool disable = 2;</code>
     * @return The disable.
     */
    @java.lang.Override
    public boolean getDisable() {
      return disable_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (threshold_ != 0) {
        output.writeInt32(1, threshold_);
      }
      if (disable_ != false) {
        output.writeBool(2, disable_);
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (threshold_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, threshold_);
      }
      if (disable_ != false) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(2, disable_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.TlogIntegratedTimestampOptions)) {
        return super.equals(obj);
      }
      dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.TlogIntegratedTimestampOptions other = (dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.TlogIntegratedTimestampOptions) obj;

      if (getThreshold()
          != other.getThreshold()) return false;
      if (getDisable()
          != other.getDisable()) return false;
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + THRESHOLD_FIELD_NUMBER;
      hash = (53 * hash) + getThreshold();
      hash = (37 * hash) + DISABLE_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
          getDisable());
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.TlogIntegratedTimestampOptions parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.TlogIntegratedTimestampOptions parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.TlogIntegratedTimestampOptions parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.TlogIntegratedTimestampOptions parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.TlogIntegratedTimestampOptions parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.TlogIntegratedTimestampOptions parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.TlogIntegratedTimestampOptions parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.TlogIntegratedTimestampOptions parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.TlogIntegratedTimestampOptions parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.TlogIntegratedTimestampOptions parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.TlogIntegratedTimestampOptions parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.TlogIntegratedTimestampOptions parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.TlogIntegratedTimestampOptions prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code dev.sigstore.verification.v1.ArtifactVerificationOptions.TlogIntegratedTimestampOptions}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:dev.sigstore.verification.v1.ArtifactVerificationOptions.TlogIntegratedTimestampOptions)
        dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.TlogIntegratedTimestampOptionsOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return dev.sigstore.proto.verification.v1.VerificationProto.internal_static_dev_sigstore_verification_v1_ArtifactVerificationOptions_TlogIntegratedTimestampOptions_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return dev.sigstore.proto.verification.v1.VerificationProto.internal_static_dev_sigstore_verification_v1_ArtifactVerificationOptions_TlogIntegratedTimestampOptions_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.TlogIntegratedTimestampOptions.class, dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.TlogIntegratedTimestampOptions.Builder.class);
      }

      // Construct using dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.TlogIntegratedTimestampOptions.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        threshold_ = 0;
        disable_ = false;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return dev.sigstore.proto.verification.v1.VerificationProto.internal_static_dev_sigstore_verification_v1_ArtifactVerificationOptions_TlogIntegratedTimestampOptions_descriptor;
      }

      @java.lang.Override
      public dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.TlogIntegratedTimestampOptions getDefaultInstanceForType() {
        return dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.TlogIntegratedTimestampOptions.getDefaultInstance();
      }

      @java.lang.Override
      public dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.TlogIntegratedTimestampOptions build() {
        dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.TlogIntegratedTimestampOptions result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.TlogIntegratedTimestampOptions buildPartial() {
        dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.TlogIntegratedTimestampOptions result = new dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.TlogIntegratedTimestampOptions(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.TlogIntegratedTimestampOptions result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.threshold_ = threshold_;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.disable_ = disable_;
        }
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.TlogIntegratedTimestampOptions) {
          return mergeFrom((dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.TlogIntegratedTimestampOptions)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.TlogIntegratedTimestampOptions other) {
        if (other == dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.TlogIntegratedTimestampOptions.getDefaultInstance()) return this;
        if (other.getThreshold() != 0) {
          setThreshold(other.getThreshold());
        }
        if (other.getDisable() != false) {
          setDisable(other.getDisable());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @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 8: {
                threshold_ = input.readInt32();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 16: {
                disable_ = input.readBool();
                bitField0_ |= 0x00000002;
                break;
              } // case 16
              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;
      }
      private int bitField0_;

      private int threshold_ ;
      /**
       * <pre>
       * The number of integrated timestamps that are expected.
       * </pre>
       *
       * <code>int32 threshold = 1;</code>
       * @return The threshold.
       */
      @java.lang.Override
      public int getThreshold() {
        return threshold_;
      }
      /**
       * <pre>
       * The number of integrated timestamps that are expected.
       * </pre>
       *
       * <code>int32 threshold = 1;</code>
       * @param value The threshold to set.
       * @return This builder for chaining.
       */
      public Builder setThreshold(int value) {

        threshold_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * The number of integrated timestamps that are expected.
       * </pre>
       *
       * <code>int32 threshold = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearThreshold() {
        bitField0_ = (bitField0_ & ~0x00000001);
        threshold_ = 0;
        onChanged();
        return this;
      }

      private boolean disable_ ;
      /**
       * <pre>
       * Disable integrated timestamp verification.
       * </pre>
       *
       * <code>bool disable = 2;</code>
       * @return The disable.
       */
      @java.lang.Override
      public boolean getDisable() {
        return disable_;
      }
      /**
       * <pre>
       * Disable integrated timestamp verification.
       * </pre>
       *
       * <code>bool disable = 2;</code>
       * @param value The disable to set.
       * @return This builder for chaining.
       */
      public Builder setDisable(boolean value) {

        disable_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Disable integrated timestamp verification.
       * </pre>
       *
       * <code>bool disable = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearDisable() {
        bitField0_ = (bitField0_ & ~0x00000002);
        disable_ = false;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:dev.sigstore.verification.v1.ArtifactVerificationOptions.TlogIntegratedTimestampOptions)
    }

    // @@protoc_insertion_point(class_scope:dev.sigstore.verification.v1.ArtifactVerificationOptions.TlogIntegratedTimestampOptions)
    private static final dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.TlogIntegratedTimestampOptions DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.TlogIntegratedTimestampOptions();
    }

    public static dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.TlogIntegratedTimestampOptions getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<TlogIntegratedTimestampOptions>
        PARSER = new com.google.protobuf.AbstractParser<TlogIntegratedTimestampOptions>() {
      @java.lang.Override
      public TlogIntegratedTimestampOptions parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

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

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

    @java.lang.Override
    public dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.TlogIntegratedTimestampOptions getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface ObserverTimestampOptionsOrBuilder extends
      // @@protoc_insertion_point(interface_extends:dev.sigstore.verification.v1.ArtifactVerificationOptions.ObserverTimestampOptions)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     * The number of external observers of the timestamp.
     * This is a union of RFC3161 signed timestamps, and
     * integrated timestamps from a transparency log, that
     * could include additional timestamp sources in the
     * future.
     * </pre>
     *
     * <code>int32 threshold = 1;</code>
     * @return The threshold.
     */
    int getThreshold();

    /**
     * <pre>
     * Disable observer timestamp verification.
     * </pre>
     *
     * <code>bool disable = 2;</code>
     * @return The disable.
     */
    boolean getDisable();
  }
  /**
   * Protobuf type {@code dev.sigstore.verification.v1.ArtifactVerificationOptions.ObserverTimestampOptions}
   */
  public static final class ObserverTimestampOptions extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:dev.sigstore.verification.v1.ArtifactVerificationOptions.ObserverTimestampOptions)
      ObserverTimestampOptionsOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 30,
        /* patch= */ 2,
        /* suffix= */ "",
        ObserverTimestampOptions.class.getName());
    }
    // Use ObserverTimestampOptions.newBuilder() to construct.
    private ObserverTimestampOptions(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
    }
    private ObserverTimestampOptions() {
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return dev.sigstore.proto.verification.v1.VerificationProto.internal_static_dev_sigstore_verification_v1_ArtifactVerificationOptions_ObserverTimestampOptions_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return dev.sigstore.proto.verification.v1.VerificationProto.internal_static_dev_sigstore_verification_v1_ArtifactVerificationOptions_ObserverTimestampOptions_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.ObserverTimestampOptions.class, dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.ObserverTimestampOptions.Builder.class);
    }

    public static final int THRESHOLD_FIELD_NUMBER = 1;
    private int threshold_ = 0;
    /**
     * <pre>
     * The number of external observers of the timestamp.
     * This is a union of RFC3161 signed timestamps, and
     * integrated timestamps from a transparency log, that
     * could include additional timestamp sources in the
     * future.
     * </pre>
     *
     * <code>int32 threshold = 1;</code>
     * @return The threshold.
     */
    @java.lang.Override
    public int getThreshold() {
      return threshold_;
    }

    public static final int DISABLE_FIELD_NUMBER = 2;
    private boolean disable_ = false;
    /**
     * <pre>
     * Disable observer timestamp verification.
     * </pre>
     *
     * <code>bool disable = 2;</code>
     * @return The disable.
     */
    @java.lang.Override
    public boolean getDisable() {
      return disable_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (threshold_ != 0) {
        output.writeInt32(1, threshold_);
      }
      if (disable_ != false) {
        output.writeBool(2, disable_);
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (threshold_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, threshold_);
      }
      if (disable_ != false) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(2, disable_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.ObserverTimestampOptions)) {
        return super.equals(obj);
      }
      dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.ObserverTimestampOptions other = (dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.ObserverTimestampOptions) obj;

      if (getThreshold()
          != other.getThreshold()) return false;
      if (getDisable()
          != other.getDisable()) return false;
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + THRESHOLD_FIELD_NUMBER;
      hash = (53 * hash) + getThreshold();
      hash = (37 * hash) + DISABLE_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
          getDisable());
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.ObserverTimestampOptions parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.ObserverTimestampOptions parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.ObserverTimestampOptions parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.ObserverTimestampOptions parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.ObserverTimestampOptions parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.ObserverTimestampOptions parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.ObserverTimestampOptions parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.ObserverTimestampOptions parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.ObserverTimestampOptions parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.ObserverTimestampOptions parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.ObserverTimestampOptions parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.ObserverTimestampOptions parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.ObserverTimestampOptions prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code dev.sigstore.verification.v1.ArtifactVerificationOptions.ObserverTimestampOptions}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:dev.sigstore.verification.v1.ArtifactVerificationOptions.ObserverTimestampOptions)
        dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.ObserverTimestampOptionsOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return dev.sigstore.proto.verification.v1.VerificationProto.internal_static_dev_sigstore_verification_v1_ArtifactVerificationOptions_ObserverTimestampOptions_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return dev.sigstore.proto.verification.v1.VerificationProto.internal_static_dev_sigstore_verification_v1_ArtifactVerificationOptions_ObserverTimestampOptions_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.ObserverTimestampOptions.class, dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.ObserverTimestampOptions.Builder.class);
      }

      // Construct using dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.ObserverTimestampOptions.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        threshold_ = 0;
        disable_ = false;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return dev.sigstore.proto.verification.v1.VerificationProto.internal_static_dev_sigstore_verification_v1_ArtifactVerificationOptions_ObserverTimestampOptions_descriptor;
      }

      @java.lang.Override
      public dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.ObserverTimestampOptions getDefaultInstanceForType() {
        return dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.ObserverTimestampOptions.getDefaultInstance();
      }

      @java.lang.Override
      public dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.ObserverTimestampOptions build() {
        dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.ObserverTimestampOptions result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.ObserverTimestampOptions buildPartial() {
        dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.ObserverTimestampOptions result = new dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.ObserverTimestampOptions(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.ObserverTimestampOptions result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.threshold_ = threshold_;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.disable_ = disable_;
        }
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.ObserverTimestampOptions) {
          return mergeFrom((dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.ObserverTimestampOptions)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.ObserverTimestampOptions other) {
        if (other == dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.ObserverTimestampOptions.getDefaultInstance()) return this;
        if (other.getThreshold() != 0) {
          setThreshold(other.getThreshold());
        }
        if (other.getDisable() != false) {
          setDisable(other.getDisable());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @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 8: {
                threshold_ = input.readInt32();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 16: {
                disable_ = input.readBool();
                bitField0_ |= 0x00000002;
                break;
              } // case 16
              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;
      }
      private int bitField0_;

      private int threshold_ ;
      /**
       * <pre>
       * The number of external observers of the timestamp.
       * This is a union of RFC3161 signed timestamps, and
       * integrated timestamps from a transparency log, that
       * could include additional timestamp sources in the
       * future.
       * </pre>
       *
       * <code>int32 threshold = 1;</code>
       * @return The threshold.
       */
      @java.lang.Override
      public int getThreshold() {
        return threshold_;
      }
      /**
       * <pre>
       * The number of external observers of the timestamp.
       * This is a union of RFC3161 signed timestamps, and
       * integrated timestamps from a transparency log, that
       * could include additional timestamp sources in the
       * future.
       * </pre>
       *
       * <code>int32 threshold = 1;</code>
       * @param value The threshold to set.
       * @return This builder for chaining.
       */
      public Builder setThreshold(int value) {

        threshold_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * The number of external observers of the timestamp.
       * This is a union of RFC3161 signed timestamps, and
       * integrated timestamps from a transparency log, that
       * could include additional timestamp sources in the
       * future.
       * </pre>
       *
       * <code>int32 threshold = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearThreshold() {
        bitField0_ = (bitField0_ & ~0x00000001);
        threshold_ = 0;
        onChanged();
        return this;
      }

      private boolean disable_ ;
      /**
       * <pre>
       * Disable observer timestamp verification.
       * </pre>
       *
       * <code>bool disable = 2;</code>
       * @return The disable.
       */
      @java.lang.Override
      public boolean getDisable() {
        return disable_;
      }
      /**
       * <pre>
       * Disable observer timestamp verification.
       * </pre>
       *
       * <code>bool disable = 2;</code>
       * @param value The disable to set.
       * @return This builder for chaining.
       */
      public Builder setDisable(boolean value) {

        disable_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Disable observer timestamp verification.
       * </pre>
       *
       * <code>bool disable = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearDisable() {
        bitField0_ = (bitField0_ & ~0x00000002);
        disable_ = false;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:dev.sigstore.verification.v1.ArtifactVerificationOptions.ObserverTimestampOptions)
    }

    // @@protoc_insertion_point(class_scope:dev.sigstore.verification.v1.ArtifactVerificationOptions.ObserverTimestampOptions)
    private static final dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.ObserverTimestampOptions DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.ObserverTimestampOptions();
    }

    public static dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.ObserverTimestampOptions getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<ObserverTimestampOptions>
        PARSER = new com.google.protobuf.AbstractParser<ObserverTimestampOptions>() {
      @java.lang.Override
      public ObserverTimestampOptions parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

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

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

    @java.lang.Override
    public dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.ObserverTimestampOptions getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  private int bitField0_;
  private int signersCase_ = 0;
  @SuppressWarnings("serial")
  private java.lang.Object signers_;
  public enum SignersCase
      implements com.google.protobuf.Internal.EnumLite,
          com.google.protobuf.AbstractMessage.InternalOneOfEnum {
    CERTIFICATE_IDENTITIES(1),
    PUBLIC_KEYS(2),
    SIGNERS_NOT_SET(0);
    private final int value;
    private SignersCase(int value) {
      this.value = value;
    }
    /**
     * @param value The number of the enum to look for.
     * @return The enum associated with the given number.
     * @deprecated Use {@link #forNumber(int)} instead.
     */
    @java.lang.Deprecated
    public static SignersCase valueOf(int value) {
      return forNumber(value);
    }

    public static SignersCase forNumber(int value) {
      switch (value) {
        case 1: return CERTIFICATE_IDENTITIES;
        case 2: return PUBLIC_KEYS;
        case 0: return SIGNERS_NOT_SET;
        default: return null;
      }
    }
    public int getNumber() {
      return this.value;
    }
  };

  public SignersCase
  getSignersCase() {
    return SignersCase.forNumber(
        signersCase_);
  }

  public static final int CERTIFICATE_IDENTITIES_FIELD_NUMBER = 1;
  /**
   * <code>.dev.sigstore.verification.v1.CertificateIdentities certificate_identities = 1;</code>
   * @return Whether the certificateIdentities field is set.
   */
  @java.lang.Override
  public boolean hasCertificateIdentities() {
    return signersCase_ == 1;
  }
  /**
   * <code>.dev.sigstore.verification.v1.CertificateIdentities certificate_identities = 1;</code>
   * @return The certificateIdentities.
   */
  @java.lang.Override
  public dev.sigstore.proto.verification.v1.CertificateIdentities getCertificateIdentities() {
    if (signersCase_ == 1) {
       return (dev.sigstore.proto.verification.v1.CertificateIdentities) signers_;
    }
    return dev.sigstore.proto.verification.v1.CertificateIdentities.getDefaultInstance();
  }
  /**
   * <code>.dev.sigstore.verification.v1.CertificateIdentities certificate_identities = 1;</code>
   */
  @java.lang.Override
  public dev.sigstore.proto.verification.v1.CertificateIdentitiesOrBuilder getCertificateIdentitiesOrBuilder() {
    if (signersCase_ == 1) {
       return (dev.sigstore.proto.verification.v1.CertificateIdentities) signers_;
    }
    return dev.sigstore.proto.verification.v1.CertificateIdentities.getDefaultInstance();
  }

  public static final int PUBLIC_KEYS_FIELD_NUMBER = 2;
  /**
   * <pre>
   * To simplify verification implementation, the logic for
   * bundle verification should be implemented as a
   * higher-order function, where one of argument should be an
   * interface over the set of trusted public keys, like this:
   * `Verify(bytes artifact, bytes signature, string key_id)`.
   * This way the caller is in full control of mapping the
   * identified (or hinted) key in the bundle to one of the
   * trusted keys, as this process is inherently application
   * specific.
   * </pre>
   *
   * <code>.dev.sigstore.verification.v1.PublicKeyIdentities public_keys = 2;</code>
   * @return Whether the publicKeys field is set.
   */
  @java.lang.Override
  public boolean hasPublicKeys() {
    return signersCase_ == 2;
  }
  /**
   * <pre>
   * To simplify verification implementation, the logic for
   * bundle verification should be implemented as a
   * higher-order function, where one of argument should be an
   * interface over the set of trusted public keys, like this:
   * `Verify(bytes artifact, bytes signature, string key_id)`.
   * This way the caller is in full control of mapping the
   * identified (or hinted) key in the bundle to one of the
   * trusted keys, as this process is inherently application
   * specific.
   * </pre>
   *
   * <code>.dev.sigstore.verification.v1.PublicKeyIdentities public_keys = 2;</code>
   * @return The publicKeys.
   */
  @java.lang.Override
  public dev.sigstore.proto.verification.v1.PublicKeyIdentities getPublicKeys() {
    if (signersCase_ == 2) {
       return (dev.sigstore.proto.verification.v1.PublicKeyIdentities) signers_;
    }
    return dev.sigstore.proto.verification.v1.PublicKeyIdentities.getDefaultInstance();
  }
  /**
   * <pre>
   * To simplify verification implementation, the logic for
   * bundle verification should be implemented as a
   * higher-order function, where one of argument should be an
   * interface over the set of trusted public keys, like this:
   * `Verify(bytes artifact, bytes signature, string key_id)`.
   * This way the caller is in full control of mapping the
   * identified (or hinted) key in the bundle to one of the
   * trusted keys, as this process is inherently application
   * specific.
   * </pre>
   *
   * <code>.dev.sigstore.verification.v1.PublicKeyIdentities public_keys = 2;</code>
   */
  @java.lang.Override
  public dev.sigstore.proto.verification.v1.PublicKeyIdentitiesOrBuilder getPublicKeysOrBuilder() {
    if (signersCase_ == 2) {
       return (dev.sigstore.proto.verification.v1.PublicKeyIdentities) signers_;
    }
    return dev.sigstore.proto.verification.v1.PublicKeyIdentities.getDefaultInstance();
  }

  public static final int TLOG_OPTIONS_FIELD_NUMBER = 3;
  private dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.TlogOptions tlogOptions_;
  /**
   * <pre>
   * Optional options for artifact transparency log verification.
   * If none is provided, the default verification options are:
   * Threshold: 1
   * Online verification: false
   * Disable: false
   * </pre>
   *
   * <code>optional .dev.sigstore.verification.v1.ArtifactVerificationOptions.TlogOptions tlog_options = 3;</code>
   * @return Whether the tlogOptions field is set.
   */
  @java.lang.Override
  public boolean hasTlogOptions() {
    return ((bitField0_ & 0x00000001) != 0);
  }
  /**
   * <pre>
   * Optional options for artifact transparency log verification.
   * If none is provided, the default verification options are:
   * Threshold: 1
   * Online verification: false
   * Disable: false
   * </pre>
   *
   * <code>optional .dev.sigstore.verification.v1.ArtifactVerificationOptions.TlogOptions tlog_options = 3;</code>
   * @return The tlogOptions.
   */
  @java.lang.Override
  public dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.TlogOptions getTlogOptions() {
    return tlogOptions_ == null ? dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.TlogOptions.getDefaultInstance() : tlogOptions_;
  }
  /**
   * <pre>
   * Optional options for artifact transparency log verification.
   * If none is provided, the default verification options are:
   * Threshold: 1
   * Online verification: false
   * Disable: false
   * </pre>
   *
   * <code>optional .dev.sigstore.verification.v1.ArtifactVerificationOptions.TlogOptions tlog_options = 3;</code>
   */
  @java.lang.Override
  public dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.TlogOptionsOrBuilder getTlogOptionsOrBuilder() {
    return tlogOptions_ == null ? dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.TlogOptions.getDefaultInstance() : tlogOptions_;
  }

  public static final int CTLOG_OPTIONS_FIELD_NUMBER = 4;
  private dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.CtlogOptions ctlogOptions_;
  /**
   * <pre>
   * Optional options for certificate transparency log verification.
   * If none is provided, the default verification options are:
   * Threshold: 1
   * Disable: false
   * </pre>
   *
   * <code>optional .dev.sigstore.verification.v1.ArtifactVerificationOptions.CtlogOptions ctlog_options = 4;</code>
   * @return Whether the ctlogOptions field is set.
   */
  @java.lang.Override
  public boolean hasCtlogOptions() {
    return ((bitField0_ & 0x00000002) != 0);
  }
  /**
   * <pre>
   * Optional options for certificate transparency log verification.
   * If none is provided, the default verification options are:
   * Threshold: 1
   * Disable: false
   * </pre>
   *
   * <code>optional .dev.sigstore.verification.v1.ArtifactVerificationOptions.CtlogOptions ctlog_options = 4;</code>
   * @return The ctlogOptions.
   */
  @java.lang.Override
  public dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.CtlogOptions getCtlogOptions() {
    return ctlogOptions_ == null ? dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.CtlogOptions.getDefaultInstance() : ctlogOptions_;
  }
  /**
   * <pre>
   * Optional options for certificate transparency log verification.
   * If none is provided, the default verification options are:
   * Threshold: 1
   * Disable: false
   * </pre>
   *
   * <code>optional .dev.sigstore.verification.v1.ArtifactVerificationOptions.CtlogOptions ctlog_options = 4;</code>
   */
  @java.lang.Override
  public dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.CtlogOptionsOrBuilder getCtlogOptionsOrBuilder() {
    return ctlogOptions_ == null ? dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.CtlogOptions.getDefaultInstance() : ctlogOptions_;
  }

  public static final int TSA_OPTIONS_FIELD_NUMBER = 5;
  private dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.TimestampAuthorityOptions tsaOptions_;
  /**
   * <pre>
   * Optional options for certificate signed timestamp verification.
   * If none is provided, the default verification options are:
   * Threshold: 0
   * Disable: true
   * </pre>
   *
   * <code>optional .dev.sigstore.verification.v1.ArtifactVerificationOptions.TimestampAuthorityOptions tsa_options = 5;</code>
   * @return Whether the tsaOptions field is set.
   */
  @java.lang.Override
  public boolean hasTsaOptions() {
    return ((bitField0_ & 0x00000004) != 0);
  }
  /**
   * <pre>
   * Optional options for certificate signed timestamp verification.
   * If none is provided, the default verification options are:
   * Threshold: 0
   * Disable: true
   * </pre>
   *
   * <code>optional .dev.sigstore.verification.v1.ArtifactVerificationOptions.TimestampAuthorityOptions tsa_options = 5;</code>
   * @return The tsaOptions.
   */
  @java.lang.Override
  public dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.TimestampAuthorityOptions getTsaOptions() {
    return tsaOptions_ == null ? dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.TimestampAuthorityOptions.getDefaultInstance() : tsaOptions_;
  }
  /**
   * <pre>
   * Optional options for certificate signed timestamp verification.
   * If none is provided, the default verification options are:
   * Threshold: 0
   * Disable: true
   * </pre>
   *
   * <code>optional .dev.sigstore.verification.v1.ArtifactVerificationOptions.TimestampAuthorityOptions tsa_options = 5;</code>
   */
  @java.lang.Override
  public dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.TimestampAuthorityOptionsOrBuilder getTsaOptionsOrBuilder() {
    return tsaOptions_ == null ? dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.TimestampAuthorityOptions.getDefaultInstance() : tsaOptions_;
  }

  public static final int INTEGRATED_TS_OPTIONS_FIELD_NUMBER = 6;
  private dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.TlogIntegratedTimestampOptions integratedTsOptions_;
  /**
   * <pre>
   * Optional options for integrated timestamp verification.
   * If none is provided, the default verification options are:
   * Threshold: 0
   * Disable: true
   * </pre>
   *
   * <code>optional .dev.sigstore.verification.v1.ArtifactVerificationOptions.TlogIntegratedTimestampOptions integrated_ts_options = 6;</code>
   * @return Whether the integratedTsOptions field is set.
   */
  @java.lang.Override
  public boolean hasIntegratedTsOptions() {
    return ((bitField0_ & 0x00000008) != 0);
  }
  /**
   * <pre>
   * Optional options for integrated timestamp verification.
   * If none is provided, the default verification options are:
   * Threshold: 0
   * Disable: true
   * </pre>
   *
   * <code>optional .dev.sigstore.verification.v1.ArtifactVerificationOptions.TlogIntegratedTimestampOptions integrated_ts_options = 6;</code>
   * @return The integratedTsOptions.
   */
  @java.lang.Override
  public dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.TlogIntegratedTimestampOptions getIntegratedTsOptions() {
    return integratedTsOptions_ == null ? dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.TlogIntegratedTimestampOptions.getDefaultInstance() : integratedTsOptions_;
  }
  /**
   * <pre>
   * Optional options for integrated timestamp verification.
   * If none is provided, the default verification options are:
   * Threshold: 0
   * Disable: true
   * </pre>
   *
   * <code>optional .dev.sigstore.verification.v1.ArtifactVerificationOptions.TlogIntegratedTimestampOptions integrated_ts_options = 6;</code>
   */
  @java.lang.Override
  public dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.TlogIntegratedTimestampOptionsOrBuilder getIntegratedTsOptionsOrBuilder() {
    return integratedTsOptions_ == null ? dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.TlogIntegratedTimestampOptions.getDefaultInstance() : integratedTsOptions_;
  }

  public static final int OBSERVER_OPTIONS_FIELD_NUMBER = 7;
  private dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.ObserverTimestampOptions observerOptions_;
  /**
   * <pre>
   * Optional options for observed timestamp verification.
   * If none is provided, the default verification options are:
   * Threshold 1
   * Disable: false
   * </pre>
   *
   * <code>optional .dev.sigstore.verification.v1.ArtifactVerificationOptions.ObserverTimestampOptions observer_options = 7;</code>
   * @return Whether the observerOptions field is set.
   */
  @java.lang.Override
  public boolean hasObserverOptions() {
    return ((bitField0_ & 0x00000010) != 0);
  }
  /**
   * <pre>
   * Optional options for observed timestamp verification.
   * If none is provided, the default verification options are:
   * Threshold 1
   * Disable: false
   * </pre>
   *
   * <code>optional .dev.sigstore.verification.v1.ArtifactVerificationOptions.ObserverTimestampOptions observer_options = 7;</code>
   * @return The observerOptions.
   */
  @java.lang.Override
  public dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.ObserverTimestampOptions getObserverOptions() {
    return observerOptions_ == null ? dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.ObserverTimestampOptions.getDefaultInstance() : observerOptions_;
  }
  /**
   * <pre>
   * Optional options for observed timestamp verification.
   * If none is provided, the default verification options are:
   * Threshold 1
   * Disable: false
   * </pre>
   *
   * <code>optional .dev.sigstore.verification.v1.ArtifactVerificationOptions.ObserverTimestampOptions observer_options = 7;</code>
   */
  @java.lang.Override
  public dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.ObserverTimestampOptionsOrBuilder getObserverOptionsOrBuilder() {
    return observerOptions_ == null ? dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.ObserverTimestampOptions.getDefaultInstance() : observerOptions_;
  }

  private byte memoizedIsInitialized = -1;
  @java.lang.Override
  public final boolean isInitialized() {
    byte isInitialized = memoizedIsInitialized;
    if (isInitialized == 1) return true;
    if (isInitialized == 0) return false;

    memoizedIsInitialized = 1;
    return true;
  }

  @java.lang.Override
  public void writeTo(com.google.protobuf.CodedOutputStream output)
                      throws java.io.IOException {
    if (signersCase_ == 1) {
      output.writeMessage(1, (dev.sigstore.proto.verification.v1.CertificateIdentities) signers_);
    }
    if (signersCase_ == 2) {
      output.writeMessage(2, (dev.sigstore.proto.verification.v1.PublicKeyIdentities) signers_);
    }
    if (((bitField0_ & 0x00000001) != 0)) {
      output.writeMessage(3, getTlogOptions());
    }
    if (((bitField0_ & 0x00000002) != 0)) {
      output.writeMessage(4, getCtlogOptions());
    }
    if (((bitField0_ & 0x00000004) != 0)) {
      output.writeMessage(5, getTsaOptions());
    }
    if (((bitField0_ & 0x00000008) != 0)) {
      output.writeMessage(6, getIntegratedTsOptions());
    }
    if (((bitField0_ & 0x00000010) != 0)) {
      output.writeMessage(7, getObserverOptions());
    }
    getUnknownFields().writeTo(output);
  }

  @java.lang.Override
  public int getSerializedSize() {
    int size = memoizedSize;
    if (size != -1) return size;

    size = 0;
    if (signersCase_ == 1) {
      size += com.google.protobuf.CodedOutputStream
        .computeMessageSize(1, (dev.sigstore.proto.verification.v1.CertificateIdentities) signers_);
    }
    if (signersCase_ == 2) {
      size += com.google.protobuf.CodedOutputStream
        .computeMessageSize(2, (dev.sigstore.proto.verification.v1.PublicKeyIdentities) signers_);
    }
    if (((bitField0_ & 0x00000001) != 0)) {
      size += com.google.protobuf.CodedOutputStream
        .computeMessageSize(3, getTlogOptions());
    }
    if (((bitField0_ & 0x00000002) != 0)) {
      size += com.google.protobuf.CodedOutputStream
        .computeMessageSize(4, getCtlogOptions());
    }
    if (((bitField0_ & 0x00000004) != 0)) {
      size += com.google.protobuf.CodedOutputStream
        .computeMessageSize(5, getTsaOptions());
    }
    if (((bitField0_ & 0x00000008) != 0)) {
      size += com.google.protobuf.CodedOutputStream
        .computeMessageSize(6, getIntegratedTsOptions());
    }
    if (((bitField0_ & 0x00000010) != 0)) {
      size += com.google.protobuf.CodedOutputStream
        .computeMessageSize(7, getObserverOptions());
    }
    size += getUnknownFields().getSerializedSize();
    memoizedSize = size;
    return size;
  }

  @java.lang.Override
  public boolean equals(final java.lang.Object obj) {
    if (obj == this) {
     return true;
    }
    if (!(obj instanceof dev.sigstore.proto.verification.v1.ArtifactVerificationOptions)) {
      return super.equals(obj);
    }
    dev.sigstore.proto.verification.v1.ArtifactVerificationOptions other = (dev.sigstore.proto.verification.v1.ArtifactVerificationOptions) obj;

    if (hasTlogOptions() != other.hasTlogOptions()) return false;
    if (hasTlogOptions()) {
      if (!getTlogOptions()
          .equals(other.getTlogOptions())) return false;
    }
    if (hasCtlogOptions() != other.hasCtlogOptions()) return false;
    if (hasCtlogOptions()) {
      if (!getCtlogOptions()
          .equals(other.getCtlogOptions())) return false;
    }
    if (hasTsaOptions() != other.hasTsaOptions()) return false;
    if (hasTsaOptions()) {
      if (!getTsaOptions()
          .equals(other.getTsaOptions())) return false;
    }
    if (hasIntegratedTsOptions() != other.hasIntegratedTsOptions()) return false;
    if (hasIntegratedTsOptions()) {
      if (!getIntegratedTsOptions()
          .equals(other.getIntegratedTsOptions())) return false;
    }
    if (hasObserverOptions() != other.hasObserverOptions()) return false;
    if (hasObserverOptions()) {
      if (!getObserverOptions()
          .equals(other.getObserverOptions())) return false;
    }
    if (!getSignersCase().equals(other.getSignersCase())) return false;
    switch (signersCase_) {
      case 1:
        if (!getCertificateIdentities()
            .equals(other.getCertificateIdentities())) return false;
        break;
      case 2:
        if (!getPublicKeys()
            .equals(other.getPublicKeys())) return false;
        break;
      case 0:
      default:
    }
    if (!getUnknownFields().equals(other.getUnknownFields())) return false;
    return true;
  }

  @java.lang.Override
  public int hashCode() {
    if (memoizedHashCode != 0) {
      return memoizedHashCode;
    }
    int hash = 41;
    hash = (19 * hash) + getDescriptor().hashCode();
    if (hasTlogOptions()) {
      hash = (37 * hash) + TLOG_OPTIONS_FIELD_NUMBER;
      hash = (53 * hash) + getTlogOptions().hashCode();
    }
    if (hasCtlogOptions()) {
      hash = (37 * hash) + CTLOG_OPTIONS_FIELD_NUMBER;
      hash = (53 * hash) + getCtlogOptions().hashCode();
    }
    if (hasTsaOptions()) {
      hash = (37 * hash) + TSA_OPTIONS_FIELD_NUMBER;
      hash = (53 * hash) + getTsaOptions().hashCode();
    }
    if (hasIntegratedTsOptions()) {
      hash = (37 * hash) + INTEGRATED_TS_OPTIONS_FIELD_NUMBER;
      hash = (53 * hash) + getIntegratedTsOptions().hashCode();
    }
    if (hasObserverOptions()) {
      hash = (37 * hash) + OBSERVER_OPTIONS_FIELD_NUMBER;
      hash = (53 * hash) + getObserverOptions().hashCode();
    }
    switch (signersCase_) {
      case 1:
        hash = (37 * hash) + CERTIFICATE_IDENTITIES_FIELD_NUMBER;
        hash = (53 * hash) + getCertificateIdentities().hashCode();
        break;
      case 2:
        hash = (37 * hash) + PUBLIC_KEYS_FIELD_NUMBER;
        hash = (53 * hash) + getPublicKeys().hashCode();
        break;
      case 0:
      default:
    }
    hash = (29 * hash) + getUnknownFields().hashCode();
    memoizedHashCode = hash;
    return hash;
  }

  public static dev.sigstore.proto.verification.v1.ArtifactVerificationOptions parseFrom(
      java.nio.ByteBuffer data)
      throws com.google.protobuf.InvalidProtocolBufferException {
    return PARSER.parseFrom(data);
  }
  public static dev.sigstore.proto.verification.v1.ArtifactVerificationOptions parseFrom(
      java.nio.ByteBuffer data,
      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
      throws com.google.protobuf.InvalidProtocolBufferException {
    return PARSER.parseFrom(data, extensionRegistry);
  }
  public static dev.sigstore.proto.verification.v1.ArtifactVerificationOptions parseFrom(
      com.google.protobuf.ByteString data)
      throws com.google.protobuf.InvalidProtocolBufferException {
    return PARSER.parseFrom(data);
  }
  public static dev.sigstore.proto.verification.v1.ArtifactVerificationOptions parseFrom(
      com.google.protobuf.ByteString data,
      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
      throws com.google.protobuf.InvalidProtocolBufferException {
    return PARSER.parseFrom(data, extensionRegistry);
  }
  public static dev.sigstore.proto.verification.v1.ArtifactVerificationOptions parseFrom(byte[] data)
      throws com.google.protobuf.InvalidProtocolBufferException {
    return PARSER.parseFrom(data);
  }
  public static dev.sigstore.proto.verification.v1.ArtifactVerificationOptions parseFrom(
      byte[] data,
      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
      throws com.google.protobuf.InvalidProtocolBufferException {
    return PARSER.parseFrom(data, extensionRegistry);
  }
  public static dev.sigstore.proto.verification.v1.ArtifactVerificationOptions parseFrom(java.io.InputStream input)
      throws java.io.IOException {
    return com.google.protobuf.GeneratedMessage
        .parseWithIOException(PARSER, input);
  }
  public static dev.sigstore.proto.verification.v1.ArtifactVerificationOptions parseFrom(
      java.io.InputStream input,
      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
      throws java.io.IOException {
    return com.google.protobuf.GeneratedMessage
        .parseWithIOException(PARSER, input, extensionRegistry);
  }

  public static dev.sigstore.proto.verification.v1.ArtifactVerificationOptions parseDelimitedFrom(java.io.InputStream input)
      throws java.io.IOException {
    return com.google.protobuf.GeneratedMessage
        .parseDelimitedWithIOException(PARSER, input);
  }

  public static dev.sigstore.proto.verification.v1.ArtifactVerificationOptions parseDelimitedFrom(
      java.io.InputStream input,
      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
      throws java.io.IOException {
    return com.google.protobuf.GeneratedMessage
        .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
  }
  public static dev.sigstore.proto.verification.v1.ArtifactVerificationOptions parseFrom(
      com.google.protobuf.CodedInputStream input)
      throws java.io.IOException {
    return com.google.protobuf.GeneratedMessage
        .parseWithIOException(PARSER, input);
  }
  public static dev.sigstore.proto.verification.v1.ArtifactVerificationOptions parseFrom(
      com.google.protobuf.CodedInputStream input,
      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
      throws java.io.IOException {
    return com.google.protobuf.GeneratedMessage
        .parseWithIOException(PARSER, input, extensionRegistry);
  }

  @java.lang.Override
  public Builder newBuilderForType() { return newBuilder(); }
  public static Builder newBuilder() {
    return DEFAULT_INSTANCE.toBuilder();
  }
  public static Builder newBuilder(dev.sigstore.proto.verification.v1.ArtifactVerificationOptions prototype) {
    return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
  }
  @java.lang.Override
  public Builder toBuilder() {
    return this == DEFAULT_INSTANCE
        ? new Builder() : new Builder().mergeFrom(this);
  }

  @java.lang.Override
  protected Builder newBuilderForType(
      com.google.protobuf.GeneratedMessage.BuilderParent parent) {
    Builder builder = new Builder(parent);
    return builder;
  }
  /**
   * <pre>
   * A light-weight set of options/policies for identifying trusted signers,
   * used during verification of a single artifact.
   * </pre>
   *
   * Protobuf type {@code dev.sigstore.verification.v1.ArtifactVerificationOptions}
   */
  public static final class Builder extends
      com.google.protobuf.GeneratedMessage.Builder<Builder> implements
      // @@protoc_insertion_point(builder_implements:dev.sigstore.verification.v1.ArtifactVerificationOptions)
      dev.sigstore.proto.verification.v1.ArtifactVerificationOptionsOrBuilder {
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return dev.sigstore.proto.verification.v1.VerificationProto.internal_static_dev_sigstore_verification_v1_ArtifactVerificationOptions_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return dev.sigstore.proto.verification.v1.VerificationProto.internal_static_dev_sigstore_verification_v1_ArtifactVerificationOptions_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.class, dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.Builder.class);
    }

    // Construct using dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.newBuilder()
    private Builder() {
      maybeForceBuilderInitialization();
    }

    private Builder(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      super(parent);
      maybeForceBuilderInitialization();
    }
    private void maybeForceBuilderInitialization() {
      if (com.google.protobuf.GeneratedMessage
              .alwaysUseFieldBuilders) {
        internalGetTlogOptionsFieldBuilder();
        internalGetCtlogOptionsFieldBuilder();
        internalGetTsaOptionsFieldBuilder();
        internalGetIntegratedTsOptionsFieldBuilder();
        internalGetObserverOptionsFieldBuilder();
      }
    }
    @java.lang.Override
    public Builder clear() {
      super.clear();
      bitField0_ = 0;
      if (certificateIdentitiesBuilder_ != null) {
        certificateIdentitiesBuilder_.clear();
      }
      if (publicKeysBuilder_ != null) {
        publicKeysBuilder_.clear();
      }
      tlogOptions_ = null;
      if (tlogOptionsBuilder_ != null) {
        tlogOptionsBuilder_.dispose();
        tlogOptionsBuilder_ = null;
      }
      ctlogOptions_ = null;
      if (ctlogOptionsBuilder_ != null) {
        ctlogOptionsBuilder_.dispose();
        ctlogOptionsBuilder_ = null;
      }
      tsaOptions_ = null;
      if (tsaOptionsBuilder_ != null) {
        tsaOptionsBuilder_.dispose();
        tsaOptionsBuilder_ = null;
      }
      integratedTsOptions_ = null;
      if (integratedTsOptionsBuilder_ != null) {
        integratedTsOptionsBuilder_.dispose();
        integratedTsOptionsBuilder_ = null;
      }
      observerOptions_ = null;
      if (observerOptionsBuilder_ != null) {
        observerOptionsBuilder_.dispose();
        observerOptionsBuilder_ = null;
      }
      signersCase_ = 0;
      signers_ = null;
      return this;
    }

    @java.lang.Override
    public com.google.protobuf.Descriptors.Descriptor
        getDescriptorForType() {
      return dev.sigstore.proto.verification.v1.VerificationProto.internal_static_dev_sigstore_verification_v1_ArtifactVerificationOptions_descriptor;
    }

    @java.lang.Override
    public dev.sigstore.proto.verification.v1.ArtifactVerificationOptions getDefaultInstanceForType() {
      return dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.getDefaultInstance();
    }

    @java.lang.Override
    public dev.sigstore.proto.verification.v1.ArtifactVerificationOptions build() {
      dev.sigstore.proto.verification.v1.ArtifactVerificationOptions result = buildPartial();
      if (!result.isInitialized()) {
        throw newUninitializedMessageException(result);
      }
      return result;
    }

    @java.lang.Override
    public dev.sigstore.proto.verification.v1.ArtifactVerificationOptions buildPartial() {
      dev.sigstore.proto.verification.v1.ArtifactVerificationOptions result = new dev.sigstore.proto.verification.v1.ArtifactVerificationOptions(this);
      if (bitField0_ != 0) { buildPartial0(result); }
      buildPartialOneofs(result);
      onBuilt();
      return result;
    }

    private void buildPartial0(dev.sigstore.proto.verification.v1.ArtifactVerificationOptions result) {
      int from_bitField0_ = bitField0_;
      int to_bitField0_ = 0;
      if (((from_bitField0_ & 0x00000004) != 0)) {
        result.tlogOptions_ = tlogOptionsBuilder_ == null
            ? tlogOptions_
            : tlogOptionsBuilder_.build();
        to_bitField0_ |= 0x00000001;
      }
      if (((from_bitField0_ & 0x00000008) != 0)) {
        result.ctlogOptions_ = ctlogOptionsBuilder_ == null
            ? ctlogOptions_
            : ctlogOptionsBuilder_.build();
        to_bitField0_ |= 0x00000002;
      }
      if (((from_bitField0_ & 0x00000010) != 0)) {
        result.tsaOptions_ = tsaOptionsBuilder_ == null
            ? tsaOptions_
            : tsaOptionsBuilder_.build();
        to_bitField0_ |= 0x00000004;
      }
      if (((from_bitField0_ & 0x00000020) != 0)) {
        result.integratedTsOptions_ = integratedTsOptionsBuilder_ == null
            ? integratedTsOptions_
            : integratedTsOptionsBuilder_.build();
        to_bitField0_ |= 0x00000008;
      }
      if (((from_bitField0_ & 0x00000040) != 0)) {
        result.observerOptions_ = observerOptionsBuilder_ == null
            ? observerOptions_
            : observerOptionsBuilder_.build();
        to_bitField0_ |= 0x00000010;
      }
      result.bitField0_ |= to_bitField0_;
    }

    private void buildPartialOneofs(dev.sigstore.proto.verification.v1.ArtifactVerificationOptions result) {
      result.signersCase_ = signersCase_;
      result.signers_ = this.signers_;
      if (signersCase_ == 1 &&
          certificateIdentitiesBuilder_ != null) {
        result.signers_ = certificateIdentitiesBuilder_.build();
      }
      if (signersCase_ == 2 &&
          publicKeysBuilder_ != null) {
        result.signers_ = publicKeysBuilder_.build();
      }
    }

    @java.lang.Override
    public Builder mergeFrom(com.google.protobuf.Message other) {
      if (other instanceof dev.sigstore.proto.verification.v1.ArtifactVerificationOptions) {
        return mergeFrom((dev.sigstore.proto.verification.v1.ArtifactVerificationOptions)other);
      } else {
        super.mergeFrom(other);
        return this;
      }
    }

    public Builder mergeFrom(dev.sigstore.proto.verification.v1.ArtifactVerificationOptions other) {
      if (other == dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.getDefaultInstance()) return this;
      if (other.hasTlogOptions()) {
        mergeTlogOptions(other.getTlogOptions());
      }
      if (other.hasCtlogOptions()) {
        mergeCtlogOptions(other.getCtlogOptions());
      }
      if (other.hasTsaOptions()) {
        mergeTsaOptions(other.getTsaOptions());
      }
      if (other.hasIntegratedTsOptions()) {
        mergeIntegratedTsOptions(other.getIntegratedTsOptions());
      }
      if (other.hasObserverOptions()) {
        mergeObserverOptions(other.getObserverOptions());
      }
      switch (other.getSignersCase()) {
        case CERTIFICATE_IDENTITIES: {
          mergeCertificateIdentities(other.getCertificateIdentities());
          break;
        }
        case PUBLIC_KEYS: {
          mergePublicKeys(other.getPublicKeys());
          break;
        }
        case SIGNERS_NOT_SET: {
          break;
        }
      }
      this.mergeUnknownFields(other.getUnknownFields());
      onChanged();
      return this;
    }

    @java.lang.Override
    public final boolean isInitialized() {
      return true;
    }

    @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: {
              input.readMessage(
                  internalGetCertificateIdentitiesFieldBuilder().getBuilder(),
                  extensionRegistry);
              signersCase_ = 1;
              break;
            } // case 10
            case 18: {
              input.readMessage(
                  internalGetPublicKeysFieldBuilder().getBuilder(),
                  extensionRegistry);
              signersCase_ = 2;
              break;
            } // case 18
            case 26: {
              input.readMessage(
                  internalGetTlogOptionsFieldBuilder().getBuilder(),
                  extensionRegistry);
              bitField0_ |= 0x00000004;
              break;
            } // case 26
            case 34: {
              input.readMessage(
                  internalGetCtlogOptionsFieldBuilder().getBuilder(),
                  extensionRegistry);
              bitField0_ |= 0x00000008;
              break;
            } // case 34
            case 42: {
              input.readMessage(
                  internalGetTsaOptionsFieldBuilder().getBuilder(),
                  extensionRegistry);
              bitField0_ |= 0x00000010;
              break;
            } // case 42
            case 50: {
              input.readMessage(
                  internalGetIntegratedTsOptionsFieldBuilder().getBuilder(),
                  extensionRegistry);
              bitField0_ |= 0x00000020;
              break;
            } // case 50
            case 58: {
              input.readMessage(
                  internalGetObserverOptionsFieldBuilder().getBuilder(),
                  extensionRegistry);
              bitField0_ |= 0x00000040;
              break;
            } // case 58
            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;
    }
    private int signersCase_ = 0;
    private java.lang.Object signers_;
    public SignersCase
        getSignersCase() {
      return SignersCase.forNumber(
          signersCase_);
    }

    public Builder clearSigners() {
      signersCase_ = 0;
      signers_ = null;
      onChanged();
      return this;
    }

    private int bitField0_;

    private com.google.protobuf.SingleFieldBuilder<
        dev.sigstore.proto.verification.v1.CertificateIdentities, dev.sigstore.proto.verification.v1.CertificateIdentities.Builder, dev.sigstore.proto.verification.v1.CertificateIdentitiesOrBuilder> certificateIdentitiesBuilder_;
    /**
     * <code>.dev.sigstore.verification.v1.CertificateIdentities certificate_identities = 1;</code>
     * @return Whether the certificateIdentities field is set.
     */
    @java.lang.Override
    public boolean hasCertificateIdentities() {
      return signersCase_ == 1;
    }
    /**
     * <code>.dev.sigstore.verification.v1.CertificateIdentities certificate_identities = 1;</code>
     * @return The certificateIdentities.
     */
    @java.lang.Override
    public dev.sigstore.proto.verification.v1.CertificateIdentities getCertificateIdentities() {
      if (certificateIdentitiesBuilder_ == null) {
        if (signersCase_ == 1) {
          return (dev.sigstore.proto.verification.v1.CertificateIdentities) signers_;
        }
        return dev.sigstore.proto.verification.v1.CertificateIdentities.getDefaultInstance();
      } else {
        if (signersCase_ == 1) {
          return certificateIdentitiesBuilder_.getMessage();
        }
        return dev.sigstore.proto.verification.v1.CertificateIdentities.getDefaultInstance();
      }
    }
    /**
     * <code>.dev.sigstore.verification.v1.CertificateIdentities certificate_identities = 1;</code>
     */
    public Builder setCertificateIdentities(dev.sigstore.proto.verification.v1.CertificateIdentities value) {
      if (certificateIdentitiesBuilder_ == null) {
        if (value == null) {
          throw new NullPointerException();
        }
        signers_ = value;
        onChanged();
      } else {
        certificateIdentitiesBuilder_.setMessage(value);
      }
      signersCase_ = 1;
      return this;
    }
    /**
     * <code>.dev.sigstore.verification.v1.CertificateIdentities certificate_identities = 1;</code>
     */
    public Builder setCertificateIdentities(
        dev.sigstore.proto.verification.v1.CertificateIdentities.Builder builderForValue) {
      if (certificateIdentitiesBuilder_ == null) {
        signers_ = builderForValue.build();
        onChanged();
      } else {
        certificateIdentitiesBuilder_.setMessage(builderForValue.build());
      }
      signersCase_ = 1;
      return this;
    }
    /**
     * <code>.dev.sigstore.verification.v1.CertificateIdentities certificate_identities = 1;</code>
     */
    public Builder mergeCertificateIdentities(dev.sigstore.proto.verification.v1.CertificateIdentities value) {
      if (certificateIdentitiesBuilder_ == null) {
        if (signersCase_ == 1 &&
            signers_ != dev.sigstore.proto.verification.v1.CertificateIdentities.getDefaultInstance()) {
          signers_ = dev.sigstore.proto.verification.v1.CertificateIdentities.newBuilder((dev.sigstore.proto.verification.v1.CertificateIdentities) signers_)
              .mergeFrom(value).buildPartial();
        } else {
          signers_ = value;
        }
        onChanged();
      } else {
        if (signersCase_ == 1) {
          certificateIdentitiesBuilder_.mergeFrom(value);
        } else {
          certificateIdentitiesBuilder_.setMessage(value);
        }
      }
      signersCase_ = 1;
      return this;
    }
    /**
     * <code>.dev.sigstore.verification.v1.CertificateIdentities certificate_identities = 1;</code>
     */
    public Builder clearCertificateIdentities() {
      if (certificateIdentitiesBuilder_ == null) {
        if (signersCase_ == 1) {
          signersCase_ = 0;
          signers_ = null;
          onChanged();
        }
      } else {
        if (signersCase_ == 1) {
          signersCase_ = 0;
          signers_ = null;
        }
        certificateIdentitiesBuilder_.clear();
      }
      return this;
    }
    /**
     * <code>.dev.sigstore.verification.v1.CertificateIdentities certificate_identities = 1;</code>
     */
    public dev.sigstore.proto.verification.v1.CertificateIdentities.Builder getCertificateIdentitiesBuilder() {
      return internalGetCertificateIdentitiesFieldBuilder().getBuilder();
    }
    /**
     * <code>.dev.sigstore.verification.v1.CertificateIdentities certificate_identities = 1;</code>
     */
    @java.lang.Override
    public dev.sigstore.proto.verification.v1.CertificateIdentitiesOrBuilder getCertificateIdentitiesOrBuilder() {
      if ((signersCase_ == 1) && (certificateIdentitiesBuilder_ != null)) {
        return certificateIdentitiesBuilder_.getMessageOrBuilder();
      } else {
        if (signersCase_ == 1) {
          return (dev.sigstore.proto.verification.v1.CertificateIdentities) signers_;
        }
        return dev.sigstore.proto.verification.v1.CertificateIdentities.getDefaultInstance();
      }
    }
    /**
     * <code>.dev.sigstore.verification.v1.CertificateIdentities certificate_identities = 1;</code>
     */
    private com.google.protobuf.SingleFieldBuilder<
        dev.sigstore.proto.verification.v1.CertificateIdentities, dev.sigstore.proto.verification.v1.CertificateIdentities.Builder, dev.sigstore.proto.verification.v1.CertificateIdentitiesOrBuilder> 
        internalGetCertificateIdentitiesFieldBuilder() {
      if (certificateIdentitiesBuilder_ == null) {
        if (!(signersCase_ == 1)) {
          signers_ = dev.sigstore.proto.verification.v1.CertificateIdentities.getDefaultInstance();
        }
        certificateIdentitiesBuilder_ = new com.google.protobuf.SingleFieldBuilder<
            dev.sigstore.proto.verification.v1.CertificateIdentities, dev.sigstore.proto.verification.v1.CertificateIdentities.Builder, dev.sigstore.proto.verification.v1.CertificateIdentitiesOrBuilder>(
                (dev.sigstore.proto.verification.v1.CertificateIdentities) signers_,
                getParentForChildren(),
                isClean());
        signers_ = null;
      }
      signersCase_ = 1;
      onChanged();
      return certificateIdentitiesBuilder_;
    }

    private com.google.protobuf.SingleFieldBuilder<
        dev.sigstore.proto.verification.v1.PublicKeyIdentities, dev.sigstore.proto.verification.v1.PublicKeyIdentities.Builder, dev.sigstore.proto.verification.v1.PublicKeyIdentitiesOrBuilder> publicKeysBuilder_;
    /**
     * <pre>
     * To simplify verification implementation, the logic for
     * bundle verification should be implemented as a
     * higher-order function, where one of argument should be an
     * interface over the set of trusted public keys, like this:
     * `Verify(bytes artifact, bytes signature, string key_id)`.
     * This way the caller is in full control of mapping the
     * identified (or hinted) key in the bundle to one of the
     * trusted keys, as this process is inherently application
     * specific.
     * </pre>
     *
     * <code>.dev.sigstore.verification.v1.PublicKeyIdentities public_keys = 2;</code>
     * @return Whether the publicKeys field is set.
     */
    @java.lang.Override
    public boolean hasPublicKeys() {
      return signersCase_ == 2;
    }
    /**
     * <pre>
     * To simplify verification implementation, the logic for
     * bundle verification should be implemented as a
     * higher-order function, where one of argument should be an
     * interface over the set of trusted public keys, like this:
     * `Verify(bytes artifact, bytes signature, string key_id)`.
     * This way the caller is in full control of mapping the
     * identified (or hinted) key in the bundle to one of the
     * trusted keys, as this process is inherently application
     * specific.
     * </pre>
     *
     * <code>.dev.sigstore.verification.v1.PublicKeyIdentities public_keys = 2;</code>
     * @return The publicKeys.
     */
    @java.lang.Override
    public dev.sigstore.proto.verification.v1.PublicKeyIdentities getPublicKeys() {
      if (publicKeysBuilder_ == null) {
        if (signersCase_ == 2) {
          return (dev.sigstore.proto.verification.v1.PublicKeyIdentities) signers_;
        }
        return dev.sigstore.proto.verification.v1.PublicKeyIdentities.getDefaultInstance();
      } else {
        if (signersCase_ == 2) {
          return publicKeysBuilder_.getMessage();
        }
        return dev.sigstore.proto.verification.v1.PublicKeyIdentities.getDefaultInstance();
      }
    }
    /**
     * <pre>
     * To simplify verification implementation, the logic for
     * bundle verification should be implemented as a
     * higher-order function, where one of argument should be an
     * interface over the set of trusted public keys, like this:
     * `Verify(bytes artifact, bytes signature, string key_id)`.
     * This way the caller is in full control of mapping the
     * identified (or hinted) key in the bundle to one of the
     * trusted keys, as this process is inherently application
     * specific.
     * </pre>
     *
     * <code>.dev.sigstore.verification.v1.PublicKeyIdentities public_keys = 2;</code>
     */
    public Builder setPublicKeys(dev.sigstore.proto.verification.v1.PublicKeyIdentities value) {
      if (publicKeysBuilder_ == null) {
        if (value == null) {
          throw new NullPointerException();
        }
        signers_ = value;
        onChanged();
      } else {
        publicKeysBuilder_.setMessage(value);
      }
      signersCase_ = 2;
      return this;
    }
    /**
     * <pre>
     * To simplify verification implementation, the logic for
     * bundle verification should be implemented as a
     * higher-order function, where one of argument should be an
     * interface over the set of trusted public keys, like this:
     * `Verify(bytes artifact, bytes signature, string key_id)`.
     * This way the caller is in full control of mapping the
     * identified (or hinted) key in the bundle to one of the
     * trusted keys, as this process is inherently application
     * specific.
     * </pre>
     *
     * <code>.dev.sigstore.verification.v1.PublicKeyIdentities public_keys = 2;</code>
     */
    public Builder setPublicKeys(
        dev.sigstore.proto.verification.v1.PublicKeyIdentities.Builder builderForValue) {
      if (publicKeysBuilder_ == null) {
        signers_ = builderForValue.build();
        onChanged();
      } else {
        publicKeysBuilder_.setMessage(builderForValue.build());
      }
      signersCase_ = 2;
      return this;
    }
    /**
     * <pre>
     * To simplify verification implementation, the logic for
     * bundle verification should be implemented as a
     * higher-order function, where one of argument should be an
     * interface over the set of trusted public keys, like this:
     * `Verify(bytes artifact, bytes signature, string key_id)`.
     * This way the caller is in full control of mapping the
     * identified (or hinted) key in the bundle to one of the
     * trusted keys, as this process is inherently application
     * specific.
     * </pre>
     *
     * <code>.dev.sigstore.verification.v1.PublicKeyIdentities public_keys = 2;</code>
     */
    public Builder mergePublicKeys(dev.sigstore.proto.verification.v1.PublicKeyIdentities value) {
      if (publicKeysBuilder_ == null) {
        if (signersCase_ == 2 &&
            signers_ != dev.sigstore.proto.verification.v1.PublicKeyIdentities.getDefaultInstance()) {
          signers_ = dev.sigstore.proto.verification.v1.PublicKeyIdentities.newBuilder((dev.sigstore.proto.verification.v1.PublicKeyIdentities) signers_)
              .mergeFrom(value).buildPartial();
        } else {
          signers_ = value;
        }
        onChanged();
      } else {
        if (signersCase_ == 2) {
          publicKeysBuilder_.mergeFrom(value);
        } else {
          publicKeysBuilder_.setMessage(value);
        }
      }
      signersCase_ = 2;
      return this;
    }
    /**
     * <pre>
     * To simplify verification implementation, the logic for
     * bundle verification should be implemented as a
     * higher-order function, where one of argument should be an
     * interface over the set of trusted public keys, like this:
     * `Verify(bytes artifact, bytes signature, string key_id)`.
     * This way the caller is in full control of mapping the
     * identified (or hinted) key in the bundle to one of the
     * trusted keys, as this process is inherently application
     * specific.
     * </pre>
     *
     * <code>.dev.sigstore.verification.v1.PublicKeyIdentities public_keys = 2;</code>
     */
    public Builder clearPublicKeys() {
      if (publicKeysBuilder_ == null) {
        if (signersCase_ == 2) {
          signersCase_ = 0;
          signers_ = null;
          onChanged();
        }
      } else {
        if (signersCase_ == 2) {
          signersCase_ = 0;
          signers_ = null;
        }
        publicKeysBuilder_.clear();
      }
      return this;
    }
    /**
     * <pre>
     * To simplify verification implementation, the logic for
     * bundle verification should be implemented as a
     * higher-order function, where one of argument should be an
     * interface over the set of trusted public keys, like this:
     * `Verify(bytes artifact, bytes signature, string key_id)`.
     * This way the caller is in full control of mapping the
     * identified (or hinted) key in the bundle to one of the
     * trusted keys, as this process is inherently application
     * specific.
     * </pre>
     *
     * <code>.dev.sigstore.verification.v1.PublicKeyIdentities public_keys = 2;</code>
     */
    public dev.sigstore.proto.verification.v1.PublicKeyIdentities.Builder getPublicKeysBuilder() {
      return internalGetPublicKeysFieldBuilder().getBuilder();
    }
    /**
     * <pre>
     * To simplify verification implementation, the logic for
     * bundle verification should be implemented as a
     * higher-order function, where one of argument should be an
     * interface over the set of trusted public keys, like this:
     * `Verify(bytes artifact, bytes signature, string key_id)`.
     * This way the caller is in full control of mapping the
     * identified (or hinted) key in the bundle to one of the
     * trusted keys, as this process is inherently application
     * specific.
     * </pre>
     *
     * <code>.dev.sigstore.verification.v1.PublicKeyIdentities public_keys = 2;</code>
     */
    @java.lang.Override
    public dev.sigstore.proto.verification.v1.PublicKeyIdentitiesOrBuilder getPublicKeysOrBuilder() {
      if ((signersCase_ == 2) && (publicKeysBuilder_ != null)) {
        return publicKeysBuilder_.getMessageOrBuilder();
      } else {
        if (signersCase_ == 2) {
          return (dev.sigstore.proto.verification.v1.PublicKeyIdentities) signers_;
        }
        return dev.sigstore.proto.verification.v1.PublicKeyIdentities.getDefaultInstance();
      }
    }
    /**
     * <pre>
     * To simplify verification implementation, the logic for
     * bundle verification should be implemented as a
     * higher-order function, where one of argument should be an
     * interface over the set of trusted public keys, like this:
     * `Verify(bytes artifact, bytes signature, string key_id)`.
     * This way the caller is in full control of mapping the
     * identified (or hinted) key in the bundle to one of the
     * trusted keys, as this process is inherently application
     * specific.
     * </pre>
     *
     * <code>.dev.sigstore.verification.v1.PublicKeyIdentities public_keys = 2;</code>
     */
    private com.google.protobuf.SingleFieldBuilder<
        dev.sigstore.proto.verification.v1.PublicKeyIdentities, dev.sigstore.proto.verification.v1.PublicKeyIdentities.Builder, dev.sigstore.proto.verification.v1.PublicKeyIdentitiesOrBuilder> 
        internalGetPublicKeysFieldBuilder() {
      if (publicKeysBuilder_ == null) {
        if (!(signersCase_ == 2)) {
          signers_ = dev.sigstore.proto.verification.v1.PublicKeyIdentities.getDefaultInstance();
        }
        publicKeysBuilder_ = new com.google.protobuf.SingleFieldBuilder<
            dev.sigstore.proto.verification.v1.PublicKeyIdentities, dev.sigstore.proto.verification.v1.PublicKeyIdentities.Builder, dev.sigstore.proto.verification.v1.PublicKeyIdentitiesOrBuilder>(
                (dev.sigstore.proto.verification.v1.PublicKeyIdentities) signers_,
                getParentForChildren(),
                isClean());
        signers_ = null;
      }
      signersCase_ = 2;
      onChanged();
      return publicKeysBuilder_;
    }

    private dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.TlogOptions tlogOptions_;
    private com.google.protobuf.SingleFieldBuilder<
        dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.TlogOptions, dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.TlogOptions.Builder, dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.TlogOptionsOrBuilder> tlogOptionsBuilder_;
    /**
     * <pre>
     * Optional options for artifact transparency log verification.
     * If none is provided, the default verification options are:
     * Threshold: 1
     * Online verification: false
     * Disable: false
     * </pre>
     *
     * <code>optional .dev.sigstore.verification.v1.ArtifactVerificationOptions.TlogOptions tlog_options = 3;</code>
     * @return Whether the tlogOptions field is set.
     */
    public boolean hasTlogOptions() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <pre>
     * Optional options for artifact transparency log verification.
     * If none is provided, the default verification options are:
     * Threshold: 1
     * Online verification: false
     * Disable: false
     * </pre>
     *
     * <code>optional .dev.sigstore.verification.v1.ArtifactVerificationOptions.TlogOptions tlog_options = 3;</code>
     * @return The tlogOptions.
     */
    public dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.TlogOptions getTlogOptions() {
      if (tlogOptionsBuilder_ == null) {
        return tlogOptions_ == null ? dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.TlogOptions.getDefaultInstance() : tlogOptions_;
      } else {
        return tlogOptionsBuilder_.getMessage();
      }
    }
    /**
     * <pre>
     * Optional options for artifact transparency log verification.
     * If none is provided, the default verification options are:
     * Threshold: 1
     * Online verification: false
     * Disable: false
     * </pre>
     *
     * <code>optional .dev.sigstore.verification.v1.ArtifactVerificationOptions.TlogOptions tlog_options = 3;</code>
     */
    public Builder setTlogOptions(dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.TlogOptions value) {
      if (tlogOptionsBuilder_ == null) {
        if (value == null) {
          throw new NullPointerException();
        }
        tlogOptions_ = value;
      } else {
        tlogOptionsBuilder_.setMessage(value);
      }
      bitField0_ |= 0x00000004;
      onChanged();
      return this;
    }
    /**
     * <pre>
     * Optional options for artifact transparency log verification.
     * If none is provided, the default verification options are:
     * Threshold: 1
     * Online verification: false
     * Disable: false
     * </pre>
     *
     * <code>optional .dev.sigstore.verification.v1.ArtifactVerificationOptions.TlogOptions tlog_options = 3;</code>
     */
    public Builder setTlogOptions(
        dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.TlogOptions.Builder builderForValue) {
      if (tlogOptionsBuilder_ == null) {
        tlogOptions_ = builderForValue.build();
      } else {
        tlogOptionsBuilder_.setMessage(builderForValue.build());
      }
      bitField0_ |= 0x00000004;
      onChanged();
      return this;
    }
    /**
     * <pre>
     * Optional options for artifact transparency log verification.
     * If none is provided, the default verification options are:
     * Threshold: 1
     * Online verification: false
     * Disable: false
     * </pre>
     *
     * <code>optional .dev.sigstore.verification.v1.ArtifactVerificationOptions.TlogOptions tlog_options = 3;</code>
     */
    public Builder mergeTlogOptions(dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.TlogOptions value) {
      if (tlogOptionsBuilder_ == null) {
        if (((bitField0_ & 0x00000004) != 0) &&
          tlogOptions_ != null &&
          tlogOptions_ != dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.TlogOptions.getDefaultInstance()) {
          getTlogOptionsBuilder().mergeFrom(value);
        } else {
          tlogOptions_ = value;
        }
      } else {
        tlogOptionsBuilder_.mergeFrom(value);
      }
      if (tlogOptions_ != null) {
        bitField0_ |= 0x00000004;
        onChanged();
      }
      return this;
    }
    /**
     * <pre>
     * Optional options for artifact transparency log verification.
     * If none is provided, the default verification options are:
     * Threshold: 1
     * Online verification: false
     * Disable: false
     * </pre>
     *
     * <code>optional .dev.sigstore.verification.v1.ArtifactVerificationOptions.TlogOptions tlog_options = 3;</code>
     */
    public Builder clearTlogOptions() {
      bitField0_ = (bitField0_ & ~0x00000004);
      tlogOptions_ = null;
      if (tlogOptionsBuilder_ != null) {
        tlogOptionsBuilder_.dispose();
        tlogOptionsBuilder_ = null;
      }
      onChanged();
      return this;
    }
    /**
     * <pre>
     * Optional options for artifact transparency log verification.
     * If none is provided, the default verification options are:
     * Threshold: 1
     * Online verification: false
     * Disable: false
     * </pre>
     *
     * <code>optional .dev.sigstore.verification.v1.ArtifactVerificationOptions.TlogOptions tlog_options = 3;</code>
     */
    public dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.TlogOptions.Builder getTlogOptionsBuilder() {
      bitField0_ |= 0x00000004;
      onChanged();
      return internalGetTlogOptionsFieldBuilder().getBuilder();
    }
    /**
     * <pre>
     * Optional options for artifact transparency log verification.
     * If none is provided, the default verification options are:
     * Threshold: 1
     * Online verification: false
     * Disable: false
     * </pre>
     *
     * <code>optional .dev.sigstore.verification.v1.ArtifactVerificationOptions.TlogOptions tlog_options = 3;</code>
     */
    public dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.TlogOptionsOrBuilder getTlogOptionsOrBuilder() {
      if (tlogOptionsBuilder_ != null) {
        return tlogOptionsBuilder_.getMessageOrBuilder();
      } else {
        return tlogOptions_ == null ?
            dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.TlogOptions.getDefaultInstance() : tlogOptions_;
      }
    }
    /**
     * <pre>
     * Optional options for artifact transparency log verification.
     * If none is provided, the default verification options are:
     * Threshold: 1
     * Online verification: false
     * Disable: false
     * </pre>
     *
     * <code>optional .dev.sigstore.verification.v1.ArtifactVerificationOptions.TlogOptions tlog_options = 3;</code>
     */
    private com.google.protobuf.SingleFieldBuilder<
        dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.TlogOptions, dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.TlogOptions.Builder, dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.TlogOptionsOrBuilder> 
        internalGetTlogOptionsFieldBuilder() {
      if (tlogOptionsBuilder_ == null) {
        tlogOptionsBuilder_ = new com.google.protobuf.SingleFieldBuilder<
            dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.TlogOptions, dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.TlogOptions.Builder, dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.TlogOptionsOrBuilder>(
                getTlogOptions(),
                getParentForChildren(),
                isClean());
        tlogOptions_ = null;
      }
      return tlogOptionsBuilder_;
    }

    private dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.CtlogOptions ctlogOptions_;
    private com.google.protobuf.SingleFieldBuilder<
        dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.CtlogOptions, dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.CtlogOptions.Builder, dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.CtlogOptionsOrBuilder> ctlogOptionsBuilder_;
    /**
     * <pre>
     * Optional options for certificate transparency log verification.
     * If none is provided, the default verification options are:
     * Threshold: 1
     * Disable: false
     * </pre>
     *
     * <code>optional .dev.sigstore.verification.v1.ArtifactVerificationOptions.CtlogOptions ctlog_options = 4;</code>
     * @return Whether the ctlogOptions field is set.
     */
    public boolean hasCtlogOptions() {
      return ((bitField0_ & 0x00000008) != 0);
    }
    /**
     * <pre>
     * Optional options for certificate transparency log verification.
     * If none is provided, the default verification options are:
     * Threshold: 1
     * Disable: false
     * </pre>
     *
     * <code>optional .dev.sigstore.verification.v1.ArtifactVerificationOptions.CtlogOptions ctlog_options = 4;</code>
     * @return The ctlogOptions.
     */
    public dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.CtlogOptions getCtlogOptions() {
      if (ctlogOptionsBuilder_ == null) {
        return ctlogOptions_ == null ? dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.CtlogOptions.getDefaultInstance() : ctlogOptions_;
      } else {
        return ctlogOptionsBuilder_.getMessage();
      }
    }
    /**
     * <pre>
     * Optional options for certificate transparency log verification.
     * If none is provided, the default verification options are:
     * Threshold: 1
     * Disable: false
     * </pre>
     *
     * <code>optional .dev.sigstore.verification.v1.ArtifactVerificationOptions.CtlogOptions ctlog_options = 4;</code>
     */
    public Builder setCtlogOptions(dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.CtlogOptions value) {
      if (ctlogOptionsBuilder_ == null) {
        if (value == null) {
          throw new NullPointerException();
        }
        ctlogOptions_ = value;
      } else {
        ctlogOptionsBuilder_.setMessage(value);
      }
      bitField0_ |= 0x00000008;
      onChanged();
      return this;
    }
    /**
     * <pre>
     * Optional options for certificate transparency log verification.
     * If none is provided, the default verification options are:
     * Threshold: 1
     * Disable: false
     * </pre>
     *
     * <code>optional .dev.sigstore.verification.v1.ArtifactVerificationOptions.CtlogOptions ctlog_options = 4;</code>
     */
    public Builder setCtlogOptions(
        dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.CtlogOptions.Builder builderForValue) {
      if (ctlogOptionsBuilder_ == null) {
        ctlogOptions_ = builderForValue.build();
      } else {
        ctlogOptionsBuilder_.setMessage(builderForValue.build());
      }
      bitField0_ |= 0x00000008;
      onChanged();
      return this;
    }
    /**
     * <pre>
     * Optional options for certificate transparency log verification.
     * If none is provided, the default verification options are:
     * Threshold: 1
     * Disable: false
     * </pre>
     *
     * <code>optional .dev.sigstore.verification.v1.ArtifactVerificationOptions.CtlogOptions ctlog_options = 4;</code>
     */
    public Builder mergeCtlogOptions(dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.CtlogOptions value) {
      if (ctlogOptionsBuilder_ == null) {
        if (((bitField0_ & 0x00000008) != 0) &&
          ctlogOptions_ != null &&
          ctlogOptions_ != dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.CtlogOptions.getDefaultInstance()) {
          getCtlogOptionsBuilder().mergeFrom(value);
        } else {
          ctlogOptions_ = value;
        }
      } else {
        ctlogOptionsBuilder_.mergeFrom(value);
      }
      if (ctlogOptions_ != null) {
        bitField0_ |= 0x00000008;
        onChanged();
      }
      return this;
    }
    /**
     * <pre>
     * Optional options for certificate transparency log verification.
     * If none is provided, the default verification options are:
     * Threshold: 1
     * Disable: false
     * </pre>
     *
     * <code>optional .dev.sigstore.verification.v1.ArtifactVerificationOptions.CtlogOptions ctlog_options = 4;</code>
     */
    public Builder clearCtlogOptions() {
      bitField0_ = (bitField0_ & ~0x00000008);
      ctlogOptions_ = null;
      if (ctlogOptionsBuilder_ != null) {
        ctlogOptionsBuilder_.dispose();
        ctlogOptionsBuilder_ = null;
      }
      onChanged();
      return this;
    }
    /**
     * <pre>
     * Optional options for certificate transparency log verification.
     * If none is provided, the default verification options are:
     * Threshold: 1
     * Disable: false
     * </pre>
     *
     * <code>optional .dev.sigstore.verification.v1.ArtifactVerificationOptions.CtlogOptions ctlog_options = 4;</code>
     */
    public dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.CtlogOptions.Builder getCtlogOptionsBuilder() {
      bitField0_ |= 0x00000008;
      onChanged();
      return internalGetCtlogOptionsFieldBuilder().getBuilder();
    }
    /**
     * <pre>
     * Optional options for certificate transparency log verification.
     * If none is provided, the default verification options are:
     * Threshold: 1
     * Disable: false
     * </pre>
     *
     * <code>optional .dev.sigstore.verification.v1.ArtifactVerificationOptions.CtlogOptions ctlog_options = 4;</code>
     */
    public dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.CtlogOptionsOrBuilder getCtlogOptionsOrBuilder() {
      if (ctlogOptionsBuilder_ != null) {
        return ctlogOptionsBuilder_.getMessageOrBuilder();
      } else {
        return ctlogOptions_ == null ?
            dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.CtlogOptions.getDefaultInstance() : ctlogOptions_;
      }
    }
    /**
     * <pre>
     * Optional options for certificate transparency log verification.
     * If none is provided, the default verification options are:
     * Threshold: 1
     * Disable: false
     * </pre>
     *
     * <code>optional .dev.sigstore.verification.v1.ArtifactVerificationOptions.CtlogOptions ctlog_options = 4;</code>
     */
    private com.google.protobuf.SingleFieldBuilder<
        dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.CtlogOptions, dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.CtlogOptions.Builder, dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.CtlogOptionsOrBuilder> 
        internalGetCtlogOptionsFieldBuilder() {
      if (ctlogOptionsBuilder_ == null) {
        ctlogOptionsBuilder_ = new com.google.protobuf.SingleFieldBuilder<
            dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.CtlogOptions, dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.CtlogOptions.Builder, dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.CtlogOptionsOrBuilder>(
                getCtlogOptions(),
                getParentForChildren(),
                isClean());
        ctlogOptions_ = null;
      }
      return ctlogOptionsBuilder_;
    }

    private dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.TimestampAuthorityOptions tsaOptions_;
    private com.google.protobuf.SingleFieldBuilder<
        dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.TimestampAuthorityOptions, dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.TimestampAuthorityOptions.Builder, dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.TimestampAuthorityOptionsOrBuilder> tsaOptionsBuilder_;
    /**
     * <pre>
     * Optional options for certificate signed timestamp verification.
     * If none is provided, the default verification options are:
     * Threshold: 0
     * Disable: true
     * </pre>
     *
     * <code>optional .dev.sigstore.verification.v1.ArtifactVerificationOptions.TimestampAuthorityOptions tsa_options = 5;</code>
     * @return Whether the tsaOptions field is set.
     */
    public boolean hasTsaOptions() {
      return ((bitField0_ & 0x00000010) != 0);
    }
    /**
     * <pre>
     * Optional options for certificate signed timestamp verification.
     * If none is provided, the default verification options are:
     * Threshold: 0
     * Disable: true
     * </pre>
     *
     * <code>optional .dev.sigstore.verification.v1.ArtifactVerificationOptions.TimestampAuthorityOptions tsa_options = 5;</code>
     * @return The tsaOptions.
     */
    public dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.TimestampAuthorityOptions getTsaOptions() {
      if (tsaOptionsBuilder_ == null) {
        return tsaOptions_ == null ? dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.TimestampAuthorityOptions.getDefaultInstance() : tsaOptions_;
      } else {
        return tsaOptionsBuilder_.getMessage();
      }
    }
    /**
     * <pre>
     * Optional options for certificate signed timestamp verification.
     * If none is provided, the default verification options are:
     * Threshold: 0
     * Disable: true
     * </pre>
     *
     * <code>optional .dev.sigstore.verification.v1.ArtifactVerificationOptions.TimestampAuthorityOptions tsa_options = 5;</code>
     */
    public Builder setTsaOptions(dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.TimestampAuthorityOptions value) {
      if (tsaOptionsBuilder_ == null) {
        if (value == null) {
          throw new NullPointerException();
        }
        tsaOptions_ = value;
      } else {
        tsaOptionsBuilder_.setMessage(value);
      }
      bitField0_ |= 0x00000010;
      onChanged();
      return this;
    }
    /**
     * <pre>
     * Optional options for certificate signed timestamp verification.
     * If none is provided, the default verification options are:
     * Threshold: 0
     * Disable: true
     * </pre>
     *
     * <code>optional .dev.sigstore.verification.v1.ArtifactVerificationOptions.TimestampAuthorityOptions tsa_options = 5;</code>
     */
    public Builder setTsaOptions(
        dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.TimestampAuthorityOptions.Builder builderForValue) {
      if (tsaOptionsBuilder_ == null) {
        tsaOptions_ = builderForValue.build();
      } else {
        tsaOptionsBuilder_.setMessage(builderForValue.build());
      }
      bitField0_ |= 0x00000010;
      onChanged();
      return this;
    }
    /**
     * <pre>
     * Optional options for certificate signed timestamp verification.
     * If none is provided, the default verification options are:
     * Threshold: 0
     * Disable: true
     * </pre>
     *
     * <code>optional .dev.sigstore.verification.v1.ArtifactVerificationOptions.TimestampAuthorityOptions tsa_options = 5;</code>
     */
    public Builder mergeTsaOptions(dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.TimestampAuthorityOptions value) {
      if (tsaOptionsBuilder_ == null) {
        if (((bitField0_ & 0x00000010) != 0) &&
          tsaOptions_ != null &&
          tsaOptions_ != dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.TimestampAuthorityOptions.getDefaultInstance()) {
          getTsaOptionsBuilder().mergeFrom(value);
        } else {
          tsaOptions_ = value;
        }
      } else {
        tsaOptionsBuilder_.mergeFrom(value);
      }
      if (tsaOptions_ != null) {
        bitField0_ |= 0x00000010;
        onChanged();
      }
      return this;
    }
    /**
     * <pre>
     * Optional options for certificate signed timestamp verification.
     * If none is provided, the default verification options are:
     * Threshold: 0
     * Disable: true
     * </pre>
     *
     * <code>optional .dev.sigstore.verification.v1.ArtifactVerificationOptions.TimestampAuthorityOptions tsa_options = 5;</code>
     */
    public Builder clearTsaOptions() {
      bitField0_ = (bitField0_ & ~0x00000010);
      tsaOptions_ = null;
      if (tsaOptionsBuilder_ != null) {
        tsaOptionsBuilder_.dispose();
        tsaOptionsBuilder_ = null;
      }
      onChanged();
      return this;
    }
    /**
     * <pre>
     * Optional options for certificate signed timestamp verification.
     * If none is provided, the default verification options are:
     * Threshold: 0
     * Disable: true
     * </pre>
     *
     * <code>optional .dev.sigstore.verification.v1.ArtifactVerificationOptions.TimestampAuthorityOptions tsa_options = 5;</code>
     */
    public dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.TimestampAuthorityOptions.Builder getTsaOptionsBuilder() {
      bitField0_ |= 0x00000010;
      onChanged();
      return internalGetTsaOptionsFieldBuilder().getBuilder();
    }
    /**
     * <pre>
     * Optional options for certificate signed timestamp verification.
     * If none is provided, the default verification options are:
     * Threshold: 0
     * Disable: true
     * </pre>
     *
     * <code>optional .dev.sigstore.verification.v1.ArtifactVerificationOptions.TimestampAuthorityOptions tsa_options = 5;</code>
     */
    public dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.TimestampAuthorityOptionsOrBuilder getTsaOptionsOrBuilder() {
      if (tsaOptionsBuilder_ != null) {
        return tsaOptionsBuilder_.getMessageOrBuilder();
      } else {
        return tsaOptions_ == null ?
            dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.TimestampAuthorityOptions.getDefaultInstance() : tsaOptions_;
      }
    }
    /**
     * <pre>
     * Optional options for certificate signed timestamp verification.
     * If none is provided, the default verification options are:
     * Threshold: 0
     * Disable: true
     * </pre>
     *
     * <code>optional .dev.sigstore.verification.v1.ArtifactVerificationOptions.TimestampAuthorityOptions tsa_options = 5;</code>
     */
    private com.google.protobuf.SingleFieldBuilder<
        dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.TimestampAuthorityOptions, dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.TimestampAuthorityOptions.Builder, dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.TimestampAuthorityOptionsOrBuilder> 
        internalGetTsaOptionsFieldBuilder() {
      if (tsaOptionsBuilder_ == null) {
        tsaOptionsBuilder_ = new com.google.protobuf.SingleFieldBuilder<
            dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.TimestampAuthorityOptions, dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.TimestampAuthorityOptions.Builder, dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.TimestampAuthorityOptionsOrBuilder>(
                getTsaOptions(),
                getParentForChildren(),
                isClean());
        tsaOptions_ = null;
      }
      return tsaOptionsBuilder_;
    }

    private dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.TlogIntegratedTimestampOptions integratedTsOptions_;
    private com.google.protobuf.SingleFieldBuilder<
        dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.TlogIntegratedTimestampOptions, dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.TlogIntegratedTimestampOptions.Builder, dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.TlogIntegratedTimestampOptionsOrBuilder> integratedTsOptionsBuilder_;
    /**
     * <pre>
     * Optional options for integrated timestamp verification.
     * If none is provided, the default verification options are:
     * Threshold: 0
     * Disable: true
     * </pre>
     *
     * <code>optional .dev.sigstore.verification.v1.ArtifactVerificationOptions.TlogIntegratedTimestampOptions integrated_ts_options = 6;</code>
     * @return Whether the integratedTsOptions field is set.
     */
    public boolean hasIntegratedTsOptions() {
      return ((bitField0_ & 0x00000020) != 0);
    }
    /**
     * <pre>
     * Optional options for integrated timestamp verification.
     * If none is provided, the default verification options are:
     * Threshold: 0
     * Disable: true
     * </pre>
     *
     * <code>optional .dev.sigstore.verification.v1.ArtifactVerificationOptions.TlogIntegratedTimestampOptions integrated_ts_options = 6;</code>
     * @return The integratedTsOptions.
     */
    public dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.TlogIntegratedTimestampOptions getIntegratedTsOptions() {
      if (integratedTsOptionsBuilder_ == null) {
        return integratedTsOptions_ == null ? dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.TlogIntegratedTimestampOptions.getDefaultInstance() : integratedTsOptions_;
      } else {
        return integratedTsOptionsBuilder_.getMessage();
      }
    }
    /**
     * <pre>
     * Optional options for integrated timestamp verification.
     * If none is provided, the default verification options are:
     * Threshold: 0
     * Disable: true
     * </pre>
     *
     * <code>optional .dev.sigstore.verification.v1.ArtifactVerificationOptions.TlogIntegratedTimestampOptions integrated_ts_options = 6;</code>
     */
    public Builder setIntegratedTsOptions(dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.TlogIntegratedTimestampOptions value) {
      if (integratedTsOptionsBuilder_ == null) {
        if (value == null) {
          throw new NullPointerException();
        }
        integratedTsOptions_ = value;
      } else {
        integratedTsOptionsBuilder_.setMessage(value);
      }
      bitField0_ |= 0x00000020;
      onChanged();
      return this;
    }
    /**
     * <pre>
     * Optional options for integrated timestamp verification.
     * If none is provided, the default verification options are:
     * Threshold: 0
     * Disable: true
     * </pre>
     *
     * <code>optional .dev.sigstore.verification.v1.ArtifactVerificationOptions.TlogIntegratedTimestampOptions integrated_ts_options = 6;</code>
     */
    public Builder setIntegratedTsOptions(
        dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.TlogIntegratedTimestampOptions.Builder builderForValue) {
      if (integratedTsOptionsBuilder_ == null) {
        integratedTsOptions_ = builderForValue.build();
      } else {
        integratedTsOptionsBuilder_.setMessage(builderForValue.build());
      }
      bitField0_ |= 0x00000020;
      onChanged();
      return this;
    }
    /**
     * <pre>
     * Optional options for integrated timestamp verification.
     * If none is provided, the default verification options are:
     * Threshold: 0
     * Disable: true
     * </pre>
     *
     * <code>optional .dev.sigstore.verification.v1.ArtifactVerificationOptions.TlogIntegratedTimestampOptions integrated_ts_options = 6;</code>
     */
    public Builder mergeIntegratedTsOptions(dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.TlogIntegratedTimestampOptions value) {
      if (integratedTsOptionsBuilder_ == null) {
        if (((bitField0_ & 0x00000020) != 0) &&
          integratedTsOptions_ != null &&
          integratedTsOptions_ != dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.TlogIntegratedTimestampOptions.getDefaultInstance()) {
          getIntegratedTsOptionsBuilder().mergeFrom(value);
        } else {
          integratedTsOptions_ = value;
        }
      } else {
        integratedTsOptionsBuilder_.mergeFrom(value);
      }
      if (integratedTsOptions_ != null) {
        bitField0_ |= 0x00000020;
        onChanged();
      }
      return this;
    }
    /**
     * <pre>
     * Optional options for integrated timestamp verification.
     * If none is provided, the default verification options are:
     * Threshold: 0
     * Disable: true
     * </pre>
     *
     * <code>optional .dev.sigstore.verification.v1.ArtifactVerificationOptions.TlogIntegratedTimestampOptions integrated_ts_options = 6;</code>
     */
    public Builder clearIntegratedTsOptions() {
      bitField0_ = (bitField0_ & ~0x00000020);
      integratedTsOptions_ = null;
      if (integratedTsOptionsBuilder_ != null) {
        integratedTsOptionsBuilder_.dispose();
        integratedTsOptionsBuilder_ = null;
      }
      onChanged();
      return this;
    }
    /**
     * <pre>
     * Optional options for integrated timestamp verification.
     * If none is provided, the default verification options are:
     * Threshold: 0
     * Disable: true
     * </pre>
     *
     * <code>optional .dev.sigstore.verification.v1.ArtifactVerificationOptions.TlogIntegratedTimestampOptions integrated_ts_options = 6;</code>
     */
    public dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.TlogIntegratedTimestampOptions.Builder getIntegratedTsOptionsBuilder() {
      bitField0_ |= 0x00000020;
      onChanged();
      return internalGetIntegratedTsOptionsFieldBuilder().getBuilder();
    }
    /**
     * <pre>
     * Optional options for integrated timestamp verification.
     * If none is provided, the default verification options are:
     * Threshold: 0
     * Disable: true
     * </pre>
     *
     * <code>optional .dev.sigstore.verification.v1.ArtifactVerificationOptions.TlogIntegratedTimestampOptions integrated_ts_options = 6;</code>
     */
    public dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.TlogIntegratedTimestampOptionsOrBuilder getIntegratedTsOptionsOrBuilder() {
      if (integratedTsOptionsBuilder_ != null) {
        return integratedTsOptionsBuilder_.getMessageOrBuilder();
      } else {
        return integratedTsOptions_ == null ?
            dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.TlogIntegratedTimestampOptions.getDefaultInstance() : integratedTsOptions_;
      }
    }
    /**
     * <pre>
     * Optional options for integrated timestamp verification.
     * If none is provided, the default verification options are:
     * Threshold: 0
     * Disable: true
     * </pre>
     *
     * <code>optional .dev.sigstore.verification.v1.ArtifactVerificationOptions.TlogIntegratedTimestampOptions integrated_ts_options = 6;</code>
     */
    private com.google.protobuf.SingleFieldBuilder<
        dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.TlogIntegratedTimestampOptions, dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.TlogIntegratedTimestampOptions.Builder, dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.TlogIntegratedTimestampOptionsOrBuilder> 
        internalGetIntegratedTsOptionsFieldBuilder() {
      if (integratedTsOptionsBuilder_ == null) {
        integratedTsOptionsBuilder_ = new com.google.protobuf.SingleFieldBuilder<
            dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.TlogIntegratedTimestampOptions, dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.TlogIntegratedTimestampOptions.Builder, dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.TlogIntegratedTimestampOptionsOrBuilder>(
                getIntegratedTsOptions(),
                getParentForChildren(),
                isClean());
        integratedTsOptions_ = null;
      }
      return integratedTsOptionsBuilder_;
    }

    private dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.ObserverTimestampOptions observerOptions_;
    private com.google.protobuf.SingleFieldBuilder<
        dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.ObserverTimestampOptions, dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.ObserverTimestampOptions.Builder, dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.ObserverTimestampOptionsOrBuilder> observerOptionsBuilder_;
    /**
     * <pre>
     * Optional options for observed timestamp verification.
     * If none is provided, the default verification options are:
     * Threshold 1
     * Disable: false
     * </pre>
     *
     * <code>optional .dev.sigstore.verification.v1.ArtifactVerificationOptions.ObserverTimestampOptions observer_options = 7;</code>
     * @return Whether the observerOptions field is set.
     */
    public boolean hasObserverOptions() {
      return ((bitField0_ & 0x00000040) != 0);
    }
    /**
     * <pre>
     * Optional options for observed timestamp verification.
     * If none is provided, the default verification options are:
     * Threshold 1
     * Disable: false
     * </pre>
     *
     * <code>optional .dev.sigstore.verification.v1.ArtifactVerificationOptions.ObserverTimestampOptions observer_options = 7;</code>
     * @return The observerOptions.
     */
    public dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.ObserverTimestampOptions getObserverOptions() {
      if (observerOptionsBuilder_ == null) {
        return observerOptions_ == null ? dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.ObserverTimestampOptions.getDefaultInstance() : observerOptions_;
      } else {
        return observerOptionsBuilder_.getMessage();
      }
    }
    /**
     * <pre>
     * Optional options for observed timestamp verification.
     * If none is provided, the default verification options are:
     * Threshold 1
     * Disable: false
     * </pre>
     *
     * <code>optional .dev.sigstore.verification.v1.ArtifactVerificationOptions.ObserverTimestampOptions observer_options = 7;</code>
     */
    public Builder setObserverOptions(dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.ObserverTimestampOptions value) {
      if (observerOptionsBuilder_ == null) {
        if (value == null) {
          throw new NullPointerException();
        }
        observerOptions_ = value;
      } else {
        observerOptionsBuilder_.setMessage(value);
      }
      bitField0_ |= 0x00000040;
      onChanged();
      return this;
    }
    /**
     * <pre>
     * Optional options for observed timestamp verification.
     * If none is provided, the default verification options are:
     * Threshold 1
     * Disable: false
     * </pre>
     *
     * <code>optional .dev.sigstore.verification.v1.ArtifactVerificationOptions.ObserverTimestampOptions observer_options = 7;</code>
     */
    public Builder setObserverOptions(
        dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.ObserverTimestampOptions.Builder builderForValue) {
      if (observerOptionsBuilder_ == null) {
        observerOptions_ = builderForValue.build();
      } else {
        observerOptionsBuilder_.setMessage(builderForValue.build());
      }
      bitField0_ |= 0x00000040;
      onChanged();
      return this;
    }
    /**
     * <pre>
     * Optional options for observed timestamp verification.
     * If none is provided, the default verification options are:
     * Threshold 1
     * Disable: false
     * </pre>
     *
     * <code>optional .dev.sigstore.verification.v1.ArtifactVerificationOptions.ObserverTimestampOptions observer_options = 7;</code>
     */
    public Builder mergeObserverOptions(dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.ObserverTimestampOptions value) {
      if (observerOptionsBuilder_ == null) {
        if (((bitField0_ & 0x00000040) != 0) &&
          observerOptions_ != null &&
          observerOptions_ != dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.ObserverTimestampOptions.getDefaultInstance()) {
          getObserverOptionsBuilder().mergeFrom(value);
        } else {
          observerOptions_ = value;
        }
      } else {
        observerOptionsBuilder_.mergeFrom(value);
      }
      if (observerOptions_ != null) {
        bitField0_ |= 0x00000040;
        onChanged();
      }
      return this;
    }
    /**
     * <pre>
     * Optional options for observed timestamp verification.
     * If none is provided, the default verification options are:
     * Threshold 1
     * Disable: false
     * </pre>
     *
     * <code>optional .dev.sigstore.verification.v1.ArtifactVerificationOptions.ObserverTimestampOptions observer_options = 7;</code>
     */
    public Builder clearObserverOptions() {
      bitField0_ = (bitField0_ & ~0x00000040);
      observerOptions_ = null;
      if (observerOptionsBuilder_ != null) {
        observerOptionsBuilder_.dispose();
        observerOptionsBuilder_ = null;
      }
      onChanged();
      return this;
    }
    /**
     * <pre>
     * Optional options for observed timestamp verification.
     * If none is provided, the default verification options are:
     * Threshold 1
     * Disable: false
     * </pre>
     *
     * <code>optional .dev.sigstore.verification.v1.ArtifactVerificationOptions.ObserverTimestampOptions observer_options = 7;</code>
     */
    public dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.ObserverTimestampOptions.Builder getObserverOptionsBuilder() {
      bitField0_ |= 0x00000040;
      onChanged();
      return internalGetObserverOptionsFieldBuilder().getBuilder();
    }
    /**
     * <pre>
     * Optional options for observed timestamp verification.
     * If none is provided, the default verification options are:
     * Threshold 1
     * Disable: false
     * </pre>
     *
     * <code>optional .dev.sigstore.verification.v1.ArtifactVerificationOptions.ObserverTimestampOptions observer_options = 7;</code>
     */
    public dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.ObserverTimestampOptionsOrBuilder getObserverOptionsOrBuilder() {
      if (observerOptionsBuilder_ != null) {
        return observerOptionsBuilder_.getMessageOrBuilder();
      } else {
        return observerOptions_ == null ?
            dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.ObserverTimestampOptions.getDefaultInstance() : observerOptions_;
      }
    }
    /**
     * <pre>
     * Optional options for observed timestamp verification.
     * If none is provided, the default verification options are:
     * Threshold 1
     * Disable: false
     * </pre>
     *
     * <code>optional .dev.sigstore.verification.v1.ArtifactVerificationOptions.ObserverTimestampOptions observer_options = 7;</code>
     */
    private com.google.protobuf.SingleFieldBuilder<
        dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.ObserverTimestampOptions, dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.ObserverTimestampOptions.Builder, dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.ObserverTimestampOptionsOrBuilder> 
        internalGetObserverOptionsFieldBuilder() {
      if (observerOptionsBuilder_ == null) {
        observerOptionsBuilder_ = new com.google.protobuf.SingleFieldBuilder<
            dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.ObserverTimestampOptions, dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.ObserverTimestampOptions.Builder, dev.sigstore.proto.verification.v1.ArtifactVerificationOptions.ObserverTimestampOptionsOrBuilder>(
                getObserverOptions(),
                getParentForChildren(),
                isClean());
        observerOptions_ = null;
      }
      return observerOptionsBuilder_;
    }

    // @@protoc_insertion_point(builder_scope:dev.sigstore.verification.v1.ArtifactVerificationOptions)
  }

  // @@protoc_insertion_point(class_scope:dev.sigstore.verification.v1.ArtifactVerificationOptions)
  private static final dev.sigstore.proto.verification.v1.ArtifactVerificationOptions DEFAULT_INSTANCE;
  static {
    DEFAULT_INSTANCE = new dev.sigstore.proto.verification.v1.ArtifactVerificationOptions();
  }

  public static dev.sigstore.proto.verification.v1.ArtifactVerificationOptions getDefaultInstance() {
    return DEFAULT_INSTANCE;
  }

  private static final com.google.protobuf.Parser<ArtifactVerificationOptions>
      PARSER = new com.google.protobuf.AbstractParser<ArtifactVerificationOptions>() {
    @java.lang.Override
    public ArtifactVerificationOptions parsePartialFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      Builder builder = newBuilder();
      try {
        builder.mergeFrom(input, extensionRegistry);
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(builder.buildPartial());
      } catch (com.google.protobuf.UninitializedMessageException e) {
        throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e)
            .setUnfinishedMessage(builder.buildPartial());
      }
      return builder.buildPartial();
    }
  };

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

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

  @java.lang.Override
  public dev.sigstore.proto.verification.v1.ArtifactVerificationOptions getDefaultInstanceForType() {
    return DEFAULT_INSTANCE;
  }

}