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

namespace Google\Cloud\Deploy\V1;

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

/**
 * Execution using a private Cloud Build pool.
 *
 * Generated from protobuf message <code>google.cloud.deploy.v1.PrivatePool</code>
 */
class PrivatePool extends \Google\Protobuf\Internal\Message
{
    /**
     * Required. Resource name of the Cloud Build worker pool to use. The format is
     * `projects/{project}/locations/{location}/workerPools/{pool}`.
     *
     * Generated from protobuf field <code>string worker_pool = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {</code>
     */
    private $worker_pool = '';
    /**
     * Optional. Google service account to use for execution. If unspecified,
     * the project execution service account
     * (<PROJECT_NUMBER>-compute&#64;developer.gserviceaccount.com) will be used.
     *
     * Generated from protobuf field <code>string service_account = 2 [(.google.api.field_behavior) = OPTIONAL];</code>
     */
    private $service_account = '';
    /**
     * Optional. Cloud Storage location where execution outputs should be stored. This can
     * either be a bucket ("gs://my-bucket") or a path within a bucket
     * ("gs://my-bucket/my-dir").
     * If unspecified, a default bucket located in the same region will be used.
     *
     * Generated from protobuf field <code>string artifact_storage = 3 [(.google.api.field_behavior) = OPTIONAL];</code>
     */
    private $artifact_storage = '';

    /**
     * Constructor.
     *
     * @param array $data {
     *     Optional. Data for populating the Message object.
     *
     *     @type string $worker_pool
     *           Required. Resource name of the Cloud Build worker pool to use. The format is
     *           `projects/{project}/locations/{location}/workerPools/{pool}`.
     *     @type string $service_account
     *           Optional. Google service account to use for execution. If unspecified,
     *           the project execution service account
     *           (<PROJECT_NUMBER>-compute&#64;developer.gserviceaccount.com) will be used.
     *     @type string $artifact_storage
     *           Optional. Cloud Storage location where execution outputs should be stored. This can
     *           either be a bucket ("gs://my-bucket") or a path within a bucket
     *           ("gs://my-bucket/my-dir").
     *           If unspecified, a default bucket located in the same region will be used.
     * }
     */
    public function __construct($data = NULL) {
        \GPBMetadata\Google\Cloud\Deploy\V1\CloudDeploy::initOnce();
        parent::__construct($data);
    }

    /**
     * Required. Resource name of the Cloud Build worker pool to use. The format is
     * `projects/{project}/locations/{location}/workerPools/{pool}`.
     *
     * Generated from protobuf field <code>string worker_pool = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {</code>
     * @return string
     */
    public function getWorkerPool()
    {
        return $this->worker_pool;
    }

    /**
     * Required. Resource name of the Cloud Build worker pool to use. The format is
     * `projects/{project}/locations/{location}/workerPools/{pool}`.
     *
     * Generated from protobuf field <code>string worker_pool = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {</code>
     * @param string $var
     * @return $this
     */
    public function setWorkerPool($var)
    {
        GPBUtil::checkString($var, True);
        $this->worker_pool = $var;

        return $this;
    }

    /**
     * Optional. Google service account to use for execution. If unspecified,
     * the project execution service account
     * (<PROJECT_NUMBER>-compute&#64;developer.gserviceaccount.com) will be used.
     *
     * Generated from protobuf field <code>string service_account = 2 [(.google.api.field_behavior) = OPTIONAL];</code>
     * @return string
     */
    public function getServiceAccount()
    {
        return $this->service_account;
    }

    /**
     * Optional. Google service account to use for execution. If unspecified,
     * the project execution service account
     * (<PROJECT_NUMBER>-compute&#64;developer.gserviceaccount.com) will be used.
     *
     * Generated from protobuf field <code>string service_account = 2 [(.google.api.field_behavior) = OPTIONAL];</code>
     * @param string $var
     * @return $this
     */
    public function setServiceAccount($var)
    {
        GPBUtil::checkString($var, True);
        $this->service_account = $var;

        return $this;
    }

    /**
     * Optional. Cloud Storage location where execution outputs should be stored. This can
     * either be a bucket ("gs://my-bucket") or a path within a bucket
     * ("gs://my-bucket/my-dir").
     * If unspecified, a default bucket located in the same region will be used.
     *
     * Generated from protobuf field <code>string artifact_storage = 3 [(.google.api.field_behavior) = OPTIONAL];</code>
     * @return string
     */
    public function getArtifactStorage()
    {
        return $this->artifact_storage;
    }

    /**
     * Optional. Cloud Storage location where execution outputs should be stored. This can
     * either be a bucket ("gs://my-bucket") or a path within a bucket
     * ("gs://my-bucket/my-dir").
     * If unspecified, a default bucket located in the same region will be used.
     *
     * Generated from protobuf field <code>string artifact_storage = 3 [(.google.api.field_behavior) = OPTIONAL];</code>
     * @param string $var
     * @return $this
     */
    public function setArtifactStorage($var)
    {
        GPBUtil::checkString($var, True);
        $this->artifact_storage = $var;

        return $this;
    }

}

