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

namespace Google\Ads\GoogleAds\V25\Services;

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

/**
 * Search options for Knowledge Graph Entities.
 *
 * Generated from protobuf message <code>google.ads.googleads.v25.services.KnowledgeGraphEntitySearchOptions</code>
 */
class KnowledgeGraphEntitySearchOptions extends \Google\Protobuf\Internal\Message
{
    /**
     * Optional. When true, retrieves all available Knowledge Graph Entities
     * tagged with
     * [CREATOR_ATTRIBUTE][google.ads.googleads.v25.enums.InsightsKnowledgeGraphEntityCapabilitiesEnum.InsightsKnowledgeGraphEntityCapabilities.CREATOR_ATTRIBUTE].
     * KNOWLEDGE_GRAPH must be included in
     * `ListAudienceInsightsAttributesRequest.dimensions` and the `query_text`
     * must be empty.
     * This option cannot be used with
     * [search_filter][google.ads.googleads.v25.services.KnowledgeGraphEntitySearchOptions.search_filter].
     * `search_filter` respects the `query_text` when retrieving relevant entities
     * while this option returns all creator attributes available to use as an
     * input.
     *
     * Generated from protobuf field <code>bool get_all_creator_attributes = 1 [(.google.api.field_behavior) = OPTIONAL];</code>
     */
    protected $get_all_creator_attributes = false;
    /**
     * Optional. Filter options for narrowing down the scope of Knowledge Graph
     * Entities to retrieve.
     *
     * Generated from protobuf field <code>.google.ads.googleads.v25.services.KnowledgeGraphEntitySearchOptions.SearchFilter search_filter = 2 [(.google.api.field_behavior) = OPTIONAL];</code>
     */
    protected $search_filter = null;

    /**
     * Constructor.
     *
     * @param array $data {
     *     Optional. Data for populating the Message object.
     *
     *     @type bool $get_all_creator_attributes
     *           Optional. When true, retrieves all available Knowledge Graph Entities
     *           tagged with
     *           [CREATOR_ATTRIBUTE][google.ads.googleads.v25.enums.InsightsKnowledgeGraphEntityCapabilitiesEnum.InsightsKnowledgeGraphEntityCapabilities.CREATOR_ATTRIBUTE].
     *           KNOWLEDGE_GRAPH must be included in
     *           `ListAudienceInsightsAttributesRequest.dimensions` and the `query_text`
     *           must be empty.
     *           This option cannot be used with
     *           [search_filter][google.ads.googleads.v25.services.KnowledgeGraphEntitySearchOptions.search_filter].
     *           `search_filter` respects the `query_text` when retrieving relevant entities
     *           while this option returns all creator attributes available to use as an
     *           input.
     *     @type \Google\Ads\GoogleAds\V25\Services\KnowledgeGraphEntitySearchOptions\SearchFilter $search_filter
     *           Optional. Filter options for narrowing down the scope of Knowledge Graph
     *           Entities to retrieve.
     * }
     */
    public function __construct($data = NULL) {
        \GPBMetadata\Google\Ads\GoogleAds\V25\Services\AudienceInsightsService::initOnce();
        parent::__construct($data);
    }

    /**
     * Optional. When true, retrieves all available Knowledge Graph Entities
     * tagged with
     * [CREATOR_ATTRIBUTE][google.ads.googleads.v25.enums.InsightsKnowledgeGraphEntityCapabilitiesEnum.InsightsKnowledgeGraphEntityCapabilities.CREATOR_ATTRIBUTE].
     * KNOWLEDGE_GRAPH must be included in
     * `ListAudienceInsightsAttributesRequest.dimensions` and the `query_text`
     * must be empty.
     * This option cannot be used with
     * [search_filter][google.ads.googleads.v25.services.KnowledgeGraphEntitySearchOptions.search_filter].
     * `search_filter` respects the `query_text` when retrieving relevant entities
     * while this option returns all creator attributes available to use as an
     * input.
     *
     * Generated from protobuf field <code>bool get_all_creator_attributes = 1 [(.google.api.field_behavior) = OPTIONAL];</code>
     * @return bool
     */
    public function getGetAllCreatorAttributes()
    {
        return $this->get_all_creator_attributes;
    }

    /**
     * Optional. When true, retrieves all available Knowledge Graph Entities
     * tagged with
     * [CREATOR_ATTRIBUTE][google.ads.googleads.v25.enums.InsightsKnowledgeGraphEntityCapabilitiesEnum.InsightsKnowledgeGraphEntityCapabilities.CREATOR_ATTRIBUTE].
     * KNOWLEDGE_GRAPH must be included in
     * `ListAudienceInsightsAttributesRequest.dimensions` and the `query_text`
     * must be empty.
     * This option cannot be used with
     * [search_filter][google.ads.googleads.v25.services.KnowledgeGraphEntitySearchOptions.search_filter].
     * `search_filter` respects the `query_text` when retrieving relevant entities
     * while this option returns all creator attributes available to use as an
     * input.
     *
     * Generated from protobuf field <code>bool get_all_creator_attributes = 1 [(.google.api.field_behavior) = OPTIONAL];</code>
     * @param bool $var
     * @return $this
     */
    public function setGetAllCreatorAttributes($var)
    {
        GPBUtil::checkBool($var);
        $this->get_all_creator_attributes = $var;

        return $this;
    }

    /**
     * Optional. Filter options for narrowing down the scope of Knowledge Graph
     * Entities to retrieve.
     *
     * Generated from protobuf field <code>.google.ads.googleads.v25.services.KnowledgeGraphEntitySearchOptions.SearchFilter search_filter = 2 [(.google.api.field_behavior) = OPTIONAL];</code>
     * @return \Google\Ads\GoogleAds\V25\Services\KnowledgeGraphEntitySearchOptions\SearchFilter|null
     */
    public function getSearchFilter()
    {
        return $this->search_filter;
    }

    public function hasSearchFilter()
    {
        return isset($this->search_filter);
    }

    public function clearSearchFilter()
    {
        unset($this->search_filter);
    }

    /**
     * Optional. Filter options for narrowing down the scope of Knowledge Graph
     * Entities to retrieve.
     *
     * Generated from protobuf field <code>.google.ads.googleads.v25.services.KnowledgeGraphEntitySearchOptions.SearchFilter search_filter = 2 [(.google.api.field_behavior) = OPTIONAL];</code>
     * @param \Google\Ads\GoogleAds\V25\Services\KnowledgeGraphEntitySearchOptions\SearchFilter $var
     * @return $this
     */
    public function setSearchFilter($var)
    {
        GPBUtil::checkMessage($var, \Google\Ads\GoogleAds\V25\Services\KnowledgeGraphEntitySearchOptions\SearchFilter::class);
        $this->search_filter = $var;

        return $this;
    }

}

