<?php
# Generated by the protocol buffer compiler.  DO NOT EDIT!
# source: google/cloud/dialogflow/v2/generator_evaluation.proto

namespace Google\Cloud\Dialogflow\V2\GeneratorEvaluationConfig;

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

/**
 * Input data config details
 *
 * Generated from protobuf message <code>google.cloud.dialogflow.v2.GeneratorEvaluationConfig.InputDataConfig</code>
 */
class InputDataConfig extends \Google\Protobuf\Internal\Message
{
    /**
     * Required. The source type of input data.
     *
     * Generated from protobuf field <code>.google.cloud.dialogflow.v2.GeneratorEvaluationConfig.InputDataSourceType input_data_source_type = 1 [deprecated = true, (.google.api.field_behavior) = REQUIRED];</code>
     * @deprecated
     */
    protected $input_data_source_type = 0;
    /**
     * Optional. The start timestamp to fetch conversation data.
     *
     * Generated from protobuf field <code>.google.protobuf.Timestamp start_time = 2 [deprecated = true, (.google.api.field_behavior) = OPTIONAL];</code>
     * @deprecated
     */
    protected $start_time = null;
    /**
     * Optional. The end timestamp to fetch conversation data.
     *
     * Generated from protobuf field <code>.google.protobuf.Timestamp end_time = 3 [deprecated = true, (.google.api.field_behavior) = OPTIONAL];</code>
     * @deprecated
     */
    protected $end_time = null;
    /**
     * Optional. Desired number of conversation-summary pairs to be evaluated.
     *
     * Generated from protobuf field <code>int32 sample_size = 4 [(.google.api.field_behavior) = OPTIONAL];</code>
     */
    protected $sample_size = 0;
    /**
     * Optional. Whether the summary generation is allowed when the pre-existing
     * qualified summaries are insufficient to cover the sample size.
     *
     * Generated from protobuf field <code>bool is_summary_generation_allowed = 5 [deprecated = true, (.google.api.field_behavior) = OPTIONAL];</code>
     * @deprecated
     */
    protected $is_summary_generation_allowed = false;
    /**
     * Optional. Option to control whether summaries are generated during
     * evaluation.
     *
     * Generated from protobuf field <code>.google.cloud.dialogflow.v2.GeneratorEvaluationConfig.InputDataConfig.SummaryGenerationOption summary_generation_option = 8 [(.google.api.field_behavior) = OPTIONAL];</code>
     */
    protected $summary_generation_option = 0;
    protected $source_specific_config;

    /**
     * Constructor.
     *
     * @param array $data {
     *     Optional. Data for populating the Message object.
     *
     *     @type int $input_data_source_type
     *           Required. The source type of input data.
     *     @type \Google\Protobuf\Timestamp $start_time
     *           Optional. The start timestamp to fetch conversation data.
     *     @type \Google\Protobuf\Timestamp $end_time
     *           Optional. The end timestamp to fetch conversation data.
     *     @type int $sample_size
     *           Optional. Desired number of conversation-summary pairs to be evaluated.
     *     @type bool $is_summary_generation_allowed
     *           Optional. Whether the summary generation is allowed when the pre-existing
     *           qualified summaries are insufficient to cover the sample size.
     *     @type int $summary_generation_option
     *           Optional. Option to control whether summaries are generated during
     *           evaluation.
     *     @type \Google\Cloud\Dialogflow\V2\GeneratorEvaluationConfig\AgentAssistInputDataConfig $agent_assist_input_data_config
     *           The distinctive configs for Agent Assist conversations as the
     *           conversation source.
     *     @type \Google\Cloud\Dialogflow\V2\GeneratorEvaluationConfig\DatasetInputDataConfig $dataset_input_data_config
     *           The distinctive configs for dataset as the conversation source.
     * }
     */
    public function __construct($data = NULL) {
        \GPBMetadata\Google\Cloud\Dialogflow\V2\GeneratorEvaluation::initOnce();
        parent::__construct($data);
    }

    /**
     * Required. The source type of input data.
     *
     * Generated from protobuf field <code>.google.cloud.dialogflow.v2.GeneratorEvaluationConfig.InputDataSourceType input_data_source_type = 1 [deprecated = true, (.google.api.field_behavior) = REQUIRED];</code>
     * @return int
     * @deprecated
     */
    public function getInputDataSourceType()
    {
        if ($this->input_data_source_type !== 0) {
            @trigger_error('input_data_source_type is deprecated.', E_USER_DEPRECATED);
        }
        return $this->input_data_source_type;
    }

    /**
     * Required. The source type of input data.
     *
     * Generated from protobuf field <code>.google.cloud.dialogflow.v2.GeneratorEvaluationConfig.InputDataSourceType input_data_source_type = 1 [deprecated = true, (.google.api.field_behavior) = REQUIRED];</code>
     * @param int $var
     * @return $this
     * @deprecated
     */
    public function setInputDataSourceType($var)
    {
        @trigger_error('input_data_source_type is deprecated.', E_USER_DEPRECATED);
        GPBUtil::checkEnum($var, \Google\Cloud\Dialogflow\V2\GeneratorEvaluationConfig\InputDataSourceType::class);
        $this->input_data_source_type = $var;

        return $this;
    }

    /**
     * Optional. The start timestamp to fetch conversation data.
     *
     * Generated from protobuf field <code>.google.protobuf.Timestamp start_time = 2 [deprecated = true, (.google.api.field_behavior) = OPTIONAL];</code>
     * @return \Google\Protobuf\Timestamp|null
     * @deprecated
     */
    public function getStartTime()
    {
        if (isset($this->start_time)) {
            @trigger_error('start_time is deprecated.', E_USER_DEPRECATED);
        }
        return $this->start_time;
    }

    public function hasStartTime()
    {
        if (isset($this->start_time)) {
            @trigger_error('start_time is deprecated.', E_USER_DEPRECATED);
        }
        return isset($this->start_time);
    }

    public function clearStartTime()
    {
        @trigger_error('start_time is deprecated.', E_USER_DEPRECATED);
        unset($this->start_time);
    }

    /**
     * Optional. The start timestamp to fetch conversation data.
     *
     * Generated from protobuf field <code>.google.protobuf.Timestamp start_time = 2 [deprecated = true, (.google.api.field_behavior) = OPTIONAL];</code>
     * @param \Google\Protobuf\Timestamp $var
     * @return $this
     * @deprecated
     */
    public function setStartTime($var)
    {
        @trigger_error('start_time is deprecated.', E_USER_DEPRECATED);
        GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class);
        $this->start_time = $var;

        return $this;
    }

    /**
     * Optional. The end timestamp to fetch conversation data.
     *
     * Generated from protobuf field <code>.google.protobuf.Timestamp end_time = 3 [deprecated = true, (.google.api.field_behavior) = OPTIONAL];</code>
     * @return \Google\Protobuf\Timestamp|null
     * @deprecated
     */
    public function getEndTime()
    {
        if (isset($this->end_time)) {
            @trigger_error('end_time is deprecated.', E_USER_DEPRECATED);
        }
        return $this->end_time;
    }

    public function hasEndTime()
    {
        if (isset($this->end_time)) {
            @trigger_error('end_time is deprecated.', E_USER_DEPRECATED);
        }
        return isset($this->end_time);
    }

    public function clearEndTime()
    {
        @trigger_error('end_time is deprecated.', E_USER_DEPRECATED);
        unset($this->end_time);
    }

    /**
     * Optional. The end timestamp to fetch conversation data.
     *
     * Generated from protobuf field <code>.google.protobuf.Timestamp end_time = 3 [deprecated = true, (.google.api.field_behavior) = OPTIONAL];</code>
     * @param \Google\Protobuf\Timestamp $var
     * @return $this
     * @deprecated
     */
    public function setEndTime($var)
    {
        @trigger_error('end_time is deprecated.', E_USER_DEPRECATED);
        GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class);
        $this->end_time = $var;

        return $this;
    }

    /**
     * Optional. Desired number of conversation-summary pairs to be evaluated.
     *
     * Generated from protobuf field <code>int32 sample_size = 4 [(.google.api.field_behavior) = OPTIONAL];</code>
     * @return int
     */
    public function getSampleSize()
    {
        return $this->sample_size;
    }

    /**
     * Optional. Desired number of conversation-summary pairs to be evaluated.
     *
     * Generated from protobuf field <code>int32 sample_size = 4 [(.google.api.field_behavior) = OPTIONAL];</code>
     * @param int $var
     * @return $this
     */
    public function setSampleSize($var)
    {
        GPBUtil::checkInt32($var);
        $this->sample_size = $var;

        return $this;
    }

    /**
     * Optional. Whether the summary generation is allowed when the pre-existing
     * qualified summaries are insufficient to cover the sample size.
     *
     * Generated from protobuf field <code>bool is_summary_generation_allowed = 5 [deprecated = true, (.google.api.field_behavior) = OPTIONAL];</code>
     * @return bool
     * @deprecated
     */
    public function getIsSummaryGenerationAllowed()
    {
        if ($this->is_summary_generation_allowed !== false) {
            @trigger_error('is_summary_generation_allowed is deprecated.', E_USER_DEPRECATED);
        }
        return $this->is_summary_generation_allowed;
    }

    /**
     * Optional. Whether the summary generation is allowed when the pre-existing
     * qualified summaries are insufficient to cover the sample size.
     *
     * Generated from protobuf field <code>bool is_summary_generation_allowed = 5 [deprecated = true, (.google.api.field_behavior) = OPTIONAL];</code>
     * @param bool $var
     * @return $this
     * @deprecated
     */
    public function setIsSummaryGenerationAllowed($var)
    {
        @trigger_error('is_summary_generation_allowed is deprecated.', E_USER_DEPRECATED);
        GPBUtil::checkBool($var);
        $this->is_summary_generation_allowed = $var;

        return $this;
    }

    /**
     * Optional. Option to control whether summaries are generated during
     * evaluation.
     *
     * Generated from protobuf field <code>.google.cloud.dialogflow.v2.GeneratorEvaluationConfig.InputDataConfig.SummaryGenerationOption summary_generation_option = 8 [(.google.api.field_behavior) = OPTIONAL];</code>
     * @return int
     */
    public function getSummaryGenerationOption()
    {
        return $this->summary_generation_option;
    }

    /**
     * Optional. Option to control whether summaries are generated during
     * evaluation.
     *
     * Generated from protobuf field <code>.google.cloud.dialogflow.v2.GeneratorEvaluationConfig.InputDataConfig.SummaryGenerationOption summary_generation_option = 8 [(.google.api.field_behavior) = OPTIONAL];</code>
     * @param int $var
     * @return $this
     */
    public function setSummaryGenerationOption($var)
    {
        GPBUtil::checkEnum($var, \Google\Cloud\Dialogflow\V2\GeneratorEvaluationConfig\InputDataConfig\SummaryGenerationOption::class);
        $this->summary_generation_option = $var;

        return $this;
    }

    /**
     * The distinctive configs for Agent Assist conversations as the
     * conversation source.
     *
     * Generated from protobuf field <code>.google.cloud.dialogflow.v2.GeneratorEvaluationConfig.AgentAssistInputDataConfig agent_assist_input_data_config = 6;</code>
     * @return \Google\Cloud\Dialogflow\V2\GeneratorEvaluationConfig\AgentAssistInputDataConfig|null
     */
    public function getAgentAssistInputDataConfig()
    {
        return $this->readOneof(6);
    }

    public function hasAgentAssistInputDataConfig()
    {
        return $this->hasOneof(6);
    }

    /**
     * The distinctive configs for Agent Assist conversations as the
     * conversation source.
     *
     * Generated from protobuf field <code>.google.cloud.dialogflow.v2.GeneratorEvaluationConfig.AgentAssistInputDataConfig agent_assist_input_data_config = 6;</code>
     * @param \Google\Cloud\Dialogflow\V2\GeneratorEvaluationConfig\AgentAssistInputDataConfig $var
     * @return $this
     */
    public function setAgentAssistInputDataConfig($var)
    {
        GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\GeneratorEvaluationConfig\AgentAssistInputDataConfig::class);
        $this->writeOneof(6, $var);

        return $this;
    }

    /**
     * The distinctive configs for dataset as the conversation source.
     *
     * Generated from protobuf field <code>.google.cloud.dialogflow.v2.GeneratorEvaluationConfig.DatasetInputDataConfig dataset_input_data_config = 7;</code>
     * @return \Google\Cloud\Dialogflow\V2\GeneratorEvaluationConfig\DatasetInputDataConfig|null
     */
    public function getDatasetInputDataConfig()
    {
        return $this->readOneof(7);
    }

    public function hasDatasetInputDataConfig()
    {
        return $this->hasOneof(7);
    }

    /**
     * The distinctive configs for dataset as the conversation source.
     *
     * Generated from protobuf field <code>.google.cloud.dialogflow.v2.GeneratorEvaluationConfig.DatasetInputDataConfig dataset_input_data_config = 7;</code>
     * @param \Google\Cloud\Dialogflow\V2\GeneratorEvaluationConfig\DatasetInputDataConfig $var
     * @return $this
     */
    public function setDatasetInputDataConfig($var)
    {
        GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\GeneratorEvaluationConfig\DatasetInputDataConfig::class);
        $this->writeOneof(7, $var);

        return $this;
    }

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

}

