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

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

/**
 * <pre>
 * Settings for configuring Smart campaigns.
 * </pre>
 *
 * Protobuf type {@code google.ads.googleads.v13.resources.SmartCampaignSetting}
 */
public final class SmartCampaignSetting extends
    com.google.protobuf.GeneratedMessageV3 implements
    // @@protoc_insertion_point(message_implements:google.ads.googleads.v13.resources.SmartCampaignSetting)
    SmartCampaignSettingOrBuilder {
private static final long serialVersionUID = 0L;
  // Use SmartCampaignSetting.newBuilder() to construct.
  private SmartCampaignSetting(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
    super(builder);
  }
  private SmartCampaignSetting() {
    resourceName_ = "";
    campaign_ = "";
    advertisingLanguageCode_ = "";
  }

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

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

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

  public interface PhoneNumberOrBuilder extends
      // @@protoc_insertion_point(interface_extends:google.ads.googleads.v13.resources.SmartCampaignSetting.PhoneNumber)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     * Phone number of the smart campaign.
     * </pre>
     *
     * <code>optional string phone_number = 1;</code>
     * @return Whether the phoneNumber field is set.
     */
    boolean hasPhoneNumber();
    /**
     * <pre>
     * Phone number of the smart campaign.
     * </pre>
     *
     * <code>optional string phone_number = 1;</code>
     * @return The phoneNumber.
     */
    java.lang.String getPhoneNumber();
    /**
     * <pre>
     * Phone number of the smart campaign.
     * </pre>
     *
     * <code>optional string phone_number = 1;</code>
     * @return The bytes for phoneNumber.
     */
    com.google.protobuf.ByteString
        getPhoneNumberBytes();

    /**
     * <pre>
     * Upper-case, two-letter country code as defined by ISO-3166.
     * </pre>
     *
     * <code>optional string country_code = 2;</code>
     * @return Whether the countryCode field is set.
     */
    boolean hasCountryCode();
    /**
     * <pre>
     * Upper-case, two-letter country code as defined by ISO-3166.
     * </pre>
     *
     * <code>optional string country_code = 2;</code>
     * @return The countryCode.
     */
    java.lang.String getCountryCode();
    /**
     * <pre>
     * Upper-case, two-letter country code as defined by ISO-3166.
     * </pre>
     *
     * <code>optional string country_code = 2;</code>
     * @return The bytes for countryCode.
     */
    com.google.protobuf.ByteString
        getCountryCodeBytes();
  }
  /**
   * <pre>
   * Phone number and country code in smart campaign settings.
   * </pre>
   *
   * Protobuf type {@code google.ads.googleads.v13.resources.SmartCampaignSetting.PhoneNumber}
   */
  public static final class PhoneNumber extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:google.ads.googleads.v13.resources.SmartCampaignSetting.PhoneNumber)
      PhoneNumberOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use PhoneNumber.newBuilder() to construct.
    private PhoneNumber(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private PhoneNumber() {
      phoneNumber_ = "";
      countryCode_ = "";
    }

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

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

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.google.ads.googleads.v13.resources.SmartCampaignSettingProto.internal_static_google_ads_googleads_v13_resources_SmartCampaignSetting_PhoneNumber_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.google.ads.googleads.v13.resources.SmartCampaignSetting.PhoneNumber.class, com.google.ads.googleads.v13.resources.SmartCampaignSetting.PhoneNumber.Builder.class);
    }

    private int bitField0_;
    public static final int PHONE_NUMBER_FIELD_NUMBER = 1;
    @SuppressWarnings("serial")
    private volatile java.lang.Object phoneNumber_ = "";
    /**
     * <pre>
     * Phone number of the smart campaign.
     * </pre>
     *
     * <code>optional string phone_number = 1;</code>
     * @return Whether the phoneNumber field is set.
     */
    @java.lang.Override
    public boolean hasPhoneNumber() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <pre>
     * Phone number of the smart campaign.
     * </pre>
     *
     * <code>optional string phone_number = 1;</code>
     * @return The phoneNumber.
     */
    @java.lang.Override
    public java.lang.String getPhoneNumber() {
      java.lang.Object ref = phoneNumber_;
      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();
        phoneNumber_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * Phone number of the smart campaign.
     * </pre>
     *
     * <code>optional string phone_number = 1;</code>
     * @return The bytes for phoneNumber.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getPhoneNumberBytes() {
      java.lang.Object ref = phoneNumber_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        phoneNumber_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int COUNTRY_CODE_FIELD_NUMBER = 2;
    @SuppressWarnings("serial")
    private volatile java.lang.Object countryCode_ = "";
    /**
     * <pre>
     * Upper-case, two-letter country code as defined by ISO-3166.
     * </pre>
     *
     * <code>optional string country_code = 2;</code>
     * @return Whether the countryCode field is set.
     */
    @java.lang.Override
    public boolean hasCountryCode() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <pre>
     * Upper-case, two-letter country code as defined by ISO-3166.
     * </pre>
     *
     * <code>optional string country_code = 2;</code>
     * @return The countryCode.
     */
    @java.lang.Override
    public java.lang.String getCountryCode() {
      java.lang.Object ref = countryCode_;
      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();
        countryCode_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * Upper-case, two-letter country code as defined by ISO-3166.
     * </pre>
     *
     * <code>optional string country_code = 2;</code>
     * @return The bytes for countryCode.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getCountryCodeBytes() {
      java.lang.Object ref = countryCode_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        countryCode_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    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)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, phoneNumber_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, countryCode_);
      }
      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.GeneratedMessageV3.computeStringSize(1, phoneNumber_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, countryCode_);
      }
      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.SmartCampaignSetting.PhoneNumber)) {
        return super.equals(obj);
      }
      com.google.ads.googleads.v13.resources.SmartCampaignSetting.PhoneNumber other = (com.google.ads.googleads.v13.resources.SmartCampaignSetting.PhoneNumber) obj;

      if (hasPhoneNumber() != other.hasPhoneNumber()) return false;
      if (hasPhoneNumber()) {
        if (!getPhoneNumber()
            .equals(other.getPhoneNumber())) return false;
      }
      if (hasCountryCode() != other.hasCountryCode()) return false;
      if (hasCountryCode()) {
        if (!getCountryCode()
            .equals(other.getCountryCode())) 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 (hasPhoneNumber()) {
        hash = (37 * hash) + PHONE_NUMBER_FIELD_NUMBER;
        hash = (53 * hash) + getPhoneNumber().hashCode();
      }
      if (hasCountryCode()) {
        hash = (37 * hash) + COUNTRY_CODE_FIELD_NUMBER;
        hash = (53 * hash) + getCountryCode().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.google.ads.googleads.v13.resources.SmartCampaignSetting.PhoneNumber parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.google.ads.googleads.v13.resources.SmartCampaignSetting.PhoneNumber 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.SmartCampaignSetting.PhoneNumber parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.google.ads.googleads.v13.resources.SmartCampaignSetting.PhoneNumber 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.SmartCampaignSetting.PhoneNumber parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.google.ads.googleads.v13.resources.SmartCampaignSetting.PhoneNumber 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.SmartCampaignSetting.PhoneNumber 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.SmartCampaignSetting.PhoneNumber 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.SmartCampaignSetting.PhoneNumber 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.SmartCampaignSetting.PhoneNumber 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.SmartCampaignSetting.PhoneNumber 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.SmartCampaignSetting.PhoneNumber 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.SmartCampaignSetting.PhoneNumber 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>
     * Phone number and country code in smart campaign settings.
     * </pre>
     *
     * Protobuf type {@code google.ads.googleads.v13.resources.SmartCampaignSetting.PhoneNumber}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:google.ads.googleads.v13.resources.SmartCampaignSetting.PhoneNumber)
        com.google.ads.googleads.v13.resources.SmartCampaignSetting.PhoneNumberOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.google.ads.googleads.v13.resources.SmartCampaignSettingProto.internal_static_google_ads_googleads_v13_resources_SmartCampaignSetting_PhoneNumber_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.google.ads.googleads.v13.resources.SmartCampaignSettingProto.internal_static_google_ads_googleads_v13_resources_SmartCampaignSetting_PhoneNumber_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.google.ads.googleads.v13.resources.SmartCampaignSetting.PhoneNumber.class, com.google.ads.googleads.v13.resources.SmartCampaignSetting.PhoneNumber.Builder.class);
      }

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

      }

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

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        phoneNumber_ = "";
        countryCode_ = "";
        return this;
      }

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

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

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

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

      private void buildPartial0(com.google.ads.googleads.v13.resources.SmartCampaignSetting.PhoneNumber result) {
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.phoneNumber_ = phoneNumber_;
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.countryCode_ = countryCode_;
          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.SmartCampaignSetting.PhoneNumber) {
          return mergeFrom((com.google.ads.googleads.v13.resources.SmartCampaignSetting.PhoneNumber)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.google.ads.googleads.v13.resources.SmartCampaignSetting.PhoneNumber other) {
        if (other == com.google.ads.googleads.v13.resources.SmartCampaignSetting.PhoneNumber.getDefaultInstance()) return this;
        if (other.hasPhoneNumber()) {
          phoneNumber_ = other.phoneNumber_;
          bitField0_ |= 0x00000001;
          onChanged();
        }
        if (other.hasCountryCode()) {
          countryCode_ = other.countryCode_;
          bitField0_ |= 0x00000002;
          onChanged();
        }
        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: {
                phoneNumber_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000001;
                break;
              } // case 10
              case 18: {
                countryCode_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000002;
                break;
              } // case 18
              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 java.lang.Object phoneNumber_ = "";
      /**
       * <pre>
       * Phone number of the smart campaign.
       * </pre>
       *
       * <code>optional string phone_number = 1;</code>
       * @return Whether the phoneNumber field is set.
       */
      public boolean hasPhoneNumber() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <pre>
       * Phone number of the smart campaign.
       * </pre>
       *
       * <code>optional string phone_number = 1;</code>
       * @return The phoneNumber.
       */
      public java.lang.String getPhoneNumber() {
        java.lang.Object ref = phoneNumber_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          phoneNumber_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * Phone number of the smart campaign.
       * </pre>
       *
       * <code>optional string phone_number = 1;</code>
       * @return The bytes for phoneNumber.
       */
      public com.google.protobuf.ByteString
          getPhoneNumberBytes() {
        java.lang.Object ref = phoneNumber_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          phoneNumber_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * Phone number of the smart campaign.
       * </pre>
       *
       * <code>optional string phone_number = 1;</code>
       * @param value The phoneNumber to set.
       * @return This builder for chaining.
       */
      public Builder setPhoneNumber(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        phoneNumber_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Phone number of the smart campaign.
       * </pre>
       *
       * <code>optional string phone_number = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearPhoneNumber() {
        phoneNumber_ = getDefaultInstance().getPhoneNumber();
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Phone number of the smart campaign.
       * </pre>
       *
       * <code>optional string phone_number = 1;</code>
       * @param value The bytes for phoneNumber to set.
       * @return This builder for chaining.
       */
      public Builder setPhoneNumberBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        phoneNumber_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }

      private java.lang.Object countryCode_ = "";
      /**
       * <pre>
       * Upper-case, two-letter country code as defined by ISO-3166.
       * </pre>
       *
       * <code>optional string country_code = 2;</code>
       * @return Whether the countryCode field is set.
       */
      public boolean hasCountryCode() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <pre>
       * Upper-case, two-letter country code as defined by ISO-3166.
       * </pre>
       *
       * <code>optional string country_code = 2;</code>
       * @return The countryCode.
       */
      public java.lang.String getCountryCode() {
        java.lang.Object ref = countryCode_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          countryCode_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * Upper-case, two-letter country code as defined by ISO-3166.
       * </pre>
       *
       * <code>optional string country_code = 2;</code>
       * @return The bytes for countryCode.
       */
      public com.google.protobuf.ByteString
          getCountryCodeBytes() {
        java.lang.Object ref = countryCode_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          countryCode_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * Upper-case, two-letter country code as defined by ISO-3166.
       * </pre>
       *
       * <code>optional string country_code = 2;</code>
       * @param value The countryCode to set.
       * @return This builder for chaining.
       */
      public Builder setCountryCode(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        countryCode_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Upper-case, two-letter country code as defined by ISO-3166.
       * </pre>
       *
       * <code>optional string country_code = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearCountryCode() {
        countryCode_ = getDefaultInstance().getCountryCode();
        bitField0_ = (bitField0_ & ~0x00000002);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Upper-case, two-letter country code as defined by ISO-3166.
       * </pre>
       *
       * <code>optional string country_code = 2;</code>
       * @param value The bytes for countryCode to set.
       * @return This builder for chaining.
       */
      public Builder setCountryCodeBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        countryCode_ = value;
        bitField0_ |= 0x00000002;
        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.SmartCampaignSetting.PhoneNumber)
    }

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

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

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

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

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

  }

  public interface AdOptimizedBusinessProfileSettingOrBuilder extends
      // @@protoc_insertion_point(interface_extends:google.ads.googleads.v13.resources.SmartCampaignSetting.AdOptimizedBusinessProfileSetting)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     * Enabling a lead form on your business profile enables prospective
     * customers to contact your business by filling out a simple form,
     * and you'll receive their information through email.
     * </pre>
     *
     * <code>optional bool include_lead_form = 1;</code>
     * @return Whether the includeLeadForm field is set.
     */
    boolean hasIncludeLeadForm();
    /**
     * <pre>
     * Enabling a lead form on your business profile enables prospective
     * customers to contact your business by filling out a simple form,
     * and you'll receive their information through email.
     * </pre>
     *
     * <code>optional bool include_lead_form = 1;</code>
     * @return The includeLeadForm.
     */
    boolean getIncludeLeadForm();
  }
  /**
   * <pre>
   * Settings for configuring a business profile optimized for ads as this
   * campaign's landing page.
   * </pre>
   *
   * Protobuf type {@code google.ads.googleads.v13.resources.SmartCampaignSetting.AdOptimizedBusinessProfileSetting}
   */
  public static final class AdOptimizedBusinessProfileSetting extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:google.ads.googleads.v13.resources.SmartCampaignSetting.AdOptimizedBusinessProfileSetting)
      AdOptimizedBusinessProfileSettingOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use AdOptimizedBusinessProfileSetting.newBuilder() to construct.
    private AdOptimizedBusinessProfileSetting(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private AdOptimizedBusinessProfileSetting() {
    }

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

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

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.google.ads.googleads.v13.resources.SmartCampaignSettingProto.internal_static_google_ads_googleads_v13_resources_SmartCampaignSetting_AdOptimizedBusinessProfileSetting_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.google.ads.googleads.v13.resources.SmartCampaignSetting.AdOptimizedBusinessProfileSetting.class, com.google.ads.googleads.v13.resources.SmartCampaignSetting.AdOptimizedBusinessProfileSetting.Builder.class);
    }

    private int bitField0_;
    public static final int INCLUDE_LEAD_FORM_FIELD_NUMBER = 1;
    private boolean includeLeadForm_ = false;
    /**
     * <pre>
     * Enabling a lead form on your business profile enables prospective
     * customers to contact your business by filling out a simple form,
     * and you'll receive their information through email.
     * </pre>
     *
     * <code>optional bool include_lead_form = 1;</code>
     * @return Whether the includeLeadForm field is set.
     */
    @java.lang.Override
    public boolean hasIncludeLeadForm() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <pre>
     * Enabling a lead form on your business profile enables prospective
     * customers to contact your business by filling out a simple form,
     * and you'll receive their information through email.
     * </pre>
     *
     * <code>optional bool include_lead_form = 1;</code>
     * @return The includeLeadForm.
     */
    @java.lang.Override
    public boolean getIncludeLeadForm() {
      return includeLeadForm_;
    }

    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.writeBool(1, includeLeadForm_);
      }
      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
          .computeBoolSize(1, includeLeadForm_);
      }
      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.SmartCampaignSetting.AdOptimizedBusinessProfileSetting)) {
        return super.equals(obj);
      }
      com.google.ads.googleads.v13.resources.SmartCampaignSetting.AdOptimizedBusinessProfileSetting other = (com.google.ads.googleads.v13.resources.SmartCampaignSetting.AdOptimizedBusinessProfileSetting) obj;

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

    public static com.google.ads.googleads.v13.resources.SmartCampaignSetting.AdOptimizedBusinessProfileSetting parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.google.ads.googleads.v13.resources.SmartCampaignSetting.AdOptimizedBusinessProfileSetting 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.SmartCampaignSetting.AdOptimizedBusinessProfileSetting parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.google.ads.googleads.v13.resources.SmartCampaignSetting.AdOptimizedBusinessProfileSetting 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.SmartCampaignSetting.AdOptimizedBusinessProfileSetting parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.google.ads.googleads.v13.resources.SmartCampaignSetting.AdOptimizedBusinessProfileSetting 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.SmartCampaignSetting.AdOptimizedBusinessProfileSetting 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.SmartCampaignSetting.AdOptimizedBusinessProfileSetting 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.SmartCampaignSetting.AdOptimizedBusinessProfileSetting 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.SmartCampaignSetting.AdOptimizedBusinessProfileSetting 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.SmartCampaignSetting.AdOptimizedBusinessProfileSetting 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.SmartCampaignSetting.AdOptimizedBusinessProfileSetting 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.SmartCampaignSetting.AdOptimizedBusinessProfileSetting 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>
     * Settings for configuring a business profile optimized for ads as this
     * campaign's landing page.
     * </pre>
     *
     * Protobuf type {@code google.ads.googleads.v13.resources.SmartCampaignSetting.AdOptimizedBusinessProfileSetting}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:google.ads.googleads.v13.resources.SmartCampaignSetting.AdOptimizedBusinessProfileSetting)
        com.google.ads.googleads.v13.resources.SmartCampaignSetting.AdOptimizedBusinessProfileSettingOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.google.ads.googleads.v13.resources.SmartCampaignSettingProto.internal_static_google_ads_googleads_v13_resources_SmartCampaignSetting_AdOptimizedBusinessProfileSetting_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.google.ads.googleads.v13.resources.SmartCampaignSettingProto.internal_static_google_ads_googleads_v13_resources_SmartCampaignSetting_AdOptimizedBusinessProfileSetting_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.google.ads.googleads.v13.resources.SmartCampaignSetting.AdOptimizedBusinessProfileSetting.class, com.google.ads.googleads.v13.resources.SmartCampaignSetting.AdOptimizedBusinessProfileSetting.Builder.class);
      }

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

      }

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

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

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

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

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

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

      private void buildPartial0(com.google.ads.googleads.v13.resources.SmartCampaignSetting.AdOptimizedBusinessProfileSetting result) {
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.includeLeadForm_ = includeLeadForm_;
          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.SmartCampaignSetting.AdOptimizedBusinessProfileSetting) {
          return mergeFrom((com.google.ads.googleads.v13.resources.SmartCampaignSetting.AdOptimizedBusinessProfileSetting)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.google.ads.googleads.v13.resources.SmartCampaignSetting.AdOptimizedBusinessProfileSetting other) {
        if (other == com.google.ads.googleads.v13.resources.SmartCampaignSetting.AdOptimizedBusinessProfileSetting.getDefaultInstance()) return this;
        if (other.hasIncludeLeadForm()) {
          setIncludeLeadForm(other.getIncludeLeadForm());
        }
        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: {
                includeLeadForm_ = input.readBool();
                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 boolean includeLeadForm_ ;
      /**
       * <pre>
       * Enabling a lead form on your business profile enables prospective
       * customers to contact your business by filling out a simple form,
       * and you'll receive their information through email.
       * </pre>
       *
       * <code>optional bool include_lead_form = 1;</code>
       * @return Whether the includeLeadForm field is set.
       */
      @java.lang.Override
      public boolean hasIncludeLeadForm() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <pre>
       * Enabling a lead form on your business profile enables prospective
       * customers to contact your business by filling out a simple form,
       * and you'll receive their information through email.
       * </pre>
       *
       * <code>optional bool include_lead_form = 1;</code>
       * @return The includeLeadForm.
       */
      @java.lang.Override
      public boolean getIncludeLeadForm() {
        return includeLeadForm_;
      }
      /**
       * <pre>
       * Enabling a lead form on your business profile enables prospective
       * customers to contact your business by filling out a simple form,
       * and you'll receive their information through email.
       * </pre>
       *
       * <code>optional bool include_lead_form = 1;</code>
       * @param value The includeLeadForm to set.
       * @return This builder for chaining.
       */
      public Builder setIncludeLeadForm(boolean value) {

        includeLeadForm_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Enabling a lead form on your business profile enables prospective
       * customers to contact your business by filling out a simple form,
       * and you'll receive their information through email.
       * </pre>
       *
       * <code>optional bool include_lead_form = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearIncludeLeadForm() {
        bitField0_ = (bitField0_ & ~0x00000001);
        includeLeadForm_ = false;
        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.SmartCampaignSetting.AdOptimizedBusinessProfileSetting)
    }

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

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

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

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

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

  }

  private int landingPageCase_ = 0;
  @SuppressWarnings("serial")
  private java.lang.Object landingPage_;
  public enum LandingPageCase
      implements com.google.protobuf.Internal.EnumLite,
          com.google.protobuf.AbstractMessage.InternalOneOfEnum {
    FINAL_URL(8),
    AD_OPTIMIZED_BUSINESS_PROFILE_SETTING(9),
    LANDINGPAGE_NOT_SET(0);
    private final int value;
    private LandingPageCase(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 LandingPageCase valueOf(int value) {
      return forNumber(value);
    }

    public static LandingPageCase forNumber(int value) {
      switch (value) {
        case 8: return FINAL_URL;
        case 9: return AD_OPTIMIZED_BUSINESS_PROFILE_SETTING;
        case 0: return LANDINGPAGE_NOT_SET;
        default: return null;
      }
    }
    public int getNumber() {
      return this.value;
    }
  };

  public LandingPageCase
  getLandingPageCase() {
    return LandingPageCase.forNumber(
        landingPageCase_);
  }

  private int businessSettingCase_ = 0;
  @SuppressWarnings("serial")
  private java.lang.Object businessSetting_;
  public enum BusinessSettingCase
      implements com.google.protobuf.Internal.EnumLite,
          com.google.protobuf.AbstractMessage.InternalOneOfEnum {
    BUSINESS_NAME(5),
    BUSINESS_PROFILE_LOCATION(10),
    BUSINESSSETTING_NOT_SET(0);
    private final int value;
    private BusinessSettingCase(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 BusinessSettingCase valueOf(int value) {
      return forNumber(value);
    }

    public static BusinessSettingCase forNumber(int value) {
      switch (value) {
        case 5: return BUSINESS_NAME;
        case 10: return BUSINESS_PROFILE_LOCATION;
        case 0: return BUSINESSSETTING_NOT_SET;
        default: return null;
      }
    }
    public int getNumber() {
      return this.value;
    }
  };

  public BusinessSettingCase
  getBusinessSettingCase() {
    return BusinessSettingCase.forNumber(
        businessSettingCase_);
  }

  public static final int RESOURCE_NAME_FIELD_NUMBER = 1;
  @SuppressWarnings("serial")
  private volatile java.lang.Object resourceName_ = "";
  /**
   * <pre>
   * Immutable. The resource name of the Smart campaign setting.
   * Smart campaign setting resource names have the form:
   *
   * `customers/{customer_id}/smartCampaignSettings/{campaign_id}`
   * </pre>
   *
   * <code>string resource_name = 1 [(.google.api.field_behavior) = IMMUTABLE, (.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>
   * Immutable. The resource name of the Smart campaign setting.
   * Smart campaign setting resource names have the form:
   *
   * `customers/{customer_id}/smartCampaignSettings/{campaign_id}`
   * </pre>
   *
   * <code>string resource_name = 1 [(.google.api.field_behavior) = IMMUTABLE, (.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 CAMPAIGN_FIELD_NUMBER = 2;
  @SuppressWarnings("serial")
  private volatile java.lang.Object campaign_ = "";
  /**
   * <pre>
   * Output only. The campaign to which these settings apply.
   * </pre>
   *
   * <code>string campaign = 2 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.resource_reference) = { ... }</code>
   * @return The campaign.
   */
  @java.lang.Override
  public java.lang.String getCampaign() {
    java.lang.Object ref = campaign_;
    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();
      campaign_ = s;
      return s;
    }
  }
  /**
   * <pre>
   * Output only. The campaign to which these settings apply.
   * </pre>
   *
   * <code>string campaign = 2 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.resource_reference) = { ... }</code>
   * @return The bytes for campaign.
   */
  @java.lang.Override
  public com.google.protobuf.ByteString
      getCampaignBytes() {
    java.lang.Object ref = campaign_;
    if (ref instanceof java.lang.String) {
      com.google.protobuf.ByteString b = 
          com.google.protobuf.ByteString.copyFromUtf8(
              (java.lang.String) ref);
      campaign_ = b;
      return b;
    } else {
      return (com.google.protobuf.ByteString) ref;
    }
  }

  public static final int PHONE_NUMBER_FIELD_NUMBER = 3;
  private com.google.ads.googleads.v13.resources.SmartCampaignSetting.PhoneNumber phoneNumber_;
  /**
   * <pre>
   * Phone number and country code.
   * </pre>
   *
   * <code>.google.ads.googleads.v13.resources.SmartCampaignSetting.PhoneNumber phone_number = 3;</code>
   * @return Whether the phoneNumber field is set.
   */
  @java.lang.Override
  public boolean hasPhoneNumber() {
    return phoneNumber_ != null;
  }
  /**
   * <pre>
   * Phone number and country code.
   * </pre>
   *
   * <code>.google.ads.googleads.v13.resources.SmartCampaignSetting.PhoneNumber phone_number = 3;</code>
   * @return The phoneNumber.
   */
  @java.lang.Override
  public com.google.ads.googleads.v13.resources.SmartCampaignSetting.PhoneNumber getPhoneNumber() {
    return phoneNumber_ == null ? com.google.ads.googleads.v13.resources.SmartCampaignSetting.PhoneNumber.getDefaultInstance() : phoneNumber_;
  }
  /**
   * <pre>
   * Phone number and country code.
   * </pre>
   *
   * <code>.google.ads.googleads.v13.resources.SmartCampaignSetting.PhoneNumber phone_number = 3;</code>
   */
  @java.lang.Override
  public com.google.ads.googleads.v13.resources.SmartCampaignSetting.PhoneNumberOrBuilder getPhoneNumberOrBuilder() {
    return phoneNumber_ == null ? com.google.ads.googleads.v13.resources.SmartCampaignSetting.PhoneNumber.getDefaultInstance() : phoneNumber_;
  }

  public static final int ADVERTISING_LANGUAGE_CODE_FIELD_NUMBER = 7;
  @SuppressWarnings("serial")
  private volatile java.lang.Object advertisingLanguageCode_ = "";
  /**
   * <pre>
   * The language code to advertise in from the set of
   * [supported language codes]
   * (https://developers.google.com/google-ads/api/reference/data/codes-formats#languages).
   * </pre>
   *
   * <code>string advertising_language_code = 7;</code>
   * @return The advertisingLanguageCode.
   */
  @java.lang.Override
  public java.lang.String getAdvertisingLanguageCode() {
    java.lang.Object ref = advertisingLanguageCode_;
    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();
      advertisingLanguageCode_ = s;
      return s;
    }
  }
  /**
   * <pre>
   * The language code to advertise in from the set of
   * [supported language codes]
   * (https://developers.google.com/google-ads/api/reference/data/codes-formats#languages).
   * </pre>
   *
   * <code>string advertising_language_code = 7;</code>
   * @return The bytes for advertisingLanguageCode.
   */
  @java.lang.Override
  public com.google.protobuf.ByteString
      getAdvertisingLanguageCodeBytes() {
    java.lang.Object ref = advertisingLanguageCode_;
    if (ref instanceof java.lang.String) {
      com.google.protobuf.ByteString b = 
          com.google.protobuf.ByteString.copyFromUtf8(
              (java.lang.String) ref);
      advertisingLanguageCode_ = b;
      return b;
    } else {
      return (com.google.protobuf.ByteString) ref;
    }
  }

  public static final int FINAL_URL_FIELD_NUMBER = 8;
  /**
   * <pre>
   * The user-provided landing page URL for this Campaign.
   * </pre>
   *
   * <code>string final_url = 8;</code>
   * @return Whether the finalUrl field is set.
   */
  public boolean hasFinalUrl() {
    return landingPageCase_ == 8;
  }
  /**
   * <pre>
   * The user-provided landing page URL for this Campaign.
   * </pre>
   *
   * <code>string final_url = 8;</code>
   * @return The finalUrl.
   */
  public java.lang.String getFinalUrl() {
    java.lang.Object ref = "";
    if (landingPageCase_ == 8) {
      ref = landingPage_;
    }
    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();
      if (landingPageCase_ == 8) {
        landingPage_ = s;
      }
      return s;
    }
  }
  /**
   * <pre>
   * The user-provided landing page URL for this Campaign.
   * </pre>
   *
   * <code>string final_url = 8;</code>
   * @return The bytes for finalUrl.
   */
  public com.google.protobuf.ByteString
      getFinalUrlBytes() {
    java.lang.Object ref = "";
    if (landingPageCase_ == 8) {
      ref = landingPage_;
    }
    if (ref instanceof java.lang.String) {
      com.google.protobuf.ByteString b = 
          com.google.protobuf.ByteString.copyFromUtf8(
              (java.lang.String) ref);
      if (landingPageCase_ == 8) {
        landingPage_ = b;
      }
      return b;
    } else {
      return (com.google.protobuf.ByteString) ref;
    }
  }

  public static final int AD_OPTIMIZED_BUSINESS_PROFILE_SETTING_FIELD_NUMBER = 9;
  /**
   * <pre>
   * Settings for configuring a business profile optimized for ads as this
   * campaign's landing page.  This campaign must be linked to a business
   * profile to use this option.  For more information on this feature,
   * consult https://support.google.com/google-ads/answer/9827068.
   * </pre>
   *
   * <code>.google.ads.googleads.v13.resources.SmartCampaignSetting.AdOptimizedBusinessProfileSetting ad_optimized_business_profile_setting = 9;</code>
   * @return Whether the adOptimizedBusinessProfileSetting field is set.
   */
  @java.lang.Override
  public boolean hasAdOptimizedBusinessProfileSetting() {
    return landingPageCase_ == 9;
  }
  /**
   * <pre>
   * Settings for configuring a business profile optimized for ads as this
   * campaign's landing page.  This campaign must be linked to a business
   * profile to use this option.  For more information on this feature,
   * consult https://support.google.com/google-ads/answer/9827068.
   * </pre>
   *
   * <code>.google.ads.googleads.v13.resources.SmartCampaignSetting.AdOptimizedBusinessProfileSetting ad_optimized_business_profile_setting = 9;</code>
   * @return The adOptimizedBusinessProfileSetting.
   */
  @java.lang.Override
  public com.google.ads.googleads.v13.resources.SmartCampaignSetting.AdOptimizedBusinessProfileSetting getAdOptimizedBusinessProfileSetting() {
    if (landingPageCase_ == 9) {
       return (com.google.ads.googleads.v13.resources.SmartCampaignSetting.AdOptimizedBusinessProfileSetting) landingPage_;
    }
    return com.google.ads.googleads.v13.resources.SmartCampaignSetting.AdOptimizedBusinessProfileSetting.getDefaultInstance();
  }
  /**
   * <pre>
   * Settings for configuring a business profile optimized for ads as this
   * campaign's landing page.  This campaign must be linked to a business
   * profile to use this option.  For more information on this feature,
   * consult https://support.google.com/google-ads/answer/9827068.
   * </pre>
   *
   * <code>.google.ads.googleads.v13.resources.SmartCampaignSetting.AdOptimizedBusinessProfileSetting ad_optimized_business_profile_setting = 9;</code>
   */
  @java.lang.Override
  public com.google.ads.googleads.v13.resources.SmartCampaignSetting.AdOptimizedBusinessProfileSettingOrBuilder getAdOptimizedBusinessProfileSettingOrBuilder() {
    if (landingPageCase_ == 9) {
       return (com.google.ads.googleads.v13.resources.SmartCampaignSetting.AdOptimizedBusinessProfileSetting) landingPage_;
    }
    return com.google.ads.googleads.v13.resources.SmartCampaignSetting.AdOptimizedBusinessProfileSetting.getDefaultInstance();
  }

  public static final int BUSINESS_NAME_FIELD_NUMBER = 5;
  /**
   * <pre>
   * The name of the business.
   * </pre>
   *
   * <code>string business_name = 5;</code>
   * @return Whether the businessName field is set.
   */
  public boolean hasBusinessName() {
    return businessSettingCase_ == 5;
  }
  /**
   * <pre>
   * The name of the business.
   * </pre>
   *
   * <code>string business_name = 5;</code>
   * @return The businessName.
   */
  public java.lang.String getBusinessName() {
    java.lang.Object ref = "";
    if (businessSettingCase_ == 5) {
      ref = businessSetting_;
    }
    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();
      if (businessSettingCase_ == 5) {
        businessSetting_ = s;
      }
      return s;
    }
  }
  /**
   * <pre>
   * The name of the business.
   * </pre>
   *
   * <code>string business_name = 5;</code>
   * @return The bytes for businessName.
   */
  public com.google.protobuf.ByteString
      getBusinessNameBytes() {
    java.lang.Object ref = "";
    if (businessSettingCase_ == 5) {
      ref = businessSetting_;
    }
    if (ref instanceof java.lang.String) {
      com.google.protobuf.ByteString b = 
          com.google.protobuf.ByteString.copyFromUtf8(
              (java.lang.String) ref);
      if (businessSettingCase_ == 5) {
        businessSetting_ = b;
      }
      return b;
    } else {
      return (com.google.protobuf.ByteString) ref;
    }
  }

  public static final int BUSINESS_PROFILE_LOCATION_FIELD_NUMBER = 10;
  /**
   * <pre>
   * The resource name of a Business Profile location.
   * Business Profile location resource names can be fetched through the
   * Business Profile API and adhere to the following format:
   * `locations/{locationId}`.
   *
   * See the [Business Profile API]
   * (https://developers.google.com/my-business/reference/businessinformation/rest/v1/accounts.locations)
   * for additional details.
   * </pre>
   *
   * <code>string business_profile_location = 10;</code>
   * @return Whether the businessProfileLocation field is set.
   */
  public boolean hasBusinessProfileLocation() {
    return businessSettingCase_ == 10;
  }
  /**
   * <pre>
   * The resource name of a Business Profile location.
   * Business Profile location resource names can be fetched through the
   * Business Profile API and adhere to the following format:
   * `locations/{locationId}`.
   *
   * See the [Business Profile API]
   * (https://developers.google.com/my-business/reference/businessinformation/rest/v1/accounts.locations)
   * for additional details.
   * </pre>
   *
   * <code>string business_profile_location = 10;</code>
   * @return The businessProfileLocation.
   */
  public java.lang.String getBusinessProfileLocation() {
    java.lang.Object ref = "";
    if (businessSettingCase_ == 10) {
      ref = businessSetting_;
    }
    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();
      if (businessSettingCase_ == 10) {
        businessSetting_ = s;
      }
      return s;
    }
  }
  /**
   * <pre>
   * The resource name of a Business Profile location.
   * Business Profile location resource names can be fetched through the
   * Business Profile API and adhere to the following format:
   * `locations/{locationId}`.
   *
   * See the [Business Profile API]
   * (https://developers.google.com/my-business/reference/businessinformation/rest/v1/accounts.locations)
   * for additional details.
   * </pre>
   *
   * <code>string business_profile_location = 10;</code>
   * @return The bytes for businessProfileLocation.
   */
  public com.google.protobuf.ByteString
      getBusinessProfileLocationBytes() {
    java.lang.Object ref = "";
    if (businessSettingCase_ == 10) {
      ref = businessSetting_;
    }
    if (ref instanceof java.lang.String) {
      com.google.protobuf.ByteString b = 
          com.google.protobuf.ByteString.copyFromUtf8(
              (java.lang.String) ref);
      if (businessSettingCase_ == 10) {
        businessSetting_ = b;
      }
      return b;
    } else {
      return (com.google.protobuf.ByteString) ref;
    }
  }

  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 (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(campaign_)) {
      com.google.protobuf.GeneratedMessageV3.writeString(output, 2, campaign_);
    }
    if (phoneNumber_ != null) {
      output.writeMessage(3, getPhoneNumber());
    }
    if (businessSettingCase_ == 5) {
      com.google.protobuf.GeneratedMessageV3.writeString(output, 5, businessSetting_);
    }
    if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(advertisingLanguageCode_)) {
      com.google.protobuf.GeneratedMessageV3.writeString(output, 7, advertisingLanguageCode_);
    }
    if (landingPageCase_ == 8) {
      com.google.protobuf.GeneratedMessageV3.writeString(output, 8, landingPage_);
    }
    if (landingPageCase_ == 9) {
      output.writeMessage(9, (com.google.ads.googleads.v13.resources.SmartCampaignSetting.AdOptimizedBusinessProfileSetting) landingPage_);
    }
    if (businessSettingCase_ == 10) {
      com.google.protobuf.GeneratedMessageV3.writeString(output, 10, businessSetting_);
    }
    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 (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(campaign_)) {
      size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, campaign_);
    }
    if (phoneNumber_ != null) {
      size += com.google.protobuf.CodedOutputStream
        .computeMessageSize(3, getPhoneNumber());
    }
    if (businessSettingCase_ == 5) {
      size += com.google.protobuf.GeneratedMessageV3.computeStringSize(5, businessSetting_);
    }
    if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(advertisingLanguageCode_)) {
      size += com.google.protobuf.GeneratedMessageV3.computeStringSize(7, advertisingLanguageCode_);
    }
    if (landingPageCase_ == 8) {
      size += com.google.protobuf.GeneratedMessageV3.computeStringSize(8, landingPage_);
    }
    if (landingPageCase_ == 9) {
      size += com.google.protobuf.CodedOutputStream
        .computeMessageSize(9, (com.google.ads.googleads.v13.resources.SmartCampaignSetting.AdOptimizedBusinessProfileSetting) landingPage_);
    }
    if (businessSettingCase_ == 10) {
      size += com.google.protobuf.GeneratedMessageV3.computeStringSize(10, businessSetting_);
    }
    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.SmartCampaignSetting)) {
      return super.equals(obj);
    }
    com.google.ads.googleads.v13.resources.SmartCampaignSetting other = (com.google.ads.googleads.v13.resources.SmartCampaignSetting) obj;

    if (!getResourceName()
        .equals(other.getResourceName())) return false;
    if (!getCampaign()
        .equals(other.getCampaign())) return false;
    if (hasPhoneNumber() != other.hasPhoneNumber()) return false;
    if (hasPhoneNumber()) {
      if (!getPhoneNumber()
          .equals(other.getPhoneNumber())) return false;
    }
    if (!getAdvertisingLanguageCode()
        .equals(other.getAdvertisingLanguageCode())) return false;
    if (!getLandingPageCase().equals(other.getLandingPageCase())) return false;
    switch (landingPageCase_) {
      case 8:
        if (!getFinalUrl()
            .equals(other.getFinalUrl())) return false;
        break;
      case 9:
        if (!getAdOptimizedBusinessProfileSetting()
            .equals(other.getAdOptimizedBusinessProfileSetting())) return false;
        break;
      case 0:
      default:
    }
    if (!getBusinessSettingCase().equals(other.getBusinessSettingCase())) return false;
    switch (businessSettingCase_) {
      case 5:
        if (!getBusinessName()
            .equals(other.getBusinessName())) return false;
        break;
      case 10:
        if (!getBusinessProfileLocation()
            .equals(other.getBusinessProfileLocation())) 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) + CAMPAIGN_FIELD_NUMBER;
    hash = (53 * hash) + getCampaign().hashCode();
    if (hasPhoneNumber()) {
      hash = (37 * hash) + PHONE_NUMBER_FIELD_NUMBER;
      hash = (53 * hash) + getPhoneNumber().hashCode();
    }
    hash = (37 * hash) + ADVERTISING_LANGUAGE_CODE_FIELD_NUMBER;
    hash = (53 * hash) + getAdvertisingLanguageCode().hashCode();
    switch (landingPageCase_) {
      case 8:
        hash = (37 * hash) + FINAL_URL_FIELD_NUMBER;
        hash = (53 * hash) + getFinalUrl().hashCode();
        break;
      case 9:
        hash = (37 * hash) + AD_OPTIMIZED_BUSINESS_PROFILE_SETTING_FIELD_NUMBER;
        hash = (53 * hash) + getAdOptimizedBusinessProfileSetting().hashCode();
        break;
      case 0:
      default:
    }
    switch (businessSettingCase_) {
      case 5:
        hash = (37 * hash) + BUSINESS_NAME_FIELD_NUMBER;
        hash = (53 * hash) + getBusinessName().hashCode();
        break;
      case 10:
        hash = (37 * hash) + BUSINESS_PROFILE_LOCATION_FIELD_NUMBER;
        hash = (53 * hash) + getBusinessProfileLocation().hashCode();
        break;
      case 0:
      default:
    }
    hash = (29 * hash) + getUnknownFields().hashCode();
    memoizedHashCode = hash;
    return hash;
  }

  public static com.google.ads.googleads.v13.resources.SmartCampaignSetting parseFrom(
      java.nio.ByteBuffer data)
      throws com.google.protobuf.InvalidProtocolBufferException {
    return PARSER.parseFrom(data);
  }
  public static com.google.ads.googleads.v13.resources.SmartCampaignSetting 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.SmartCampaignSetting parseFrom(
      com.google.protobuf.ByteString data)
      throws com.google.protobuf.InvalidProtocolBufferException {
    return PARSER.parseFrom(data);
  }
  public static com.google.ads.googleads.v13.resources.SmartCampaignSetting 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.SmartCampaignSetting parseFrom(byte[] data)
      throws com.google.protobuf.InvalidProtocolBufferException {
    return PARSER.parseFrom(data);
  }
  public static com.google.ads.googleads.v13.resources.SmartCampaignSetting 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.SmartCampaignSetting 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.SmartCampaignSetting 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.SmartCampaignSetting 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.SmartCampaignSetting 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.SmartCampaignSetting 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.SmartCampaignSetting 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.SmartCampaignSetting 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>
   * Settings for configuring Smart campaigns.
   * </pre>
   *
   * Protobuf type {@code google.ads.googleads.v13.resources.SmartCampaignSetting}
   */
  public static final class Builder extends
      com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
      // @@protoc_insertion_point(builder_implements:google.ads.googleads.v13.resources.SmartCampaignSetting)
      com.google.ads.googleads.v13.resources.SmartCampaignSettingOrBuilder {
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.google.ads.googleads.v13.resources.SmartCampaignSettingProto.internal_static_google_ads_googleads_v13_resources_SmartCampaignSetting_descriptor;
    }

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

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

    }

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

    }
    @java.lang.Override
    public Builder clear() {
      super.clear();
      bitField0_ = 0;
      resourceName_ = "";
      campaign_ = "";
      phoneNumber_ = null;
      if (phoneNumberBuilder_ != null) {
        phoneNumberBuilder_.dispose();
        phoneNumberBuilder_ = null;
      }
      advertisingLanguageCode_ = "";
      if (adOptimizedBusinessProfileSettingBuilder_ != null) {
        adOptimizedBusinessProfileSettingBuilder_.clear();
      }
      landingPageCase_ = 0;
      landingPage_ = null;
      businessSettingCase_ = 0;
      businessSetting_ = null;
      return this;
    }

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

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

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

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

    private void buildPartial0(com.google.ads.googleads.v13.resources.SmartCampaignSetting result) {
      int from_bitField0_ = bitField0_;
      if (((from_bitField0_ & 0x00000001) != 0)) {
        result.resourceName_ = resourceName_;
      }
      if (((from_bitField0_ & 0x00000002) != 0)) {
        result.campaign_ = campaign_;
      }
      if (((from_bitField0_ & 0x00000004) != 0)) {
        result.phoneNumber_ = phoneNumberBuilder_ == null
            ? phoneNumber_
            : phoneNumberBuilder_.build();
      }
      if (((from_bitField0_ & 0x00000008) != 0)) {
        result.advertisingLanguageCode_ = advertisingLanguageCode_;
      }
    }

    private void buildPartialOneofs(com.google.ads.googleads.v13.resources.SmartCampaignSetting result) {
      result.landingPageCase_ = landingPageCase_;
      result.landingPage_ = this.landingPage_;
      if (landingPageCase_ == 9 &&
          adOptimizedBusinessProfileSettingBuilder_ != null) {
        result.landingPage_ = adOptimizedBusinessProfileSettingBuilder_.build();
      }
      result.businessSettingCase_ = businessSettingCase_;
      result.businessSetting_ = this.businessSetting_;
    }

    @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.SmartCampaignSetting) {
        return mergeFrom((com.google.ads.googleads.v13.resources.SmartCampaignSetting)other);
      } else {
        super.mergeFrom(other);
        return this;
      }
    }

    public Builder mergeFrom(com.google.ads.googleads.v13.resources.SmartCampaignSetting other) {
      if (other == com.google.ads.googleads.v13.resources.SmartCampaignSetting.getDefaultInstance()) return this;
      if (!other.getResourceName().isEmpty()) {
        resourceName_ = other.resourceName_;
        bitField0_ |= 0x00000001;
        onChanged();
      }
      if (!other.getCampaign().isEmpty()) {
        campaign_ = other.campaign_;
        bitField0_ |= 0x00000002;
        onChanged();
      }
      if (other.hasPhoneNumber()) {
        mergePhoneNumber(other.getPhoneNumber());
      }
      if (!other.getAdvertisingLanguageCode().isEmpty()) {
        advertisingLanguageCode_ = other.advertisingLanguageCode_;
        bitField0_ |= 0x00000008;
        onChanged();
      }
      switch (other.getLandingPageCase()) {
        case FINAL_URL: {
          landingPageCase_ = 8;
          landingPage_ = other.landingPage_;
          onChanged();
          break;
        }
        case AD_OPTIMIZED_BUSINESS_PROFILE_SETTING: {
          mergeAdOptimizedBusinessProfileSetting(other.getAdOptimizedBusinessProfileSetting());
          break;
        }
        case LANDINGPAGE_NOT_SET: {
          break;
        }
      }
      switch (other.getBusinessSettingCase()) {
        case BUSINESS_NAME: {
          businessSettingCase_ = 5;
          businessSetting_ = other.businessSetting_;
          onChanged();
          break;
        }
        case BUSINESS_PROFILE_LOCATION: {
          businessSettingCase_ = 10;
          businessSetting_ = other.businessSetting_;
          onChanged();
          break;
        }
        case BUSINESSSETTING_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 18: {
              campaign_ = input.readStringRequireUtf8();
              bitField0_ |= 0x00000002;
              break;
            } // case 18
            case 26: {
              input.readMessage(
                  getPhoneNumberFieldBuilder().getBuilder(),
                  extensionRegistry);
              bitField0_ |= 0x00000004;
              break;
            } // case 26
            case 42: {
              java.lang.String s = input.readStringRequireUtf8();
              businessSettingCase_ = 5;
              businessSetting_ = s;
              break;
            } // case 42
            case 58: {
              advertisingLanguageCode_ = input.readStringRequireUtf8();
              bitField0_ |= 0x00000008;
              break;
            } // case 58
            case 66: {
              java.lang.String s = input.readStringRequireUtf8();
              landingPageCase_ = 8;
              landingPage_ = s;
              break;
            } // case 66
            case 74: {
              input.readMessage(
                  getAdOptimizedBusinessProfileSettingFieldBuilder().getBuilder(),
                  extensionRegistry);
              landingPageCase_ = 9;
              break;
            } // case 74
            case 82: {
              java.lang.String s = input.readStringRequireUtf8();
              businessSettingCase_ = 10;
              businessSetting_ = s;
              break;
            } // case 82
            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 landingPageCase_ = 0;
    private java.lang.Object landingPage_;
    public LandingPageCase
        getLandingPageCase() {
      return LandingPageCase.forNumber(
          landingPageCase_);
    }

    public Builder clearLandingPage() {
      landingPageCase_ = 0;
      landingPage_ = null;
      onChanged();
      return this;
    }

    private int businessSettingCase_ = 0;
    private java.lang.Object businessSetting_;
    public BusinessSettingCase
        getBusinessSettingCase() {
      return BusinessSettingCase.forNumber(
          businessSettingCase_);
    }

    public Builder clearBusinessSetting() {
      businessSettingCase_ = 0;
      businessSetting_ = null;
      onChanged();
      return this;
    }

    private int bitField0_;

    private java.lang.Object resourceName_ = "";
    /**
     * <pre>
     * Immutable. The resource name of the Smart campaign setting.
     * Smart campaign setting resource names have the form:
     *
     * `customers/{customer_id}/smartCampaignSettings/{campaign_id}`
     * </pre>
     *
     * <code>string resource_name = 1 [(.google.api.field_behavior) = IMMUTABLE, (.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>
     * Immutable. The resource name of the Smart campaign setting.
     * Smart campaign setting resource names have the form:
     *
     * `customers/{customer_id}/smartCampaignSettings/{campaign_id}`
     * </pre>
     *
     * <code>string resource_name = 1 [(.google.api.field_behavior) = IMMUTABLE, (.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>
     * Immutable. The resource name of the Smart campaign setting.
     * Smart campaign setting resource names have the form:
     *
     * `customers/{customer_id}/smartCampaignSettings/{campaign_id}`
     * </pre>
     *
     * <code>string resource_name = 1 [(.google.api.field_behavior) = IMMUTABLE, (.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>
     * Immutable. The resource name of the Smart campaign setting.
     * Smart campaign setting resource names have the form:
     *
     * `customers/{customer_id}/smartCampaignSettings/{campaign_id}`
     * </pre>
     *
     * <code>string resource_name = 1 [(.google.api.field_behavior) = IMMUTABLE, (.google.api.resource_reference) = { ... }</code>
     * @return This builder for chaining.
     */
    public Builder clearResourceName() {
      resourceName_ = getDefaultInstance().getResourceName();
      bitField0_ = (bitField0_ & ~0x00000001);
      onChanged();
      return this;
    }
    /**
     * <pre>
     * Immutable. The resource name of the Smart campaign setting.
     * Smart campaign setting resource names have the form:
     *
     * `customers/{customer_id}/smartCampaignSettings/{campaign_id}`
     * </pre>
     *
     * <code>string resource_name = 1 [(.google.api.field_behavior) = IMMUTABLE, (.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 java.lang.Object campaign_ = "";
    /**
     * <pre>
     * Output only. The campaign to which these settings apply.
     * </pre>
     *
     * <code>string campaign = 2 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.resource_reference) = { ... }</code>
     * @return The campaign.
     */
    public java.lang.String getCampaign() {
      java.lang.Object ref = campaign_;
      if (!(ref instanceof java.lang.String)) {
        com.google.protobuf.ByteString bs =
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        campaign_ = s;
        return s;
      } else {
        return (java.lang.String) ref;
      }
    }
    /**
     * <pre>
     * Output only. The campaign to which these settings apply.
     * </pre>
     *
     * <code>string campaign = 2 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.resource_reference) = { ... }</code>
     * @return The bytes for campaign.
     */
    public com.google.protobuf.ByteString
        getCampaignBytes() {
      java.lang.Object ref = campaign_;
      if (ref instanceof String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        campaign_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    /**
     * <pre>
     * Output only. The campaign to which these settings apply.
     * </pre>
     *
     * <code>string campaign = 2 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.resource_reference) = { ... }</code>
     * @param value The campaign to set.
     * @return This builder for chaining.
     */
    public Builder setCampaign(
        java.lang.String value) {
      if (value == null) { throw new NullPointerException(); }
      campaign_ = value;
      bitField0_ |= 0x00000002;
      onChanged();
      return this;
    }
    /**
     * <pre>
     * Output only. The campaign to which these settings apply.
     * </pre>
     *
     * <code>string campaign = 2 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.resource_reference) = { ... }</code>
     * @return This builder for chaining.
     */
    public Builder clearCampaign() {
      campaign_ = getDefaultInstance().getCampaign();
      bitField0_ = (bitField0_ & ~0x00000002);
      onChanged();
      return this;
    }
    /**
     * <pre>
     * Output only. The campaign to which these settings apply.
     * </pre>
     *
     * <code>string campaign = 2 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.resource_reference) = { ... }</code>
     * @param value The bytes for campaign to set.
     * @return This builder for chaining.
     */
    public Builder setCampaignBytes(
        com.google.protobuf.ByteString value) {
      if (value == null) { throw new NullPointerException(); }
      checkByteStringIsUtf8(value);
      campaign_ = value;
      bitField0_ |= 0x00000002;
      onChanged();
      return this;
    }

    private com.google.ads.googleads.v13.resources.SmartCampaignSetting.PhoneNumber phoneNumber_;
    private com.google.protobuf.SingleFieldBuilderV3<
        com.google.ads.googleads.v13.resources.SmartCampaignSetting.PhoneNumber, com.google.ads.googleads.v13.resources.SmartCampaignSetting.PhoneNumber.Builder, com.google.ads.googleads.v13.resources.SmartCampaignSetting.PhoneNumberOrBuilder> phoneNumberBuilder_;
    /**
     * <pre>
     * Phone number and country code.
     * </pre>
     *
     * <code>.google.ads.googleads.v13.resources.SmartCampaignSetting.PhoneNumber phone_number = 3;</code>
     * @return Whether the phoneNumber field is set.
     */
    public boolean hasPhoneNumber() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <pre>
     * Phone number and country code.
     * </pre>
     *
     * <code>.google.ads.googleads.v13.resources.SmartCampaignSetting.PhoneNumber phone_number = 3;</code>
     * @return The phoneNumber.
     */
    public com.google.ads.googleads.v13.resources.SmartCampaignSetting.PhoneNumber getPhoneNumber() {
      if (phoneNumberBuilder_ == null) {
        return phoneNumber_ == null ? com.google.ads.googleads.v13.resources.SmartCampaignSetting.PhoneNumber.getDefaultInstance() : phoneNumber_;
      } else {
        return phoneNumberBuilder_.getMessage();
      }
    }
    /**
     * <pre>
     * Phone number and country code.
     * </pre>
     *
     * <code>.google.ads.googleads.v13.resources.SmartCampaignSetting.PhoneNumber phone_number = 3;</code>
     */
    public Builder setPhoneNumber(com.google.ads.googleads.v13.resources.SmartCampaignSetting.PhoneNumber value) {
      if (phoneNumberBuilder_ == null) {
        if (value == null) {
          throw new NullPointerException();
        }
        phoneNumber_ = value;
      } else {
        phoneNumberBuilder_.setMessage(value);
      }
      bitField0_ |= 0x00000004;
      onChanged();
      return this;
    }
    /**
     * <pre>
     * Phone number and country code.
     * </pre>
     *
     * <code>.google.ads.googleads.v13.resources.SmartCampaignSetting.PhoneNumber phone_number = 3;</code>
     */
    public Builder setPhoneNumber(
        com.google.ads.googleads.v13.resources.SmartCampaignSetting.PhoneNumber.Builder builderForValue) {
      if (phoneNumberBuilder_ == null) {
        phoneNumber_ = builderForValue.build();
      } else {
        phoneNumberBuilder_.setMessage(builderForValue.build());
      }
      bitField0_ |= 0x00000004;
      onChanged();
      return this;
    }
    /**
     * <pre>
     * Phone number and country code.
     * </pre>
     *
     * <code>.google.ads.googleads.v13.resources.SmartCampaignSetting.PhoneNumber phone_number = 3;</code>
     */
    public Builder mergePhoneNumber(com.google.ads.googleads.v13.resources.SmartCampaignSetting.PhoneNumber value) {
      if (phoneNumberBuilder_ == null) {
        if (((bitField0_ & 0x00000004) != 0) &&
          phoneNumber_ != null &&
          phoneNumber_ != com.google.ads.googleads.v13.resources.SmartCampaignSetting.PhoneNumber.getDefaultInstance()) {
          getPhoneNumberBuilder().mergeFrom(value);
        } else {
          phoneNumber_ = value;
        }
      } else {
        phoneNumberBuilder_.mergeFrom(value);
      }
      bitField0_ |= 0x00000004;
      onChanged();
      return this;
    }
    /**
     * <pre>
     * Phone number and country code.
     * </pre>
     *
     * <code>.google.ads.googleads.v13.resources.SmartCampaignSetting.PhoneNumber phone_number = 3;</code>
     */
    public Builder clearPhoneNumber() {
      bitField0_ = (bitField0_ & ~0x00000004);
      phoneNumber_ = null;
      if (phoneNumberBuilder_ != null) {
        phoneNumberBuilder_.dispose();
        phoneNumberBuilder_ = null;
      }
      onChanged();
      return this;
    }
    /**
     * <pre>
     * Phone number and country code.
     * </pre>
     *
     * <code>.google.ads.googleads.v13.resources.SmartCampaignSetting.PhoneNumber phone_number = 3;</code>
     */
    public com.google.ads.googleads.v13.resources.SmartCampaignSetting.PhoneNumber.Builder getPhoneNumberBuilder() {
      bitField0_ |= 0x00000004;
      onChanged();
      return getPhoneNumberFieldBuilder().getBuilder();
    }
    /**
     * <pre>
     * Phone number and country code.
     * </pre>
     *
     * <code>.google.ads.googleads.v13.resources.SmartCampaignSetting.PhoneNumber phone_number = 3;</code>
     */
    public com.google.ads.googleads.v13.resources.SmartCampaignSetting.PhoneNumberOrBuilder getPhoneNumberOrBuilder() {
      if (phoneNumberBuilder_ != null) {
        return phoneNumberBuilder_.getMessageOrBuilder();
      } else {
        return phoneNumber_ == null ?
            com.google.ads.googleads.v13.resources.SmartCampaignSetting.PhoneNumber.getDefaultInstance() : phoneNumber_;
      }
    }
    /**
     * <pre>
     * Phone number and country code.
     * </pre>
     *
     * <code>.google.ads.googleads.v13.resources.SmartCampaignSetting.PhoneNumber phone_number = 3;</code>
     */
    private com.google.protobuf.SingleFieldBuilderV3<
        com.google.ads.googleads.v13.resources.SmartCampaignSetting.PhoneNumber, com.google.ads.googleads.v13.resources.SmartCampaignSetting.PhoneNumber.Builder, com.google.ads.googleads.v13.resources.SmartCampaignSetting.PhoneNumberOrBuilder> 
        getPhoneNumberFieldBuilder() {
      if (phoneNumberBuilder_ == null) {
        phoneNumberBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
            com.google.ads.googleads.v13.resources.SmartCampaignSetting.PhoneNumber, com.google.ads.googleads.v13.resources.SmartCampaignSetting.PhoneNumber.Builder, com.google.ads.googleads.v13.resources.SmartCampaignSetting.PhoneNumberOrBuilder>(
                getPhoneNumber(),
                getParentForChildren(),
                isClean());
        phoneNumber_ = null;
      }
      return phoneNumberBuilder_;
    }

    private java.lang.Object advertisingLanguageCode_ = "";
    /**
     * <pre>
     * The language code to advertise in from the set of
     * [supported language codes]
     * (https://developers.google.com/google-ads/api/reference/data/codes-formats#languages).
     * </pre>
     *
     * <code>string advertising_language_code = 7;</code>
     * @return The advertisingLanguageCode.
     */
    public java.lang.String getAdvertisingLanguageCode() {
      java.lang.Object ref = advertisingLanguageCode_;
      if (!(ref instanceof java.lang.String)) {
        com.google.protobuf.ByteString bs =
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        advertisingLanguageCode_ = s;
        return s;
      } else {
        return (java.lang.String) ref;
      }
    }
    /**
     * <pre>
     * The language code to advertise in from the set of
     * [supported language codes]
     * (https://developers.google.com/google-ads/api/reference/data/codes-formats#languages).
     * </pre>
     *
     * <code>string advertising_language_code = 7;</code>
     * @return The bytes for advertisingLanguageCode.
     */
    public com.google.protobuf.ByteString
        getAdvertisingLanguageCodeBytes() {
      java.lang.Object ref = advertisingLanguageCode_;
      if (ref instanceof String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        advertisingLanguageCode_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    /**
     * <pre>
     * The language code to advertise in from the set of
     * [supported language codes]
     * (https://developers.google.com/google-ads/api/reference/data/codes-formats#languages).
     * </pre>
     *
     * <code>string advertising_language_code = 7;</code>
     * @param value The advertisingLanguageCode to set.
     * @return This builder for chaining.
     */
    public Builder setAdvertisingLanguageCode(
        java.lang.String value) {
      if (value == null) { throw new NullPointerException(); }
      advertisingLanguageCode_ = value;
      bitField0_ |= 0x00000008;
      onChanged();
      return this;
    }
    /**
     * <pre>
     * The language code to advertise in from the set of
     * [supported language codes]
     * (https://developers.google.com/google-ads/api/reference/data/codes-formats#languages).
     * </pre>
     *
     * <code>string advertising_language_code = 7;</code>
     * @return This builder for chaining.
     */
    public Builder clearAdvertisingLanguageCode() {
      advertisingLanguageCode_ = getDefaultInstance().getAdvertisingLanguageCode();
      bitField0_ = (bitField0_ & ~0x00000008);
      onChanged();
      return this;
    }
    /**
     * <pre>
     * The language code to advertise in from the set of
     * [supported language codes]
     * (https://developers.google.com/google-ads/api/reference/data/codes-formats#languages).
     * </pre>
     *
     * <code>string advertising_language_code = 7;</code>
     * @param value The bytes for advertisingLanguageCode to set.
     * @return This builder for chaining.
     */
    public Builder setAdvertisingLanguageCodeBytes(
        com.google.protobuf.ByteString value) {
      if (value == null) { throw new NullPointerException(); }
      checkByteStringIsUtf8(value);
      advertisingLanguageCode_ = value;
      bitField0_ |= 0x00000008;
      onChanged();
      return this;
    }

    /**
     * <pre>
     * The user-provided landing page URL for this Campaign.
     * </pre>
     *
     * <code>string final_url = 8;</code>
     * @return Whether the finalUrl field is set.
     */
    @java.lang.Override
    public boolean hasFinalUrl() {
      return landingPageCase_ == 8;
    }
    /**
     * <pre>
     * The user-provided landing page URL for this Campaign.
     * </pre>
     *
     * <code>string final_url = 8;</code>
     * @return The finalUrl.
     */
    @java.lang.Override
    public java.lang.String getFinalUrl() {
      java.lang.Object ref = "";
      if (landingPageCase_ == 8) {
        ref = landingPage_;
      }
      if (!(ref instanceof java.lang.String)) {
        com.google.protobuf.ByteString bs =
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (landingPageCase_ == 8) {
          landingPage_ = s;
        }
        return s;
      } else {
        return (java.lang.String) ref;
      }
    }
    /**
     * <pre>
     * The user-provided landing page URL for this Campaign.
     * </pre>
     *
     * <code>string final_url = 8;</code>
     * @return The bytes for finalUrl.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getFinalUrlBytes() {
      java.lang.Object ref = "";
      if (landingPageCase_ == 8) {
        ref = landingPage_;
      }
      if (ref instanceof String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        if (landingPageCase_ == 8) {
          landingPage_ = b;
        }
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    /**
     * <pre>
     * The user-provided landing page URL for this Campaign.
     * </pre>
     *
     * <code>string final_url = 8;</code>
     * @param value The finalUrl to set.
     * @return This builder for chaining.
     */
    public Builder setFinalUrl(
        java.lang.String value) {
      if (value == null) { throw new NullPointerException(); }
      landingPageCase_ = 8;
      landingPage_ = value;
      onChanged();
      return this;
    }
    /**
     * <pre>
     * The user-provided landing page URL for this Campaign.
     * </pre>
     *
     * <code>string final_url = 8;</code>
     * @return This builder for chaining.
     */
    public Builder clearFinalUrl() {
      if (landingPageCase_ == 8) {
        landingPageCase_ = 0;
        landingPage_ = null;
        onChanged();
      }
      return this;
    }
    /**
     * <pre>
     * The user-provided landing page URL for this Campaign.
     * </pre>
     *
     * <code>string final_url = 8;</code>
     * @param value The bytes for finalUrl to set.
     * @return This builder for chaining.
     */
    public Builder setFinalUrlBytes(
        com.google.protobuf.ByteString value) {
      if (value == null) { throw new NullPointerException(); }
      checkByteStringIsUtf8(value);
      landingPageCase_ = 8;
      landingPage_ = value;
      onChanged();
      return this;
    }

    private com.google.protobuf.SingleFieldBuilderV3<
        com.google.ads.googleads.v13.resources.SmartCampaignSetting.AdOptimizedBusinessProfileSetting, com.google.ads.googleads.v13.resources.SmartCampaignSetting.AdOptimizedBusinessProfileSetting.Builder, com.google.ads.googleads.v13.resources.SmartCampaignSetting.AdOptimizedBusinessProfileSettingOrBuilder> adOptimizedBusinessProfileSettingBuilder_;
    /**
     * <pre>
     * Settings for configuring a business profile optimized for ads as this
     * campaign's landing page.  This campaign must be linked to a business
     * profile to use this option.  For more information on this feature,
     * consult https://support.google.com/google-ads/answer/9827068.
     * </pre>
     *
     * <code>.google.ads.googleads.v13.resources.SmartCampaignSetting.AdOptimizedBusinessProfileSetting ad_optimized_business_profile_setting = 9;</code>
     * @return Whether the adOptimizedBusinessProfileSetting field is set.
     */
    @java.lang.Override
    public boolean hasAdOptimizedBusinessProfileSetting() {
      return landingPageCase_ == 9;
    }
    /**
     * <pre>
     * Settings for configuring a business profile optimized for ads as this
     * campaign's landing page.  This campaign must be linked to a business
     * profile to use this option.  For more information on this feature,
     * consult https://support.google.com/google-ads/answer/9827068.
     * </pre>
     *
     * <code>.google.ads.googleads.v13.resources.SmartCampaignSetting.AdOptimizedBusinessProfileSetting ad_optimized_business_profile_setting = 9;</code>
     * @return The adOptimizedBusinessProfileSetting.
     */
    @java.lang.Override
    public com.google.ads.googleads.v13.resources.SmartCampaignSetting.AdOptimizedBusinessProfileSetting getAdOptimizedBusinessProfileSetting() {
      if (adOptimizedBusinessProfileSettingBuilder_ == null) {
        if (landingPageCase_ == 9) {
          return (com.google.ads.googleads.v13.resources.SmartCampaignSetting.AdOptimizedBusinessProfileSetting) landingPage_;
        }
        return com.google.ads.googleads.v13.resources.SmartCampaignSetting.AdOptimizedBusinessProfileSetting.getDefaultInstance();
      } else {
        if (landingPageCase_ == 9) {
          return adOptimizedBusinessProfileSettingBuilder_.getMessage();
        }
        return com.google.ads.googleads.v13.resources.SmartCampaignSetting.AdOptimizedBusinessProfileSetting.getDefaultInstance();
      }
    }
    /**
     * <pre>
     * Settings for configuring a business profile optimized for ads as this
     * campaign's landing page.  This campaign must be linked to a business
     * profile to use this option.  For more information on this feature,
     * consult https://support.google.com/google-ads/answer/9827068.
     * </pre>
     *
     * <code>.google.ads.googleads.v13.resources.SmartCampaignSetting.AdOptimizedBusinessProfileSetting ad_optimized_business_profile_setting = 9;</code>
     */
    public Builder setAdOptimizedBusinessProfileSetting(com.google.ads.googleads.v13.resources.SmartCampaignSetting.AdOptimizedBusinessProfileSetting value) {
      if (adOptimizedBusinessProfileSettingBuilder_ == null) {
        if (value == null) {
          throw new NullPointerException();
        }
        landingPage_ = value;
        onChanged();
      } else {
        adOptimizedBusinessProfileSettingBuilder_.setMessage(value);
      }
      landingPageCase_ = 9;
      return this;
    }
    /**
     * <pre>
     * Settings for configuring a business profile optimized for ads as this
     * campaign's landing page.  This campaign must be linked to a business
     * profile to use this option.  For more information on this feature,
     * consult https://support.google.com/google-ads/answer/9827068.
     * </pre>
     *
     * <code>.google.ads.googleads.v13.resources.SmartCampaignSetting.AdOptimizedBusinessProfileSetting ad_optimized_business_profile_setting = 9;</code>
     */
    public Builder setAdOptimizedBusinessProfileSetting(
        com.google.ads.googleads.v13.resources.SmartCampaignSetting.AdOptimizedBusinessProfileSetting.Builder builderForValue) {
      if (adOptimizedBusinessProfileSettingBuilder_ == null) {
        landingPage_ = builderForValue.build();
        onChanged();
      } else {
        adOptimizedBusinessProfileSettingBuilder_.setMessage(builderForValue.build());
      }
      landingPageCase_ = 9;
      return this;
    }
    /**
     * <pre>
     * Settings for configuring a business profile optimized for ads as this
     * campaign's landing page.  This campaign must be linked to a business
     * profile to use this option.  For more information on this feature,
     * consult https://support.google.com/google-ads/answer/9827068.
     * </pre>
     *
     * <code>.google.ads.googleads.v13.resources.SmartCampaignSetting.AdOptimizedBusinessProfileSetting ad_optimized_business_profile_setting = 9;</code>
     */
    public Builder mergeAdOptimizedBusinessProfileSetting(com.google.ads.googleads.v13.resources.SmartCampaignSetting.AdOptimizedBusinessProfileSetting value) {
      if (adOptimizedBusinessProfileSettingBuilder_ == null) {
        if (landingPageCase_ == 9 &&
            landingPage_ != com.google.ads.googleads.v13.resources.SmartCampaignSetting.AdOptimizedBusinessProfileSetting.getDefaultInstance()) {
          landingPage_ = com.google.ads.googleads.v13.resources.SmartCampaignSetting.AdOptimizedBusinessProfileSetting.newBuilder((com.google.ads.googleads.v13.resources.SmartCampaignSetting.AdOptimizedBusinessProfileSetting) landingPage_)
              .mergeFrom(value).buildPartial();
        } else {
          landingPage_ = value;
        }
        onChanged();
      } else {
        if (landingPageCase_ == 9) {
          adOptimizedBusinessProfileSettingBuilder_.mergeFrom(value);
        } else {
          adOptimizedBusinessProfileSettingBuilder_.setMessage(value);
        }
      }
      landingPageCase_ = 9;
      return this;
    }
    /**
     * <pre>
     * Settings for configuring a business profile optimized for ads as this
     * campaign's landing page.  This campaign must be linked to a business
     * profile to use this option.  For more information on this feature,
     * consult https://support.google.com/google-ads/answer/9827068.
     * </pre>
     *
     * <code>.google.ads.googleads.v13.resources.SmartCampaignSetting.AdOptimizedBusinessProfileSetting ad_optimized_business_profile_setting = 9;</code>
     */
    public Builder clearAdOptimizedBusinessProfileSetting() {
      if (adOptimizedBusinessProfileSettingBuilder_ == null) {
        if (landingPageCase_ == 9) {
          landingPageCase_ = 0;
          landingPage_ = null;
          onChanged();
        }
      } else {
        if (landingPageCase_ == 9) {
          landingPageCase_ = 0;
          landingPage_ = null;
        }
        adOptimizedBusinessProfileSettingBuilder_.clear();
      }
      return this;
    }
    /**
     * <pre>
     * Settings for configuring a business profile optimized for ads as this
     * campaign's landing page.  This campaign must be linked to a business
     * profile to use this option.  For more information on this feature,
     * consult https://support.google.com/google-ads/answer/9827068.
     * </pre>
     *
     * <code>.google.ads.googleads.v13.resources.SmartCampaignSetting.AdOptimizedBusinessProfileSetting ad_optimized_business_profile_setting = 9;</code>
     */
    public com.google.ads.googleads.v13.resources.SmartCampaignSetting.AdOptimizedBusinessProfileSetting.Builder getAdOptimizedBusinessProfileSettingBuilder() {
      return getAdOptimizedBusinessProfileSettingFieldBuilder().getBuilder();
    }
    /**
     * <pre>
     * Settings for configuring a business profile optimized for ads as this
     * campaign's landing page.  This campaign must be linked to a business
     * profile to use this option.  For more information on this feature,
     * consult https://support.google.com/google-ads/answer/9827068.
     * </pre>
     *
     * <code>.google.ads.googleads.v13.resources.SmartCampaignSetting.AdOptimizedBusinessProfileSetting ad_optimized_business_profile_setting = 9;</code>
     */
    @java.lang.Override
    public com.google.ads.googleads.v13.resources.SmartCampaignSetting.AdOptimizedBusinessProfileSettingOrBuilder getAdOptimizedBusinessProfileSettingOrBuilder() {
      if ((landingPageCase_ == 9) && (adOptimizedBusinessProfileSettingBuilder_ != null)) {
        return adOptimizedBusinessProfileSettingBuilder_.getMessageOrBuilder();
      } else {
        if (landingPageCase_ == 9) {
          return (com.google.ads.googleads.v13.resources.SmartCampaignSetting.AdOptimizedBusinessProfileSetting) landingPage_;
        }
        return com.google.ads.googleads.v13.resources.SmartCampaignSetting.AdOptimizedBusinessProfileSetting.getDefaultInstance();
      }
    }
    /**
     * <pre>
     * Settings for configuring a business profile optimized for ads as this
     * campaign's landing page.  This campaign must be linked to a business
     * profile to use this option.  For more information on this feature,
     * consult https://support.google.com/google-ads/answer/9827068.
     * </pre>
     *
     * <code>.google.ads.googleads.v13.resources.SmartCampaignSetting.AdOptimizedBusinessProfileSetting ad_optimized_business_profile_setting = 9;</code>
     */
    private com.google.protobuf.SingleFieldBuilderV3<
        com.google.ads.googleads.v13.resources.SmartCampaignSetting.AdOptimizedBusinessProfileSetting, com.google.ads.googleads.v13.resources.SmartCampaignSetting.AdOptimizedBusinessProfileSetting.Builder, com.google.ads.googleads.v13.resources.SmartCampaignSetting.AdOptimizedBusinessProfileSettingOrBuilder> 
        getAdOptimizedBusinessProfileSettingFieldBuilder() {
      if (adOptimizedBusinessProfileSettingBuilder_ == null) {
        if (!(landingPageCase_ == 9)) {
          landingPage_ = com.google.ads.googleads.v13.resources.SmartCampaignSetting.AdOptimizedBusinessProfileSetting.getDefaultInstance();
        }
        adOptimizedBusinessProfileSettingBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
            com.google.ads.googleads.v13.resources.SmartCampaignSetting.AdOptimizedBusinessProfileSetting, com.google.ads.googleads.v13.resources.SmartCampaignSetting.AdOptimizedBusinessProfileSetting.Builder, com.google.ads.googleads.v13.resources.SmartCampaignSetting.AdOptimizedBusinessProfileSettingOrBuilder>(
                (com.google.ads.googleads.v13.resources.SmartCampaignSetting.AdOptimizedBusinessProfileSetting) landingPage_,
                getParentForChildren(),
                isClean());
        landingPage_ = null;
      }
      landingPageCase_ = 9;
      onChanged();
      return adOptimizedBusinessProfileSettingBuilder_;
    }

    /**
     * <pre>
     * The name of the business.
     * </pre>
     *
     * <code>string business_name = 5;</code>
     * @return Whether the businessName field is set.
     */
    @java.lang.Override
    public boolean hasBusinessName() {
      return businessSettingCase_ == 5;
    }
    /**
     * <pre>
     * The name of the business.
     * </pre>
     *
     * <code>string business_name = 5;</code>
     * @return The businessName.
     */
    @java.lang.Override
    public java.lang.String getBusinessName() {
      java.lang.Object ref = "";
      if (businessSettingCase_ == 5) {
        ref = businessSetting_;
      }
      if (!(ref instanceof java.lang.String)) {
        com.google.protobuf.ByteString bs =
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (businessSettingCase_ == 5) {
          businessSetting_ = s;
        }
        return s;
      } else {
        return (java.lang.String) ref;
      }
    }
    /**
     * <pre>
     * The name of the business.
     * </pre>
     *
     * <code>string business_name = 5;</code>
     * @return The bytes for businessName.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getBusinessNameBytes() {
      java.lang.Object ref = "";
      if (businessSettingCase_ == 5) {
        ref = businessSetting_;
      }
      if (ref instanceof String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        if (businessSettingCase_ == 5) {
          businessSetting_ = b;
        }
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    /**
     * <pre>
     * The name of the business.
     * </pre>
     *
     * <code>string business_name = 5;</code>
     * @param value The businessName to set.
     * @return This builder for chaining.
     */
    public Builder setBusinessName(
        java.lang.String value) {
      if (value == null) { throw new NullPointerException(); }
      businessSettingCase_ = 5;
      businessSetting_ = value;
      onChanged();
      return this;
    }
    /**
     * <pre>
     * The name of the business.
     * </pre>
     *
     * <code>string business_name = 5;</code>
     * @return This builder for chaining.
     */
    public Builder clearBusinessName() {
      if (businessSettingCase_ == 5) {
        businessSettingCase_ = 0;
        businessSetting_ = null;
        onChanged();
      }
      return this;
    }
    /**
     * <pre>
     * The name of the business.
     * </pre>
     *
     * <code>string business_name = 5;</code>
     * @param value The bytes for businessName to set.
     * @return This builder for chaining.
     */
    public Builder setBusinessNameBytes(
        com.google.protobuf.ByteString value) {
      if (value == null) { throw new NullPointerException(); }
      checkByteStringIsUtf8(value);
      businessSettingCase_ = 5;
      businessSetting_ = value;
      onChanged();
      return this;
    }

    /**
     * <pre>
     * The resource name of a Business Profile location.
     * Business Profile location resource names can be fetched through the
     * Business Profile API and adhere to the following format:
     * `locations/{locationId}`.
     *
     * See the [Business Profile API]
     * (https://developers.google.com/my-business/reference/businessinformation/rest/v1/accounts.locations)
     * for additional details.
     * </pre>
     *
     * <code>string business_profile_location = 10;</code>
     * @return Whether the businessProfileLocation field is set.
     */
    @java.lang.Override
    public boolean hasBusinessProfileLocation() {
      return businessSettingCase_ == 10;
    }
    /**
     * <pre>
     * The resource name of a Business Profile location.
     * Business Profile location resource names can be fetched through the
     * Business Profile API and adhere to the following format:
     * `locations/{locationId}`.
     *
     * See the [Business Profile API]
     * (https://developers.google.com/my-business/reference/businessinformation/rest/v1/accounts.locations)
     * for additional details.
     * </pre>
     *
     * <code>string business_profile_location = 10;</code>
     * @return The businessProfileLocation.
     */
    @java.lang.Override
    public java.lang.String getBusinessProfileLocation() {
      java.lang.Object ref = "";
      if (businessSettingCase_ == 10) {
        ref = businessSetting_;
      }
      if (!(ref instanceof java.lang.String)) {
        com.google.protobuf.ByteString bs =
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (businessSettingCase_ == 10) {
          businessSetting_ = s;
        }
        return s;
      } else {
        return (java.lang.String) ref;
      }
    }
    /**
     * <pre>
     * The resource name of a Business Profile location.
     * Business Profile location resource names can be fetched through the
     * Business Profile API and adhere to the following format:
     * `locations/{locationId}`.
     *
     * See the [Business Profile API]
     * (https://developers.google.com/my-business/reference/businessinformation/rest/v1/accounts.locations)
     * for additional details.
     * </pre>
     *
     * <code>string business_profile_location = 10;</code>
     * @return The bytes for businessProfileLocation.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getBusinessProfileLocationBytes() {
      java.lang.Object ref = "";
      if (businessSettingCase_ == 10) {
        ref = businessSetting_;
      }
      if (ref instanceof String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        if (businessSettingCase_ == 10) {
          businessSetting_ = b;
        }
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    /**
     * <pre>
     * The resource name of a Business Profile location.
     * Business Profile location resource names can be fetched through the
     * Business Profile API and adhere to the following format:
     * `locations/{locationId}`.
     *
     * See the [Business Profile API]
     * (https://developers.google.com/my-business/reference/businessinformation/rest/v1/accounts.locations)
     * for additional details.
     * </pre>
     *
     * <code>string business_profile_location = 10;</code>
     * @param value The businessProfileLocation to set.
     * @return This builder for chaining.
     */
    public Builder setBusinessProfileLocation(
        java.lang.String value) {
      if (value == null) { throw new NullPointerException(); }
      businessSettingCase_ = 10;
      businessSetting_ = value;
      onChanged();
      return this;
    }
    /**
     * <pre>
     * The resource name of a Business Profile location.
     * Business Profile location resource names can be fetched through the
     * Business Profile API and adhere to the following format:
     * `locations/{locationId}`.
     *
     * See the [Business Profile API]
     * (https://developers.google.com/my-business/reference/businessinformation/rest/v1/accounts.locations)
     * for additional details.
     * </pre>
     *
     * <code>string business_profile_location = 10;</code>
     * @return This builder for chaining.
     */
    public Builder clearBusinessProfileLocation() {
      if (businessSettingCase_ == 10) {
        businessSettingCase_ = 0;
        businessSetting_ = null;
        onChanged();
      }
      return this;
    }
    /**
     * <pre>
     * The resource name of a Business Profile location.
     * Business Profile location resource names can be fetched through the
     * Business Profile API and adhere to the following format:
     * `locations/{locationId}`.
     *
     * See the [Business Profile API]
     * (https://developers.google.com/my-business/reference/businessinformation/rest/v1/accounts.locations)
     * for additional details.
     * </pre>
     *
     * <code>string business_profile_location = 10;</code>
     * @param value The bytes for businessProfileLocation to set.
     * @return This builder for chaining.
     */
    public Builder setBusinessProfileLocationBytes(
        com.google.protobuf.ByteString value) {
      if (value == null) { throw new NullPointerException(); }
      checkByteStringIsUtf8(value);
      businessSettingCase_ = 10;
      businessSetting_ = value;
      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.SmartCampaignSetting)
  }

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

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

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

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

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

}

