<?php
# Generated by the protocol buffer compiler.  DO NOT EDIT!
# source: google/cloud/geminidataanalytics/v1beta/data_chat_service.proto

namespace Google\Cloud\GeminiDataAnalytics\V1beta;

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

/**
 * An event indicating the progress of an analysis.
 *
 * Generated from protobuf message <code>google.cloud.geminidataanalytics.v1beta.AnalysisEvent</code>
 */
class AnalysisEvent extends \Google\Protobuf\Internal\Message
{
    protected $kind;

    /**
     * Constructor.
     *
     * @param array $data {
     *     Optional. Data for populating the Message object.
     *
     *     @type string $planner_reasoning
     *           Python codegen planner's reasoning.
     *     @type string $coder_instruction
     *           Instructions issued for code generation.
     *     @type string $code
     *           Generated code.
     *     @type string $execution_output
     *           Output from code execution.
     *     @type string $execution_error
     *           An error from code execution.
     *     @type string $result_vega_chart_json
     *           Result as Vega chart JSON string.
     *     @type string $result_natural_language
     *           Result as NL string.
     *     @type string $result_csv_data
     *           Result as CSV string.
     *     @type string $result_reference_data
     *           Result as a reference to a data source.
     *     @type string $error
     *           A generic error message.
     * }
     */
    public function __construct($data = NULL) {
        \GPBMetadata\Google\Cloud\Geminidataanalytics\V1Beta\DataChatService::initOnce();
        parent::__construct($data);
    }

    /**
     * Python codegen planner's reasoning.
     *
     * Generated from protobuf field <code>string planner_reasoning = 2;</code>
     * @return string
     */
    public function getPlannerReasoning()
    {
        return $this->readOneof(2);
    }

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

    /**
     * Python codegen planner's reasoning.
     *
     * Generated from protobuf field <code>string planner_reasoning = 2;</code>
     * @param string $var
     * @return $this
     */
    public function setPlannerReasoning($var)
    {
        GPBUtil::checkString($var, True);
        $this->writeOneof(2, $var);

        return $this;
    }

    /**
     * Instructions issued for code generation.
     *
     * Generated from protobuf field <code>string coder_instruction = 3;</code>
     * @return string
     */
    public function getCoderInstruction()
    {
        return $this->readOneof(3);
    }

    public function hasCoderInstruction()
    {
        return $this->hasOneof(3);
    }

    /**
     * Instructions issued for code generation.
     *
     * Generated from protobuf field <code>string coder_instruction = 3;</code>
     * @param string $var
     * @return $this
     */
    public function setCoderInstruction($var)
    {
        GPBUtil::checkString($var, True);
        $this->writeOneof(3, $var);

        return $this;
    }

    /**
     * Generated code.
     *
     * Generated from protobuf field <code>string code = 4;</code>
     * @return string
     */
    public function getCode()
    {
        return $this->readOneof(4);
    }

    public function hasCode()
    {
        return $this->hasOneof(4);
    }

    /**
     * Generated code.
     *
     * Generated from protobuf field <code>string code = 4;</code>
     * @param string $var
     * @return $this
     */
    public function setCode($var)
    {
        GPBUtil::checkString($var, True);
        $this->writeOneof(4, $var);

        return $this;
    }

    /**
     * Output from code execution.
     *
     * Generated from protobuf field <code>string execution_output = 5;</code>
     * @return string
     */
    public function getExecutionOutput()
    {
        return $this->readOneof(5);
    }

    public function hasExecutionOutput()
    {
        return $this->hasOneof(5);
    }

    /**
     * Output from code execution.
     *
     * Generated from protobuf field <code>string execution_output = 5;</code>
     * @param string $var
     * @return $this
     */
    public function setExecutionOutput($var)
    {
        GPBUtil::checkString($var, True);
        $this->writeOneof(5, $var);

        return $this;
    }

    /**
     * An error from code execution.
     *
     * Generated from protobuf field <code>string execution_error = 6;</code>
     * @return string
     */
    public function getExecutionError()
    {
        return $this->readOneof(6);
    }

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

    /**
     * An error from code execution.
     *
     * Generated from protobuf field <code>string execution_error = 6;</code>
     * @param string $var
     * @return $this
     */
    public function setExecutionError($var)
    {
        GPBUtil::checkString($var, True);
        $this->writeOneof(6, $var);

        return $this;
    }

    /**
     * Result as Vega chart JSON string.
     *
     * Generated from protobuf field <code>string result_vega_chart_json = 7;</code>
     * @return string
     */
    public function getResultVegaChartJson()
    {
        return $this->readOneof(7);
    }

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

    /**
     * Result as Vega chart JSON string.
     *
     * Generated from protobuf field <code>string result_vega_chart_json = 7;</code>
     * @param string $var
     * @return $this
     */
    public function setResultVegaChartJson($var)
    {
        GPBUtil::checkString($var, True);
        $this->writeOneof(7, $var);

        return $this;
    }

    /**
     * Result as NL string.
     *
     * Generated from protobuf field <code>string result_natural_language = 8;</code>
     * @return string
     */
    public function getResultNaturalLanguage()
    {
        return $this->readOneof(8);
    }

    public function hasResultNaturalLanguage()
    {
        return $this->hasOneof(8);
    }

    /**
     * Result as NL string.
     *
     * Generated from protobuf field <code>string result_natural_language = 8;</code>
     * @param string $var
     * @return $this
     */
    public function setResultNaturalLanguage($var)
    {
        GPBUtil::checkString($var, True);
        $this->writeOneof(8, $var);

        return $this;
    }

    /**
     * Result as CSV string.
     *
     * Generated from protobuf field <code>string result_csv_data = 9;</code>
     * @return string
     */
    public function getResultCsvData()
    {
        return $this->readOneof(9);
    }

    public function hasResultCsvData()
    {
        return $this->hasOneof(9);
    }

    /**
     * Result as CSV string.
     *
     * Generated from protobuf field <code>string result_csv_data = 9;</code>
     * @param string $var
     * @return $this
     */
    public function setResultCsvData($var)
    {
        GPBUtil::checkString($var, True);
        $this->writeOneof(9, $var);

        return $this;
    }

    /**
     * Result as a reference to a data source.
     *
     * Generated from protobuf field <code>string result_reference_data = 10;</code>
     * @return string
     */
    public function getResultReferenceData()
    {
        return $this->readOneof(10);
    }

    public function hasResultReferenceData()
    {
        return $this->hasOneof(10);
    }

    /**
     * Result as a reference to a data source.
     *
     * Generated from protobuf field <code>string result_reference_data = 10;</code>
     * @param string $var
     * @return $this
     */
    public function setResultReferenceData($var)
    {
        GPBUtil::checkString($var, True);
        $this->writeOneof(10, $var);

        return $this;
    }

    /**
     * A generic error message.
     *
     * Generated from protobuf field <code>string error = 11;</code>
     * @return string
     */
    public function getError()
    {
        return $this->readOneof(11);
    }

    public function hasError()
    {
        return $this->hasOneof(11);
    }

    /**
     * A generic error message.
     *
     * Generated from protobuf field <code>string error = 11;</code>
     * @param string $var
     * @return $this
     */
    public function setError($var)
    {
        GPBUtil::checkString($var, True);
        $this->writeOneof(11, $var);

        return $this;
    }

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

}

