<?php
# Generated by the protocol buffer compiler.  DO NOT EDIT!
# source: info.proto

namespace Proto\PackageInfo;

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

/**
 * Generated from protobuf message <code>proto.PackageInfo.Metadata</code>
 */
class Metadata extends \Google\Protobuf\Internal\Message
{
    /**
     * basic info
     *
     * Generated from protobuf field <code>string package_name = 1;</code>
     */
    private $package_name = '';
    /**
     * Generated from protobuf field <code>string package_version = 2;</code>
     */
    private $package_version = '';
    /**
     * Generated from protobuf field <code>string email = 3;</code>
     */
    private $email = '';
    /**
     * Generated from protobuf field <code>string homepage = 4;</code>
     */
    private $homepage = '';
    /**
     * Generated from protobuf field <code>string license = 5;</code>
     */
    private $license = '';
    /**
     * host info
     *
     * Generated from protobuf field <code>.proto.RepositoryInfo repository = 6;</code>
     */
    private $repository = null;
    /**
     * execute info
     *
     * Generated from protobuf field <code>repeated .proto.ExecuteInfo exec_jobs = 7;</code>
     */
    private $exec_jobs;
    /**
     * author info
     *
     * Generated from protobuf field <code>repeated string authors = 8;</code>
     */
    private $authors;
    /**
     * Generated from protobuf field <code>repeated string contributors = 9;</code>
     */
    private $contributors;
    /**
     * Generated from protobuf field <code>repeated string maintainers = 10;</code>
     */
    private $maintainers;
    /**
     * release info
     *
     * Generated from protobuf field <code>repeated .proto.ReleaseInfo releases = 11;</code>
     */
    private $releases;

    /**
     * Constructor.
     *
     * @param array $data {
     *     Optional. Data for populating the Message object.
     *
     *     @type string $package_name
     *           basic info
     *     @type string $package_version
     *     @type string $email
     *     @type string $homepage
     *     @type string $license
     *     @type \Proto\RepositoryInfo $repository
     *           host info
     *     @type \Proto\ExecuteInfo[]|\Google\Protobuf\Internal\RepeatedField $exec_jobs
     *           execute info
     *     @type string[]|\Google\Protobuf\Internal\RepeatedField $authors
     *           author info
     *     @type string[]|\Google\Protobuf\Internal\RepeatedField $contributors
     *     @type string[]|\Google\Protobuf\Internal\RepeatedField $maintainers
     *     @type \Proto\ReleaseInfo[]|\Google\Protobuf\Internal\RepeatedField $releases
     *           release info
     * }
     */
    public function __construct($data = NULL) {
        \GPBMetadata\Info::initOnce();
        parent::__construct($data);
    }

    /**
     * basic info
     *
     * Generated from protobuf field <code>string package_name = 1;</code>
     * @return string
     */
    public function getPackageName()
    {
        return $this->package_name;
    }

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

        return $this;
    }

    /**
     * Generated from protobuf field <code>string package_version = 2;</code>
     * @return string
     */
    public function getPackageVersion()
    {
        return $this->package_version;
    }

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

        return $this;
    }

    /**
     * Generated from protobuf field <code>string email = 3;</code>
     * @return string
     */
    public function getEmail()
    {
        return $this->email;
    }

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

        return $this;
    }

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

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

        return $this;
    }

    /**
     * Generated from protobuf field <code>string license = 5;</code>
     * @return string
     */
    public function getLicense()
    {
        return $this->license;
    }

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

        return $this;
    }

    /**
     * host info
     *
     * Generated from protobuf field <code>.proto.RepositoryInfo repository = 6;</code>
     * @return \Proto\RepositoryInfo
     */
    public function getRepository()
    {
        return $this->repository;
    }

    /**
     * host info
     *
     * Generated from protobuf field <code>.proto.RepositoryInfo repository = 6;</code>
     * @param \Proto\RepositoryInfo $var
     * @return $this
     */
    public function setRepository($var)
    {
        GPBUtil::checkMessage($var, \Proto\RepositoryInfo::class);
        $this->repository = $var;

        return $this;
    }

    /**
     * execute info
     *
     * Generated from protobuf field <code>repeated .proto.ExecuteInfo exec_jobs = 7;</code>
     * @return \Google\Protobuf\Internal\RepeatedField
     */
    public function getExecJobs()
    {
        return $this->exec_jobs;
    }

    /**
     * execute info
     *
     * Generated from protobuf field <code>repeated .proto.ExecuteInfo exec_jobs = 7;</code>
     * @param \Proto\ExecuteInfo[]|\Google\Protobuf\Internal\RepeatedField $var
     * @return $this
     */
    public function setExecJobs($var)
    {
        $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Proto\ExecuteInfo::class);
        $this->exec_jobs = $arr;

        return $this;
    }

    /**
     * author info
     *
     * Generated from protobuf field <code>repeated string authors = 8;</code>
     * @return \Google\Protobuf\Internal\RepeatedField
     */
    public function getAuthors()
    {
        return $this->authors;
    }

    /**
     * author info
     *
     * Generated from protobuf field <code>repeated string authors = 8;</code>
     * @param string[]|\Google\Protobuf\Internal\RepeatedField $var
     * @return $this
     */
    public function setAuthors($var)
    {
        $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
        $this->authors = $arr;

        return $this;
    }

    /**
     * Generated from protobuf field <code>repeated string contributors = 9;</code>
     * @return \Google\Protobuf\Internal\RepeatedField
     */
    public function getContributors()
    {
        return $this->contributors;
    }

    /**
     * Generated from protobuf field <code>repeated string contributors = 9;</code>
     * @param string[]|\Google\Protobuf\Internal\RepeatedField $var
     * @return $this
     */
    public function setContributors($var)
    {
        $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
        $this->contributors = $arr;

        return $this;
    }

    /**
     * Generated from protobuf field <code>repeated string maintainers = 10;</code>
     * @return \Google\Protobuf\Internal\RepeatedField
     */
    public function getMaintainers()
    {
        return $this->maintainers;
    }

    /**
     * Generated from protobuf field <code>repeated string maintainers = 10;</code>
     * @param string[]|\Google\Protobuf\Internal\RepeatedField $var
     * @return $this
     */
    public function setMaintainers($var)
    {
        $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
        $this->maintainers = $arr;

        return $this;
    }

    /**
     * release info
     *
     * Generated from protobuf field <code>repeated .proto.ReleaseInfo releases = 11;</code>
     * @return \Google\Protobuf\Internal\RepeatedField
     */
    public function getReleases()
    {
        return $this->releases;
    }

    /**
     * release info
     *
     * Generated from protobuf field <code>repeated .proto.ReleaseInfo releases = 11;</code>
     * @param \Proto\ReleaseInfo[]|\Google\Protobuf\Internal\RepeatedField $var
     * @return $this
     */
    public function setReleases($var)
    {
        $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Proto\ReleaseInfo::class);
        $this->releases = $arr;

        return $this;
    }

}

// Adding a class alias for backwards compatibility with the previous class name.
class_alias(Metadata::class, \Proto\PackageInfo_Metadata::class);

