<?php
# Generated by the protocol buffer compiler.  DO NOT EDIT!
# NO CHECKED-IN PROTOBUF GENCODE
# source: WAProto.proto

namespace PhpWA\Protocol\Proto\BotProgressIndicatorMetadata;

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

/**
 * Generated from protobuf message <code>proto.BotProgressIndicatorMetadata.BotPlanningStepMetadata</code>
 */
class BotPlanningStepMetadata extends \Google\Protobuf\Internal\Message
{
    /**
     * Generated from protobuf field <code>optional string statusTitle = 1;</code>
     */
    protected $statusTitle = null;
    /**
     * Generated from protobuf field <code>optional string statusBody = 2;</code>
     */
    protected $statusBody = null;
    /**
     * Generated from protobuf field <code>repeated .proto.BotProgressIndicatorMetadata.BotPlanningStepMetadata.BotPlanningSearchSourcesMetadata sourcesMetadata = 3;</code>
     */
    private $sourcesMetadata;
    /**
     * Generated from protobuf field <code>optional .proto.BotProgressIndicatorMetadata.BotPlanningStepMetadata.PlanningStepStatus status = 4;</code>
     */
    protected $status = null;
    /**
     * Generated from protobuf field <code>optional bool isReasoning = 5;</code>
     */
    protected $isReasoning = null;
    /**
     * Generated from protobuf field <code>optional bool isEnhancedSearch = 6;</code>
     */
    protected $isEnhancedSearch = null;
    /**
     * Generated from protobuf field <code>repeated .proto.BotProgressIndicatorMetadata.BotPlanningStepMetadata.BotPlanningStepSectionMetadata sections = 7;</code>
     */
    private $sections;

    /**
     * Constructor.
     *
     * @param array $data {
     *     Optional. Data for populating the Message object.
     *
     *     @type string $statusTitle
     *     @type string $statusBody
     *     @type \PhpWA\Protocol\Proto\BotProgressIndicatorMetadata\BotPlanningStepMetadata\BotPlanningSearchSourcesMetadata[] $sourcesMetadata
     *     @type int $status
     *     @type bool $isReasoning
     *     @type bool $isEnhancedSearch
     *     @type \PhpWA\Protocol\Proto\BotProgressIndicatorMetadata\BotPlanningStepMetadata\BotPlanningStepSectionMetadata[] $sections
     * }
     */
    public function __construct($data = NULL) {
        \PhpWA\Protocol\Proto\Metadata\WAProto::initOnce();
        parent::__construct($data);
    }

    /**
     * Generated from protobuf field <code>optional string statusTitle = 1;</code>
     * @return string
     */
    public function getStatusTitle()
    {
        return isset($this->statusTitle) ? $this->statusTitle : '';
    }

    public function hasStatusTitle()
    {
        return isset($this->statusTitle);
    }

    public function clearStatusTitle()
    {
        unset($this->statusTitle);
    }

    /**
     * Generated from protobuf field <code>optional string statusTitle = 1;</code>
     * @param string $var
     * @return $this
     */
    public function setStatusTitle($var)
    {
        GPBUtil::checkString($var, True);
        $this->statusTitle = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional string statusBody = 2;</code>
     * @return string
     */
    public function getStatusBody()
    {
        return isset($this->statusBody) ? $this->statusBody : '';
    }

    public function hasStatusBody()
    {
        return isset($this->statusBody);
    }

    public function clearStatusBody()
    {
        unset($this->statusBody);
    }

    /**
     * Generated from protobuf field <code>optional string statusBody = 2;</code>
     * @param string $var
     * @return $this
     */
    public function setStatusBody($var)
    {
        GPBUtil::checkString($var, True);
        $this->statusBody = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>repeated .proto.BotProgressIndicatorMetadata.BotPlanningStepMetadata.BotPlanningSearchSourcesMetadata sourcesMetadata = 3;</code>
     * @return RepeatedField<\PhpWA\Protocol\Proto\BotProgressIndicatorMetadata\BotPlanningStepMetadata\BotPlanningSearchSourcesMetadata>
     */
    public function getSourcesMetadata()
    {
        return $this->sourcesMetadata;
    }

    /**
     * Generated from protobuf field <code>repeated .proto.BotProgressIndicatorMetadata.BotPlanningStepMetadata.BotPlanningSearchSourcesMetadata sourcesMetadata = 3;</code>
     * @param \PhpWA\Protocol\Proto\BotProgressIndicatorMetadata\BotPlanningStepMetadata\BotPlanningSearchSourcesMetadata[] $var
     * @return $this
     */
    public function setSourcesMetadata($var)
    {
        $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \PhpWA\Protocol\Proto\BotProgressIndicatorMetadata\BotPlanningStepMetadata\BotPlanningSearchSourcesMetadata::class);
        $this->sourcesMetadata = $arr;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional .proto.BotProgressIndicatorMetadata.BotPlanningStepMetadata.PlanningStepStatus status = 4;</code>
     * @return int
     */
    public function getStatus()
    {
        return isset($this->status) ? $this->status : 0;
    }

    public function hasStatus()
    {
        return isset($this->status);
    }

    public function clearStatus()
    {
        unset($this->status);
    }

    /**
     * Generated from protobuf field <code>optional .proto.BotProgressIndicatorMetadata.BotPlanningStepMetadata.PlanningStepStatus status = 4;</code>
     * @param int $var
     * @return $this
     */
    public function setStatus($var)
    {
        GPBUtil::checkEnum($var, \PhpWA\Protocol\Proto\BotProgressIndicatorMetadata\BotPlanningStepMetadata\PlanningStepStatus::class);
        $this->status = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional bool isReasoning = 5;</code>
     * @return bool
     */
    public function getIsReasoning()
    {
        return isset($this->isReasoning) ? $this->isReasoning : false;
    }

    public function hasIsReasoning()
    {
        return isset($this->isReasoning);
    }

    public function clearIsReasoning()
    {
        unset($this->isReasoning);
    }

    /**
     * Generated from protobuf field <code>optional bool isReasoning = 5;</code>
     * @param bool $var
     * @return $this
     */
    public function setIsReasoning($var)
    {
        GPBUtil::checkBool($var);
        $this->isReasoning = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional bool isEnhancedSearch = 6;</code>
     * @return bool
     */
    public function getIsEnhancedSearch()
    {
        return isset($this->isEnhancedSearch) ? $this->isEnhancedSearch : false;
    }

    public function hasIsEnhancedSearch()
    {
        return isset($this->isEnhancedSearch);
    }

    public function clearIsEnhancedSearch()
    {
        unset($this->isEnhancedSearch);
    }

    /**
     * Generated from protobuf field <code>optional bool isEnhancedSearch = 6;</code>
     * @param bool $var
     * @return $this
     */
    public function setIsEnhancedSearch($var)
    {
        GPBUtil::checkBool($var);
        $this->isEnhancedSearch = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>repeated .proto.BotProgressIndicatorMetadata.BotPlanningStepMetadata.BotPlanningStepSectionMetadata sections = 7;</code>
     * @return RepeatedField<\PhpWA\Protocol\Proto\BotProgressIndicatorMetadata\BotPlanningStepMetadata\BotPlanningStepSectionMetadata>
     */
    public function getSections()
    {
        return $this->sections;
    }

    /**
     * Generated from protobuf field <code>repeated .proto.BotProgressIndicatorMetadata.BotPlanningStepMetadata.BotPlanningStepSectionMetadata sections = 7;</code>
     * @param \PhpWA\Protocol\Proto\BotProgressIndicatorMetadata\BotPlanningStepMetadata\BotPlanningStepSectionMetadata[] $var
     * @return $this
     */
    public function setSections($var)
    {
        $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \PhpWA\Protocol\Proto\BotProgressIndicatorMetadata\BotPlanningStepMetadata\BotPlanningStepSectionMetadata::class);
        $this->sections = $arr;

        return $this;
    }

}

