<?php
# Generated by the protocol buffer compiler.  DO NOT EDIT!
# source: google/cloud/contactcenterinsights/v1/resources.proto

namespace Google\Cloud\ContactCenterInsights\V1;

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

/**
 * Selector of all available annotators and phrase matchers to run.
 *
 * Generated from protobuf message <code>google.cloud.contactcenterinsights.v1.AnnotatorSelector</code>
 */
class AnnotatorSelector extends \Google\Protobuf\Internal\Message
{
    /**
     * Whether to run the interruption annotator.
     *
     * Generated from protobuf field <code>bool run_interruption_annotator = 1;</code>
     */
    private $run_interruption_annotator = false;
    /**
     * Whether to run the silence annotator.
     *
     * Generated from protobuf field <code>bool run_silence_annotator = 2;</code>
     */
    private $run_silence_annotator = false;
    /**
     * Whether to run the active phrase matcher annotator(s).
     *
     * Generated from protobuf field <code>bool run_phrase_matcher_annotator = 3;</code>
     */
    private $run_phrase_matcher_annotator = false;
    /**
     * The list of phrase matchers to run. If not provided, all active phrase
     * matchers will be used. If inactive phrase matchers are provided, they will
     * not be used. Phrase matchers will be run only if
     * run_phrase_matcher_annotator is set to true. Format:
     * projects/{project}/locations/{location}/phraseMatchers/{phrase_matcher}
     *
     * Generated from protobuf field <code>repeated string phrase_matchers = 4 [(.google.api.resource_reference) = {</code>
     */
    private $phrase_matchers;
    /**
     * Whether to run the sentiment annotator.
     *
     * Generated from protobuf field <code>bool run_sentiment_annotator = 5;</code>
     */
    private $run_sentiment_annotator = false;
    /**
     * Whether to run the entity annotator.
     *
     * Generated from protobuf field <code>bool run_entity_annotator = 6;</code>
     */
    private $run_entity_annotator = false;
    /**
     * Whether to run the intent annotator.
     *
     * Generated from protobuf field <code>bool run_intent_annotator = 7;</code>
     */
    private $run_intent_annotator = false;
    /**
     * Whether to run the issue model annotator. A model should have already been
     * deployed for this to take effect.
     *
     * Generated from protobuf field <code>bool run_issue_model_annotator = 8;</code>
     */
    private $run_issue_model_annotator = false;
    /**
     * The issue model to run. If not provided, the most recently deployed topic
     * model will be used. The provided issue model will only be used for
     * inference if the issue model is deployed and if run_issue_model_annotator
     * is set to true. If more than one issue model is provided, only the first
     * provided issue model will be used for inference.
     *
     * Generated from protobuf field <code>repeated string issue_models = 10 [(.google.api.resource_reference) = {</code>
     */
    private $issue_models;
    /**
     * Whether to run the summarization annotator.
     *
     * Generated from protobuf field <code>bool run_summarization_annotator = 9;</code>
     */
    private $run_summarization_annotator = false;
    /**
     * Configuration for the summarization annotator.
     *
     * Generated from protobuf field <code>.google.cloud.contactcenterinsights.v1.AnnotatorSelector.SummarizationConfig summarization_config = 11;</code>
     */
    private $summarization_config = null;

    /**
     * Constructor.
     *
     * @param array $data {
     *     Optional. Data for populating the Message object.
     *
     *     @type bool $run_interruption_annotator
     *           Whether to run the interruption annotator.
     *     @type bool $run_silence_annotator
     *           Whether to run the silence annotator.
     *     @type bool $run_phrase_matcher_annotator
     *           Whether to run the active phrase matcher annotator(s).
     *     @type array<string>|\Google\Protobuf\Internal\RepeatedField $phrase_matchers
     *           The list of phrase matchers to run. If not provided, all active phrase
     *           matchers will be used. If inactive phrase matchers are provided, they will
     *           not be used. Phrase matchers will be run only if
     *           run_phrase_matcher_annotator is set to true. Format:
     *           projects/{project}/locations/{location}/phraseMatchers/{phrase_matcher}
     *     @type bool $run_sentiment_annotator
     *           Whether to run the sentiment annotator.
     *     @type bool $run_entity_annotator
     *           Whether to run the entity annotator.
     *     @type bool $run_intent_annotator
     *           Whether to run the intent annotator.
     *     @type bool $run_issue_model_annotator
     *           Whether to run the issue model annotator. A model should have already been
     *           deployed for this to take effect.
     *     @type array<string>|\Google\Protobuf\Internal\RepeatedField $issue_models
     *           The issue model to run. If not provided, the most recently deployed topic
     *           model will be used. The provided issue model will only be used for
     *           inference if the issue model is deployed and if run_issue_model_annotator
     *           is set to true. If more than one issue model is provided, only the first
     *           provided issue model will be used for inference.
     *     @type bool $run_summarization_annotator
     *           Whether to run the summarization annotator.
     *     @type \Google\Cloud\ContactCenterInsights\V1\AnnotatorSelector\SummarizationConfig $summarization_config
     *           Configuration for the summarization annotator.
     * }
     */
    public function __construct($data = NULL) {
        \GPBMetadata\Google\Cloud\Contactcenterinsights\V1\Resources::initOnce();
        parent::__construct($data);
    }

    /**
     * Whether to run the interruption annotator.
     *
     * Generated from protobuf field <code>bool run_interruption_annotator = 1;</code>
     * @return bool
     */
    public function getRunInterruptionAnnotator()
    {
        return $this->run_interruption_annotator;
    }

    /**
     * Whether to run the interruption annotator.
     *
     * Generated from protobuf field <code>bool run_interruption_annotator = 1;</code>
     * @param bool $var
     * @return $this
     */
    public function setRunInterruptionAnnotator($var)
    {
        GPBUtil::checkBool($var);
        $this->run_interruption_annotator = $var;

        return $this;
    }

    /**
     * Whether to run the silence annotator.
     *
     * Generated from protobuf field <code>bool run_silence_annotator = 2;</code>
     * @return bool
     */
    public function getRunSilenceAnnotator()
    {
        return $this->run_silence_annotator;
    }

    /**
     * Whether to run the silence annotator.
     *
     * Generated from protobuf field <code>bool run_silence_annotator = 2;</code>
     * @param bool $var
     * @return $this
     */
    public function setRunSilenceAnnotator($var)
    {
        GPBUtil::checkBool($var);
        $this->run_silence_annotator = $var;

        return $this;
    }

    /**
     * Whether to run the active phrase matcher annotator(s).
     *
     * Generated from protobuf field <code>bool run_phrase_matcher_annotator = 3;</code>
     * @return bool
     */
    public function getRunPhraseMatcherAnnotator()
    {
        return $this->run_phrase_matcher_annotator;
    }

    /**
     * Whether to run the active phrase matcher annotator(s).
     *
     * Generated from protobuf field <code>bool run_phrase_matcher_annotator = 3;</code>
     * @param bool $var
     * @return $this
     */
    public function setRunPhraseMatcherAnnotator($var)
    {
        GPBUtil::checkBool($var);
        $this->run_phrase_matcher_annotator = $var;

        return $this;
    }

    /**
     * The list of phrase matchers to run. If not provided, all active phrase
     * matchers will be used. If inactive phrase matchers are provided, they will
     * not be used. Phrase matchers will be run only if
     * run_phrase_matcher_annotator is set to true. Format:
     * projects/{project}/locations/{location}/phraseMatchers/{phrase_matcher}
     *
     * Generated from protobuf field <code>repeated string phrase_matchers = 4 [(.google.api.resource_reference) = {</code>
     * @return \Google\Protobuf\Internal\RepeatedField
     */
    public function getPhraseMatchers()
    {
        return $this->phrase_matchers;
    }

    /**
     * The list of phrase matchers to run. If not provided, all active phrase
     * matchers will be used. If inactive phrase matchers are provided, they will
     * not be used. Phrase matchers will be run only if
     * run_phrase_matcher_annotator is set to true. Format:
     * projects/{project}/locations/{location}/phraseMatchers/{phrase_matcher}
     *
     * Generated from protobuf field <code>repeated string phrase_matchers = 4 [(.google.api.resource_reference) = {</code>
     * @param array<string>|\Google\Protobuf\Internal\RepeatedField $var
     * @return $this
     */
    public function setPhraseMatchers($var)
    {
        $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
        $this->phrase_matchers = $arr;

        return $this;
    }

    /**
     * Whether to run the sentiment annotator.
     *
     * Generated from protobuf field <code>bool run_sentiment_annotator = 5;</code>
     * @return bool
     */
    public function getRunSentimentAnnotator()
    {
        return $this->run_sentiment_annotator;
    }

    /**
     * Whether to run the sentiment annotator.
     *
     * Generated from protobuf field <code>bool run_sentiment_annotator = 5;</code>
     * @param bool $var
     * @return $this
     */
    public function setRunSentimentAnnotator($var)
    {
        GPBUtil::checkBool($var);
        $this->run_sentiment_annotator = $var;

        return $this;
    }

    /**
     * Whether to run the entity annotator.
     *
     * Generated from protobuf field <code>bool run_entity_annotator = 6;</code>
     * @return bool
     */
    public function getRunEntityAnnotator()
    {
        return $this->run_entity_annotator;
    }

    /**
     * Whether to run the entity annotator.
     *
     * Generated from protobuf field <code>bool run_entity_annotator = 6;</code>
     * @param bool $var
     * @return $this
     */
    public function setRunEntityAnnotator($var)
    {
        GPBUtil::checkBool($var);
        $this->run_entity_annotator = $var;

        return $this;
    }

    /**
     * Whether to run the intent annotator.
     *
     * Generated from protobuf field <code>bool run_intent_annotator = 7;</code>
     * @return bool
     */
    public function getRunIntentAnnotator()
    {
        return $this->run_intent_annotator;
    }

    /**
     * Whether to run the intent annotator.
     *
     * Generated from protobuf field <code>bool run_intent_annotator = 7;</code>
     * @param bool $var
     * @return $this
     */
    public function setRunIntentAnnotator($var)
    {
        GPBUtil::checkBool($var);
        $this->run_intent_annotator = $var;

        return $this;
    }

    /**
     * Whether to run the issue model annotator. A model should have already been
     * deployed for this to take effect.
     *
     * Generated from protobuf field <code>bool run_issue_model_annotator = 8;</code>
     * @return bool
     */
    public function getRunIssueModelAnnotator()
    {
        return $this->run_issue_model_annotator;
    }

    /**
     * Whether to run the issue model annotator. A model should have already been
     * deployed for this to take effect.
     *
     * Generated from protobuf field <code>bool run_issue_model_annotator = 8;</code>
     * @param bool $var
     * @return $this
     */
    public function setRunIssueModelAnnotator($var)
    {
        GPBUtil::checkBool($var);
        $this->run_issue_model_annotator = $var;

        return $this;
    }

    /**
     * The issue model to run. If not provided, the most recently deployed topic
     * model will be used. The provided issue model will only be used for
     * inference if the issue model is deployed and if run_issue_model_annotator
     * is set to true. If more than one issue model is provided, only the first
     * provided issue model will be used for inference.
     *
     * Generated from protobuf field <code>repeated string issue_models = 10 [(.google.api.resource_reference) = {</code>
     * @return \Google\Protobuf\Internal\RepeatedField
     */
    public function getIssueModels()
    {
        return $this->issue_models;
    }

    /**
     * The issue model to run. If not provided, the most recently deployed topic
     * model will be used. The provided issue model will only be used for
     * inference if the issue model is deployed and if run_issue_model_annotator
     * is set to true. If more than one issue model is provided, only the first
     * provided issue model will be used for inference.
     *
     * Generated from protobuf field <code>repeated string issue_models = 10 [(.google.api.resource_reference) = {</code>
     * @param array<string>|\Google\Protobuf\Internal\RepeatedField $var
     * @return $this
     */
    public function setIssueModels($var)
    {
        $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
        $this->issue_models = $arr;

        return $this;
    }

    /**
     * Whether to run the summarization annotator.
     *
     * Generated from protobuf field <code>bool run_summarization_annotator = 9;</code>
     * @return bool
     */
    public function getRunSummarizationAnnotator()
    {
        return $this->run_summarization_annotator;
    }

    /**
     * Whether to run the summarization annotator.
     *
     * Generated from protobuf field <code>bool run_summarization_annotator = 9;</code>
     * @param bool $var
     * @return $this
     */
    public function setRunSummarizationAnnotator($var)
    {
        GPBUtil::checkBool($var);
        $this->run_summarization_annotator = $var;

        return $this;
    }

    /**
     * Configuration for the summarization annotator.
     *
     * Generated from protobuf field <code>.google.cloud.contactcenterinsights.v1.AnnotatorSelector.SummarizationConfig summarization_config = 11;</code>
     * @return \Google\Cloud\ContactCenterInsights\V1\AnnotatorSelector\SummarizationConfig|null
     */
    public function getSummarizationConfig()
    {
        return $this->summarization_config;
    }

    public function hasSummarizationConfig()
    {
        return isset($this->summarization_config);
    }

    public function clearSummarizationConfig()
    {
        unset($this->summarization_config);
    }

    /**
     * Configuration for the summarization annotator.
     *
     * Generated from protobuf field <code>.google.cloud.contactcenterinsights.v1.AnnotatorSelector.SummarizationConfig summarization_config = 11;</code>
     * @param \Google\Cloud\ContactCenterInsights\V1\AnnotatorSelector\SummarizationConfig $var
     * @return $this
     */
    public function setSummarizationConfig($var)
    {
        GPBUtil::checkMessage($var, \Google\Cloud\ContactCenterInsights\V1\AnnotatorSelector\SummarizationConfig::class);
        $this->summarization_config = $var;

        return $this;
    }

}

