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

namespace Google\Cloud\DocumentAI\V1;

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

/**
 * Encodes the detailed information of a barcode.
 *
 * Generated from protobuf message <code>google.cloud.documentai.v1.Barcode</code>
 */
class Barcode extends \Google\Protobuf\Internal\Message
{
    /**
     * Format of a barcode.
     * The supported formats are:
     * - `CODE_128`: Code 128 type.
     * - `CODE_39`: Code 39 type.
     * - `CODE_93`: Code 93 type.
     * - `CODABAR`: Codabar type.
     * - `DATA_MATRIX`: 2D Data Matrix type.
     * - `ITF`: ITF type.
     * - `EAN_13`: EAN-13 type.
     * - `EAN_8`: EAN-8 type.
     * - `QR_CODE`: 2D QR code type.
     * - `UPC_A`: UPC-A type.
     * - `UPC_E`: UPC-E type.
     * - `PDF417`: PDF417 type.
     * - `AZTEC`: 2D Aztec code type.
     * - `DATABAR`: GS1 DataBar code type.
     *
     * Generated from protobuf field <code>string format = 1;</code>
     */
    private $format = '';
    /**
     * Value format describes the format of the value that a barcode
     * encodes.
     * The supported formats are:
     * - `CONTACT_INFO`: Contact information.
     * - `EMAIL`: Email address.
     * - `ISBN`: ISBN identifier.
     * - `PHONE`: Phone number.
     * - `PRODUCT`: Product.
     * - `SMS`: SMS message.
     * - `TEXT`: Text string.
     * - `URL`: URL address.
     * - `WIFI`: Wifi information.
     * - `GEO`: Geo-localization.
     * - `CALENDAR_EVENT`: Calendar event.
     * - `DRIVER_LICENSE`: Driver's license.
     *
     * Generated from protobuf field <code>string value_format = 2;</code>
     */
    private $value_format = '';
    /**
     * Raw value encoded in the barcode.
     * For example: `'MEBKM:TITLE:Google;URL:https://www.google.com;;'`.
     *
     * Generated from protobuf field <code>string raw_value = 3;</code>
     */
    private $raw_value = '';

    /**
     * Constructor.
     *
     * @param array $data {
     *     Optional. Data for populating the Message object.
     *
     *     @type string $format
     *           Format of a barcode.
     *           The supported formats are:
     *           - `CODE_128`: Code 128 type.
     *           - `CODE_39`: Code 39 type.
     *           - `CODE_93`: Code 93 type.
     *           - `CODABAR`: Codabar type.
     *           - `DATA_MATRIX`: 2D Data Matrix type.
     *           - `ITF`: ITF type.
     *           - `EAN_13`: EAN-13 type.
     *           - `EAN_8`: EAN-8 type.
     *           - `QR_CODE`: 2D QR code type.
     *           - `UPC_A`: UPC-A type.
     *           - `UPC_E`: UPC-E type.
     *           - `PDF417`: PDF417 type.
     *           - `AZTEC`: 2D Aztec code type.
     *           - `DATABAR`: GS1 DataBar code type.
     *     @type string $value_format
     *           Value format describes the format of the value that a barcode
     *           encodes.
     *           The supported formats are:
     *           - `CONTACT_INFO`: Contact information.
     *           - `EMAIL`: Email address.
     *           - `ISBN`: ISBN identifier.
     *           - `PHONE`: Phone number.
     *           - `PRODUCT`: Product.
     *           - `SMS`: SMS message.
     *           - `TEXT`: Text string.
     *           - `URL`: URL address.
     *           - `WIFI`: Wifi information.
     *           - `GEO`: Geo-localization.
     *           - `CALENDAR_EVENT`: Calendar event.
     *           - `DRIVER_LICENSE`: Driver's license.
     *     @type string $raw_value
     *           Raw value encoded in the barcode.
     *           For example: `'MEBKM:TITLE:Google;URL:https://www.google.com;;'`.
     * }
     */
    public function __construct($data = NULL) {
        \GPBMetadata\Google\Cloud\Documentai\V1\Barcode::initOnce();
        parent::__construct($data);
    }

    /**
     * Format of a barcode.
     * The supported formats are:
     * - `CODE_128`: Code 128 type.
     * - `CODE_39`: Code 39 type.
     * - `CODE_93`: Code 93 type.
     * - `CODABAR`: Codabar type.
     * - `DATA_MATRIX`: 2D Data Matrix type.
     * - `ITF`: ITF type.
     * - `EAN_13`: EAN-13 type.
     * - `EAN_8`: EAN-8 type.
     * - `QR_CODE`: 2D QR code type.
     * - `UPC_A`: UPC-A type.
     * - `UPC_E`: UPC-E type.
     * - `PDF417`: PDF417 type.
     * - `AZTEC`: 2D Aztec code type.
     * - `DATABAR`: GS1 DataBar code type.
     *
     * Generated from protobuf field <code>string format = 1;</code>
     * @return string
     */
    public function getFormat()
    {
        return $this->format;
    }

    /**
     * Format of a barcode.
     * The supported formats are:
     * - `CODE_128`: Code 128 type.
     * - `CODE_39`: Code 39 type.
     * - `CODE_93`: Code 93 type.
     * - `CODABAR`: Codabar type.
     * - `DATA_MATRIX`: 2D Data Matrix type.
     * - `ITF`: ITF type.
     * - `EAN_13`: EAN-13 type.
     * - `EAN_8`: EAN-8 type.
     * - `QR_CODE`: 2D QR code type.
     * - `UPC_A`: UPC-A type.
     * - `UPC_E`: UPC-E type.
     * - `PDF417`: PDF417 type.
     * - `AZTEC`: 2D Aztec code type.
     * - `DATABAR`: GS1 DataBar code type.
     *
     * Generated from protobuf field <code>string format = 1;</code>
     * @param string $var
     * @return $this
     */
    public function setFormat($var)
    {
        GPBUtil::checkString($var, True);
        $this->format = $var;

        return $this;
    }

    /**
     * Value format describes the format of the value that a barcode
     * encodes.
     * The supported formats are:
     * - `CONTACT_INFO`: Contact information.
     * - `EMAIL`: Email address.
     * - `ISBN`: ISBN identifier.
     * - `PHONE`: Phone number.
     * - `PRODUCT`: Product.
     * - `SMS`: SMS message.
     * - `TEXT`: Text string.
     * - `URL`: URL address.
     * - `WIFI`: Wifi information.
     * - `GEO`: Geo-localization.
     * - `CALENDAR_EVENT`: Calendar event.
     * - `DRIVER_LICENSE`: Driver's license.
     *
     * Generated from protobuf field <code>string value_format = 2;</code>
     * @return string
     */
    public function getValueFormat()
    {
        return $this->value_format;
    }

    /**
     * Value format describes the format of the value that a barcode
     * encodes.
     * The supported formats are:
     * - `CONTACT_INFO`: Contact information.
     * - `EMAIL`: Email address.
     * - `ISBN`: ISBN identifier.
     * - `PHONE`: Phone number.
     * - `PRODUCT`: Product.
     * - `SMS`: SMS message.
     * - `TEXT`: Text string.
     * - `URL`: URL address.
     * - `WIFI`: Wifi information.
     * - `GEO`: Geo-localization.
     * - `CALENDAR_EVENT`: Calendar event.
     * - `DRIVER_LICENSE`: Driver's license.
     *
     * Generated from protobuf field <code>string value_format = 2;</code>
     * @param string $var
     * @return $this
     */
    public function setValueFormat($var)
    {
        GPBUtil::checkString($var, True);
        $this->value_format = $var;

        return $this;
    }

    /**
     * Raw value encoded in the barcode.
     * For example: `'MEBKM:TITLE:Google;URL:https://www.google.com;;'`.
     *
     * Generated from protobuf field <code>string raw_value = 3;</code>
     * @return string
     */
    public function getRawValue()
    {
        return $this->raw_value;
    }

    /**
     * Raw value encoded in the barcode.
     * For example: `'MEBKM:TITLE:Google;URL:https://www.google.com;;'`.
     *
     * Generated from protobuf field <code>string raw_value = 3;</code>
     * @param string $var
     * @return $this
     */
    public function setRawValue($var)
    {
        GPBUtil::checkString($var, True);
        $this->raw_value = $var;

        return $this;
    }

}

