// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: google/ads/googleads/v13/resources/accessible_bidding_strategy.proto

package com.google.ads.googleads.v13.resources;

/**
 * <pre>
 * Represents a view of BiddingStrategies owned by and shared with the customer.
 *
 * In contrast to BiddingStrategy, this resource includes strategies owned by
 * managers of the customer and shared with this customer - in addition to
 * strategies owned by this customer. This resource does not provide metrics and
 * only exposes a limited subset of the BiddingStrategy attributes.
 * </pre>
 *
 * Protobuf type {@code google.ads.googleads.v13.resources.AccessibleBiddingStrategy}
 */
public final class AccessibleBiddingStrategy extends
    com.google.protobuf.GeneratedMessageV3 implements
    // @@protoc_insertion_point(message_implements:google.ads.googleads.v13.resources.AccessibleBiddingStrategy)
    AccessibleBiddingStrategyOrBuilder {
private static final long serialVersionUID = 0L;
  // Use AccessibleBiddingStrategy.newBuilder() to construct.
  private AccessibleBiddingStrategy(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
    super(builder);
  }
  private AccessibleBiddingStrategy() {
    resourceName_ = "";
    name_ = "";
    type_ = 0;
    ownerDescriptiveName_ = "";
  }

  @java.lang.Override
  @SuppressWarnings({"unused"})
  protected java.lang.Object newInstance(
      UnusedPrivateParameter unused) {
    return new AccessibleBiddingStrategy();
  }

  public static final com.google.protobuf.Descriptors.Descriptor
      getDescriptor() {
    return com.google.ads.googleads.v13.resources.AccessibleBiddingStrategyProto.internal_static_google_ads_googleads_v13_resources_AccessibleBiddingStrategy_descriptor;
  }

  @java.lang.Override
  protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internalGetFieldAccessorTable() {
    return com.google.ads.googleads.v13.resources.AccessibleBiddingStrategyProto.internal_static_google_ads_googleads_v13_resources_AccessibleBiddingStrategy_fieldAccessorTable
        .ensureFieldAccessorsInitialized(
            com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.class, com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.Builder.class);
  }

  public interface MaximizeConversionValueOrBuilder extends
      // @@protoc_insertion_point(interface_extends:google.ads.googleads.v13.resources.AccessibleBiddingStrategy.MaximizeConversionValue)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     * Output only. The target return on ad spend (ROAS) option. If set, the bid
     * strategy will maximize revenue while averaging the target return on ad
     * spend. If the target ROAS is high, the bid strategy may not be able to
     * spend the full budget. If the target ROAS is not set, the bid strategy
     * will aim to achieve the highest possible ROAS for the budget.
     * </pre>
     *
     * <code>double target_roas = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @return The targetRoas.
     */
    double getTargetRoas();
  }
  /**
   * <pre>
   * An automated bidding strategy to help get the most conversion value for
   * your campaigns while spending your budget.
   * </pre>
   *
   * Protobuf type {@code google.ads.googleads.v13.resources.AccessibleBiddingStrategy.MaximizeConversionValue}
   */
  public static final class MaximizeConversionValue extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:google.ads.googleads.v13.resources.AccessibleBiddingStrategy.MaximizeConversionValue)
      MaximizeConversionValueOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use MaximizeConversionValue.newBuilder() to construct.
    private MaximizeConversionValue(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private MaximizeConversionValue() {
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new MaximizeConversionValue();
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.google.ads.googleads.v13.resources.AccessibleBiddingStrategyProto.internal_static_google_ads_googleads_v13_resources_AccessibleBiddingStrategy_MaximizeConversionValue_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.google.ads.googleads.v13.resources.AccessibleBiddingStrategyProto.internal_static_google_ads_googleads_v13_resources_AccessibleBiddingStrategy_MaximizeConversionValue_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.MaximizeConversionValue.class, com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.MaximizeConversionValue.Builder.class);
    }

    public static final int TARGET_ROAS_FIELD_NUMBER = 1;
    private double targetRoas_ = 0D;
    /**
     * <pre>
     * Output only. The target return on ad spend (ROAS) option. If set, the bid
     * strategy will maximize revenue while averaging the target return on ad
     * spend. If the target ROAS is high, the bid strategy may not be able to
     * spend the full budget. If the target ROAS is not set, the bid strategy
     * will aim to achieve the highest possible ROAS for the budget.
     * </pre>
     *
     * <code>double target_roas = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @return The targetRoas.
     */
    @java.lang.Override
    public double getTargetRoas() {
      return targetRoas_;
    }

    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 (java.lang.Double.doubleToRawLongBits(targetRoas_) != 0) {
        output.writeDouble(1, targetRoas_);
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (java.lang.Double.doubleToRawLongBits(targetRoas_) != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(1, targetRoas_);
      }
      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 com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.MaximizeConversionValue)) {
        return super.equals(obj);
      }
      com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.MaximizeConversionValue other = (com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.MaximizeConversionValue) obj;

      if (java.lang.Double.doubleToLongBits(getTargetRoas())
          != java.lang.Double.doubleToLongBits(
              other.getTargetRoas())) 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) + TARGET_ROAS_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          java.lang.Double.doubleToLongBits(getTargetRoas()));
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.MaximizeConversionValue parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.MaximizeConversionValue parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.MaximizeConversionValue parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.MaximizeConversionValue parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.MaximizeConversionValue parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.MaximizeConversionValue parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.MaximizeConversionValue parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.MaximizeConversionValue parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.MaximizeConversionValue parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.MaximizeConversionValue parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.MaximizeConversionValue parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.MaximizeConversionValue parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.MaximizeConversionValue 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.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     * An automated bidding strategy to help get the most conversion value for
     * your campaigns while spending your budget.
     * </pre>
     *
     * Protobuf type {@code google.ads.googleads.v13.resources.AccessibleBiddingStrategy.MaximizeConversionValue}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:google.ads.googleads.v13.resources.AccessibleBiddingStrategy.MaximizeConversionValue)
        com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.MaximizeConversionValueOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.google.ads.googleads.v13.resources.AccessibleBiddingStrategyProto.internal_static_google_ads_googleads_v13_resources_AccessibleBiddingStrategy_MaximizeConversionValue_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.google.ads.googleads.v13.resources.AccessibleBiddingStrategyProto.internal_static_google_ads_googleads_v13_resources_AccessibleBiddingStrategy_MaximizeConversionValue_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.MaximizeConversionValue.class, com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.MaximizeConversionValue.Builder.class);
      }

      // Construct using com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.MaximizeConversionValue.newBuilder()
      private Builder() {

      }

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

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        targetRoas_ = 0D;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.google.ads.googleads.v13.resources.AccessibleBiddingStrategyProto.internal_static_google_ads_googleads_v13_resources_AccessibleBiddingStrategy_MaximizeConversionValue_descriptor;
      }

      @java.lang.Override
      public com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.MaximizeConversionValue getDefaultInstanceForType() {
        return com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.MaximizeConversionValue.getDefaultInstance();
      }

      @java.lang.Override
      public com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.MaximizeConversionValue build() {
        com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.MaximizeConversionValue result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.MaximizeConversionValue buildPartial() {
        com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.MaximizeConversionValue result = new com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.MaximizeConversionValue(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.MaximizeConversionValue result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.targetRoas_ = targetRoas_;
        }
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.MaximizeConversionValue) {
          return mergeFrom((com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.MaximizeConversionValue)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.MaximizeConversionValue other) {
        if (other == com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.MaximizeConversionValue.getDefaultInstance()) return this;
        if (other.getTargetRoas() != 0D) {
          setTargetRoas(other.getTargetRoas());
        }
        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 9: {
                targetRoas_ = input.readDouble();
                bitField0_ |= 0x00000001;
                break;
              } // case 9
              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 double targetRoas_ ;
      /**
       * <pre>
       * Output only. The target return on ad spend (ROAS) option. If set, the bid
       * strategy will maximize revenue while averaging the target return on ad
       * spend. If the target ROAS is high, the bid strategy may not be able to
       * spend the full budget. If the target ROAS is not set, the bid strategy
       * will aim to achieve the highest possible ROAS for the budget.
       * </pre>
       *
       * <code>double target_roas = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
       * @return The targetRoas.
       */
      @java.lang.Override
      public double getTargetRoas() {
        return targetRoas_;
      }
      /**
       * <pre>
       * Output only. The target return on ad spend (ROAS) option. If set, the bid
       * strategy will maximize revenue while averaging the target return on ad
       * spend. If the target ROAS is high, the bid strategy may not be able to
       * spend the full budget. If the target ROAS is not set, the bid strategy
       * will aim to achieve the highest possible ROAS for the budget.
       * </pre>
       *
       * <code>double target_roas = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
       * @param value The targetRoas to set.
       * @return This builder for chaining.
       */
      public Builder setTargetRoas(double value) {

        targetRoas_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Output only. The target return on ad spend (ROAS) option. If set, the bid
       * strategy will maximize revenue while averaging the target return on ad
       * spend. If the target ROAS is high, the bid strategy may not be able to
       * spend the full budget. If the target ROAS is not set, the bid strategy
       * will aim to achieve the highest possible ROAS for the budget.
       * </pre>
       *
       * <code>double target_roas = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
       * @return This builder for chaining.
       */
      public Builder clearTargetRoas() {
        bitField0_ = (bitField0_ & ~0x00000001);
        targetRoas_ = 0D;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:google.ads.googleads.v13.resources.AccessibleBiddingStrategy.MaximizeConversionValue)
    }

    // @@protoc_insertion_point(class_scope:google.ads.googleads.v13.resources.AccessibleBiddingStrategy.MaximizeConversionValue)
    private static final com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.MaximizeConversionValue DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.MaximizeConversionValue();
    }

    public static com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.MaximizeConversionValue getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<MaximizeConversionValue>
        PARSER = new com.google.protobuf.AbstractParser<MaximizeConversionValue>() {
      @java.lang.Override
      public MaximizeConversionValue 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<MaximizeConversionValue> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.MaximizeConversionValue getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface MaximizeConversionsOrBuilder extends
      // @@protoc_insertion_point(interface_extends:google.ads.googleads.v13.resources.AccessibleBiddingStrategy.MaximizeConversions)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     * Output only. The target cost per acquisition (CPA) option. This is the
     * average amount that you would like to spend per acquisition.
     * </pre>
     *
     * <code>int64 target_cpa_micros = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @return The targetCpaMicros.
     */
    long getTargetCpaMicros();
  }
  /**
   * <pre>
   * An automated bidding strategy to help get the most conversions for your
   * campaigns while spending your budget.
   * </pre>
   *
   * Protobuf type {@code google.ads.googleads.v13.resources.AccessibleBiddingStrategy.MaximizeConversions}
   */
  public static final class MaximizeConversions extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:google.ads.googleads.v13.resources.AccessibleBiddingStrategy.MaximizeConversions)
      MaximizeConversionsOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use MaximizeConversions.newBuilder() to construct.
    private MaximizeConversions(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private MaximizeConversions() {
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new MaximizeConversions();
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.google.ads.googleads.v13.resources.AccessibleBiddingStrategyProto.internal_static_google_ads_googleads_v13_resources_AccessibleBiddingStrategy_MaximizeConversions_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.google.ads.googleads.v13.resources.AccessibleBiddingStrategyProto.internal_static_google_ads_googleads_v13_resources_AccessibleBiddingStrategy_MaximizeConversions_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.MaximizeConversions.class, com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.MaximizeConversions.Builder.class);
    }

    public static final int TARGET_CPA_MICROS_FIELD_NUMBER = 2;
    private long targetCpaMicros_ = 0L;
    /**
     * <pre>
     * Output only. The target cost per acquisition (CPA) option. This is the
     * average amount that you would like to spend per acquisition.
     * </pre>
     *
     * <code>int64 target_cpa_micros = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @return The targetCpaMicros.
     */
    @java.lang.Override
    public long getTargetCpaMicros() {
      return targetCpaMicros_;
    }

    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 (targetCpaMicros_ != 0L) {
        output.writeInt64(2, targetCpaMicros_);
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (targetCpaMicros_ != 0L) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(2, targetCpaMicros_);
      }
      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 com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.MaximizeConversions)) {
        return super.equals(obj);
      }
      com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.MaximizeConversions other = (com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.MaximizeConversions) obj;

      if (getTargetCpaMicros()
          != other.getTargetCpaMicros()) 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) + TARGET_CPA_MICROS_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          getTargetCpaMicros());
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.MaximizeConversions parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.MaximizeConversions parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.MaximizeConversions parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.MaximizeConversions parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.MaximizeConversions parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.MaximizeConversions parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.MaximizeConversions parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.MaximizeConversions parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.MaximizeConversions parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.MaximizeConversions parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.MaximizeConversions parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.MaximizeConversions parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.MaximizeConversions 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.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     * An automated bidding strategy to help get the most conversions for your
     * campaigns while spending your budget.
     * </pre>
     *
     * Protobuf type {@code google.ads.googleads.v13.resources.AccessibleBiddingStrategy.MaximizeConversions}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:google.ads.googleads.v13.resources.AccessibleBiddingStrategy.MaximizeConversions)
        com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.MaximizeConversionsOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.google.ads.googleads.v13.resources.AccessibleBiddingStrategyProto.internal_static_google_ads_googleads_v13_resources_AccessibleBiddingStrategy_MaximizeConversions_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.google.ads.googleads.v13.resources.AccessibleBiddingStrategyProto.internal_static_google_ads_googleads_v13_resources_AccessibleBiddingStrategy_MaximizeConversions_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.MaximizeConversions.class, com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.MaximizeConversions.Builder.class);
      }

      // Construct using com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.MaximizeConversions.newBuilder()
      private Builder() {

      }

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

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        targetCpaMicros_ = 0L;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.google.ads.googleads.v13.resources.AccessibleBiddingStrategyProto.internal_static_google_ads_googleads_v13_resources_AccessibleBiddingStrategy_MaximizeConversions_descriptor;
      }

      @java.lang.Override
      public com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.MaximizeConversions getDefaultInstanceForType() {
        return com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.MaximizeConversions.getDefaultInstance();
      }

      @java.lang.Override
      public com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.MaximizeConversions build() {
        com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.MaximizeConversions result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.MaximizeConversions buildPartial() {
        com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.MaximizeConversions result = new com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.MaximizeConversions(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.MaximizeConversions result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.targetCpaMicros_ = targetCpaMicros_;
        }
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.MaximizeConversions) {
          return mergeFrom((com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.MaximizeConversions)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.MaximizeConversions other) {
        if (other == com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.MaximizeConversions.getDefaultInstance()) return this;
        if (other.getTargetCpaMicros() != 0L) {
          setTargetCpaMicros(other.getTargetCpaMicros());
        }
        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 16: {
                targetCpaMicros_ = input.readInt64();
                bitField0_ |= 0x00000001;
                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 long targetCpaMicros_ ;
      /**
       * <pre>
       * Output only. The target cost per acquisition (CPA) option. This is the
       * average amount that you would like to spend per acquisition.
       * </pre>
       *
       * <code>int64 target_cpa_micros = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
       * @return The targetCpaMicros.
       */
      @java.lang.Override
      public long getTargetCpaMicros() {
        return targetCpaMicros_;
      }
      /**
       * <pre>
       * Output only. The target cost per acquisition (CPA) option. This is the
       * average amount that you would like to spend per acquisition.
       * </pre>
       *
       * <code>int64 target_cpa_micros = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
       * @param value The targetCpaMicros to set.
       * @return This builder for chaining.
       */
      public Builder setTargetCpaMicros(long value) {

        targetCpaMicros_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Output only. The target cost per acquisition (CPA) option. This is the
       * average amount that you would like to spend per acquisition.
       * </pre>
       *
       * <code>int64 target_cpa_micros = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
       * @return This builder for chaining.
       */
      public Builder clearTargetCpaMicros() {
        bitField0_ = (bitField0_ & ~0x00000001);
        targetCpaMicros_ = 0L;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:google.ads.googleads.v13.resources.AccessibleBiddingStrategy.MaximizeConversions)
    }

    // @@protoc_insertion_point(class_scope:google.ads.googleads.v13.resources.AccessibleBiddingStrategy.MaximizeConversions)
    private static final com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.MaximizeConversions DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.MaximizeConversions();
    }

    public static com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.MaximizeConversions getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<MaximizeConversions>
        PARSER = new com.google.protobuf.AbstractParser<MaximizeConversions>() {
      @java.lang.Override
      public MaximizeConversions 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<MaximizeConversions> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.MaximizeConversions getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface TargetCpaOrBuilder extends
      // @@protoc_insertion_point(interface_extends:google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetCpa)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     * Output only. Average CPA target.
     * This target should be greater than or equal to minimum billable unit
     * based on the currency for the account.
     * </pre>
     *
     * <code>optional int64 target_cpa_micros = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @return Whether the targetCpaMicros field is set.
     */
    boolean hasTargetCpaMicros();
    /**
     * <pre>
     * Output only. Average CPA target.
     * This target should be greater than or equal to minimum billable unit
     * based on the currency for the account.
     * </pre>
     *
     * <code>optional int64 target_cpa_micros = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @return The targetCpaMicros.
     */
    long getTargetCpaMicros();
  }
  /**
   * <pre>
   * An automated bid strategy that sets bids to help get as many conversions as
   * possible at the target cost-per-acquisition (CPA) you set.
   * </pre>
   *
   * Protobuf type {@code google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetCpa}
   */
  public static final class TargetCpa extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetCpa)
      TargetCpaOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use TargetCpa.newBuilder() to construct.
    private TargetCpa(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private TargetCpa() {
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new TargetCpa();
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.google.ads.googleads.v13.resources.AccessibleBiddingStrategyProto.internal_static_google_ads_googleads_v13_resources_AccessibleBiddingStrategy_TargetCpa_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.google.ads.googleads.v13.resources.AccessibleBiddingStrategyProto.internal_static_google_ads_googleads_v13_resources_AccessibleBiddingStrategy_TargetCpa_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetCpa.class, com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetCpa.Builder.class);
    }

    private int bitField0_;
    public static final int TARGET_CPA_MICROS_FIELD_NUMBER = 1;
    private long targetCpaMicros_ = 0L;
    /**
     * <pre>
     * Output only. Average CPA target.
     * This target should be greater than or equal to minimum billable unit
     * based on the currency for the account.
     * </pre>
     *
     * <code>optional int64 target_cpa_micros = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @return Whether the targetCpaMicros field is set.
     */
    @java.lang.Override
    public boolean hasTargetCpaMicros() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <pre>
     * Output only. Average CPA target.
     * This target should be greater than or equal to minimum billable unit
     * based on the currency for the account.
     * </pre>
     *
     * <code>optional int64 target_cpa_micros = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @return The targetCpaMicros.
     */
    @java.lang.Override
    public long getTargetCpaMicros() {
      return targetCpaMicros_;
    }

    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 (((bitField0_ & 0x00000001) != 0)) {
        output.writeInt64(1, targetCpaMicros_);
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(1, targetCpaMicros_);
      }
      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 com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetCpa)) {
        return super.equals(obj);
      }
      com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetCpa other = (com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetCpa) obj;

      if (hasTargetCpaMicros() != other.hasTargetCpaMicros()) return false;
      if (hasTargetCpaMicros()) {
        if (getTargetCpaMicros()
            != other.getTargetCpaMicros()) 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();
      if (hasTargetCpaMicros()) {
        hash = (37 * hash) + TARGET_CPA_MICROS_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getTargetCpaMicros());
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetCpa parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetCpa parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetCpa parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetCpa parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetCpa parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetCpa parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetCpa parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetCpa parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetCpa parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetCpa parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetCpa parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetCpa parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetCpa 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.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     * An automated bid strategy that sets bids to help get as many conversions as
     * possible at the target cost-per-acquisition (CPA) you set.
     * </pre>
     *
     * Protobuf type {@code google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetCpa}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetCpa)
        com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetCpaOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.google.ads.googleads.v13.resources.AccessibleBiddingStrategyProto.internal_static_google_ads_googleads_v13_resources_AccessibleBiddingStrategy_TargetCpa_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.google.ads.googleads.v13.resources.AccessibleBiddingStrategyProto.internal_static_google_ads_googleads_v13_resources_AccessibleBiddingStrategy_TargetCpa_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetCpa.class, com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetCpa.Builder.class);
      }

      // Construct using com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetCpa.newBuilder()
      private Builder() {

      }

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

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        targetCpaMicros_ = 0L;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.google.ads.googleads.v13.resources.AccessibleBiddingStrategyProto.internal_static_google_ads_googleads_v13_resources_AccessibleBiddingStrategy_TargetCpa_descriptor;
      }

      @java.lang.Override
      public com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetCpa getDefaultInstanceForType() {
        return com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetCpa.getDefaultInstance();
      }

      @java.lang.Override
      public com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetCpa build() {
        com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetCpa result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetCpa buildPartial() {
        com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetCpa result = new com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetCpa(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetCpa result) {
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.targetCpaMicros_ = targetCpaMicros_;
          to_bitField0_ |= 0x00000001;
        }
        result.bitField0_ |= to_bitField0_;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetCpa) {
          return mergeFrom((com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetCpa)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetCpa other) {
        if (other == com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetCpa.getDefaultInstance()) return this;
        if (other.hasTargetCpaMicros()) {
          setTargetCpaMicros(other.getTargetCpaMicros());
        }
        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: {
                targetCpaMicros_ = input.readInt64();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              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 long targetCpaMicros_ ;
      /**
       * <pre>
       * Output only. Average CPA target.
       * This target should be greater than or equal to minimum billable unit
       * based on the currency for the account.
       * </pre>
       *
       * <code>optional int64 target_cpa_micros = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
       * @return Whether the targetCpaMicros field is set.
       */
      @java.lang.Override
      public boolean hasTargetCpaMicros() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <pre>
       * Output only. Average CPA target.
       * This target should be greater than or equal to minimum billable unit
       * based on the currency for the account.
       * </pre>
       *
       * <code>optional int64 target_cpa_micros = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
       * @return The targetCpaMicros.
       */
      @java.lang.Override
      public long getTargetCpaMicros() {
        return targetCpaMicros_;
      }
      /**
       * <pre>
       * Output only. Average CPA target.
       * This target should be greater than or equal to minimum billable unit
       * based on the currency for the account.
       * </pre>
       *
       * <code>optional int64 target_cpa_micros = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
       * @param value The targetCpaMicros to set.
       * @return This builder for chaining.
       */
      public Builder setTargetCpaMicros(long value) {

        targetCpaMicros_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Output only. Average CPA target.
       * This target should be greater than or equal to minimum billable unit
       * based on the currency for the account.
       * </pre>
       *
       * <code>optional int64 target_cpa_micros = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
       * @return This builder for chaining.
       */
      public Builder clearTargetCpaMicros() {
        bitField0_ = (bitField0_ & ~0x00000001);
        targetCpaMicros_ = 0L;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetCpa)
    }

    // @@protoc_insertion_point(class_scope:google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetCpa)
    private static final com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetCpa DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetCpa();
    }

    public static com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetCpa getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<TargetCpa>
        PARSER = new com.google.protobuf.AbstractParser<TargetCpa>() {
      @java.lang.Override
      public TargetCpa 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<TargetCpa> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetCpa getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface TargetImpressionShareOrBuilder extends
      // @@protoc_insertion_point(interface_extends:google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetImpressionShare)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     * Output only. The targeted location on the search results page.
     * </pre>
     *
     * <code>.google.ads.googleads.v13.enums.TargetImpressionShareLocationEnum.TargetImpressionShareLocation location = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @return The enum numeric value on the wire for location.
     */
    int getLocationValue();
    /**
     * <pre>
     * Output only. The targeted location on the search results page.
     * </pre>
     *
     * <code>.google.ads.googleads.v13.enums.TargetImpressionShareLocationEnum.TargetImpressionShareLocation location = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @return The location.
     */
    com.google.ads.googleads.v13.enums.TargetImpressionShareLocationEnum.TargetImpressionShareLocation getLocation();

    /**
     * <pre>
     * The chosen fraction of ads to be shown in the targeted location in
     * micros. For example, 1% equals 10,000.
     * </pre>
     *
     * <code>optional int64 location_fraction_micros = 2;</code>
     * @return Whether the locationFractionMicros field is set.
     */
    boolean hasLocationFractionMicros();
    /**
     * <pre>
     * The chosen fraction of ads to be shown in the targeted location in
     * micros. For example, 1% equals 10,000.
     * </pre>
     *
     * <code>optional int64 location_fraction_micros = 2;</code>
     * @return The locationFractionMicros.
     */
    long getLocationFractionMicros();

    /**
     * <pre>
     * Output only. The highest CPC bid the automated bidding system is
     * permitted to specify. This is a required field entered by the advertiser
     * that sets the ceiling and specified in local micros.
     * </pre>
     *
     * <code>optional int64 cpc_bid_ceiling_micros = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @return Whether the cpcBidCeilingMicros field is set.
     */
    boolean hasCpcBidCeilingMicros();
    /**
     * <pre>
     * Output only. The highest CPC bid the automated bidding system is
     * permitted to specify. This is a required field entered by the advertiser
     * that sets the ceiling and specified in local micros.
     * </pre>
     *
     * <code>optional int64 cpc_bid_ceiling_micros = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @return The cpcBidCeilingMicros.
     */
    long getCpcBidCeilingMicros();
  }
  /**
   * <pre>
   * An automated bidding strategy that sets bids so that a certain percentage
   * of search ads are shown at the top of the first page (or other targeted
   * location).
   * </pre>
   *
   * Protobuf type {@code google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetImpressionShare}
   */
  public static final class TargetImpressionShare extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetImpressionShare)
      TargetImpressionShareOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use TargetImpressionShare.newBuilder() to construct.
    private TargetImpressionShare(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private TargetImpressionShare() {
      location_ = 0;
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new TargetImpressionShare();
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.google.ads.googleads.v13.resources.AccessibleBiddingStrategyProto.internal_static_google_ads_googleads_v13_resources_AccessibleBiddingStrategy_TargetImpressionShare_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.google.ads.googleads.v13.resources.AccessibleBiddingStrategyProto.internal_static_google_ads_googleads_v13_resources_AccessibleBiddingStrategy_TargetImpressionShare_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetImpressionShare.class, com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetImpressionShare.Builder.class);
    }

    private int bitField0_;
    public static final int LOCATION_FIELD_NUMBER = 1;
    private int location_ = 0;
    /**
     * <pre>
     * Output only. The targeted location on the search results page.
     * </pre>
     *
     * <code>.google.ads.googleads.v13.enums.TargetImpressionShareLocationEnum.TargetImpressionShareLocation location = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @return The enum numeric value on the wire for location.
     */
    @java.lang.Override public int getLocationValue() {
      return location_;
    }
    /**
     * <pre>
     * Output only. The targeted location on the search results page.
     * </pre>
     *
     * <code>.google.ads.googleads.v13.enums.TargetImpressionShareLocationEnum.TargetImpressionShareLocation location = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @return The location.
     */
    @java.lang.Override public com.google.ads.googleads.v13.enums.TargetImpressionShareLocationEnum.TargetImpressionShareLocation getLocation() {
      com.google.ads.googleads.v13.enums.TargetImpressionShareLocationEnum.TargetImpressionShareLocation result = com.google.ads.googleads.v13.enums.TargetImpressionShareLocationEnum.TargetImpressionShareLocation.forNumber(location_);
      return result == null ? com.google.ads.googleads.v13.enums.TargetImpressionShareLocationEnum.TargetImpressionShareLocation.UNRECOGNIZED : result;
    }

    public static final int LOCATION_FRACTION_MICROS_FIELD_NUMBER = 2;
    private long locationFractionMicros_ = 0L;
    /**
     * <pre>
     * The chosen fraction of ads to be shown in the targeted location in
     * micros. For example, 1% equals 10,000.
     * </pre>
     *
     * <code>optional int64 location_fraction_micros = 2;</code>
     * @return Whether the locationFractionMicros field is set.
     */
    @java.lang.Override
    public boolean hasLocationFractionMicros() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <pre>
     * The chosen fraction of ads to be shown in the targeted location in
     * micros. For example, 1% equals 10,000.
     * </pre>
     *
     * <code>optional int64 location_fraction_micros = 2;</code>
     * @return The locationFractionMicros.
     */
    @java.lang.Override
    public long getLocationFractionMicros() {
      return locationFractionMicros_;
    }

    public static final int CPC_BID_CEILING_MICROS_FIELD_NUMBER = 3;
    private long cpcBidCeilingMicros_ = 0L;
    /**
     * <pre>
     * Output only. The highest CPC bid the automated bidding system is
     * permitted to specify. This is a required field entered by the advertiser
     * that sets the ceiling and specified in local micros.
     * </pre>
     *
     * <code>optional int64 cpc_bid_ceiling_micros = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @return Whether the cpcBidCeilingMicros field is set.
     */
    @java.lang.Override
    public boolean hasCpcBidCeilingMicros() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <pre>
     * Output only. The highest CPC bid the automated bidding system is
     * permitted to specify. This is a required field entered by the advertiser
     * that sets the ceiling and specified in local micros.
     * </pre>
     *
     * <code>optional int64 cpc_bid_ceiling_micros = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @return The cpcBidCeilingMicros.
     */
    @java.lang.Override
    public long getCpcBidCeilingMicros() {
      return cpcBidCeilingMicros_;
    }

    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 (location_ != com.google.ads.googleads.v13.enums.TargetImpressionShareLocationEnum.TargetImpressionShareLocation.UNSPECIFIED.getNumber()) {
        output.writeEnum(1, location_);
      }
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeInt64(2, locationFractionMicros_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeInt64(3, cpcBidCeilingMicros_);
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (location_ != com.google.ads.googleads.v13.enums.TargetImpressionShareLocationEnum.TargetImpressionShareLocation.UNSPECIFIED.getNumber()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(1, location_);
      }
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(2, locationFractionMicros_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(3, cpcBidCeilingMicros_);
      }
      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 com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetImpressionShare)) {
        return super.equals(obj);
      }
      com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetImpressionShare other = (com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetImpressionShare) obj;

      if (location_ != other.location_) return false;
      if (hasLocationFractionMicros() != other.hasLocationFractionMicros()) return false;
      if (hasLocationFractionMicros()) {
        if (getLocationFractionMicros()
            != other.getLocationFractionMicros()) return false;
      }
      if (hasCpcBidCeilingMicros() != other.hasCpcBidCeilingMicros()) return false;
      if (hasCpcBidCeilingMicros()) {
        if (getCpcBidCeilingMicros()
            != other.getCpcBidCeilingMicros()) 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) + LOCATION_FIELD_NUMBER;
      hash = (53 * hash) + location_;
      if (hasLocationFractionMicros()) {
        hash = (37 * hash) + LOCATION_FRACTION_MICROS_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getLocationFractionMicros());
      }
      if (hasCpcBidCeilingMicros()) {
        hash = (37 * hash) + CPC_BID_CEILING_MICROS_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getCpcBidCeilingMicros());
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetImpressionShare parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetImpressionShare parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetImpressionShare parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetImpressionShare parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetImpressionShare parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetImpressionShare parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetImpressionShare parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetImpressionShare parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetImpressionShare parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetImpressionShare parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetImpressionShare parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetImpressionShare parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetImpressionShare 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.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     * An automated bidding strategy that sets bids so that a certain percentage
     * of search ads are shown at the top of the first page (or other targeted
     * location).
     * </pre>
     *
     * Protobuf type {@code google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetImpressionShare}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetImpressionShare)
        com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetImpressionShareOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.google.ads.googleads.v13.resources.AccessibleBiddingStrategyProto.internal_static_google_ads_googleads_v13_resources_AccessibleBiddingStrategy_TargetImpressionShare_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.google.ads.googleads.v13.resources.AccessibleBiddingStrategyProto.internal_static_google_ads_googleads_v13_resources_AccessibleBiddingStrategy_TargetImpressionShare_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetImpressionShare.class, com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetImpressionShare.Builder.class);
      }

      // Construct using com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetImpressionShare.newBuilder()
      private Builder() {

      }

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

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        location_ = 0;
        locationFractionMicros_ = 0L;
        cpcBidCeilingMicros_ = 0L;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.google.ads.googleads.v13.resources.AccessibleBiddingStrategyProto.internal_static_google_ads_googleads_v13_resources_AccessibleBiddingStrategy_TargetImpressionShare_descriptor;
      }

      @java.lang.Override
      public com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetImpressionShare getDefaultInstanceForType() {
        return com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetImpressionShare.getDefaultInstance();
      }

      @java.lang.Override
      public com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetImpressionShare build() {
        com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetImpressionShare result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetImpressionShare buildPartial() {
        com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetImpressionShare result = new com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetImpressionShare(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetImpressionShare result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.location_ = location_;
        }
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.locationFractionMicros_ = locationFractionMicros_;
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.cpcBidCeilingMicros_ = cpcBidCeilingMicros_;
          to_bitField0_ |= 0x00000002;
        }
        result.bitField0_ |= to_bitField0_;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetImpressionShare) {
          return mergeFrom((com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetImpressionShare)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetImpressionShare other) {
        if (other == com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetImpressionShare.getDefaultInstance()) return this;
        if (other.location_ != 0) {
          setLocationValue(other.getLocationValue());
        }
        if (other.hasLocationFractionMicros()) {
          setLocationFractionMicros(other.getLocationFractionMicros());
        }
        if (other.hasCpcBidCeilingMicros()) {
          setCpcBidCeilingMicros(other.getCpcBidCeilingMicros());
        }
        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: {
                location_ = input.readEnum();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 16: {
                locationFractionMicros_ = input.readInt64();
                bitField0_ |= 0x00000002;
                break;
              } // case 16
              case 24: {
                cpcBidCeilingMicros_ = input.readInt64();
                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 location_ = 0;
      /**
       * <pre>
       * Output only. The targeted location on the search results page.
       * </pre>
       *
       * <code>.google.ads.googleads.v13.enums.TargetImpressionShareLocationEnum.TargetImpressionShareLocation location = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
       * @return The enum numeric value on the wire for location.
       */
      @java.lang.Override public int getLocationValue() {
        return location_;
      }
      /**
       * <pre>
       * Output only. The targeted location on the search results page.
       * </pre>
       *
       * <code>.google.ads.googleads.v13.enums.TargetImpressionShareLocationEnum.TargetImpressionShareLocation location = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
       * @param value The enum numeric value on the wire for location to set.
       * @return This builder for chaining.
       */
      public Builder setLocationValue(int value) {
        location_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Output only. The targeted location on the search results page.
       * </pre>
       *
       * <code>.google.ads.googleads.v13.enums.TargetImpressionShareLocationEnum.TargetImpressionShareLocation location = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
       * @return The location.
       */
      @java.lang.Override
      public com.google.ads.googleads.v13.enums.TargetImpressionShareLocationEnum.TargetImpressionShareLocation getLocation() {
        com.google.ads.googleads.v13.enums.TargetImpressionShareLocationEnum.TargetImpressionShareLocation result = com.google.ads.googleads.v13.enums.TargetImpressionShareLocationEnum.TargetImpressionShareLocation.forNumber(location_);
        return result == null ? com.google.ads.googleads.v13.enums.TargetImpressionShareLocationEnum.TargetImpressionShareLocation.UNRECOGNIZED : result;
      }
      /**
       * <pre>
       * Output only. The targeted location on the search results page.
       * </pre>
       *
       * <code>.google.ads.googleads.v13.enums.TargetImpressionShareLocationEnum.TargetImpressionShareLocation location = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
       * @param value The location to set.
       * @return This builder for chaining.
       */
      public Builder setLocation(com.google.ads.googleads.v13.enums.TargetImpressionShareLocationEnum.TargetImpressionShareLocation value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        location_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Output only. The targeted location on the search results page.
       * </pre>
       *
       * <code>.google.ads.googleads.v13.enums.TargetImpressionShareLocationEnum.TargetImpressionShareLocation location = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
       * @return This builder for chaining.
       */
      public Builder clearLocation() {
        bitField0_ = (bitField0_ & ~0x00000001);
        location_ = 0;
        onChanged();
        return this;
      }

      private long locationFractionMicros_ ;
      /**
       * <pre>
       * The chosen fraction of ads to be shown in the targeted location in
       * micros. For example, 1% equals 10,000.
       * </pre>
       *
       * <code>optional int64 location_fraction_micros = 2;</code>
       * @return Whether the locationFractionMicros field is set.
       */
      @java.lang.Override
      public boolean hasLocationFractionMicros() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <pre>
       * The chosen fraction of ads to be shown in the targeted location in
       * micros. For example, 1% equals 10,000.
       * </pre>
       *
       * <code>optional int64 location_fraction_micros = 2;</code>
       * @return The locationFractionMicros.
       */
      @java.lang.Override
      public long getLocationFractionMicros() {
        return locationFractionMicros_;
      }
      /**
       * <pre>
       * The chosen fraction of ads to be shown in the targeted location in
       * micros. For example, 1% equals 10,000.
       * </pre>
       *
       * <code>optional int64 location_fraction_micros = 2;</code>
       * @param value The locationFractionMicros to set.
       * @return This builder for chaining.
       */
      public Builder setLocationFractionMicros(long value) {

        locationFractionMicros_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * The chosen fraction of ads to be shown in the targeted location in
       * micros. For example, 1% equals 10,000.
       * </pre>
       *
       * <code>optional int64 location_fraction_micros = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearLocationFractionMicros() {
        bitField0_ = (bitField0_ & ~0x00000002);
        locationFractionMicros_ = 0L;
        onChanged();
        return this;
      }

      private long cpcBidCeilingMicros_ ;
      /**
       * <pre>
       * Output only. The highest CPC bid the automated bidding system is
       * permitted to specify. This is a required field entered by the advertiser
       * that sets the ceiling and specified in local micros.
       * </pre>
       *
       * <code>optional int64 cpc_bid_ceiling_micros = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
       * @return Whether the cpcBidCeilingMicros field is set.
       */
      @java.lang.Override
      public boolean hasCpcBidCeilingMicros() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <pre>
       * Output only. The highest CPC bid the automated bidding system is
       * permitted to specify. This is a required field entered by the advertiser
       * that sets the ceiling and specified in local micros.
       * </pre>
       *
       * <code>optional int64 cpc_bid_ceiling_micros = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
       * @return The cpcBidCeilingMicros.
       */
      @java.lang.Override
      public long getCpcBidCeilingMicros() {
        return cpcBidCeilingMicros_;
      }
      /**
       * <pre>
       * Output only. The highest CPC bid the automated bidding system is
       * permitted to specify. This is a required field entered by the advertiser
       * that sets the ceiling and specified in local micros.
       * </pre>
       *
       * <code>optional int64 cpc_bid_ceiling_micros = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
       * @param value The cpcBidCeilingMicros to set.
       * @return This builder for chaining.
       */
      public Builder setCpcBidCeilingMicros(long value) {

        cpcBidCeilingMicros_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Output only. The highest CPC bid the automated bidding system is
       * permitted to specify. This is a required field entered by the advertiser
       * that sets the ceiling and specified in local micros.
       * </pre>
       *
       * <code>optional int64 cpc_bid_ceiling_micros = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
       * @return This builder for chaining.
       */
      public Builder clearCpcBidCeilingMicros() {
        bitField0_ = (bitField0_ & ~0x00000004);
        cpcBidCeilingMicros_ = 0L;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetImpressionShare)
    }

    // @@protoc_insertion_point(class_scope:google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetImpressionShare)
    private static final com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetImpressionShare DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetImpressionShare();
    }

    public static com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetImpressionShare getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<TargetImpressionShare>
        PARSER = new com.google.protobuf.AbstractParser<TargetImpressionShare>() {
      @java.lang.Override
      public TargetImpressionShare 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<TargetImpressionShare> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetImpressionShare getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface TargetRoasOrBuilder extends
      // @@protoc_insertion_point(interface_extends:google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetRoas)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     * Output only. The chosen revenue (based on conversion data) per unit of
     * spend.
     * </pre>
     *
     * <code>optional double target_roas = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @return Whether the targetRoas field is set.
     */
    boolean hasTargetRoas();
    /**
     * <pre>
     * Output only. The chosen revenue (based on conversion data) per unit of
     * spend.
     * </pre>
     *
     * <code>optional double target_roas = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @return The targetRoas.
     */
    double getTargetRoas();
  }
  /**
   * <pre>
   * An automated bidding strategy that helps you maximize revenue while
   * averaging a specific target return on ad spend (ROAS).
   * </pre>
   *
   * Protobuf type {@code google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetRoas}
   */
  public static final class TargetRoas extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetRoas)
      TargetRoasOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use TargetRoas.newBuilder() to construct.
    private TargetRoas(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private TargetRoas() {
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new TargetRoas();
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.google.ads.googleads.v13.resources.AccessibleBiddingStrategyProto.internal_static_google_ads_googleads_v13_resources_AccessibleBiddingStrategy_TargetRoas_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.google.ads.googleads.v13.resources.AccessibleBiddingStrategyProto.internal_static_google_ads_googleads_v13_resources_AccessibleBiddingStrategy_TargetRoas_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetRoas.class, com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetRoas.Builder.class);
    }

    private int bitField0_;
    public static final int TARGET_ROAS_FIELD_NUMBER = 1;
    private double targetRoas_ = 0D;
    /**
     * <pre>
     * Output only. The chosen revenue (based on conversion data) per unit of
     * spend.
     * </pre>
     *
     * <code>optional double target_roas = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @return Whether the targetRoas field is set.
     */
    @java.lang.Override
    public boolean hasTargetRoas() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <pre>
     * Output only. The chosen revenue (based on conversion data) per unit of
     * spend.
     * </pre>
     *
     * <code>optional double target_roas = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @return The targetRoas.
     */
    @java.lang.Override
    public double getTargetRoas() {
      return targetRoas_;
    }

    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 (((bitField0_ & 0x00000001) != 0)) {
        output.writeDouble(1, targetRoas_);
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(1, targetRoas_);
      }
      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 com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetRoas)) {
        return super.equals(obj);
      }
      com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetRoas other = (com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetRoas) obj;

      if (hasTargetRoas() != other.hasTargetRoas()) return false;
      if (hasTargetRoas()) {
        if (java.lang.Double.doubleToLongBits(getTargetRoas())
            != java.lang.Double.doubleToLongBits(
                other.getTargetRoas())) 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();
      if (hasTargetRoas()) {
        hash = (37 * hash) + TARGET_ROAS_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            java.lang.Double.doubleToLongBits(getTargetRoas()));
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetRoas parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetRoas parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetRoas parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetRoas parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetRoas parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetRoas parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetRoas parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetRoas parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetRoas parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetRoas parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetRoas parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetRoas parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetRoas 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.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     * An automated bidding strategy that helps you maximize revenue while
     * averaging a specific target return on ad spend (ROAS).
     * </pre>
     *
     * Protobuf type {@code google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetRoas}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetRoas)
        com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetRoasOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.google.ads.googleads.v13.resources.AccessibleBiddingStrategyProto.internal_static_google_ads_googleads_v13_resources_AccessibleBiddingStrategy_TargetRoas_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.google.ads.googleads.v13.resources.AccessibleBiddingStrategyProto.internal_static_google_ads_googleads_v13_resources_AccessibleBiddingStrategy_TargetRoas_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetRoas.class, com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetRoas.Builder.class);
      }

      // Construct using com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetRoas.newBuilder()
      private Builder() {

      }

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

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        targetRoas_ = 0D;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.google.ads.googleads.v13.resources.AccessibleBiddingStrategyProto.internal_static_google_ads_googleads_v13_resources_AccessibleBiddingStrategy_TargetRoas_descriptor;
      }

      @java.lang.Override
      public com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetRoas getDefaultInstanceForType() {
        return com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetRoas.getDefaultInstance();
      }

      @java.lang.Override
      public com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetRoas build() {
        com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetRoas result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetRoas buildPartial() {
        com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetRoas result = new com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetRoas(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetRoas result) {
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.targetRoas_ = targetRoas_;
          to_bitField0_ |= 0x00000001;
        }
        result.bitField0_ |= to_bitField0_;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetRoas) {
          return mergeFrom((com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetRoas)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetRoas other) {
        if (other == com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetRoas.getDefaultInstance()) return this;
        if (other.hasTargetRoas()) {
          setTargetRoas(other.getTargetRoas());
        }
        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 9: {
                targetRoas_ = input.readDouble();
                bitField0_ |= 0x00000001;
                break;
              } // case 9
              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 double targetRoas_ ;
      /**
       * <pre>
       * Output only. The chosen revenue (based on conversion data) per unit of
       * spend.
       * </pre>
       *
       * <code>optional double target_roas = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
       * @return Whether the targetRoas field is set.
       */
      @java.lang.Override
      public boolean hasTargetRoas() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <pre>
       * Output only. The chosen revenue (based on conversion data) per unit of
       * spend.
       * </pre>
       *
       * <code>optional double target_roas = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
       * @return The targetRoas.
       */
      @java.lang.Override
      public double getTargetRoas() {
        return targetRoas_;
      }
      /**
       * <pre>
       * Output only. The chosen revenue (based on conversion data) per unit of
       * spend.
       * </pre>
       *
       * <code>optional double target_roas = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
       * @param value The targetRoas to set.
       * @return This builder for chaining.
       */
      public Builder setTargetRoas(double value) {

        targetRoas_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Output only. The chosen revenue (based on conversion data) per unit of
       * spend.
       * </pre>
       *
       * <code>optional double target_roas = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
       * @return This builder for chaining.
       */
      public Builder clearTargetRoas() {
        bitField0_ = (bitField0_ & ~0x00000001);
        targetRoas_ = 0D;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetRoas)
    }

    // @@protoc_insertion_point(class_scope:google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetRoas)
    private static final com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetRoas DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetRoas();
    }

    public static com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetRoas getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<TargetRoas>
        PARSER = new com.google.protobuf.AbstractParser<TargetRoas>() {
      @java.lang.Override
      public TargetRoas 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<TargetRoas> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetRoas getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface TargetSpendOrBuilder extends
      // @@protoc_insertion_point(interface_extends:google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetSpend)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     * Output only. The spend target under which to maximize clicks.
     * A TargetSpend bidder will attempt to spend the smaller of this value
     * or the natural throttling spend amount.
     * If not specified, the budget is used as the spend target.
     * This field is deprecated and should no longer be used. See
     * https://ads-developers.googleblog.com/2020/05/reminder-about-sunset-creation-of.html
     * for details.
     * </pre>
     *
     * <code>optional int64 target_spend_micros = 1 [deprecated = true, (.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @deprecated google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetSpend.target_spend_micros is deprecated.
     *     See google/ads/googleads/v13/resources/accessible_bidding_strategy.proto;l=111
     * @return Whether the targetSpendMicros field is set.
     */
    @java.lang.Deprecated boolean hasTargetSpendMicros();
    /**
     * <pre>
     * Output only. The spend target under which to maximize clicks.
     * A TargetSpend bidder will attempt to spend the smaller of this value
     * or the natural throttling spend amount.
     * If not specified, the budget is used as the spend target.
     * This field is deprecated and should no longer be used. See
     * https://ads-developers.googleblog.com/2020/05/reminder-about-sunset-creation-of.html
     * for details.
     * </pre>
     *
     * <code>optional int64 target_spend_micros = 1 [deprecated = true, (.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @deprecated google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetSpend.target_spend_micros is deprecated.
     *     See google/ads/googleads/v13/resources/accessible_bidding_strategy.proto;l=111
     * @return The targetSpendMicros.
     */
    @java.lang.Deprecated long getTargetSpendMicros();

    /**
     * <pre>
     * Output only. Maximum bid limit that can be set by the bid strategy.
     * The limit applies to all keywords managed by the strategy.
     * </pre>
     *
     * <code>optional int64 cpc_bid_ceiling_micros = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @return Whether the cpcBidCeilingMicros field is set.
     */
    boolean hasCpcBidCeilingMicros();
    /**
     * <pre>
     * Output only. Maximum bid limit that can be set by the bid strategy.
     * The limit applies to all keywords managed by the strategy.
     * </pre>
     *
     * <code>optional int64 cpc_bid_ceiling_micros = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @return The cpcBidCeilingMicros.
     */
    long getCpcBidCeilingMicros();
  }
  /**
   * <pre>
   * An automated bid strategy that sets your bids to help get as many clicks
   * as possible within your budget.
   * </pre>
   *
   * Protobuf type {@code google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetSpend}
   */
  public static final class TargetSpend extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetSpend)
      TargetSpendOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use TargetSpend.newBuilder() to construct.
    private TargetSpend(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private TargetSpend() {
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new TargetSpend();
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.google.ads.googleads.v13.resources.AccessibleBiddingStrategyProto.internal_static_google_ads_googleads_v13_resources_AccessibleBiddingStrategy_TargetSpend_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.google.ads.googleads.v13.resources.AccessibleBiddingStrategyProto.internal_static_google_ads_googleads_v13_resources_AccessibleBiddingStrategy_TargetSpend_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetSpend.class, com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetSpend.Builder.class);
    }

    private int bitField0_;
    public static final int TARGET_SPEND_MICROS_FIELD_NUMBER = 1;
    private long targetSpendMicros_ = 0L;
    /**
     * <pre>
     * Output only. The spend target under which to maximize clicks.
     * A TargetSpend bidder will attempt to spend the smaller of this value
     * or the natural throttling spend amount.
     * If not specified, the budget is used as the spend target.
     * This field is deprecated and should no longer be used. See
     * https://ads-developers.googleblog.com/2020/05/reminder-about-sunset-creation-of.html
     * for details.
     * </pre>
     *
     * <code>optional int64 target_spend_micros = 1 [deprecated = true, (.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @deprecated google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetSpend.target_spend_micros is deprecated.
     *     See google/ads/googleads/v13/resources/accessible_bidding_strategy.proto;l=111
     * @return Whether the targetSpendMicros field is set.
     */
    @java.lang.Override
    @java.lang.Deprecated public boolean hasTargetSpendMicros() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <pre>
     * Output only. The spend target under which to maximize clicks.
     * A TargetSpend bidder will attempt to spend the smaller of this value
     * or the natural throttling spend amount.
     * If not specified, the budget is used as the spend target.
     * This field is deprecated and should no longer be used. See
     * https://ads-developers.googleblog.com/2020/05/reminder-about-sunset-creation-of.html
     * for details.
     * </pre>
     *
     * <code>optional int64 target_spend_micros = 1 [deprecated = true, (.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @deprecated google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetSpend.target_spend_micros is deprecated.
     *     See google/ads/googleads/v13/resources/accessible_bidding_strategy.proto;l=111
     * @return The targetSpendMicros.
     */
    @java.lang.Override
    @java.lang.Deprecated public long getTargetSpendMicros() {
      return targetSpendMicros_;
    }

    public static final int CPC_BID_CEILING_MICROS_FIELD_NUMBER = 2;
    private long cpcBidCeilingMicros_ = 0L;
    /**
     * <pre>
     * Output only. Maximum bid limit that can be set by the bid strategy.
     * The limit applies to all keywords managed by the strategy.
     * </pre>
     *
     * <code>optional int64 cpc_bid_ceiling_micros = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @return Whether the cpcBidCeilingMicros field is set.
     */
    @java.lang.Override
    public boolean hasCpcBidCeilingMicros() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <pre>
     * Output only. Maximum bid limit that can be set by the bid strategy.
     * The limit applies to all keywords managed by the strategy.
     * </pre>
     *
     * <code>optional int64 cpc_bid_ceiling_micros = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @return The cpcBidCeilingMicros.
     */
    @java.lang.Override
    public long getCpcBidCeilingMicros() {
      return cpcBidCeilingMicros_;
    }

    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 (((bitField0_ & 0x00000001) != 0)) {
        output.writeInt64(1, targetSpendMicros_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeInt64(2, cpcBidCeilingMicros_);
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(1, targetSpendMicros_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(2, cpcBidCeilingMicros_);
      }
      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 com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetSpend)) {
        return super.equals(obj);
      }
      com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetSpend other = (com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetSpend) obj;

      if (hasTargetSpendMicros() != other.hasTargetSpendMicros()) return false;
      if (hasTargetSpendMicros()) {
        if (getTargetSpendMicros()
            != other.getTargetSpendMicros()) return false;
      }
      if (hasCpcBidCeilingMicros() != other.hasCpcBidCeilingMicros()) return false;
      if (hasCpcBidCeilingMicros()) {
        if (getCpcBidCeilingMicros()
            != other.getCpcBidCeilingMicros()) 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();
      if (hasTargetSpendMicros()) {
        hash = (37 * hash) + TARGET_SPEND_MICROS_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getTargetSpendMicros());
      }
      if (hasCpcBidCeilingMicros()) {
        hash = (37 * hash) + CPC_BID_CEILING_MICROS_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getCpcBidCeilingMicros());
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetSpend parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetSpend parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetSpend parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetSpend parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetSpend parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetSpend parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetSpend parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetSpend parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetSpend parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetSpend parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetSpend parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetSpend parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetSpend 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.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     * An automated bid strategy that sets your bids to help get as many clicks
     * as possible within your budget.
     * </pre>
     *
     * Protobuf type {@code google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetSpend}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetSpend)
        com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetSpendOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.google.ads.googleads.v13.resources.AccessibleBiddingStrategyProto.internal_static_google_ads_googleads_v13_resources_AccessibleBiddingStrategy_TargetSpend_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.google.ads.googleads.v13.resources.AccessibleBiddingStrategyProto.internal_static_google_ads_googleads_v13_resources_AccessibleBiddingStrategy_TargetSpend_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetSpend.class, com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetSpend.Builder.class);
      }

      // Construct using com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetSpend.newBuilder()
      private Builder() {

      }

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

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        targetSpendMicros_ = 0L;
        cpcBidCeilingMicros_ = 0L;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.google.ads.googleads.v13.resources.AccessibleBiddingStrategyProto.internal_static_google_ads_googleads_v13_resources_AccessibleBiddingStrategy_TargetSpend_descriptor;
      }

      @java.lang.Override
      public com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetSpend getDefaultInstanceForType() {
        return com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetSpend.getDefaultInstance();
      }

      @java.lang.Override
      public com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetSpend build() {
        com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetSpend result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetSpend buildPartial() {
        com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetSpend result = new com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetSpend(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetSpend result) {
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.targetSpendMicros_ = targetSpendMicros_;
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.cpcBidCeilingMicros_ = cpcBidCeilingMicros_;
          to_bitField0_ |= 0x00000002;
        }
        result.bitField0_ |= to_bitField0_;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetSpend) {
          return mergeFrom((com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetSpend)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetSpend other) {
        if (other == com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetSpend.getDefaultInstance()) return this;
        if (other.hasTargetSpendMicros()) {
          setTargetSpendMicros(other.getTargetSpendMicros());
        }
        if (other.hasCpcBidCeilingMicros()) {
          setCpcBidCeilingMicros(other.getCpcBidCeilingMicros());
        }
        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: {
                targetSpendMicros_ = input.readInt64();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 16: {
                cpcBidCeilingMicros_ = input.readInt64();
                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 long targetSpendMicros_ ;
      /**
       * <pre>
       * Output only. The spend target under which to maximize clicks.
       * A TargetSpend bidder will attempt to spend the smaller of this value
       * or the natural throttling spend amount.
       * If not specified, the budget is used as the spend target.
       * This field is deprecated and should no longer be used. See
       * https://ads-developers.googleblog.com/2020/05/reminder-about-sunset-creation-of.html
       * for details.
       * </pre>
       *
       * <code>optional int64 target_spend_micros = 1 [deprecated = true, (.google.api.field_behavior) = OUTPUT_ONLY];</code>
       * @deprecated google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetSpend.target_spend_micros is deprecated.
       *     See google/ads/googleads/v13/resources/accessible_bidding_strategy.proto;l=111
       * @return Whether the targetSpendMicros field is set.
       */
      @java.lang.Override
      @java.lang.Deprecated public boolean hasTargetSpendMicros() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <pre>
       * Output only. The spend target under which to maximize clicks.
       * A TargetSpend bidder will attempt to spend the smaller of this value
       * or the natural throttling spend amount.
       * If not specified, the budget is used as the spend target.
       * This field is deprecated and should no longer be used. See
       * https://ads-developers.googleblog.com/2020/05/reminder-about-sunset-creation-of.html
       * for details.
       * </pre>
       *
       * <code>optional int64 target_spend_micros = 1 [deprecated = true, (.google.api.field_behavior) = OUTPUT_ONLY];</code>
       * @deprecated google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetSpend.target_spend_micros is deprecated.
       *     See google/ads/googleads/v13/resources/accessible_bidding_strategy.proto;l=111
       * @return The targetSpendMicros.
       */
      @java.lang.Override
      @java.lang.Deprecated public long getTargetSpendMicros() {
        return targetSpendMicros_;
      }
      /**
       * <pre>
       * Output only. The spend target under which to maximize clicks.
       * A TargetSpend bidder will attempt to spend the smaller of this value
       * or the natural throttling spend amount.
       * If not specified, the budget is used as the spend target.
       * This field is deprecated and should no longer be used. See
       * https://ads-developers.googleblog.com/2020/05/reminder-about-sunset-creation-of.html
       * for details.
       * </pre>
       *
       * <code>optional int64 target_spend_micros = 1 [deprecated = true, (.google.api.field_behavior) = OUTPUT_ONLY];</code>
       * @deprecated google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetSpend.target_spend_micros is deprecated.
       *     See google/ads/googleads/v13/resources/accessible_bidding_strategy.proto;l=111
       * @param value The targetSpendMicros to set.
       * @return This builder for chaining.
       */
      @java.lang.Deprecated public Builder setTargetSpendMicros(long value) {

        targetSpendMicros_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Output only. The spend target under which to maximize clicks.
       * A TargetSpend bidder will attempt to spend the smaller of this value
       * or the natural throttling spend amount.
       * If not specified, the budget is used as the spend target.
       * This field is deprecated and should no longer be used. See
       * https://ads-developers.googleblog.com/2020/05/reminder-about-sunset-creation-of.html
       * for details.
       * </pre>
       *
       * <code>optional int64 target_spend_micros = 1 [deprecated = true, (.google.api.field_behavior) = OUTPUT_ONLY];</code>
       * @deprecated google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetSpend.target_spend_micros is deprecated.
       *     See google/ads/googleads/v13/resources/accessible_bidding_strategy.proto;l=111
       * @return This builder for chaining.
       */
      @java.lang.Deprecated public Builder clearTargetSpendMicros() {
        bitField0_ = (bitField0_ & ~0x00000001);
        targetSpendMicros_ = 0L;
        onChanged();
        return this;
      }

      private long cpcBidCeilingMicros_ ;
      /**
       * <pre>
       * Output only. Maximum bid limit that can be set by the bid strategy.
       * The limit applies to all keywords managed by the strategy.
       * </pre>
       *
       * <code>optional int64 cpc_bid_ceiling_micros = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
       * @return Whether the cpcBidCeilingMicros field is set.
       */
      @java.lang.Override
      public boolean hasCpcBidCeilingMicros() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <pre>
       * Output only. Maximum bid limit that can be set by the bid strategy.
       * The limit applies to all keywords managed by the strategy.
       * </pre>
       *
       * <code>optional int64 cpc_bid_ceiling_micros = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
       * @return The cpcBidCeilingMicros.
       */
      @java.lang.Override
      public long getCpcBidCeilingMicros() {
        return cpcBidCeilingMicros_;
      }
      /**
       * <pre>
       * Output only. Maximum bid limit that can be set by the bid strategy.
       * The limit applies to all keywords managed by the strategy.
       * </pre>
       *
       * <code>optional int64 cpc_bid_ceiling_micros = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
       * @param value The cpcBidCeilingMicros to set.
       * @return This builder for chaining.
       */
      public Builder setCpcBidCeilingMicros(long value) {

        cpcBidCeilingMicros_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Output only. Maximum bid limit that can be set by the bid strategy.
       * The limit applies to all keywords managed by the strategy.
       * </pre>
       *
       * <code>optional int64 cpc_bid_ceiling_micros = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
       * @return This builder for chaining.
       */
      public Builder clearCpcBidCeilingMicros() {
        bitField0_ = (bitField0_ & ~0x00000002);
        cpcBidCeilingMicros_ = 0L;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetSpend)
    }

    // @@protoc_insertion_point(class_scope:google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetSpend)
    private static final com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetSpend DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetSpend();
    }

    public static com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetSpend getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<TargetSpend>
        PARSER = new com.google.protobuf.AbstractParser<TargetSpend>() {
      @java.lang.Override
      public TargetSpend 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<TargetSpend> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetSpend getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  private int schemeCase_ = 0;
  @SuppressWarnings("serial")
  private java.lang.Object scheme_;
  public enum SchemeCase
      implements com.google.protobuf.Internal.EnumLite,
          com.google.protobuf.AbstractMessage.InternalOneOfEnum {
    MAXIMIZE_CONVERSION_VALUE(7),
    MAXIMIZE_CONVERSIONS(8),
    TARGET_CPA(9),
    TARGET_IMPRESSION_SHARE(10),
    TARGET_ROAS(11),
    TARGET_SPEND(12),
    SCHEME_NOT_SET(0);
    private final int value;
    private SchemeCase(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 SchemeCase valueOf(int value) {
      return forNumber(value);
    }

    public static SchemeCase forNumber(int value) {
      switch (value) {
        case 7: return MAXIMIZE_CONVERSION_VALUE;
        case 8: return MAXIMIZE_CONVERSIONS;
        case 9: return TARGET_CPA;
        case 10: return TARGET_IMPRESSION_SHARE;
        case 11: return TARGET_ROAS;
        case 12: return TARGET_SPEND;
        case 0: return SCHEME_NOT_SET;
        default: return null;
      }
    }
    public int getNumber() {
      return this.value;
    }
  };

  public SchemeCase
  getSchemeCase() {
    return SchemeCase.forNumber(
        schemeCase_);
  }

  public static final int RESOURCE_NAME_FIELD_NUMBER = 1;
  @SuppressWarnings("serial")
  private volatile java.lang.Object resourceName_ = "";
  /**
   * <pre>
   * Output only. The resource name of the accessible bidding strategy.
   * AccessibleBiddingStrategy resource names have the form:
   *
   * `customers/{customer_id}/accessibleBiddingStrategies/{bidding_strategy_id}`
   * </pre>
   *
   * <code>string resource_name = 1 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.resource_reference) = { ... }</code>
   * @return The resourceName.
   */
  @java.lang.Override
  public java.lang.String getResourceName() {
    java.lang.Object ref = resourceName_;
    if (ref instanceof java.lang.String) {
      return (java.lang.String) ref;
    } else {
      com.google.protobuf.ByteString bs = 
          (com.google.protobuf.ByteString) ref;
      java.lang.String s = bs.toStringUtf8();
      resourceName_ = s;
      return s;
    }
  }
  /**
   * <pre>
   * Output only. The resource name of the accessible bidding strategy.
   * AccessibleBiddingStrategy resource names have the form:
   *
   * `customers/{customer_id}/accessibleBiddingStrategies/{bidding_strategy_id}`
   * </pre>
   *
   * <code>string resource_name = 1 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.resource_reference) = { ... }</code>
   * @return The bytes for resourceName.
   */
  @java.lang.Override
  public com.google.protobuf.ByteString
      getResourceNameBytes() {
    java.lang.Object ref = resourceName_;
    if (ref instanceof java.lang.String) {
      com.google.protobuf.ByteString b = 
          com.google.protobuf.ByteString.copyFromUtf8(
              (java.lang.String) ref);
      resourceName_ = b;
      return b;
    } else {
      return (com.google.protobuf.ByteString) ref;
    }
  }

  public static final int ID_FIELD_NUMBER = 2;
  private long id_ = 0L;
  /**
   * <pre>
   * Output only. The ID of the bidding strategy.
   * </pre>
   *
   * <code>int64 id = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
   * @return The id.
   */
  @java.lang.Override
  public long getId() {
    return id_;
  }

  public static final int NAME_FIELD_NUMBER = 3;
  @SuppressWarnings("serial")
  private volatile java.lang.Object name_ = "";
  /**
   * <pre>
   * Output only. The name of the bidding strategy.
   * </pre>
   *
   * <code>string name = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
   * @return The name.
   */
  @java.lang.Override
  public java.lang.String getName() {
    java.lang.Object ref = name_;
    if (ref instanceof java.lang.String) {
      return (java.lang.String) ref;
    } else {
      com.google.protobuf.ByteString bs = 
          (com.google.protobuf.ByteString) ref;
      java.lang.String s = bs.toStringUtf8();
      name_ = s;
      return s;
    }
  }
  /**
   * <pre>
   * Output only. The name of the bidding strategy.
   * </pre>
   *
   * <code>string name = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
   * @return The bytes for name.
   */
  @java.lang.Override
  public com.google.protobuf.ByteString
      getNameBytes() {
    java.lang.Object ref = name_;
    if (ref instanceof java.lang.String) {
      com.google.protobuf.ByteString b = 
          com.google.protobuf.ByteString.copyFromUtf8(
              (java.lang.String) ref);
      name_ = b;
      return b;
    } else {
      return (com.google.protobuf.ByteString) ref;
    }
  }

  public static final int TYPE_FIELD_NUMBER = 4;
  private int type_ = 0;
  /**
   * <pre>
   * Output only. The type of the bidding strategy.
   * </pre>
   *
   * <code>.google.ads.googleads.v13.enums.BiddingStrategyTypeEnum.BiddingStrategyType type = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
   * @return The enum numeric value on the wire for type.
   */
  @java.lang.Override public int getTypeValue() {
    return type_;
  }
  /**
   * <pre>
   * Output only. The type of the bidding strategy.
   * </pre>
   *
   * <code>.google.ads.googleads.v13.enums.BiddingStrategyTypeEnum.BiddingStrategyType type = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
   * @return The type.
   */
  @java.lang.Override public com.google.ads.googleads.v13.enums.BiddingStrategyTypeEnum.BiddingStrategyType getType() {
    com.google.ads.googleads.v13.enums.BiddingStrategyTypeEnum.BiddingStrategyType result = com.google.ads.googleads.v13.enums.BiddingStrategyTypeEnum.BiddingStrategyType.forNumber(type_);
    return result == null ? com.google.ads.googleads.v13.enums.BiddingStrategyTypeEnum.BiddingStrategyType.UNRECOGNIZED : result;
  }

  public static final int OWNER_CUSTOMER_ID_FIELD_NUMBER = 5;
  private long ownerCustomerId_ = 0L;
  /**
   * <pre>
   * Output only. The ID of the Customer which owns the bidding strategy.
   * </pre>
   *
   * <code>int64 owner_customer_id = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
   * @return The ownerCustomerId.
   */
  @java.lang.Override
  public long getOwnerCustomerId() {
    return ownerCustomerId_;
  }

  public static final int OWNER_DESCRIPTIVE_NAME_FIELD_NUMBER = 6;
  @SuppressWarnings("serial")
  private volatile java.lang.Object ownerDescriptiveName_ = "";
  /**
   * <pre>
   * Output only. descriptive_name of the Customer which owns the bidding
   * strategy.
   * </pre>
   *
   * <code>string owner_descriptive_name = 6 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
   * @return The ownerDescriptiveName.
   */
  @java.lang.Override
  public java.lang.String getOwnerDescriptiveName() {
    java.lang.Object ref = ownerDescriptiveName_;
    if (ref instanceof java.lang.String) {
      return (java.lang.String) ref;
    } else {
      com.google.protobuf.ByteString bs = 
          (com.google.protobuf.ByteString) ref;
      java.lang.String s = bs.toStringUtf8();
      ownerDescriptiveName_ = s;
      return s;
    }
  }
  /**
   * <pre>
   * Output only. descriptive_name of the Customer which owns the bidding
   * strategy.
   * </pre>
   *
   * <code>string owner_descriptive_name = 6 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
   * @return The bytes for ownerDescriptiveName.
   */
  @java.lang.Override
  public com.google.protobuf.ByteString
      getOwnerDescriptiveNameBytes() {
    java.lang.Object ref = ownerDescriptiveName_;
    if (ref instanceof java.lang.String) {
      com.google.protobuf.ByteString b = 
          com.google.protobuf.ByteString.copyFromUtf8(
              (java.lang.String) ref);
      ownerDescriptiveName_ = b;
      return b;
    } else {
      return (com.google.protobuf.ByteString) ref;
    }
  }

  public static final int MAXIMIZE_CONVERSION_VALUE_FIELD_NUMBER = 7;
  /**
   * <pre>
   * Output only. An automated bidding strategy to help get the most
   * conversion value for your campaigns while spending your budget.
   * </pre>
   *
   * <code>.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.MaximizeConversionValue maximize_conversion_value = 7 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
   * @return Whether the maximizeConversionValue field is set.
   */
  @java.lang.Override
  public boolean hasMaximizeConversionValue() {
    return schemeCase_ == 7;
  }
  /**
   * <pre>
   * Output only. An automated bidding strategy to help get the most
   * conversion value for your campaigns while spending your budget.
   * </pre>
   *
   * <code>.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.MaximizeConversionValue maximize_conversion_value = 7 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
   * @return The maximizeConversionValue.
   */
  @java.lang.Override
  public com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.MaximizeConversionValue getMaximizeConversionValue() {
    if (schemeCase_ == 7) {
       return (com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.MaximizeConversionValue) scheme_;
    }
    return com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.MaximizeConversionValue.getDefaultInstance();
  }
  /**
   * <pre>
   * Output only. An automated bidding strategy to help get the most
   * conversion value for your campaigns while spending your budget.
   * </pre>
   *
   * <code>.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.MaximizeConversionValue maximize_conversion_value = 7 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
   */
  @java.lang.Override
  public com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.MaximizeConversionValueOrBuilder getMaximizeConversionValueOrBuilder() {
    if (schemeCase_ == 7) {
       return (com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.MaximizeConversionValue) scheme_;
    }
    return com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.MaximizeConversionValue.getDefaultInstance();
  }

  public static final int MAXIMIZE_CONVERSIONS_FIELD_NUMBER = 8;
  /**
   * <pre>
   * Output only. An automated bidding strategy to help get the most
   * conversions for your campaigns while spending your budget.
   * </pre>
   *
   * <code>.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.MaximizeConversions maximize_conversions = 8 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
   * @return Whether the maximizeConversions field is set.
   */
  @java.lang.Override
  public boolean hasMaximizeConversions() {
    return schemeCase_ == 8;
  }
  /**
   * <pre>
   * Output only. An automated bidding strategy to help get the most
   * conversions for your campaigns while spending your budget.
   * </pre>
   *
   * <code>.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.MaximizeConversions maximize_conversions = 8 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
   * @return The maximizeConversions.
   */
  @java.lang.Override
  public com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.MaximizeConversions getMaximizeConversions() {
    if (schemeCase_ == 8) {
       return (com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.MaximizeConversions) scheme_;
    }
    return com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.MaximizeConversions.getDefaultInstance();
  }
  /**
   * <pre>
   * Output only. An automated bidding strategy to help get the most
   * conversions for your campaigns while spending your budget.
   * </pre>
   *
   * <code>.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.MaximizeConversions maximize_conversions = 8 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
   */
  @java.lang.Override
  public com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.MaximizeConversionsOrBuilder getMaximizeConversionsOrBuilder() {
    if (schemeCase_ == 8) {
       return (com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.MaximizeConversions) scheme_;
    }
    return com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.MaximizeConversions.getDefaultInstance();
  }

  public static final int TARGET_CPA_FIELD_NUMBER = 9;
  /**
   * <pre>
   * Output only. A bidding strategy that sets bids to help get as many
   * conversions as possible at the target cost-per-acquisition (CPA) you set.
   * </pre>
   *
   * <code>.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetCpa target_cpa = 9 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
   * @return Whether the targetCpa field is set.
   */
  @java.lang.Override
  public boolean hasTargetCpa() {
    return schemeCase_ == 9;
  }
  /**
   * <pre>
   * Output only. A bidding strategy that sets bids to help get as many
   * conversions as possible at the target cost-per-acquisition (CPA) you set.
   * </pre>
   *
   * <code>.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetCpa target_cpa = 9 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
   * @return The targetCpa.
   */
  @java.lang.Override
  public com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetCpa getTargetCpa() {
    if (schemeCase_ == 9) {
       return (com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetCpa) scheme_;
    }
    return com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetCpa.getDefaultInstance();
  }
  /**
   * <pre>
   * Output only. A bidding strategy that sets bids to help get as many
   * conversions as possible at the target cost-per-acquisition (CPA) you set.
   * </pre>
   *
   * <code>.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetCpa target_cpa = 9 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
   */
  @java.lang.Override
  public com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetCpaOrBuilder getTargetCpaOrBuilder() {
    if (schemeCase_ == 9) {
       return (com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetCpa) scheme_;
    }
    return com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetCpa.getDefaultInstance();
  }

  public static final int TARGET_IMPRESSION_SHARE_FIELD_NUMBER = 10;
  /**
   * <pre>
   * Output only. A bidding strategy that automatically optimizes towards a
   * chosen percentage of impressions.
   * </pre>
   *
   * <code>.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetImpressionShare target_impression_share = 10 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
   * @return Whether the targetImpressionShare field is set.
   */
  @java.lang.Override
  public boolean hasTargetImpressionShare() {
    return schemeCase_ == 10;
  }
  /**
   * <pre>
   * Output only. A bidding strategy that automatically optimizes towards a
   * chosen percentage of impressions.
   * </pre>
   *
   * <code>.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetImpressionShare target_impression_share = 10 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
   * @return The targetImpressionShare.
   */
  @java.lang.Override
  public com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetImpressionShare getTargetImpressionShare() {
    if (schemeCase_ == 10) {
       return (com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetImpressionShare) scheme_;
    }
    return com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetImpressionShare.getDefaultInstance();
  }
  /**
   * <pre>
   * Output only. A bidding strategy that automatically optimizes towards a
   * chosen percentage of impressions.
   * </pre>
   *
   * <code>.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetImpressionShare target_impression_share = 10 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
   */
  @java.lang.Override
  public com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetImpressionShareOrBuilder getTargetImpressionShareOrBuilder() {
    if (schemeCase_ == 10) {
       return (com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetImpressionShare) scheme_;
    }
    return com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetImpressionShare.getDefaultInstance();
  }

  public static final int TARGET_ROAS_FIELD_NUMBER = 11;
  /**
   * <pre>
   * Output only. A bidding strategy that helps you maximize revenue while
   * averaging a specific target Return On Ad Spend (ROAS).
   * </pre>
   *
   * <code>.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetRoas target_roas = 11 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
   * @return Whether the targetRoas field is set.
   */
  @java.lang.Override
  public boolean hasTargetRoas() {
    return schemeCase_ == 11;
  }
  /**
   * <pre>
   * Output only. A bidding strategy that helps you maximize revenue while
   * averaging a specific target Return On Ad Spend (ROAS).
   * </pre>
   *
   * <code>.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetRoas target_roas = 11 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
   * @return The targetRoas.
   */
  @java.lang.Override
  public com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetRoas getTargetRoas() {
    if (schemeCase_ == 11) {
       return (com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetRoas) scheme_;
    }
    return com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetRoas.getDefaultInstance();
  }
  /**
   * <pre>
   * Output only. A bidding strategy that helps you maximize revenue while
   * averaging a specific target Return On Ad Spend (ROAS).
   * </pre>
   *
   * <code>.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetRoas target_roas = 11 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
   */
  @java.lang.Override
  public com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetRoasOrBuilder getTargetRoasOrBuilder() {
    if (schemeCase_ == 11) {
       return (com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetRoas) scheme_;
    }
    return com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetRoas.getDefaultInstance();
  }

  public static final int TARGET_SPEND_FIELD_NUMBER = 12;
  /**
   * <pre>
   * Output only. A bid strategy that sets your bids to help get as many
   * clicks as possible within your budget.
   * </pre>
   *
   * <code>.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetSpend target_spend = 12 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
   * @return Whether the targetSpend field is set.
   */
  @java.lang.Override
  public boolean hasTargetSpend() {
    return schemeCase_ == 12;
  }
  /**
   * <pre>
   * Output only. A bid strategy that sets your bids to help get as many
   * clicks as possible within your budget.
   * </pre>
   *
   * <code>.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetSpend target_spend = 12 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
   * @return The targetSpend.
   */
  @java.lang.Override
  public com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetSpend getTargetSpend() {
    if (schemeCase_ == 12) {
       return (com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetSpend) scheme_;
    }
    return com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetSpend.getDefaultInstance();
  }
  /**
   * <pre>
   * Output only. A bid strategy that sets your bids to help get as many
   * clicks as possible within your budget.
   * </pre>
   *
   * <code>.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetSpend target_spend = 12 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
   */
  @java.lang.Override
  public com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetSpendOrBuilder getTargetSpendOrBuilder() {
    if (schemeCase_ == 12) {
       return (com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetSpend) scheme_;
    }
    return com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetSpend.getDefaultInstance();
  }

  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 (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(resourceName_)) {
      com.google.protobuf.GeneratedMessageV3.writeString(output, 1, resourceName_);
    }
    if (id_ != 0L) {
      output.writeInt64(2, id_);
    }
    if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) {
      com.google.protobuf.GeneratedMessageV3.writeString(output, 3, name_);
    }
    if (type_ != com.google.ads.googleads.v13.enums.BiddingStrategyTypeEnum.BiddingStrategyType.UNSPECIFIED.getNumber()) {
      output.writeEnum(4, type_);
    }
    if (ownerCustomerId_ != 0L) {
      output.writeInt64(5, ownerCustomerId_);
    }
    if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(ownerDescriptiveName_)) {
      com.google.protobuf.GeneratedMessageV3.writeString(output, 6, ownerDescriptiveName_);
    }
    if (schemeCase_ == 7) {
      output.writeMessage(7, (com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.MaximizeConversionValue) scheme_);
    }
    if (schemeCase_ == 8) {
      output.writeMessage(8, (com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.MaximizeConversions) scheme_);
    }
    if (schemeCase_ == 9) {
      output.writeMessage(9, (com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetCpa) scheme_);
    }
    if (schemeCase_ == 10) {
      output.writeMessage(10, (com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetImpressionShare) scheme_);
    }
    if (schemeCase_ == 11) {
      output.writeMessage(11, (com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetRoas) scheme_);
    }
    if (schemeCase_ == 12) {
      output.writeMessage(12, (com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetSpend) scheme_);
    }
    getUnknownFields().writeTo(output);
  }

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

    size = 0;
    if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(resourceName_)) {
      size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, resourceName_);
    }
    if (id_ != 0L) {
      size += com.google.protobuf.CodedOutputStream
        .computeInt64Size(2, id_);
    }
    if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) {
      size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, name_);
    }
    if (type_ != com.google.ads.googleads.v13.enums.BiddingStrategyTypeEnum.BiddingStrategyType.UNSPECIFIED.getNumber()) {
      size += com.google.protobuf.CodedOutputStream
        .computeEnumSize(4, type_);
    }
    if (ownerCustomerId_ != 0L) {
      size += com.google.protobuf.CodedOutputStream
        .computeInt64Size(5, ownerCustomerId_);
    }
    if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(ownerDescriptiveName_)) {
      size += com.google.protobuf.GeneratedMessageV3.computeStringSize(6, ownerDescriptiveName_);
    }
    if (schemeCase_ == 7) {
      size += com.google.protobuf.CodedOutputStream
        .computeMessageSize(7, (com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.MaximizeConversionValue) scheme_);
    }
    if (schemeCase_ == 8) {
      size += com.google.protobuf.CodedOutputStream
        .computeMessageSize(8, (com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.MaximizeConversions) scheme_);
    }
    if (schemeCase_ == 9) {
      size += com.google.protobuf.CodedOutputStream
        .computeMessageSize(9, (com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetCpa) scheme_);
    }
    if (schemeCase_ == 10) {
      size += com.google.protobuf.CodedOutputStream
        .computeMessageSize(10, (com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetImpressionShare) scheme_);
    }
    if (schemeCase_ == 11) {
      size += com.google.protobuf.CodedOutputStream
        .computeMessageSize(11, (com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetRoas) scheme_);
    }
    if (schemeCase_ == 12) {
      size += com.google.protobuf.CodedOutputStream
        .computeMessageSize(12, (com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetSpend) scheme_);
    }
    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 com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy)) {
      return super.equals(obj);
    }
    com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy other = (com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy) obj;

    if (!getResourceName()
        .equals(other.getResourceName())) return false;
    if (getId()
        != other.getId()) return false;
    if (!getName()
        .equals(other.getName())) return false;
    if (type_ != other.type_) return false;
    if (getOwnerCustomerId()
        != other.getOwnerCustomerId()) return false;
    if (!getOwnerDescriptiveName()
        .equals(other.getOwnerDescriptiveName())) return false;
    if (!getSchemeCase().equals(other.getSchemeCase())) return false;
    switch (schemeCase_) {
      case 7:
        if (!getMaximizeConversionValue()
            .equals(other.getMaximizeConversionValue())) return false;
        break;
      case 8:
        if (!getMaximizeConversions()
            .equals(other.getMaximizeConversions())) return false;
        break;
      case 9:
        if (!getTargetCpa()
            .equals(other.getTargetCpa())) return false;
        break;
      case 10:
        if (!getTargetImpressionShare()
            .equals(other.getTargetImpressionShare())) return false;
        break;
      case 11:
        if (!getTargetRoas()
            .equals(other.getTargetRoas())) return false;
        break;
      case 12:
        if (!getTargetSpend()
            .equals(other.getTargetSpend())) 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();
    hash = (37 * hash) + RESOURCE_NAME_FIELD_NUMBER;
    hash = (53 * hash) + getResourceName().hashCode();
    hash = (37 * hash) + ID_FIELD_NUMBER;
    hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
        getId());
    hash = (37 * hash) + NAME_FIELD_NUMBER;
    hash = (53 * hash) + getName().hashCode();
    hash = (37 * hash) + TYPE_FIELD_NUMBER;
    hash = (53 * hash) + type_;
    hash = (37 * hash) + OWNER_CUSTOMER_ID_FIELD_NUMBER;
    hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
        getOwnerCustomerId());
    hash = (37 * hash) + OWNER_DESCRIPTIVE_NAME_FIELD_NUMBER;
    hash = (53 * hash) + getOwnerDescriptiveName().hashCode();
    switch (schemeCase_) {
      case 7:
        hash = (37 * hash) + MAXIMIZE_CONVERSION_VALUE_FIELD_NUMBER;
        hash = (53 * hash) + getMaximizeConversionValue().hashCode();
        break;
      case 8:
        hash = (37 * hash) + MAXIMIZE_CONVERSIONS_FIELD_NUMBER;
        hash = (53 * hash) + getMaximizeConversions().hashCode();
        break;
      case 9:
        hash = (37 * hash) + TARGET_CPA_FIELD_NUMBER;
        hash = (53 * hash) + getTargetCpa().hashCode();
        break;
      case 10:
        hash = (37 * hash) + TARGET_IMPRESSION_SHARE_FIELD_NUMBER;
        hash = (53 * hash) + getTargetImpressionShare().hashCode();
        break;
      case 11:
        hash = (37 * hash) + TARGET_ROAS_FIELD_NUMBER;
        hash = (53 * hash) + getTargetRoas().hashCode();
        break;
      case 12:
        hash = (37 * hash) + TARGET_SPEND_FIELD_NUMBER;
        hash = (53 * hash) + getTargetSpend().hashCode();
        break;
      case 0:
      default:
    }
    hash = (29 * hash) + getUnknownFields().hashCode();
    memoizedHashCode = hash;
    return hash;
  }

  public static com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy parseFrom(
      java.nio.ByteBuffer data)
      throws com.google.protobuf.InvalidProtocolBufferException {
    return PARSER.parseFrom(data);
  }
  public static com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy parseFrom(
      java.nio.ByteBuffer data,
      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
      throws com.google.protobuf.InvalidProtocolBufferException {
    return PARSER.parseFrom(data, extensionRegistry);
  }
  public static com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy parseFrom(
      com.google.protobuf.ByteString data)
      throws com.google.protobuf.InvalidProtocolBufferException {
    return PARSER.parseFrom(data);
  }
  public static com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy parseFrom(
      com.google.protobuf.ByteString data,
      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
      throws com.google.protobuf.InvalidProtocolBufferException {
    return PARSER.parseFrom(data, extensionRegistry);
  }
  public static com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy parseFrom(byte[] data)
      throws com.google.protobuf.InvalidProtocolBufferException {
    return PARSER.parseFrom(data);
  }
  public static com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy parseFrom(
      byte[] data,
      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
      throws com.google.protobuf.InvalidProtocolBufferException {
    return PARSER.parseFrom(data, extensionRegistry);
  }
  public static com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy parseFrom(java.io.InputStream input)
      throws java.io.IOException {
    return com.google.protobuf.GeneratedMessageV3
        .parseWithIOException(PARSER, input);
  }
  public static com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy parseFrom(
      java.io.InputStream input,
      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
      throws java.io.IOException {
    return com.google.protobuf.GeneratedMessageV3
        .parseWithIOException(PARSER, input, extensionRegistry);
  }

  public static com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy parseDelimitedFrom(java.io.InputStream input)
      throws java.io.IOException {
    return com.google.protobuf.GeneratedMessageV3
        .parseDelimitedWithIOException(PARSER, input);
  }

  public static com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy parseDelimitedFrom(
      java.io.InputStream input,
      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
      throws java.io.IOException {
    return com.google.protobuf.GeneratedMessageV3
        .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
  }
  public static com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy parseFrom(
      com.google.protobuf.CodedInputStream input)
      throws java.io.IOException {
    return com.google.protobuf.GeneratedMessageV3
        .parseWithIOException(PARSER, input);
  }
  public static com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy parseFrom(
      com.google.protobuf.CodedInputStream input,
      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
      throws java.io.IOException {
    return com.google.protobuf.GeneratedMessageV3
        .parseWithIOException(PARSER, input, extensionRegistry);
  }

  @java.lang.Override
  public Builder newBuilderForType() { return newBuilder(); }
  public static Builder newBuilder() {
    return DEFAULT_INSTANCE.toBuilder();
  }
  public static Builder newBuilder(com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy 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.GeneratedMessageV3.BuilderParent parent) {
    Builder builder = new Builder(parent);
    return builder;
  }
  /**
   * <pre>
   * Represents a view of BiddingStrategies owned by and shared with the customer.
   *
   * In contrast to BiddingStrategy, this resource includes strategies owned by
   * managers of the customer and shared with this customer - in addition to
   * strategies owned by this customer. This resource does not provide metrics and
   * only exposes a limited subset of the BiddingStrategy attributes.
   * </pre>
   *
   * Protobuf type {@code google.ads.googleads.v13.resources.AccessibleBiddingStrategy}
   */
  public static final class Builder extends
      com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
      // @@protoc_insertion_point(builder_implements:google.ads.googleads.v13.resources.AccessibleBiddingStrategy)
      com.google.ads.googleads.v13.resources.AccessibleBiddingStrategyOrBuilder {
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.google.ads.googleads.v13.resources.AccessibleBiddingStrategyProto.internal_static_google_ads_googleads_v13_resources_AccessibleBiddingStrategy_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.google.ads.googleads.v13.resources.AccessibleBiddingStrategyProto.internal_static_google_ads_googleads_v13_resources_AccessibleBiddingStrategy_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.class, com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.Builder.class);
    }

    // Construct using com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.newBuilder()
    private Builder() {

    }

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

    }
    @java.lang.Override
    public Builder clear() {
      super.clear();
      bitField0_ = 0;
      resourceName_ = "";
      id_ = 0L;
      name_ = "";
      type_ = 0;
      ownerCustomerId_ = 0L;
      ownerDescriptiveName_ = "";
      if (maximizeConversionValueBuilder_ != null) {
        maximizeConversionValueBuilder_.clear();
      }
      if (maximizeConversionsBuilder_ != null) {
        maximizeConversionsBuilder_.clear();
      }
      if (targetCpaBuilder_ != null) {
        targetCpaBuilder_.clear();
      }
      if (targetImpressionShareBuilder_ != null) {
        targetImpressionShareBuilder_.clear();
      }
      if (targetRoasBuilder_ != null) {
        targetRoasBuilder_.clear();
      }
      if (targetSpendBuilder_ != null) {
        targetSpendBuilder_.clear();
      }
      schemeCase_ = 0;
      scheme_ = null;
      return this;
    }

    @java.lang.Override
    public com.google.protobuf.Descriptors.Descriptor
        getDescriptorForType() {
      return com.google.ads.googleads.v13.resources.AccessibleBiddingStrategyProto.internal_static_google_ads_googleads_v13_resources_AccessibleBiddingStrategy_descriptor;
    }

    @java.lang.Override
    public com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy getDefaultInstanceForType() {
      return com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.getDefaultInstance();
    }

    @java.lang.Override
    public com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy build() {
      com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy result = buildPartial();
      if (!result.isInitialized()) {
        throw newUninitializedMessageException(result);
      }
      return result;
    }

    @java.lang.Override
    public com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy buildPartial() {
      com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy result = new com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy(this);
      if (bitField0_ != 0) { buildPartial0(result); }
      buildPartialOneofs(result);
      onBuilt();
      return result;
    }

    private void buildPartial0(com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy result) {
      int from_bitField0_ = bitField0_;
      if (((from_bitField0_ & 0x00000001) != 0)) {
        result.resourceName_ = resourceName_;
      }
      if (((from_bitField0_ & 0x00000002) != 0)) {
        result.id_ = id_;
      }
      if (((from_bitField0_ & 0x00000004) != 0)) {
        result.name_ = name_;
      }
      if (((from_bitField0_ & 0x00000008) != 0)) {
        result.type_ = type_;
      }
      if (((from_bitField0_ & 0x00000010) != 0)) {
        result.ownerCustomerId_ = ownerCustomerId_;
      }
      if (((from_bitField0_ & 0x00000020) != 0)) {
        result.ownerDescriptiveName_ = ownerDescriptiveName_;
      }
    }

    private void buildPartialOneofs(com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy result) {
      result.schemeCase_ = schemeCase_;
      result.scheme_ = this.scheme_;
      if (schemeCase_ == 7 &&
          maximizeConversionValueBuilder_ != null) {
        result.scheme_ = maximizeConversionValueBuilder_.build();
      }
      if (schemeCase_ == 8 &&
          maximizeConversionsBuilder_ != null) {
        result.scheme_ = maximizeConversionsBuilder_.build();
      }
      if (schemeCase_ == 9 &&
          targetCpaBuilder_ != null) {
        result.scheme_ = targetCpaBuilder_.build();
      }
      if (schemeCase_ == 10 &&
          targetImpressionShareBuilder_ != null) {
        result.scheme_ = targetImpressionShareBuilder_.build();
      }
      if (schemeCase_ == 11 &&
          targetRoasBuilder_ != null) {
        result.scheme_ = targetRoasBuilder_.build();
      }
      if (schemeCase_ == 12 &&
          targetSpendBuilder_ != null) {
        result.scheme_ = targetSpendBuilder_.build();
      }
    }

    @java.lang.Override
    public Builder clone() {
      return super.clone();
    }
    @java.lang.Override
    public Builder setField(
        com.google.protobuf.Descriptors.FieldDescriptor field,
        java.lang.Object value) {
      return super.setField(field, value);
    }
    @java.lang.Override
    public Builder clearField(
        com.google.protobuf.Descriptors.FieldDescriptor field) {
      return super.clearField(field);
    }
    @java.lang.Override
    public Builder clearOneof(
        com.google.protobuf.Descriptors.OneofDescriptor oneof) {
      return super.clearOneof(oneof);
    }
    @java.lang.Override
    public Builder setRepeatedField(
        com.google.protobuf.Descriptors.FieldDescriptor field,
        int index, java.lang.Object value) {
      return super.setRepeatedField(field, index, value);
    }
    @java.lang.Override
    public Builder addRepeatedField(
        com.google.protobuf.Descriptors.FieldDescriptor field,
        java.lang.Object value) {
      return super.addRepeatedField(field, value);
    }
    @java.lang.Override
    public Builder mergeFrom(com.google.protobuf.Message other) {
      if (other instanceof com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy) {
        return mergeFrom((com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy)other);
      } else {
        super.mergeFrom(other);
        return this;
      }
    }

    public Builder mergeFrom(com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy other) {
      if (other == com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.getDefaultInstance()) return this;
      if (!other.getResourceName().isEmpty()) {
        resourceName_ = other.resourceName_;
        bitField0_ |= 0x00000001;
        onChanged();
      }
      if (other.getId() != 0L) {
        setId(other.getId());
      }
      if (!other.getName().isEmpty()) {
        name_ = other.name_;
        bitField0_ |= 0x00000004;
        onChanged();
      }
      if (other.type_ != 0) {
        setTypeValue(other.getTypeValue());
      }
      if (other.getOwnerCustomerId() != 0L) {
        setOwnerCustomerId(other.getOwnerCustomerId());
      }
      if (!other.getOwnerDescriptiveName().isEmpty()) {
        ownerDescriptiveName_ = other.ownerDescriptiveName_;
        bitField0_ |= 0x00000020;
        onChanged();
      }
      switch (other.getSchemeCase()) {
        case MAXIMIZE_CONVERSION_VALUE: {
          mergeMaximizeConversionValue(other.getMaximizeConversionValue());
          break;
        }
        case MAXIMIZE_CONVERSIONS: {
          mergeMaximizeConversions(other.getMaximizeConversions());
          break;
        }
        case TARGET_CPA: {
          mergeTargetCpa(other.getTargetCpa());
          break;
        }
        case TARGET_IMPRESSION_SHARE: {
          mergeTargetImpressionShare(other.getTargetImpressionShare());
          break;
        }
        case TARGET_ROAS: {
          mergeTargetRoas(other.getTargetRoas());
          break;
        }
        case TARGET_SPEND: {
          mergeTargetSpend(other.getTargetSpend());
          break;
        }
        case SCHEME_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: {
              resourceName_ = input.readStringRequireUtf8();
              bitField0_ |= 0x00000001;
              break;
            } // case 10
            case 16: {
              id_ = input.readInt64();
              bitField0_ |= 0x00000002;
              break;
            } // case 16
            case 26: {
              name_ = input.readStringRequireUtf8();
              bitField0_ |= 0x00000004;
              break;
            } // case 26
            case 32: {
              type_ = input.readEnum();
              bitField0_ |= 0x00000008;
              break;
            } // case 32
            case 40: {
              ownerCustomerId_ = input.readInt64();
              bitField0_ |= 0x00000010;
              break;
            } // case 40
            case 50: {
              ownerDescriptiveName_ = input.readStringRequireUtf8();
              bitField0_ |= 0x00000020;
              break;
            } // case 50
            case 58: {
              input.readMessage(
                  getMaximizeConversionValueFieldBuilder().getBuilder(),
                  extensionRegistry);
              schemeCase_ = 7;
              break;
            } // case 58
            case 66: {
              input.readMessage(
                  getMaximizeConversionsFieldBuilder().getBuilder(),
                  extensionRegistry);
              schemeCase_ = 8;
              break;
            } // case 66
            case 74: {
              input.readMessage(
                  getTargetCpaFieldBuilder().getBuilder(),
                  extensionRegistry);
              schemeCase_ = 9;
              break;
            } // case 74
            case 82: {
              input.readMessage(
                  getTargetImpressionShareFieldBuilder().getBuilder(),
                  extensionRegistry);
              schemeCase_ = 10;
              break;
            } // case 82
            case 90: {
              input.readMessage(
                  getTargetRoasFieldBuilder().getBuilder(),
                  extensionRegistry);
              schemeCase_ = 11;
              break;
            } // case 90
            case 98: {
              input.readMessage(
                  getTargetSpendFieldBuilder().getBuilder(),
                  extensionRegistry);
              schemeCase_ = 12;
              break;
            } // case 98
            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 schemeCase_ = 0;
    private java.lang.Object scheme_;
    public SchemeCase
        getSchemeCase() {
      return SchemeCase.forNumber(
          schemeCase_);
    }

    public Builder clearScheme() {
      schemeCase_ = 0;
      scheme_ = null;
      onChanged();
      return this;
    }

    private int bitField0_;

    private java.lang.Object resourceName_ = "";
    /**
     * <pre>
     * Output only. The resource name of the accessible bidding strategy.
     * AccessibleBiddingStrategy resource names have the form:
     *
     * `customers/{customer_id}/accessibleBiddingStrategies/{bidding_strategy_id}`
     * </pre>
     *
     * <code>string resource_name = 1 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.resource_reference) = { ... }</code>
     * @return The resourceName.
     */
    public java.lang.String getResourceName() {
      java.lang.Object ref = resourceName_;
      if (!(ref instanceof java.lang.String)) {
        com.google.protobuf.ByteString bs =
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        resourceName_ = s;
        return s;
      } else {
        return (java.lang.String) ref;
      }
    }
    /**
     * <pre>
     * Output only. The resource name of the accessible bidding strategy.
     * AccessibleBiddingStrategy resource names have the form:
     *
     * `customers/{customer_id}/accessibleBiddingStrategies/{bidding_strategy_id}`
     * </pre>
     *
     * <code>string resource_name = 1 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.resource_reference) = { ... }</code>
     * @return The bytes for resourceName.
     */
    public com.google.protobuf.ByteString
        getResourceNameBytes() {
      java.lang.Object ref = resourceName_;
      if (ref instanceof String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        resourceName_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    /**
     * <pre>
     * Output only. The resource name of the accessible bidding strategy.
     * AccessibleBiddingStrategy resource names have the form:
     *
     * `customers/{customer_id}/accessibleBiddingStrategies/{bidding_strategy_id}`
     * </pre>
     *
     * <code>string resource_name = 1 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.resource_reference) = { ... }</code>
     * @param value The resourceName to set.
     * @return This builder for chaining.
     */
    public Builder setResourceName(
        java.lang.String value) {
      if (value == null) { throw new NullPointerException(); }
      resourceName_ = value;
      bitField0_ |= 0x00000001;
      onChanged();
      return this;
    }
    /**
     * <pre>
     * Output only. The resource name of the accessible bidding strategy.
     * AccessibleBiddingStrategy resource names have the form:
     *
     * `customers/{customer_id}/accessibleBiddingStrategies/{bidding_strategy_id}`
     * </pre>
     *
     * <code>string resource_name = 1 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.resource_reference) = { ... }</code>
     * @return This builder for chaining.
     */
    public Builder clearResourceName() {
      resourceName_ = getDefaultInstance().getResourceName();
      bitField0_ = (bitField0_ & ~0x00000001);
      onChanged();
      return this;
    }
    /**
     * <pre>
     * Output only. The resource name of the accessible bidding strategy.
     * AccessibleBiddingStrategy resource names have the form:
     *
     * `customers/{customer_id}/accessibleBiddingStrategies/{bidding_strategy_id}`
     * </pre>
     *
     * <code>string resource_name = 1 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.resource_reference) = { ... }</code>
     * @param value The bytes for resourceName to set.
     * @return This builder for chaining.
     */
    public Builder setResourceNameBytes(
        com.google.protobuf.ByteString value) {
      if (value == null) { throw new NullPointerException(); }
      checkByteStringIsUtf8(value);
      resourceName_ = value;
      bitField0_ |= 0x00000001;
      onChanged();
      return this;
    }

    private long id_ ;
    /**
     * <pre>
     * Output only. The ID of the bidding strategy.
     * </pre>
     *
     * <code>int64 id = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @return The id.
     */
    @java.lang.Override
    public long getId() {
      return id_;
    }
    /**
     * <pre>
     * Output only. The ID of the bidding strategy.
     * </pre>
     *
     * <code>int64 id = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @param value The id to set.
     * @return This builder for chaining.
     */
    public Builder setId(long value) {

      id_ = value;
      bitField0_ |= 0x00000002;
      onChanged();
      return this;
    }
    /**
     * <pre>
     * Output only. The ID of the bidding strategy.
     * </pre>
     *
     * <code>int64 id = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @return This builder for chaining.
     */
    public Builder clearId() {
      bitField0_ = (bitField0_ & ~0x00000002);
      id_ = 0L;
      onChanged();
      return this;
    }

    private java.lang.Object name_ = "";
    /**
     * <pre>
     * Output only. The name of the bidding strategy.
     * </pre>
     *
     * <code>string name = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @return The name.
     */
    public java.lang.String getName() {
      java.lang.Object ref = name_;
      if (!(ref instanceof java.lang.String)) {
        com.google.protobuf.ByteString bs =
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        name_ = s;
        return s;
      } else {
        return (java.lang.String) ref;
      }
    }
    /**
     * <pre>
     * Output only. The name of the bidding strategy.
     * </pre>
     *
     * <code>string name = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @return The bytes for name.
     */
    public com.google.protobuf.ByteString
        getNameBytes() {
      java.lang.Object ref = name_;
      if (ref instanceof String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        name_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    /**
     * <pre>
     * Output only. The name of the bidding strategy.
     * </pre>
     *
     * <code>string name = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @param value The name to set.
     * @return This builder for chaining.
     */
    public Builder setName(
        java.lang.String value) {
      if (value == null) { throw new NullPointerException(); }
      name_ = value;
      bitField0_ |= 0x00000004;
      onChanged();
      return this;
    }
    /**
     * <pre>
     * Output only. The name of the bidding strategy.
     * </pre>
     *
     * <code>string name = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @return This builder for chaining.
     */
    public Builder clearName() {
      name_ = getDefaultInstance().getName();
      bitField0_ = (bitField0_ & ~0x00000004);
      onChanged();
      return this;
    }
    /**
     * <pre>
     * Output only. The name of the bidding strategy.
     * </pre>
     *
     * <code>string name = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @param value The bytes for name to set.
     * @return This builder for chaining.
     */
    public Builder setNameBytes(
        com.google.protobuf.ByteString value) {
      if (value == null) { throw new NullPointerException(); }
      checkByteStringIsUtf8(value);
      name_ = value;
      bitField0_ |= 0x00000004;
      onChanged();
      return this;
    }

    private int type_ = 0;
    /**
     * <pre>
     * Output only. The type of the bidding strategy.
     * </pre>
     *
     * <code>.google.ads.googleads.v13.enums.BiddingStrategyTypeEnum.BiddingStrategyType type = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @return The enum numeric value on the wire for type.
     */
    @java.lang.Override public int getTypeValue() {
      return type_;
    }
    /**
     * <pre>
     * Output only. The type of the bidding strategy.
     * </pre>
     *
     * <code>.google.ads.googleads.v13.enums.BiddingStrategyTypeEnum.BiddingStrategyType type = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @param value The enum numeric value on the wire for type to set.
     * @return This builder for chaining.
     */
    public Builder setTypeValue(int value) {
      type_ = value;
      bitField0_ |= 0x00000008;
      onChanged();
      return this;
    }
    /**
     * <pre>
     * Output only. The type of the bidding strategy.
     * </pre>
     *
     * <code>.google.ads.googleads.v13.enums.BiddingStrategyTypeEnum.BiddingStrategyType type = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @return The type.
     */
    @java.lang.Override
    public com.google.ads.googleads.v13.enums.BiddingStrategyTypeEnum.BiddingStrategyType getType() {
      com.google.ads.googleads.v13.enums.BiddingStrategyTypeEnum.BiddingStrategyType result = com.google.ads.googleads.v13.enums.BiddingStrategyTypeEnum.BiddingStrategyType.forNumber(type_);
      return result == null ? com.google.ads.googleads.v13.enums.BiddingStrategyTypeEnum.BiddingStrategyType.UNRECOGNIZED : result;
    }
    /**
     * <pre>
     * Output only. The type of the bidding strategy.
     * </pre>
     *
     * <code>.google.ads.googleads.v13.enums.BiddingStrategyTypeEnum.BiddingStrategyType type = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @param value The type to set.
     * @return This builder for chaining.
     */
    public Builder setType(com.google.ads.googleads.v13.enums.BiddingStrategyTypeEnum.BiddingStrategyType value) {
      if (value == null) {
        throw new NullPointerException();
      }
      bitField0_ |= 0x00000008;
      type_ = value.getNumber();
      onChanged();
      return this;
    }
    /**
     * <pre>
     * Output only. The type of the bidding strategy.
     * </pre>
     *
     * <code>.google.ads.googleads.v13.enums.BiddingStrategyTypeEnum.BiddingStrategyType type = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @return This builder for chaining.
     */
    public Builder clearType() {
      bitField0_ = (bitField0_ & ~0x00000008);
      type_ = 0;
      onChanged();
      return this;
    }

    private long ownerCustomerId_ ;
    /**
     * <pre>
     * Output only. The ID of the Customer which owns the bidding strategy.
     * </pre>
     *
     * <code>int64 owner_customer_id = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @return The ownerCustomerId.
     */
    @java.lang.Override
    public long getOwnerCustomerId() {
      return ownerCustomerId_;
    }
    /**
     * <pre>
     * Output only. The ID of the Customer which owns the bidding strategy.
     * </pre>
     *
     * <code>int64 owner_customer_id = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @param value The ownerCustomerId to set.
     * @return This builder for chaining.
     */
    public Builder setOwnerCustomerId(long value) {

      ownerCustomerId_ = value;
      bitField0_ |= 0x00000010;
      onChanged();
      return this;
    }
    /**
     * <pre>
     * Output only. The ID of the Customer which owns the bidding strategy.
     * </pre>
     *
     * <code>int64 owner_customer_id = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @return This builder for chaining.
     */
    public Builder clearOwnerCustomerId() {
      bitField0_ = (bitField0_ & ~0x00000010);
      ownerCustomerId_ = 0L;
      onChanged();
      return this;
    }

    private java.lang.Object ownerDescriptiveName_ = "";
    /**
     * <pre>
     * Output only. descriptive_name of the Customer which owns the bidding
     * strategy.
     * </pre>
     *
     * <code>string owner_descriptive_name = 6 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @return The ownerDescriptiveName.
     */
    public java.lang.String getOwnerDescriptiveName() {
      java.lang.Object ref = ownerDescriptiveName_;
      if (!(ref instanceof java.lang.String)) {
        com.google.protobuf.ByteString bs =
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        ownerDescriptiveName_ = s;
        return s;
      } else {
        return (java.lang.String) ref;
      }
    }
    /**
     * <pre>
     * Output only. descriptive_name of the Customer which owns the bidding
     * strategy.
     * </pre>
     *
     * <code>string owner_descriptive_name = 6 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @return The bytes for ownerDescriptiveName.
     */
    public com.google.protobuf.ByteString
        getOwnerDescriptiveNameBytes() {
      java.lang.Object ref = ownerDescriptiveName_;
      if (ref instanceof String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        ownerDescriptiveName_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    /**
     * <pre>
     * Output only. descriptive_name of the Customer which owns the bidding
     * strategy.
     * </pre>
     *
     * <code>string owner_descriptive_name = 6 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @param value The ownerDescriptiveName to set.
     * @return This builder for chaining.
     */
    public Builder setOwnerDescriptiveName(
        java.lang.String value) {
      if (value == null) { throw new NullPointerException(); }
      ownerDescriptiveName_ = value;
      bitField0_ |= 0x00000020;
      onChanged();
      return this;
    }
    /**
     * <pre>
     * Output only. descriptive_name of the Customer which owns the bidding
     * strategy.
     * </pre>
     *
     * <code>string owner_descriptive_name = 6 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @return This builder for chaining.
     */
    public Builder clearOwnerDescriptiveName() {
      ownerDescriptiveName_ = getDefaultInstance().getOwnerDescriptiveName();
      bitField0_ = (bitField0_ & ~0x00000020);
      onChanged();
      return this;
    }
    /**
     * <pre>
     * Output only. descriptive_name of the Customer which owns the bidding
     * strategy.
     * </pre>
     *
     * <code>string owner_descriptive_name = 6 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @param value The bytes for ownerDescriptiveName to set.
     * @return This builder for chaining.
     */
    public Builder setOwnerDescriptiveNameBytes(
        com.google.protobuf.ByteString value) {
      if (value == null) { throw new NullPointerException(); }
      checkByteStringIsUtf8(value);
      ownerDescriptiveName_ = value;
      bitField0_ |= 0x00000020;
      onChanged();
      return this;
    }

    private com.google.protobuf.SingleFieldBuilderV3<
        com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.MaximizeConversionValue, com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.MaximizeConversionValue.Builder, com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.MaximizeConversionValueOrBuilder> maximizeConversionValueBuilder_;
    /**
     * <pre>
     * Output only. An automated bidding strategy to help get the most
     * conversion value for your campaigns while spending your budget.
     * </pre>
     *
     * <code>.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.MaximizeConversionValue maximize_conversion_value = 7 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @return Whether the maximizeConversionValue field is set.
     */
    @java.lang.Override
    public boolean hasMaximizeConversionValue() {
      return schemeCase_ == 7;
    }
    /**
     * <pre>
     * Output only. An automated bidding strategy to help get the most
     * conversion value for your campaigns while spending your budget.
     * </pre>
     *
     * <code>.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.MaximizeConversionValue maximize_conversion_value = 7 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @return The maximizeConversionValue.
     */
    @java.lang.Override
    public com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.MaximizeConversionValue getMaximizeConversionValue() {
      if (maximizeConversionValueBuilder_ == null) {
        if (schemeCase_ == 7) {
          return (com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.MaximizeConversionValue) scheme_;
        }
        return com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.MaximizeConversionValue.getDefaultInstance();
      } else {
        if (schemeCase_ == 7) {
          return maximizeConversionValueBuilder_.getMessage();
        }
        return com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.MaximizeConversionValue.getDefaultInstance();
      }
    }
    /**
     * <pre>
     * Output only. An automated bidding strategy to help get the most
     * conversion value for your campaigns while spending your budget.
     * </pre>
     *
     * <code>.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.MaximizeConversionValue maximize_conversion_value = 7 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     */
    public Builder setMaximizeConversionValue(com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.MaximizeConversionValue value) {
      if (maximizeConversionValueBuilder_ == null) {
        if (value == null) {
          throw new NullPointerException();
        }
        scheme_ = value;
        onChanged();
      } else {
        maximizeConversionValueBuilder_.setMessage(value);
      }
      schemeCase_ = 7;
      return this;
    }
    /**
     * <pre>
     * Output only. An automated bidding strategy to help get the most
     * conversion value for your campaigns while spending your budget.
     * </pre>
     *
     * <code>.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.MaximizeConversionValue maximize_conversion_value = 7 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     */
    public Builder setMaximizeConversionValue(
        com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.MaximizeConversionValue.Builder builderForValue) {
      if (maximizeConversionValueBuilder_ == null) {
        scheme_ = builderForValue.build();
        onChanged();
      } else {
        maximizeConversionValueBuilder_.setMessage(builderForValue.build());
      }
      schemeCase_ = 7;
      return this;
    }
    /**
     * <pre>
     * Output only. An automated bidding strategy to help get the most
     * conversion value for your campaigns while spending your budget.
     * </pre>
     *
     * <code>.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.MaximizeConversionValue maximize_conversion_value = 7 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     */
    public Builder mergeMaximizeConversionValue(com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.MaximizeConversionValue value) {
      if (maximizeConversionValueBuilder_ == null) {
        if (schemeCase_ == 7 &&
            scheme_ != com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.MaximizeConversionValue.getDefaultInstance()) {
          scheme_ = com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.MaximizeConversionValue.newBuilder((com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.MaximizeConversionValue) scheme_)
              .mergeFrom(value).buildPartial();
        } else {
          scheme_ = value;
        }
        onChanged();
      } else {
        if (schemeCase_ == 7) {
          maximizeConversionValueBuilder_.mergeFrom(value);
        } else {
          maximizeConversionValueBuilder_.setMessage(value);
        }
      }
      schemeCase_ = 7;
      return this;
    }
    /**
     * <pre>
     * Output only. An automated bidding strategy to help get the most
     * conversion value for your campaigns while spending your budget.
     * </pre>
     *
     * <code>.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.MaximizeConversionValue maximize_conversion_value = 7 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     */
    public Builder clearMaximizeConversionValue() {
      if (maximizeConversionValueBuilder_ == null) {
        if (schemeCase_ == 7) {
          schemeCase_ = 0;
          scheme_ = null;
          onChanged();
        }
      } else {
        if (schemeCase_ == 7) {
          schemeCase_ = 0;
          scheme_ = null;
        }
        maximizeConversionValueBuilder_.clear();
      }
      return this;
    }
    /**
     * <pre>
     * Output only. An automated bidding strategy to help get the most
     * conversion value for your campaigns while spending your budget.
     * </pre>
     *
     * <code>.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.MaximizeConversionValue maximize_conversion_value = 7 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     */
    public com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.MaximizeConversionValue.Builder getMaximizeConversionValueBuilder() {
      return getMaximizeConversionValueFieldBuilder().getBuilder();
    }
    /**
     * <pre>
     * Output only. An automated bidding strategy to help get the most
     * conversion value for your campaigns while spending your budget.
     * </pre>
     *
     * <code>.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.MaximizeConversionValue maximize_conversion_value = 7 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     */
    @java.lang.Override
    public com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.MaximizeConversionValueOrBuilder getMaximizeConversionValueOrBuilder() {
      if ((schemeCase_ == 7) && (maximizeConversionValueBuilder_ != null)) {
        return maximizeConversionValueBuilder_.getMessageOrBuilder();
      } else {
        if (schemeCase_ == 7) {
          return (com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.MaximizeConversionValue) scheme_;
        }
        return com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.MaximizeConversionValue.getDefaultInstance();
      }
    }
    /**
     * <pre>
     * Output only. An automated bidding strategy to help get the most
     * conversion value for your campaigns while spending your budget.
     * </pre>
     *
     * <code>.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.MaximizeConversionValue maximize_conversion_value = 7 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     */
    private com.google.protobuf.SingleFieldBuilderV3<
        com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.MaximizeConversionValue, com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.MaximizeConversionValue.Builder, com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.MaximizeConversionValueOrBuilder> 
        getMaximizeConversionValueFieldBuilder() {
      if (maximizeConversionValueBuilder_ == null) {
        if (!(schemeCase_ == 7)) {
          scheme_ = com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.MaximizeConversionValue.getDefaultInstance();
        }
        maximizeConversionValueBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
            com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.MaximizeConversionValue, com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.MaximizeConversionValue.Builder, com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.MaximizeConversionValueOrBuilder>(
                (com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.MaximizeConversionValue) scheme_,
                getParentForChildren(),
                isClean());
        scheme_ = null;
      }
      schemeCase_ = 7;
      onChanged();
      return maximizeConversionValueBuilder_;
    }

    private com.google.protobuf.SingleFieldBuilderV3<
        com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.MaximizeConversions, com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.MaximizeConversions.Builder, com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.MaximizeConversionsOrBuilder> maximizeConversionsBuilder_;
    /**
     * <pre>
     * Output only. An automated bidding strategy to help get the most
     * conversions for your campaigns while spending your budget.
     * </pre>
     *
     * <code>.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.MaximizeConversions maximize_conversions = 8 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @return Whether the maximizeConversions field is set.
     */
    @java.lang.Override
    public boolean hasMaximizeConversions() {
      return schemeCase_ == 8;
    }
    /**
     * <pre>
     * Output only. An automated bidding strategy to help get the most
     * conversions for your campaigns while spending your budget.
     * </pre>
     *
     * <code>.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.MaximizeConversions maximize_conversions = 8 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @return The maximizeConversions.
     */
    @java.lang.Override
    public com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.MaximizeConversions getMaximizeConversions() {
      if (maximizeConversionsBuilder_ == null) {
        if (schemeCase_ == 8) {
          return (com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.MaximizeConversions) scheme_;
        }
        return com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.MaximizeConversions.getDefaultInstance();
      } else {
        if (schemeCase_ == 8) {
          return maximizeConversionsBuilder_.getMessage();
        }
        return com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.MaximizeConversions.getDefaultInstance();
      }
    }
    /**
     * <pre>
     * Output only. An automated bidding strategy to help get the most
     * conversions for your campaigns while spending your budget.
     * </pre>
     *
     * <code>.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.MaximizeConversions maximize_conversions = 8 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     */
    public Builder setMaximizeConversions(com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.MaximizeConversions value) {
      if (maximizeConversionsBuilder_ == null) {
        if (value == null) {
          throw new NullPointerException();
        }
        scheme_ = value;
        onChanged();
      } else {
        maximizeConversionsBuilder_.setMessage(value);
      }
      schemeCase_ = 8;
      return this;
    }
    /**
     * <pre>
     * Output only. An automated bidding strategy to help get the most
     * conversions for your campaigns while spending your budget.
     * </pre>
     *
     * <code>.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.MaximizeConversions maximize_conversions = 8 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     */
    public Builder setMaximizeConversions(
        com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.MaximizeConversions.Builder builderForValue) {
      if (maximizeConversionsBuilder_ == null) {
        scheme_ = builderForValue.build();
        onChanged();
      } else {
        maximizeConversionsBuilder_.setMessage(builderForValue.build());
      }
      schemeCase_ = 8;
      return this;
    }
    /**
     * <pre>
     * Output only. An automated bidding strategy to help get the most
     * conversions for your campaigns while spending your budget.
     * </pre>
     *
     * <code>.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.MaximizeConversions maximize_conversions = 8 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     */
    public Builder mergeMaximizeConversions(com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.MaximizeConversions value) {
      if (maximizeConversionsBuilder_ == null) {
        if (schemeCase_ == 8 &&
            scheme_ != com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.MaximizeConversions.getDefaultInstance()) {
          scheme_ = com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.MaximizeConversions.newBuilder((com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.MaximizeConversions) scheme_)
              .mergeFrom(value).buildPartial();
        } else {
          scheme_ = value;
        }
        onChanged();
      } else {
        if (schemeCase_ == 8) {
          maximizeConversionsBuilder_.mergeFrom(value);
        } else {
          maximizeConversionsBuilder_.setMessage(value);
        }
      }
      schemeCase_ = 8;
      return this;
    }
    /**
     * <pre>
     * Output only. An automated bidding strategy to help get the most
     * conversions for your campaigns while spending your budget.
     * </pre>
     *
     * <code>.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.MaximizeConversions maximize_conversions = 8 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     */
    public Builder clearMaximizeConversions() {
      if (maximizeConversionsBuilder_ == null) {
        if (schemeCase_ == 8) {
          schemeCase_ = 0;
          scheme_ = null;
          onChanged();
        }
      } else {
        if (schemeCase_ == 8) {
          schemeCase_ = 0;
          scheme_ = null;
        }
        maximizeConversionsBuilder_.clear();
      }
      return this;
    }
    /**
     * <pre>
     * Output only. An automated bidding strategy to help get the most
     * conversions for your campaigns while spending your budget.
     * </pre>
     *
     * <code>.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.MaximizeConversions maximize_conversions = 8 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     */
    public com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.MaximizeConversions.Builder getMaximizeConversionsBuilder() {
      return getMaximizeConversionsFieldBuilder().getBuilder();
    }
    /**
     * <pre>
     * Output only. An automated bidding strategy to help get the most
     * conversions for your campaigns while spending your budget.
     * </pre>
     *
     * <code>.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.MaximizeConversions maximize_conversions = 8 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     */
    @java.lang.Override
    public com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.MaximizeConversionsOrBuilder getMaximizeConversionsOrBuilder() {
      if ((schemeCase_ == 8) && (maximizeConversionsBuilder_ != null)) {
        return maximizeConversionsBuilder_.getMessageOrBuilder();
      } else {
        if (schemeCase_ == 8) {
          return (com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.MaximizeConversions) scheme_;
        }
        return com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.MaximizeConversions.getDefaultInstance();
      }
    }
    /**
     * <pre>
     * Output only. An automated bidding strategy to help get the most
     * conversions for your campaigns while spending your budget.
     * </pre>
     *
     * <code>.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.MaximizeConversions maximize_conversions = 8 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     */
    private com.google.protobuf.SingleFieldBuilderV3<
        com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.MaximizeConversions, com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.MaximizeConversions.Builder, com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.MaximizeConversionsOrBuilder> 
        getMaximizeConversionsFieldBuilder() {
      if (maximizeConversionsBuilder_ == null) {
        if (!(schemeCase_ == 8)) {
          scheme_ = com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.MaximizeConversions.getDefaultInstance();
        }
        maximizeConversionsBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
            com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.MaximizeConversions, com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.MaximizeConversions.Builder, com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.MaximizeConversionsOrBuilder>(
                (com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.MaximizeConversions) scheme_,
                getParentForChildren(),
                isClean());
        scheme_ = null;
      }
      schemeCase_ = 8;
      onChanged();
      return maximizeConversionsBuilder_;
    }

    private com.google.protobuf.SingleFieldBuilderV3<
        com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetCpa, com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetCpa.Builder, com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetCpaOrBuilder> targetCpaBuilder_;
    /**
     * <pre>
     * Output only. A bidding strategy that sets bids to help get as many
     * conversions as possible at the target cost-per-acquisition (CPA) you set.
     * </pre>
     *
     * <code>.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetCpa target_cpa = 9 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @return Whether the targetCpa field is set.
     */
    @java.lang.Override
    public boolean hasTargetCpa() {
      return schemeCase_ == 9;
    }
    /**
     * <pre>
     * Output only. A bidding strategy that sets bids to help get as many
     * conversions as possible at the target cost-per-acquisition (CPA) you set.
     * </pre>
     *
     * <code>.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetCpa target_cpa = 9 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @return The targetCpa.
     */
    @java.lang.Override
    public com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetCpa getTargetCpa() {
      if (targetCpaBuilder_ == null) {
        if (schemeCase_ == 9) {
          return (com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetCpa) scheme_;
        }
        return com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetCpa.getDefaultInstance();
      } else {
        if (schemeCase_ == 9) {
          return targetCpaBuilder_.getMessage();
        }
        return com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetCpa.getDefaultInstance();
      }
    }
    /**
     * <pre>
     * Output only. A bidding strategy that sets bids to help get as many
     * conversions as possible at the target cost-per-acquisition (CPA) you set.
     * </pre>
     *
     * <code>.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetCpa target_cpa = 9 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     */
    public Builder setTargetCpa(com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetCpa value) {
      if (targetCpaBuilder_ == null) {
        if (value == null) {
          throw new NullPointerException();
        }
        scheme_ = value;
        onChanged();
      } else {
        targetCpaBuilder_.setMessage(value);
      }
      schemeCase_ = 9;
      return this;
    }
    /**
     * <pre>
     * Output only. A bidding strategy that sets bids to help get as many
     * conversions as possible at the target cost-per-acquisition (CPA) you set.
     * </pre>
     *
     * <code>.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetCpa target_cpa = 9 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     */
    public Builder setTargetCpa(
        com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetCpa.Builder builderForValue) {
      if (targetCpaBuilder_ == null) {
        scheme_ = builderForValue.build();
        onChanged();
      } else {
        targetCpaBuilder_.setMessage(builderForValue.build());
      }
      schemeCase_ = 9;
      return this;
    }
    /**
     * <pre>
     * Output only. A bidding strategy that sets bids to help get as many
     * conversions as possible at the target cost-per-acquisition (CPA) you set.
     * </pre>
     *
     * <code>.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetCpa target_cpa = 9 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     */
    public Builder mergeTargetCpa(com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetCpa value) {
      if (targetCpaBuilder_ == null) {
        if (schemeCase_ == 9 &&
            scheme_ != com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetCpa.getDefaultInstance()) {
          scheme_ = com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetCpa.newBuilder((com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetCpa) scheme_)
              .mergeFrom(value).buildPartial();
        } else {
          scheme_ = value;
        }
        onChanged();
      } else {
        if (schemeCase_ == 9) {
          targetCpaBuilder_.mergeFrom(value);
        } else {
          targetCpaBuilder_.setMessage(value);
        }
      }
      schemeCase_ = 9;
      return this;
    }
    /**
     * <pre>
     * Output only. A bidding strategy that sets bids to help get as many
     * conversions as possible at the target cost-per-acquisition (CPA) you set.
     * </pre>
     *
     * <code>.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetCpa target_cpa = 9 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     */
    public Builder clearTargetCpa() {
      if (targetCpaBuilder_ == null) {
        if (schemeCase_ == 9) {
          schemeCase_ = 0;
          scheme_ = null;
          onChanged();
        }
      } else {
        if (schemeCase_ == 9) {
          schemeCase_ = 0;
          scheme_ = null;
        }
        targetCpaBuilder_.clear();
      }
      return this;
    }
    /**
     * <pre>
     * Output only. A bidding strategy that sets bids to help get as many
     * conversions as possible at the target cost-per-acquisition (CPA) you set.
     * </pre>
     *
     * <code>.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetCpa target_cpa = 9 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     */
    public com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetCpa.Builder getTargetCpaBuilder() {
      return getTargetCpaFieldBuilder().getBuilder();
    }
    /**
     * <pre>
     * Output only. A bidding strategy that sets bids to help get as many
     * conversions as possible at the target cost-per-acquisition (CPA) you set.
     * </pre>
     *
     * <code>.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetCpa target_cpa = 9 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     */
    @java.lang.Override
    public com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetCpaOrBuilder getTargetCpaOrBuilder() {
      if ((schemeCase_ == 9) && (targetCpaBuilder_ != null)) {
        return targetCpaBuilder_.getMessageOrBuilder();
      } else {
        if (schemeCase_ == 9) {
          return (com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetCpa) scheme_;
        }
        return com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetCpa.getDefaultInstance();
      }
    }
    /**
     * <pre>
     * Output only. A bidding strategy that sets bids to help get as many
     * conversions as possible at the target cost-per-acquisition (CPA) you set.
     * </pre>
     *
     * <code>.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetCpa target_cpa = 9 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     */
    private com.google.protobuf.SingleFieldBuilderV3<
        com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetCpa, com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetCpa.Builder, com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetCpaOrBuilder> 
        getTargetCpaFieldBuilder() {
      if (targetCpaBuilder_ == null) {
        if (!(schemeCase_ == 9)) {
          scheme_ = com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetCpa.getDefaultInstance();
        }
        targetCpaBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
            com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetCpa, com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetCpa.Builder, com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetCpaOrBuilder>(
                (com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetCpa) scheme_,
                getParentForChildren(),
                isClean());
        scheme_ = null;
      }
      schemeCase_ = 9;
      onChanged();
      return targetCpaBuilder_;
    }

    private com.google.protobuf.SingleFieldBuilderV3<
        com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetImpressionShare, com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetImpressionShare.Builder, com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetImpressionShareOrBuilder> targetImpressionShareBuilder_;
    /**
     * <pre>
     * Output only. A bidding strategy that automatically optimizes towards a
     * chosen percentage of impressions.
     * </pre>
     *
     * <code>.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetImpressionShare target_impression_share = 10 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @return Whether the targetImpressionShare field is set.
     */
    @java.lang.Override
    public boolean hasTargetImpressionShare() {
      return schemeCase_ == 10;
    }
    /**
     * <pre>
     * Output only. A bidding strategy that automatically optimizes towards a
     * chosen percentage of impressions.
     * </pre>
     *
     * <code>.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetImpressionShare target_impression_share = 10 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @return The targetImpressionShare.
     */
    @java.lang.Override
    public com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetImpressionShare getTargetImpressionShare() {
      if (targetImpressionShareBuilder_ == null) {
        if (schemeCase_ == 10) {
          return (com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetImpressionShare) scheme_;
        }
        return com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetImpressionShare.getDefaultInstance();
      } else {
        if (schemeCase_ == 10) {
          return targetImpressionShareBuilder_.getMessage();
        }
        return com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetImpressionShare.getDefaultInstance();
      }
    }
    /**
     * <pre>
     * Output only. A bidding strategy that automatically optimizes towards a
     * chosen percentage of impressions.
     * </pre>
     *
     * <code>.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetImpressionShare target_impression_share = 10 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     */
    public Builder setTargetImpressionShare(com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetImpressionShare value) {
      if (targetImpressionShareBuilder_ == null) {
        if (value == null) {
          throw new NullPointerException();
        }
        scheme_ = value;
        onChanged();
      } else {
        targetImpressionShareBuilder_.setMessage(value);
      }
      schemeCase_ = 10;
      return this;
    }
    /**
     * <pre>
     * Output only. A bidding strategy that automatically optimizes towards a
     * chosen percentage of impressions.
     * </pre>
     *
     * <code>.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetImpressionShare target_impression_share = 10 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     */
    public Builder setTargetImpressionShare(
        com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetImpressionShare.Builder builderForValue) {
      if (targetImpressionShareBuilder_ == null) {
        scheme_ = builderForValue.build();
        onChanged();
      } else {
        targetImpressionShareBuilder_.setMessage(builderForValue.build());
      }
      schemeCase_ = 10;
      return this;
    }
    /**
     * <pre>
     * Output only. A bidding strategy that automatically optimizes towards a
     * chosen percentage of impressions.
     * </pre>
     *
     * <code>.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetImpressionShare target_impression_share = 10 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     */
    public Builder mergeTargetImpressionShare(com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetImpressionShare value) {
      if (targetImpressionShareBuilder_ == null) {
        if (schemeCase_ == 10 &&
            scheme_ != com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetImpressionShare.getDefaultInstance()) {
          scheme_ = com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetImpressionShare.newBuilder((com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetImpressionShare) scheme_)
              .mergeFrom(value).buildPartial();
        } else {
          scheme_ = value;
        }
        onChanged();
      } else {
        if (schemeCase_ == 10) {
          targetImpressionShareBuilder_.mergeFrom(value);
        } else {
          targetImpressionShareBuilder_.setMessage(value);
        }
      }
      schemeCase_ = 10;
      return this;
    }
    /**
     * <pre>
     * Output only. A bidding strategy that automatically optimizes towards a
     * chosen percentage of impressions.
     * </pre>
     *
     * <code>.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetImpressionShare target_impression_share = 10 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     */
    public Builder clearTargetImpressionShare() {
      if (targetImpressionShareBuilder_ == null) {
        if (schemeCase_ == 10) {
          schemeCase_ = 0;
          scheme_ = null;
          onChanged();
        }
      } else {
        if (schemeCase_ == 10) {
          schemeCase_ = 0;
          scheme_ = null;
        }
        targetImpressionShareBuilder_.clear();
      }
      return this;
    }
    /**
     * <pre>
     * Output only. A bidding strategy that automatically optimizes towards a
     * chosen percentage of impressions.
     * </pre>
     *
     * <code>.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetImpressionShare target_impression_share = 10 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     */
    public com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetImpressionShare.Builder getTargetImpressionShareBuilder() {
      return getTargetImpressionShareFieldBuilder().getBuilder();
    }
    /**
     * <pre>
     * Output only. A bidding strategy that automatically optimizes towards a
     * chosen percentage of impressions.
     * </pre>
     *
     * <code>.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetImpressionShare target_impression_share = 10 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     */
    @java.lang.Override
    public com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetImpressionShareOrBuilder getTargetImpressionShareOrBuilder() {
      if ((schemeCase_ == 10) && (targetImpressionShareBuilder_ != null)) {
        return targetImpressionShareBuilder_.getMessageOrBuilder();
      } else {
        if (schemeCase_ == 10) {
          return (com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetImpressionShare) scheme_;
        }
        return com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetImpressionShare.getDefaultInstance();
      }
    }
    /**
     * <pre>
     * Output only. A bidding strategy that automatically optimizes towards a
     * chosen percentage of impressions.
     * </pre>
     *
     * <code>.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetImpressionShare target_impression_share = 10 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     */
    private com.google.protobuf.SingleFieldBuilderV3<
        com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetImpressionShare, com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetImpressionShare.Builder, com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetImpressionShareOrBuilder> 
        getTargetImpressionShareFieldBuilder() {
      if (targetImpressionShareBuilder_ == null) {
        if (!(schemeCase_ == 10)) {
          scheme_ = com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetImpressionShare.getDefaultInstance();
        }
        targetImpressionShareBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
            com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetImpressionShare, com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetImpressionShare.Builder, com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetImpressionShareOrBuilder>(
                (com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetImpressionShare) scheme_,
                getParentForChildren(),
                isClean());
        scheme_ = null;
      }
      schemeCase_ = 10;
      onChanged();
      return targetImpressionShareBuilder_;
    }

    private com.google.protobuf.SingleFieldBuilderV3<
        com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetRoas, com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetRoas.Builder, com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetRoasOrBuilder> targetRoasBuilder_;
    /**
     * <pre>
     * Output only. A bidding strategy that helps you maximize revenue while
     * averaging a specific target Return On Ad Spend (ROAS).
     * </pre>
     *
     * <code>.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetRoas target_roas = 11 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @return Whether the targetRoas field is set.
     */
    @java.lang.Override
    public boolean hasTargetRoas() {
      return schemeCase_ == 11;
    }
    /**
     * <pre>
     * Output only. A bidding strategy that helps you maximize revenue while
     * averaging a specific target Return On Ad Spend (ROAS).
     * </pre>
     *
     * <code>.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetRoas target_roas = 11 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @return The targetRoas.
     */
    @java.lang.Override
    public com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetRoas getTargetRoas() {
      if (targetRoasBuilder_ == null) {
        if (schemeCase_ == 11) {
          return (com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetRoas) scheme_;
        }
        return com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetRoas.getDefaultInstance();
      } else {
        if (schemeCase_ == 11) {
          return targetRoasBuilder_.getMessage();
        }
        return com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetRoas.getDefaultInstance();
      }
    }
    /**
     * <pre>
     * Output only. A bidding strategy that helps you maximize revenue while
     * averaging a specific target Return On Ad Spend (ROAS).
     * </pre>
     *
     * <code>.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetRoas target_roas = 11 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     */
    public Builder setTargetRoas(com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetRoas value) {
      if (targetRoasBuilder_ == null) {
        if (value == null) {
          throw new NullPointerException();
        }
        scheme_ = value;
        onChanged();
      } else {
        targetRoasBuilder_.setMessage(value);
      }
      schemeCase_ = 11;
      return this;
    }
    /**
     * <pre>
     * Output only. A bidding strategy that helps you maximize revenue while
     * averaging a specific target Return On Ad Spend (ROAS).
     * </pre>
     *
     * <code>.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetRoas target_roas = 11 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     */
    public Builder setTargetRoas(
        com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetRoas.Builder builderForValue) {
      if (targetRoasBuilder_ == null) {
        scheme_ = builderForValue.build();
        onChanged();
      } else {
        targetRoasBuilder_.setMessage(builderForValue.build());
      }
      schemeCase_ = 11;
      return this;
    }
    /**
     * <pre>
     * Output only. A bidding strategy that helps you maximize revenue while
     * averaging a specific target Return On Ad Spend (ROAS).
     * </pre>
     *
     * <code>.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetRoas target_roas = 11 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     */
    public Builder mergeTargetRoas(com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetRoas value) {
      if (targetRoasBuilder_ == null) {
        if (schemeCase_ == 11 &&
            scheme_ != com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetRoas.getDefaultInstance()) {
          scheme_ = com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetRoas.newBuilder((com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetRoas) scheme_)
              .mergeFrom(value).buildPartial();
        } else {
          scheme_ = value;
        }
        onChanged();
      } else {
        if (schemeCase_ == 11) {
          targetRoasBuilder_.mergeFrom(value);
        } else {
          targetRoasBuilder_.setMessage(value);
        }
      }
      schemeCase_ = 11;
      return this;
    }
    /**
     * <pre>
     * Output only. A bidding strategy that helps you maximize revenue while
     * averaging a specific target Return On Ad Spend (ROAS).
     * </pre>
     *
     * <code>.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetRoas target_roas = 11 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     */
    public Builder clearTargetRoas() {
      if (targetRoasBuilder_ == null) {
        if (schemeCase_ == 11) {
          schemeCase_ = 0;
          scheme_ = null;
          onChanged();
        }
      } else {
        if (schemeCase_ == 11) {
          schemeCase_ = 0;
          scheme_ = null;
        }
        targetRoasBuilder_.clear();
      }
      return this;
    }
    /**
     * <pre>
     * Output only. A bidding strategy that helps you maximize revenue while
     * averaging a specific target Return On Ad Spend (ROAS).
     * </pre>
     *
     * <code>.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetRoas target_roas = 11 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     */
    public com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetRoas.Builder getTargetRoasBuilder() {
      return getTargetRoasFieldBuilder().getBuilder();
    }
    /**
     * <pre>
     * Output only. A bidding strategy that helps you maximize revenue while
     * averaging a specific target Return On Ad Spend (ROAS).
     * </pre>
     *
     * <code>.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetRoas target_roas = 11 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     */
    @java.lang.Override
    public com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetRoasOrBuilder getTargetRoasOrBuilder() {
      if ((schemeCase_ == 11) && (targetRoasBuilder_ != null)) {
        return targetRoasBuilder_.getMessageOrBuilder();
      } else {
        if (schemeCase_ == 11) {
          return (com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetRoas) scheme_;
        }
        return com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetRoas.getDefaultInstance();
      }
    }
    /**
     * <pre>
     * Output only. A bidding strategy that helps you maximize revenue while
     * averaging a specific target Return On Ad Spend (ROAS).
     * </pre>
     *
     * <code>.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetRoas target_roas = 11 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     */
    private com.google.protobuf.SingleFieldBuilderV3<
        com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetRoas, com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetRoas.Builder, com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetRoasOrBuilder> 
        getTargetRoasFieldBuilder() {
      if (targetRoasBuilder_ == null) {
        if (!(schemeCase_ == 11)) {
          scheme_ = com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetRoas.getDefaultInstance();
        }
        targetRoasBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
            com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetRoas, com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetRoas.Builder, com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetRoasOrBuilder>(
                (com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetRoas) scheme_,
                getParentForChildren(),
                isClean());
        scheme_ = null;
      }
      schemeCase_ = 11;
      onChanged();
      return targetRoasBuilder_;
    }

    private com.google.protobuf.SingleFieldBuilderV3<
        com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetSpend, com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetSpend.Builder, com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetSpendOrBuilder> targetSpendBuilder_;
    /**
     * <pre>
     * Output only. A bid strategy that sets your bids to help get as many
     * clicks as possible within your budget.
     * </pre>
     *
     * <code>.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetSpend target_spend = 12 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @return Whether the targetSpend field is set.
     */
    @java.lang.Override
    public boolean hasTargetSpend() {
      return schemeCase_ == 12;
    }
    /**
     * <pre>
     * Output only. A bid strategy that sets your bids to help get as many
     * clicks as possible within your budget.
     * </pre>
     *
     * <code>.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetSpend target_spend = 12 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @return The targetSpend.
     */
    @java.lang.Override
    public com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetSpend getTargetSpend() {
      if (targetSpendBuilder_ == null) {
        if (schemeCase_ == 12) {
          return (com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetSpend) scheme_;
        }
        return com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetSpend.getDefaultInstance();
      } else {
        if (schemeCase_ == 12) {
          return targetSpendBuilder_.getMessage();
        }
        return com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetSpend.getDefaultInstance();
      }
    }
    /**
     * <pre>
     * Output only. A bid strategy that sets your bids to help get as many
     * clicks as possible within your budget.
     * </pre>
     *
     * <code>.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetSpend target_spend = 12 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     */
    public Builder setTargetSpend(com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetSpend value) {
      if (targetSpendBuilder_ == null) {
        if (value == null) {
          throw new NullPointerException();
        }
        scheme_ = value;
        onChanged();
      } else {
        targetSpendBuilder_.setMessage(value);
      }
      schemeCase_ = 12;
      return this;
    }
    /**
     * <pre>
     * Output only. A bid strategy that sets your bids to help get as many
     * clicks as possible within your budget.
     * </pre>
     *
     * <code>.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetSpend target_spend = 12 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     */
    public Builder setTargetSpend(
        com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetSpend.Builder builderForValue) {
      if (targetSpendBuilder_ == null) {
        scheme_ = builderForValue.build();
        onChanged();
      } else {
        targetSpendBuilder_.setMessage(builderForValue.build());
      }
      schemeCase_ = 12;
      return this;
    }
    /**
     * <pre>
     * Output only. A bid strategy that sets your bids to help get as many
     * clicks as possible within your budget.
     * </pre>
     *
     * <code>.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetSpend target_spend = 12 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     */
    public Builder mergeTargetSpend(com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetSpend value) {
      if (targetSpendBuilder_ == null) {
        if (schemeCase_ == 12 &&
            scheme_ != com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetSpend.getDefaultInstance()) {
          scheme_ = com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetSpend.newBuilder((com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetSpend) scheme_)
              .mergeFrom(value).buildPartial();
        } else {
          scheme_ = value;
        }
        onChanged();
      } else {
        if (schemeCase_ == 12) {
          targetSpendBuilder_.mergeFrom(value);
        } else {
          targetSpendBuilder_.setMessage(value);
        }
      }
      schemeCase_ = 12;
      return this;
    }
    /**
     * <pre>
     * Output only. A bid strategy that sets your bids to help get as many
     * clicks as possible within your budget.
     * </pre>
     *
     * <code>.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetSpend target_spend = 12 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     */
    public Builder clearTargetSpend() {
      if (targetSpendBuilder_ == null) {
        if (schemeCase_ == 12) {
          schemeCase_ = 0;
          scheme_ = null;
          onChanged();
        }
      } else {
        if (schemeCase_ == 12) {
          schemeCase_ = 0;
          scheme_ = null;
        }
        targetSpendBuilder_.clear();
      }
      return this;
    }
    /**
     * <pre>
     * Output only. A bid strategy that sets your bids to help get as many
     * clicks as possible within your budget.
     * </pre>
     *
     * <code>.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetSpend target_spend = 12 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     */
    public com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetSpend.Builder getTargetSpendBuilder() {
      return getTargetSpendFieldBuilder().getBuilder();
    }
    /**
     * <pre>
     * Output only. A bid strategy that sets your bids to help get as many
     * clicks as possible within your budget.
     * </pre>
     *
     * <code>.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetSpend target_spend = 12 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     */
    @java.lang.Override
    public com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetSpendOrBuilder getTargetSpendOrBuilder() {
      if ((schemeCase_ == 12) && (targetSpendBuilder_ != null)) {
        return targetSpendBuilder_.getMessageOrBuilder();
      } else {
        if (schemeCase_ == 12) {
          return (com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetSpend) scheme_;
        }
        return com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetSpend.getDefaultInstance();
      }
    }
    /**
     * <pre>
     * Output only. A bid strategy that sets your bids to help get as many
     * clicks as possible within your budget.
     * </pre>
     *
     * <code>.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetSpend target_spend = 12 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     */
    private com.google.protobuf.SingleFieldBuilderV3<
        com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetSpend, com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetSpend.Builder, com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetSpendOrBuilder> 
        getTargetSpendFieldBuilder() {
      if (targetSpendBuilder_ == null) {
        if (!(schemeCase_ == 12)) {
          scheme_ = com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetSpend.getDefaultInstance();
        }
        targetSpendBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
            com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetSpend, com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetSpend.Builder, com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetSpendOrBuilder>(
                (com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy.TargetSpend) scheme_,
                getParentForChildren(),
                isClean());
        scheme_ = null;
      }
      schemeCase_ = 12;
      onChanged();
      return targetSpendBuilder_;
    }
    @java.lang.Override
    public final Builder setUnknownFields(
        final com.google.protobuf.UnknownFieldSet unknownFields) {
      return super.setUnknownFields(unknownFields);
    }

    @java.lang.Override
    public final Builder mergeUnknownFields(
        final com.google.protobuf.UnknownFieldSet unknownFields) {
      return super.mergeUnknownFields(unknownFields);
    }


    // @@protoc_insertion_point(builder_scope:google.ads.googleads.v13.resources.AccessibleBiddingStrategy)
  }

  // @@protoc_insertion_point(class_scope:google.ads.googleads.v13.resources.AccessibleBiddingStrategy)
  private static final com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy DEFAULT_INSTANCE;
  static {
    DEFAULT_INSTANCE = new com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy();
  }

  public static com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy getDefaultInstance() {
    return DEFAULT_INSTANCE;
  }

  private static final com.google.protobuf.Parser<AccessibleBiddingStrategy>
      PARSER = new com.google.protobuf.AbstractParser<AccessibleBiddingStrategy>() {
    @java.lang.Override
    public AccessibleBiddingStrategy 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<AccessibleBiddingStrategy> parser() {
    return PARSER;
  }

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

  @java.lang.Override
  public com.google.ads.googleads.v13.resources.AccessibleBiddingStrategy getDefaultInstanceForType() {
    return DEFAULT_INSTANCE;
  }

}

