<?php
# Generated by the protocol buffer compiler.  DO NOT EDIT!
# source: google/ads/googleads/v25/resources/campaign.proto

namespace Google\Ads\GoogleAds\V25\Resources\Campaign;

use Google\Protobuf\Internal\GPBType;
use Google\Protobuf\Internal\GPBUtil;
use Google\Protobuf\RepeatedField;

/**
 * Settings for AI Max in Search and Shopping campaigns.
 *
 * Generated from protobuf message <code>google.ads.googleads.v25.resources.Campaign.AiMaxSetting</code>
 */
class AiMaxSetting extends \Google\Protobuf\Internal\Message
{
    /**
     * Controls whether or not AI Max features are served for this campaign.
     * Individual AI Max features are enabled or disabled by their respective
     * settings. But if enable_ai_max is set to false or cleared, then no AI
     * Max features will serve for this campaign, regardless of the other
     * settings.
     * Supported in Search and Shopping campaigns.
     * For Search campaigns, Search Term Matching is enabled by default when
     * AI Max is enabled, and can be disabled at the ad group level.
     * For Shopping campaigns, Text customization is always enabled when AI Max
     * is enabled.
     *
     * Generated from protobuf field <code>optional bool enable_ai_max = 1;</code>
     */
    protected $enable_ai_max = null;
    /**
     * Output only. Search campaigns only. Indicates whether a campaign has
     * adopted AI Max before, and is required to have AI Max enabled to adopt
     * campaign-level text asset automation and brand list targeting in all API
     * versions.
     *
     * Generated from protobuf field <code>optional .google.ads.googleads.v25.resources.Campaign.AiMaxSetting.AiMaxBundlingRequired bundling_required = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     */
    protected $bundling_required = null;

    /**
     * Constructor.
     *
     * @param array $data {
     *     Optional. Data for populating the Message object.
     *
     *     @type bool $enable_ai_max
     *           Controls whether or not AI Max features are served for this campaign.
     *           Individual AI Max features are enabled or disabled by their respective
     *           settings. But if enable_ai_max is set to false or cleared, then no AI
     *           Max features will serve for this campaign, regardless of the other
     *           settings.
     *           Supported in Search and Shopping campaigns.
     *           For Search campaigns, Search Term Matching is enabled by default when
     *           AI Max is enabled, and can be disabled at the ad group level.
     *           For Shopping campaigns, Text customization is always enabled when AI Max
     *           is enabled.
     *     @type int $bundling_required
     *           Output only. Search campaigns only. Indicates whether a campaign has
     *           adopted AI Max before, and is required to have AI Max enabled to adopt
     *           campaign-level text asset automation and brand list targeting in all API
     *           versions.
     * }
     */
    public function __construct($data = NULL) {
        \GPBMetadata\Google\Ads\GoogleAds\V25\Resources\Campaign::initOnce();
        parent::__construct($data);
    }

    /**
     * Controls whether or not AI Max features are served for this campaign.
     * Individual AI Max features are enabled or disabled by their respective
     * settings. But if enable_ai_max is set to false or cleared, then no AI
     * Max features will serve for this campaign, regardless of the other
     * settings.
     * Supported in Search and Shopping campaigns.
     * For Search campaigns, Search Term Matching is enabled by default when
     * AI Max is enabled, and can be disabled at the ad group level.
     * For Shopping campaigns, Text customization is always enabled when AI Max
     * is enabled.
     *
     * Generated from protobuf field <code>optional bool enable_ai_max = 1;</code>
     * @return bool
     */
    public function getEnableAiMax()
    {
        return isset($this->enable_ai_max) ? $this->enable_ai_max : false;
    }

    public function hasEnableAiMax()
    {
        return isset($this->enable_ai_max);
    }

    public function clearEnableAiMax()
    {
        unset($this->enable_ai_max);
    }

    /**
     * Controls whether or not AI Max features are served for this campaign.
     * Individual AI Max features are enabled or disabled by their respective
     * settings. But if enable_ai_max is set to false or cleared, then no AI
     * Max features will serve for this campaign, regardless of the other
     * settings.
     * Supported in Search and Shopping campaigns.
     * For Search campaigns, Search Term Matching is enabled by default when
     * AI Max is enabled, and can be disabled at the ad group level.
     * For Shopping campaigns, Text customization is always enabled when AI Max
     * is enabled.
     *
     * Generated from protobuf field <code>optional bool enable_ai_max = 1;</code>
     * @param bool $var
     * @return $this
     */
    public function setEnableAiMax($var)
    {
        GPBUtil::checkBool($var);
        $this->enable_ai_max = $var;

        return $this;
    }

    /**
     * Output only. Search campaigns only. Indicates whether a campaign has
     * adopted AI Max before, and is required to have AI Max enabled to adopt
     * campaign-level text asset automation and brand list targeting in all API
     * versions.
     *
     * Generated from protobuf field <code>optional .google.ads.googleads.v25.resources.Campaign.AiMaxSetting.AiMaxBundlingRequired bundling_required = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @return int
     */
    public function getBundlingRequired()
    {
        return isset($this->bundling_required) ? $this->bundling_required : 0;
    }

    public function hasBundlingRequired()
    {
        return isset($this->bundling_required);
    }

    public function clearBundlingRequired()
    {
        unset($this->bundling_required);
    }

    /**
     * Output only. Search campaigns only. Indicates whether a campaign has
     * adopted AI Max before, and is required to have AI Max enabled to adopt
     * campaign-level text asset automation and brand list targeting in all API
     * versions.
     *
     * Generated from protobuf field <code>optional .google.ads.googleads.v25.resources.Campaign.AiMaxSetting.AiMaxBundlingRequired bundling_required = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @param int $var
     * @return $this
     */
    public function setBundlingRequired($var)
    {
        GPBUtil::checkEnum($var, \Google\Ads\GoogleAds\V25\Resources\Campaign\AiMaxSetting\AiMaxBundlingRequired::class);
        $this->bundling_required = $var;

        return $this;
    }

}

