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

namespace Google\Ads\GoogleAds\V25\Services;

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

/**
 * The source used to generate benchmarks metrics for. The ID of the source can
 * be obtained from
 * [BenchmarksService.ListBenchmarksSources][google.ads.googleads.v25.services.BenchmarksService.ListBenchmarksSources].
 *
 * Generated from protobuf message <code>google.ads.googleads.v25.services.BenchmarksSource</code>
 */
class BenchmarksSource extends \Google\Protobuf\Internal\Message
{
    protected $benchmarks_source_id;

    /**
     * Constructor.
     *
     * @param array $data {
     *     Optional. Data for populating the Message object.
     *
     *     @type int|string $industry_vertical_id
     *           The ID of the Industry Vertical.
     *     @type bool $all_advertisers
     *           Comparison against all advertisers running Ads. This benchmarking option
     *           must utilize additional filters. Setting the `category_filter` is
     *           required. One or more categories will scope the metrics of both the
     *           customer and all advertisers to those selected categories.
     * }
     */
    public function __construct($data = NULL) {
        \GPBMetadata\Google\Ads\GoogleAds\V25\Services\BenchmarksService::initOnce();
        parent::__construct($data);
    }

    /**
     * The ID of the Industry Vertical.
     *
     * Generated from protobuf field <code>int64 industry_vertical_id = 1;</code>
     * @return int|string
     */
    public function getIndustryVerticalId()
    {
        return $this->readOneof(1);
    }

    public function hasIndustryVerticalId()
    {
        return $this->hasOneof(1);
    }

    /**
     * The ID of the Industry Vertical.
     *
     * Generated from protobuf field <code>int64 industry_vertical_id = 1;</code>
     * @param int|string $var
     * @return $this
     */
    public function setIndustryVerticalId($var)
    {
        GPBUtil::checkInt64($var);
        $this->writeOneof(1, $var);

        return $this;
    }

    /**
     * Comparison against all advertisers running Ads. This benchmarking option
     * must utilize additional filters. Setting the `category_filter` is
     * required. One or more categories will scope the metrics of both the
     * customer and all advertisers to those selected categories.
     *
     * Generated from protobuf field <code>bool all_advertisers = 2;</code>
     * @return bool
     */
    public function getAllAdvertisers()
    {
        return $this->readOneof(2);
    }

    public function hasAllAdvertisers()
    {
        return $this->hasOneof(2);
    }

    /**
     * Comparison against all advertisers running Ads. This benchmarking option
     * must utilize additional filters. Setting the `category_filter` is
     * required. One or more categories will scope the metrics of both the
     * customer and all advertisers to those selected categories.
     *
     * Generated from protobuf field <code>bool all_advertisers = 2;</code>
     * @param bool $var
     * @return $this
     */
    public function setAllAdvertisers($var)
    {
        GPBUtil::checkBool($var);
        $this->writeOneof(2, $var);

        return $this;
    }

    /**
     * @return string
     */
    public function getBenchmarksSourceId()
    {
        return $this->whichOneof("benchmarks_source_id");
    }

}

