<?php
# Generated by the protocol buffer compiler.  DO NOT EDIT!
# source: google/dataflow/v1beta3/jobs.proto

namespace Google\Cloud\Dataflow\V1beta3;

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

/**
 * Data provided with a pipeline or transform to provide descriptive info.
 *
 * Generated from protobuf message <code>google.dataflow.v1beta3.DisplayData</code>
 */
class DisplayData extends \Google\Protobuf\Internal\Message
{
    /**
     * The key identifying the display data.
     * This is intended to be used as a label for the display data
     * when viewed in a dax monitoring system.
     *
     * Generated from protobuf field <code>string key = 1;</code>
     */
    private $key = '';
    /**
     * The namespace for the key. This is usually a class name or programming
     * language namespace (i.e. python module) which defines the display data.
     * This allows a dax monitoring system to specially handle the data
     * and perform custom rendering.
     *
     * Generated from protobuf field <code>string namespace = 2;</code>
     */
    private $namespace = '';
    /**
     * A possible additional shorter value to display.
     * For example a java_class_name_value of com.mypackage.MyDoFn
     * will be stored with MyDoFn as the short_str_value and
     * com.mypackage.MyDoFn as the java_class_name value.
     * short_str_value can be displayed and java_class_name_value
     * will be displayed as a tooltip.
     *
     * Generated from protobuf field <code>string short_str_value = 11;</code>
     */
    private $short_str_value = '';
    /**
     * An optional full URL.
     *
     * Generated from protobuf field <code>string url = 12;</code>
     */
    private $url = '';
    /**
     * An optional label to display in a dax UI for the element.
     *
     * Generated from protobuf field <code>string label = 13;</code>
     */
    private $label = '';
    protected $Value;

    /**
     * Constructor.
     *
     * @param array $data {
     *     Optional. Data for populating the Message object.
     *
     *     @type string $key
     *           The key identifying the display data.
     *           This is intended to be used as a label for the display data
     *           when viewed in a dax monitoring system.
     *     @type string $namespace
     *           The namespace for the key. This is usually a class name or programming
     *           language namespace (i.e. python module) which defines the display data.
     *           This allows a dax monitoring system to specially handle the data
     *           and perform custom rendering.
     *     @type string $str_value
     *           Contains value if the data is of string type.
     *     @type int|string $int64_value
     *           Contains value if the data is of int64 type.
     *     @type float $float_value
     *           Contains value if the data is of float type.
     *     @type string $java_class_value
     *           Contains value if the data is of java class type.
     *     @type \Google\Protobuf\Timestamp $timestamp_value
     *           Contains value if the data is of timestamp type.
     *     @type \Google\Protobuf\Duration $duration_value
     *           Contains value if the data is of duration type.
     *     @type bool $bool_value
     *           Contains value if the data is of a boolean type.
     *     @type string $short_str_value
     *           A possible additional shorter value to display.
     *           For example a java_class_name_value of com.mypackage.MyDoFn
     *           will be stored with MyDoFn as the short_str_value and
     *           com.mypackage.MyDoFn as the java_class_name value.
     *           short_str_value can be displayed and java_class_name_value
     *           will be displayed as a tooltip.
     *     @type string $url
     *           An optional full URL.
     *     @type string $label
     *           An optional label to display in a dax UI for the element.
     * }
     */
    public function __construct($data = NULL) {
        \GPBMetadata\Google\Dataflow\V1Beta3\Jobs::initOnce();
        parent::__construct($data);
    }

    /**
     * The key identifying the display data.
     * This is intended to be used as a label for the display data
     * when viewed in a dax monitoring system.
     *
     * Generated from protobuf field <code>string key = 1;</code>
     * @return string
     */
    public function getKey()
    {
        return $this->key;
    }

    /**
     * The key identifying the display data.
     * This is intended to be used as a label for the display data
     * when viewed in a dax monitoring system.
     *
     * Generated from protobuf field <code>string key = 1;</code>
     * @param string $var
     * @return $this
     */
    public function setKey($var)
    {
        GPBUtil::checkString($var, True);
        $this->key = $var;

        return $this;
    }

    /**
     * The namespace for the key. This is usually a class name or programming
     * language namespace (i.e. python module) which defines the display data.
     * This allows a dax monitoring system to specially handle the data
     * and perform custom rendering.
     *
     * Generated from protobuf field <code>string namespace = 2;</code>
     * @return string
     */
    public function getNamespace()
    {
        return $this->namespace;
    }

    /**
     * The namespace for the key. This is usually a class name or programming
     * language namespace (i.e. python module) which defines the display data.
     * This allows a dax monitoring system to specially handle the data
     * and perform custom rendering.
     *
     * Generated from protobuf field <code>string namespace = 2;</code>
     * @param string $var
     * @return $this
     */
    public function setNamespace($var)
    {
        GPBUtil::checkString($var, True);
        $this->namespace = $var;

        return $this;
    }

    /**
     * Contains value if the data is of string type.
     *
     * Generated from protobuf field <code>string str_value = 4;</code>
     * @return string
     */
    public function getStrValue()
    {
        return $this->readOneof(4);
    }

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

    /**
     * Contains value if the data is of string type.
     *
     * Generated from protobuf field <code>string str_value = 4;</code>
     * @param string $var
     * @return $this
     */
    public function setStrValue($var)
    {
        GPBUtil::checkString($var, True);
        $this->writeOneof(4, $var);

        return $this;
    }

    /**
     * Contains value if the data is of int64 type.
     *
     * Generated from protobuf field <code>int64 int64_value = 5;</code>
     * @return int|string
     */
    public function getInt64Value()
    {
        return $this->readOneof(5);
    }

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

    /**
     * Contains value if the data is of int64 type.
     *
     * Generated from protobuf field <code>int64 int64_value = 5;</code>
     * @param int|string $var
     * @return $this
     */
    public function setInt64Value($var)
    {
        GPBUtil::checkInt64($var);
        $this->writeOneof(5, $var);

        return $this;
    }

    /**
     * Contains value if the data is of float type.
     *
     * Generated from protobuf field <code>float float_value = 6;</code>
     * @return float
     */
    public function getFloatValue()
    {
        return $this->readOneof(6);
    }

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

    /**
     * Contains value if the data is of float type.
     *
     * Generated from protobuf field <code>float float_value = 6;</code>
     * @param float $var
     * @return $this
     */
    public function setFloatValue($var)
    {
        GPBUtil::checkFloat($var);
        $this->writeOneof(6, $var);

        return $this;
    }

    /**
     * Contains value if the data is of java class type.
     *
     * Generated from protobuf field <code>string java_class_value = 7;</code>
     * @return string
     */
    public function getJavaClassValue()
    {
        return $this->readOneof(7);
    }

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

    /**
     * Contains value if the data is of java class type.
     *
     * Generated from protobuf field <code>string java_class_value = 7;</code>
     * @param string $var
     * @return $this
     */
    public function setJavaClassValue($var)
    {
        GPBUtil::checkString($var, True);
        $this->writeOneof(7, $var);

        return $this;
    }

    /**
     * Contains value if the data is of timestamp type.
     *
     * Generated from protobuf field <code>.google.protobuf.Timestamp timestamp_value = 8;</code>
     * @return \Google\Protobuf\Timestamp|null
     */
    public function getTimestampValue()
    {
        return $this->readOneof(8);
    }

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

    /**
     * Contains value if the data is of timestamp type.
     *
     * Generated from protobuf field <code>.google.protobuf.Timestamp timestamp_value = 8;</code>
     * @param \Google\Protobuf\Timestamp $var
     * @return $this
     */
    public function setTimestampValue($var)
    {
        GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class);
        $this->writeOneof(8, $var);

        return $this;
    }

    /**
     * Contains value if the data is of duration type.
     *
     * Generated from protobuf field <code>.google.protobuf.Duration duration_value = 9;</code>
     * @return \Google\Protobuf\Duration|null
     */
    public function getDurationValue()
    {
        return $this->readOneof(9);
    }

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

    /**
     * Contains value if the data is of duration type.
     *
     * Generated from protobuf field <code>.google.protobuf.Duration duration_value = 9;</code>
     * @param \Google\Protobuf\Duration $var
     * @return $this
     */
    public function setDurationValue($var)
    {
        GPBUtil::checkMessage($var, \Google\Protobuf\Duration::class);
        $this->writeOneof(9, $var);

        return $this;
    }

    /**
     * Contains value if the data is of a boolean type.
     *
     * Generated from protobuf field <code>bool bool_value = 10;</code>
     * @return bool
     */
    public function getBoolValue()
    {
        return $this->readOneof(10);
    }

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

    /**
     * Contains value if the data is of a boolean type.
     *
     * Generated from protobuf field <code>bool bool_value = 10;</code>
     * @param bool $var
     * @return $this
     */
    public function setBoolValue($var)
    {
        GPBUtil::checkBool($var);
        $this->writeOneof(10, $var);

        return $this;
    }

    /**
     * A possible additional shorter value to display.
     * For example a java_class_name_value of com.mypackage.MyDoFn
     * will be stored with MyDoFn as the short_str_value and
     * com.mypackage.MyDoFn as the java_class_name value.
     * short_str_value can be displayed and java_class_name_value
     * will be displayed as a tooltip.
     *
     * Generated from protobuf field <code>string short_str_value = 11;</code>
     * @return string
     */
    public function getShortStrValue()
    {
        return $this->short_str_value;
    }

    /**
     * A possible additional shorter value to display.
     * For example a java_class_name_value of com.mypackage.MyDoFn
     * will be stored with MyDoFn as the short_str_value and
     * com.mypackage.MyDoFn as the java_class_name value.
     * short_str_value can be displayed and java_class_name_value
     * will be displayed as a tooltip.
     *
     * Generated from protobuf field <code>string short_str_value = 11;</code>
     * @param string $var
     * @return $this
     */
    public function setShortStrValue($var)
    {
        GPBUtil::checkString($var, True);
        $this->short_str_value = $var;

        return $this;
    }

    /**
     * An optional full URL.
     *
     * Generated from protobuf field <code>string url = 12;</code>
     * @return string
     */
    public function getUrl()
    {
        return $this->url;
    }

    /**
     * An optional full URL.
     *
     * Generated from protobuf field <code>string url = 12;</code>
     * @param string $var
     * @return $this
     */
    public function setUrl($var)
    {
        GPBUtil::checkString($var, True);
        $this->url = $var;

        return $this;
    }

    /**
     * An optional label to display in a dax UI for the element.
     *
     * Generated from protobuf field <code>string label = 13;</code>
     * @return string
     */
    public function getLabel()
    {
        return $this->label;
    }

    /**
     * An optional label to display in a dax UI for the element.
     *
     * Generated from protobuf field <code>string label = 13;</code>
     * @param string $var
     * @return $this
     */
    public function setLabel($var)
    {
        GPBUtil::checkString($var, True);
        $this->label = $var;

        return $this;
    }

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

}

