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

namespace Google\Cloud\AIPlatform\V1;

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

/**
 * A template that specifies runtime configurations such as machine type,
 * runtime version, network configurations, etc.
 * Multiple runtimes can be created from a runtime template.
 *
 * Generated from protobuf message <code>google.cloud.aiplatform.v1.NotebookRuntimeTemplate</code>
 */
class NotebookRuntimeTemplate extends \Google\Protobuf\Internal\Message
{
    /**
     * The resource name of the NotebookRuntimeTemplate.
     *
     * Generated from protobuf field <code>string name = 1;</code>
     */
    protected $name = '';
    /**
     * Required. The display name of the NotebookRuntimeTemplate.
     * The name can be up to 128 characters long and can consist of any UTF-8
     * characters.
     *
     * Generated from protobuf field <code>string display_name = 2 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    protected $display_name = '';
    /**
     * The description of the NotebookRuntimeTemplate.
     *
     * Generated from protobuf field <code>string description = 3;</code>
     */
    protected $description = '';
    /**
     * Output only. Deprecated: This field has no behavior. Use
     * notebook_runtime_type = 'ONE_CLICK' instead.
     * The default template to use if not specified.
     *
     * Generated from protobuf field <code>bool is_default = 4 [deprecated = true, (.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @deprecated
     */
    protected $is_default = false;
    /**
     * Optional. Immutable. The specification of a single machine for the
     * template.
     *
     * Generated from protobuf field <code>.google.cloud.aiplatform.v1.MachineSpec machine_spec = 5 [(.google.api.field_behavior) = OPTIONAL, (.google.api.field_behavior) = IMMUTABLE];</code>
     */
    protected $machine_spec = null;
    /**
     * Optional. The specification of [persistent
     * disk][https://cloud.google.com/compute/docs/disks/persistent-disks]
     * attached to the runtime as data disk storage.
     *
     * Generated from protobuf field <code>.google.cloud.aiplatform.v1.PersistentDiskSpec data_persistent_disk_spec = 8 [(.google.api.field_behavior) = OPTIONAL];</code>
     */
    protected $data_persistent_disk_spec = null;
    /**
     * Optional. Network spec.
     *
     * Generated from protobuf field <code>.google.cloud.aiplatform.v1.NetworkSpec network_spec = 12 [(.google.api.field_behavior) = OPTIONAL];</code>
     */
    protected $network_spec = null;
    /**
     * Deprecated: This field is ignored and the "Vertex AI Notebook Service
     * Account"
     * (service-PROJECT_NUMBER&#64;gcp-sa-aiplatform-vm.iam.gserviceaccount.com) is
     * used for the runtime workload identity.
     * See
     * https://cloud.google.com/iam/docs/service-agents#vertex-ai-notebook-service-account
     * for more details.
     * For NotebookExecutionJob, use NotebookExecutionJob.service_account instead.
     * The service account that the runtime workload runs as.
     * You can use any service account within the same project, but you
     * must have the service account user permission to use the instance.
     * If not specified, the [Compute Engine default service
     * account](https://cloud.google.com/compute/docs/access/service-accounts#default_service_account)
     * is used.
     *
     * Generated from protobuf field <code>string service_account = 13 [deprecated = true];</code>
     * @deprecated
     */
    protected $service_account = '';
    /**
     * Used to perform consistent read-modify-write updates. If not set, a blind
     * "overwrite" update happens.
     *
     * Generated from protobuf field <code>string etag = 14;</code>
     */
    protected $etag = '';
    /**
     * The labels with user-defined metadata to organize the
     * NotebookRuntimeTemplates.
     * Label keys and values can be no longer than 64 characters
     * (Unicode codepoints), can only contain lowercase letters, numeric
     * characters, underscores and dashes. International characters are allowed.
     * See https://goo.gl/xmQnxf for more information and examples of labels.
     *
     * Generated from protobuf field <code>map<string, string> labels = 15;</code>
     */
    private $labels;
    /**
     * The idle shutdown configuration of NotebookRuntimeTemplate. This config
     * will only be set when idle shutdown is enabled.
     *
     * Generated from protobuf field <code>.google.cloud.aiplatform.v1.NotebookIdleShutdownConfig idle_shutdown_config = 17;</code>
     */
    protected $idle_shutdown_config = null;
    /**
     * EUC configuration of the NotebookRuntimeTemplate.
     *
     * Generated from protobuf field <code>.google.cloud.aiplatform.v1.NotebookEucConfig euc_config = 18;</code>
     */
    protected $euc_config = null;
    /**
     * Output only. Timestamp when this NotebookRuntimeTemplate was created.
     *
     * Generated from protobuf field <code>.google.protobuf.Timestamp create_time = 10 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     */
    protected $create_time = null;
    /**
     * Output only. Timestamp when this NotebookRuntimeTemplate was most recently
     * updated.
     *
     * Generated from protobuf field <code>.google.protobuf.Timestamp update_time = 11 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     */
    protected $update_time = null;
    /**
     * Optional. Immutable. The type of the notebook runtime template.
     *
     * Generated from protobuf field <code>.google.cloud.aiplatform.v1.NotebookRuntimeType notebook_runtime_type = 19 [(.google.api.field_behavior) = OPTIONAL, (.google.api.field_behavior) = IMMUTABLE];</code>
     */
    protected $notebook_runtime_type = 0;
    /**
     * Optional. Immutable. Runtime Shielded VM spec.
     *
     * Generated from protobuf field <code>.google.cloud.aiplatform.v1.ShieldedVmConfig shielded_vm_config = 20 [(.google.api.field_behavior) = OPTIONAL, (.google.api.field_behavior) = IMMUTABLE];</code>
     */
    protected $shielded_vm_config = null;
    /**
     * Optional. The Compute Engine tags to add to runtime (see [Tagging
     * instances](https://cloud.google.com/vpc/docs/add-remove-network-tags)).
     *
     * Generated from protobuf field <code>repeated string network_tags = 21 [(.google.api.field_behavior) = OPTIONAL];</code>
     */
    private $network_tags;
    /**
     * Customer-managed encryption key spec for the notebook runtime.
     *
     * Generated from protobuf field <code>.google.cloud.aiplatform.v1.EncryptionSpec encryption_spec = 23;</code>
     */
    protected $encryption_spec = null;
    /**
     * Optional. The notebook software configuration of the notebook runtime.
     *
     * Generated from protobuf field <code>.google.cloud.aiplatform.v1.NotebookSoftwareConfig software_config = 24 [(.google.api.field_behavior) = OPTIONAL];</code>
     */
    protected $software_config = null;

    /**
     * Constructor.
     *
     * @param array $data {
     *     Optional. Data for populating the Message object.
     *
     *     @type string $name
     *           The resource name of the NotebookRuntimeTemplate.
     *     @type string $display_name
     *           Required. The display name of the NotebookRuntimeTemplate.
     *           The name can be up to 128 characters long and can consist of any UTF-8
     *           characters.
     *     @type string $description
     *           The description of the NotebookRuntimeTemplate.
     *     @type bool $is_default
     *           Output only. Deprecated: This field has no behavior. Use
     *           notebook_runtime_type = 'ONE_CLICK' instead.
     *           The default template to use if not specified.
     *     @type \Google\Cloud\AIPlatform\V1\MachineSpec $machine_spec
     *           Optional. Immutable. The specification of a single machine for the
     *           template.
     *     @type \Google\Cloud\AIPlatform\V1\PersistentDiskSpec $data_persistent_disk_spec
     *           Optional. The specification of [persistent
     *           disk][https://cloud.google.com/compute/docs/disks/persistent-disks]
     *           attached to the runtime as data disk storage.
     *     @type \Google\Cloud\AIPlatform\V1\NetworkSpec $network_spec
     *           Optional. Network spec.
     *     @type string $service_account
     *           Deprecated: This field is ignored and the "Vertex AI Notebook Service
     *           Account"
     *           (service-PROJECT_NUMBER&#64;gcp-sa-aiplatform-vm.iam.gserviceaccount.com) is
     *           used for the runtime workload identity.
     *           See
     *           https://cloud.google.com/iam/docs/service-agents#vertex-ai-notebook-service-account
     *           for more details.
     *           For NotebookExecutionJob, use NotebookExecutionJob.service_account instead.
     *           The service account that the runtime workload runs as.
     *           You can use any service account within the same project, but you
     *           must have the service account user permission to use the instance.
     *           If not specified, the [Compute Engine default service
     *           account](https://cloud.google.com/compute/docs/access/service-accounts#default_service_account)
     *           is used.
     *     @type string $etag
     *           Used to perform consistent read-modify-write updates. If not set, a blind
     *           "overwrite" update happens.
     *     @type array|\Google\Protobuf\Internal\MapField $labels
     *           The labels with user-defined metadata to organize the
     *           NotebookRuntimeTemplates.
     *           Label keys and values can be no longer than 64 characters
     *           (Unicode codepoints), can only contain lowercase letters, numeric
     *           characters, underscores and dashes. International characters are allowed.
     *           See https://goo.gl/xmQnxf for more information and examples of labels.
     *     @type \Google\Cloud\AIPlatform\V1\NotebookIdleShutdownConfig $idle_shutdown_config
     *           The idle shutdown configuration of NotebookRuntimeTemplate. This config
     *           will only be set when idle shutdown is enabled.
     *     @type \Google\Cloud\AIPlatform\V1\NotebookEucConfig $euc_config
     *           EUC configuration of the NotebookRuntimeTemplate.
     *     @type \Google\Protobuf\Timestamp $create_time
     *           Output only. Timestamp when this NotebookRuntimeTemplate was created.
     *     @type \Google\Protobuf\Timestamp $update_time
     *           Output only. Timestamp when this NotebookRuntimeTemplate was most recently
     *           updated.
     *     @type int $notebook_runtime_type
     *           Optional. Immutable. The type of the notebook runtime template.
     *     @type \Google\Cloud\AIPlatform\V1\ShieldedVmConfig $shielded_vm_config
     *           Optional. Immutable. Runtime Shielded VM spec.
     *     @type array<string>|\Google\Protobuf\Internal\RepeatedField $network_tags
     *           Optional. The Compute Engine tags to add to runtime (see [Tagging
     *           instances](https://cloud.google.com/vpc/docs/add-remove-network-tags)).
     *     @type \Google\Cloud\AIPlatform\V1\EncryptionSpec $encryption_spec
     *           Customer-managed encryption key spec for the notebook runtime.
     *     @type \Google\Cloud\AIPlatform\V1\NotebookSoftwareConfig $software_config
     *           Optional. The notebook software configuration of the notebook runtime.
     * }
     */
    public function __construct($data = NULL) {
        \GPBMetadata\Google\Cloud\Aiplatform\V1\NotebookRuntime::initOnce();
        parent::__construct($data);
    }

    /**
     * The resource name of the NotebookRuntimeTemplate.
     *
     * Generated from protobuf field <code>string name = 1;</code>
     * @return string
     */
    public function getName()
    {
        return $this->name;
    }

    /**
     * The resource name of the NotebookRuntimeTemplate.
     *
     * Generated from protobuf field <code>string name = 1;</code>
     * @param string $var
     * @return $this
     */
    public function setName($var)
    {
        GPBUtil::checkString($var, True);
        $this->name = $var;

        return $this;
    }

    /**
     * Required. The display name of the NotebookRuntimeTemplate.
     * The name can be up to 128 characters long and can consist of any UTF-8
     * characters.
     *
     * Generated from protobuf field <code>string display_name = 2 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return string
     */
    public function getDisplayName()
    {
        return $this->display_name;
    }

    /**
     * Required. The display name of the NotebookRuntimeTemplate.
     * The name can be up to 128 characters long and can consist of any UTF-8
     * characters.
     *
     * Generated from protobuf field <code>string display_name = 2 [(.google.api.field_behavior) = REQUIRED];</code>
     * @param string $var
     * @return $this
     */
    public function setDisplayName($var)
    {
        GPBUtil::checkString($var, True);
        $this->display_name = $var;

        return $this;
    }

    /**
     * The description of the NotebookRuntimeTemplate.
     *
     * Generated from protobuf field <code>string description = 3;</code>
     * @return string
     */
    public function getDescription()
    {
        return $this->description;
    }

    /**
     * The description of the NotebookRuntimeTemplate.
     *
     * Generated from protobuf field <code>string description = 3;</code>
     * @param string $var
     * @return $this
     */
    public function setDescription($var)
    {
        GPBUtil::checkString($var, True);
        $this->description = $var;

        return $this;
    }

    /**
     * Output only. Deprecated: This field has no behavior. Use
     * notebook_runtime_type = 'ONE_CLICK' instead.
     * The default template to use if not specified.
     *
     * Generated from protobuf field <code>bool is_default = 4 [deprecated = true, (.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @return bool
     * @deprecated
     */
    public function getIsDefault()
    {
        if ($this->is_default !== false) {
            @trigger_error('is_default is deprecated.', E_USER_DEPRECATED);
        }
        return $this->is_default;
    }

    /**
     * Output only. Deprecated: This field has no behavior. Use
     * notebook_runtime_type = 'ONE_CLICK' instead.
     * The default template to use if not specified.
     *
     * Generated from protobuf field <code>bool is_default = 4 [deprecated = true, (.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @param bool $var
     * @return $this
     * @deprecated
     */
    public function setIsDefault($var)
    {
        @trigger_error('is_default is deprecated.', E_USER_DEPRECATED);
        GPBUtil::checkBool($var);
        $this->is_default = $var;

        return $this;
    }

    /**
     * Optional. Immutable. The specification of a single machine for the
     * template.
     *
     * Generated from protobuf field <code>.google.cloud.aiplatform.v1.MachineSpec machine_spec = 5 [(.google.api.field_behavior) = OPTIONAL, (.google.api.field_behavior) = IMMUTABLE];</code>
     * @return \Google\Cloud\AIPlatform\V1\MachineSpec|null
     */
    public function getMachineSpec()
    {
        return $this->machine_spec;
    }

    public function hasMachineSpec()
    {
        return isset($this->machine_spec);
    }

    public function clearMachineSpec()
    {
        unset($this->machine_spec);
    }

    /**
     * Optional. Immutable. The specification of a single machine for the
     * template.
     *
     * Generated from protobuf field <code>.google.cloud.aiplatform.v1.MachineSpec machine_spec = 5 [(.google.api.field_behavior) = OPTIONAL, (.google.api.field_behavior) = IMMUTABLE];</code>
     * @param \Google\Cloud\AIPlatform\V1\MachineSpec $var
     * @return $this
     */
    public function setMachineSpec($var)
    {
        GPBUtil::checkMessage($var, \Google\Cloud\AIPlatform\V1\MachineSpec::class);
        $this->machine_spec = $var;

        return $this;
    }

    /**
     * Optional. The specification of [persistent
     * disk][https://cloud.google.com/compute/docs/disks/persistent-disks]
     * attached to the runtime as data disk storage.
     *
     * Generated from protobuf field <code>.google.cloud.aiplatform.v1.PersistentDiskSpec data_persistent_disk_spec = 8 [(.google.api.field_behavior) = OPTIONAL];</code>
     * @return \Google\Cloud\AIPlatform\V1\PersistentDiskSpec|null
     */
    public function getDataPersistentDiskSpec()
    {
        return $this->data_persistent_disk_spec;
    }

    public function hasDataPersistentDiskSpec()
    {
        return isset($this->data_persistent_disk_spec);
    }

    public function clearDataPersistentDiskSpec()
    {
        unset($this->data_persistent_disk_spec);
    }

    /**
     * Optional. The specification of [persistent
     * disk][https://cloud.google.com/compute/docs/disks/persistent-disks]
     * attached to the runtime as data disk storage.
     *
     * Generated from protobuf field <code>.google.cloud.aiplatform.v1.PersistentDiskSpec data_persistent_disk_spec = 8 [(.google.api.field_behavior) = OPTIONAL];</code>
     * @param \Google\Cloud\AIPlatform\V1\PersistentDiskSpec $var
     * @return $this
     */
    public function setDataPersistentDiskSpec($var)
    {
        GPBUtil::checkMessage($var, \Google\Cloud\AIPlatform\V1\PersistentDiskSpec::class);
        $this->data_persistent_disk_spec = $var;

        return $this;
    }

    /**
     * Optional. Network spec.
     *
     * Generated from protobuf field <code>.google.cloud.aiplatform.v1.NetworkSpec network_spec = 12 [(.google.api.field_behavior) = OPTIONAL];</code>
     * @return \Google\Cloud\AIPlatform\V1\NetworkSpec|null
     */
    public function getNetworkSpec()
    {
        return $this->network_spec;
    }

    public function hasNetworkSpec()
    {
        return isset($this->network_spec);
    }

    public function clearNetworkSpec()
    {
        unset($this->network_spec);
    }

    /**
     * Optional. Network spec.
     *
     * Generated from protobuf field <code>.google.cloud.aiplatform.v1.NetworkSpec network_spec = 12 [(.google.api.field_behavior) = OPTIONAL];</code>
     * @param \Google\Cloud\AIPlatform\V1\NetworkSpec $var
     * @return $this
     */
    public function setNetworkSpec($var)
    {
        GPBUtil::checkMessage($var, \Google\Cloud\AIPlatform\V1\NetworkSpec::class);
        $this->network_spec = $var;

        return $this;
    }

    /**
     * Deprecated: This field is ignored and the "Vertex AI Notebook Service
     * Account"
     * (service-PROJECT_NUMBER&#64;gcp-sa-aiplatform-vm.iam.gserviceaccount.com) is
     * used for the runtime workload identity.
     * See
     * https://cloud.google.com/iam/docs/service-agents#vertex-ai-notebook-service-account
     * for more details.
     * For NotebookExecutionJob, use NotebookExecutionJob.service_account instead.
     * The service account that the runtime workload runs as.
     * You can use any service account within the same project, but you
     * must have the service account user permission to use the instance.
     * If not specified, the [Compute Engine default service
     * account](https://cloud.google.com/compute/docs/access/service-accounts#default_service_account)
     * is used.
     *
     * Generated from protobuf field <code>string service_account = 13 [deprecated = true];</code>
     * @return string
     * @deprecated
     */
    public function getServiceAccount()
    {
        if ($this->service_account !== '') {
            @trigger_error('service_account is deprecated.', E_USER_DEPRECATED);
        }
        return $this->service_account;
    }

    /**
     * Deprecated: This field is ignored and the "Vertex AI Notebook Service
     * Account"
     * (service-PROJECT_NUMBER&#64;gcp-sa-aiplatform-vm.iam.gserviceaccount.com) is
     * used for the runtime workload identity.
     * See
     * https://cloud.google.com/iam/docs/service-agents#vertex-ai-notebook-service-account
     * for more details.
     * For NotebookExecutionJob, use NotebookExecutionJob.service_account instead.
     * The service account that the runtime workload runs as.
     * You can use any service account within the same project, but you
     * must have the service account user permission to use the instance.
     * If not specified, the [Compute Engine default service
     * account](https://cloud.google.com/compute/docs/access/service-accounts#default_service_account)
     * is used.
     *
     * Generated from protobuf field <code>string service_account = 13 [deprecated = true];</code>
     * @param string $var
     * @return $this
     * @deprecated
     */
    public function setServiceAccount($var)
    {
        @trigger_error('service_account is deprecated.', E_USER_DEPRECATED);
        GPBUtil::checkString($var, True);
        $this->service_account = $var;

        return $this;
    }

    /**
     * Used to perform consistent read-modify-write updates. If not set, a blind
     * "overwrite" update happens.
     *
     * Generated from protobuf field <code>string etag = 14;</code>
     * @return string
     */
    public function getEtag()
    {
        return $this->etag;
    }

    /**
     * Used to perform consistent read-modify-write updates. If not set, a blind
     * "overwrite" update happens.
     *
     * Generated from protobuf field <code>string etag = 14;</code>
     * @param string $var
     * @return $this
     */
    public function setEtag($var)
    {
        GPBUtil::checkString($var, True);
        $this->etag = $var;

        return $this;
    }

    /**
     * The labels with user-defined metadata to organize the
     * NotebookRuntimeTemplates.
     * Label keys and values can be no longer than 64 characters
     * (Unicode codepoints), can only contain lowercase letters, numeric
     * characters, underscores and dashes. International characters are allowed.
     * See https://goo.gl/xmQnxf for more information and examples of labels.
     *
     * Generated from protobuf field <code>map<string, string> labels = 15;</code>
     * @return \Google\Protobuf\Internal\MapField
     */
    public function getLabels()
    {
        return $this->labels;
    }

    /**
     * The labels with user-defined metadata to organize the
     * NotebookRuntimeTemplates.
     * Label keys and values can be no longer than 64 characters
     * (Unicode codepoints), can only contain lowercase letters, numeric
     * characters, underscores and dashes. International characters are allowed.
     * See https://goo.gl/xmQnxf for more information and examples of labels.
     *
     * Generated from protobuf field <code>map<string, string> labels = 15;</code>
     * @param array|\Google\Protobuf\Internal\MapField $var
     * @return $this
     */
    public function setLabels($var)
    {
        $arr = GPBUtil::checkMapField($var, \Google\Protobuf\Internal\GPBType::STRING, \Google\Protobuf\Internal\GPBType::STRING);
        $this->labels = $arr;

        return $this;
    }

    /**
     * The idle shutdown configuration of NotebookRuntimeTemplate. This config
     * will only be set when idle shutdown is enabled.
     *
     * Generated from protobuf field <code>.google.cloud.aiplatform.v1.NotebookIdleShutdownConfig idle_shutdown_config = 17;</code>
     * @return \Google\Cloud\AIPlatform\V1\NotebookIdleShutdownConfig|null
     */
    public function getIdleShutdownConfig()
    {
        return $this->idle_shutdown_config;
    }

    public function hasIdleShutdownConfig()
    {
        return isset($this->idle_shutdown_config);
    }

    public function clearIdleShutdownConfig()
    {
        unset($this->idle_shutdown_config);
    }

    /**
     * The idle shutdown configuration of NotebookRuntimeTemplate. This config
     * will only be set when idle shutdown is enabled.
     *
     * Generated from protobuf field <code>.google.cloud.aiplatform.v1.NotebookIdleShutdownConfig idle_shutdown_config = 17;</code>
     * @param \Google\Cloud\AIPlatform\V1\NotebookIdleShutdownConfig $var
     * @return $this
     */
    public function setIdleShutdownConfig($var)
    {
        GPBUtil::checkMessage($var, \Google\Cloud\AIPlatform\V1\NotebookIdleShutdownConfig::class);
        $this->idle_shutdown_config = $var;

        return $this;
    }

    /**
     * EUC configuration of the NotebookRuntimeTemplate.
     *
     * Generated from protobuf field <code>.google.cloud.aiplatform.v1.NotebookEucConfig euc_config = 18;</code>
     * @return \Google\Cloud\AIPlatform\V1\NotebookEucConfig|null
     */
    public function getEucConfig()
    {
        return $this->euc_config;
    }

    public function hasEucConfig()
    {
        return isset($this->euc_config);
    }

    public function clearEucConfig()
    {
        unset($this->euc_config);
    }

    /**
     * EUC configuration of the NotebookRuntimeTemplate.
     *
     * Generated from protobuf field <code>.google.cloud.aiplatform.v1.NotebookEucConfig euc_config = 18;</code>
     * @param \Google\Cloud\AIPlatform\V1\NotebookEucConfig $var
     * @return $this
     */
    public function setEucConfig($var)
    {
        GPBUtil::checkMessage($var, \Google\Cloud\AIPlatform\V1\NotebookEucConfig::class);
        $this->euc_config = $var;

        return $this;
    }

    /**
     * Output only. Timestamp when this NotebookRuntimeTemplate was created.
     *
     * Generated from protobuf field <code>.google.protobuf.Timestamp create_time = 10 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @return \Google\Protobuf\Timestamp|null
     */
    public function getCreateTime()
    {
        return $this->create_time;
    }

    public function hasCreateTime()
    {
        return isset($this->create_time);
    }

    public function clearCreateTime()
    {
        unset($this->create_time);
    }

    /**
     * Output only. Timestamp when this NotebookRuntimeTemplate was created.
     *
     * Generated from protobuf field <code>.google.protobuf.Timestamp create_time = 10 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @param \Google\Protobuf\Timestamp $var
     * @return $this
     */
    public function setCreateTime($var)
    {
        GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class);
        $this->create_time = $var;

        return $this;
    }

    /**
     * Output only. Timestamp when this NotebookRuntimeTemplate was most recently
     * updated.
     *
     * Generated from protobuf field <code>.google.protobuf.Timestamp update_time = 11 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @return \Google\Protobuf\Timestamp|null
     */
    public function getUpdateTime()
    {
        return $this->update_time;
    }

    public function hasUpdateTime()
    {
        return isset($this->update_time);
    }

    public function clearUpdateTime()
    {
        unset($this->update_time);
    }

    /**
     * Output only. Timestamp when this NotebookRuntimeTemplate was most recently
     * updated.
     *
     * Generated from protobuf field <code>.google.protobuf.Timestamp update_time = 11 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @param \Google\Protobuf\Timestamp $var
     * @return $this
     */
    public function setUpdateTime($var)
    {
        GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class);
        $this->update_time = $var;

        return $this;
    }

    /**
     * Optional. Immutable. The type of the notebook runtime template.
     *
     * Generated from protobuf field <code>.google.cloud.aiplatform.v1.NotebookRuntimeType notebook_runtime_type = 19 [(.google.api.field_behavior) = OPTIONAL, (.google.api.field_behavior) = IMMUTABLE];</code>
     * @return int
     */
    public function getNotebookRuntimeType()
    {
        return $this->notebook_runtime_type;
    }

    /**
     * Optional. Immutable. The type of the notebook runtime template.
     *
     * Generated from protobuf field <code>.google.cloud.aiplatform.v1.NotebookRuntimeType notebook_runtime_type = 19 [(.google.api.field_behavior) = OPTIONAL, (.google.api.field_behavior) = IMMUTABLE];</code>
     * @param int $var
     * @return $this
     */
    public function setNotebookRuntimeType($var)
    {
        GPBUtil::checkEnum($var, \Google\Cloud\AIPlatform\V1\NotebookRuntimeType::class);
        $this->notebook_runtime_type = $var;

        return $this;
    }

    /**
     * Optional. Immutable. Runtime Shielded VM spec.
     *
     * Generated from protobuf field <code>.google.cloud.aiplatform.v1.ShieldedVmConfig shielded_vm_config = 20 [(.google.api.field_behavior) = OPTIONAL, (.google.api.field_behavior) = IMMUTABLE];</code>
     * @return \Google\Cloud\AIPlatform\V1\ShieldedVmConfig|null
     */
    public function getShieldedVmConfig()
    {
        return $this->shielded_vm_config;
    }

    public function hasShieldedVmConfig()
    {
        return isset($this->shielded_vm_config);
    }

    public function clearShieldedVmConfig()
    {
        unset($this->shielded_vm_config);
    }

    /**
     * Optional. Immutable. Runtime Shielded VM spec.
     *
     * Generated from protobuf field <code>.google.cloud.aiplatform.v1.ShieldedVmConfig shielded_vm_config = 20 [(.google.api.field_behavior) = OPTIONAL, (.google.api.field_behavior) = IMMUTABLE];</code>
     * @param \Google\Cloud\AIPlatform\V1\ShieldedVmConfig $var
     * @return $this
     */
    public function setShieldedVmConfig($var)
    {
        GPBUtil::checkMessage($var, \Google\Cloud\AIPlatform\V1\ShieldedVmConfig::class);
        $this->shielded_vm_config = $var;

        return $this;
    }

    /**
     * Optional. The Compute Engine tags to add to runtime (see [Tagging
     * instances](https://cloud.google.com/vpc/docs/add-remove-network-tags)).
     *
     * Generated from protobuf field <code>repeated string network_tags = 21 [(.google.api.field_behavior) = OPTIONAL];</code>
     * @return \Google\Protobuf\Internal\RepeatedField
     */
    public function getNetworkTags()
    {
        return $this->network_tags;
    }

    /**
     * Optional. The Compute Engine tags to add to runtime (see [Tagging
     * instances](https://cloud.google.com/vpc/docs/add-remove-network-tags)).
     *
     * Generated from protobuf field <code>repeated string network_tags = 21 [(.google.api.field_behavior) = OPTIONAL];</code>
     * @param array<string>|\Google\Protobuf\Internal\RepeatedField $var
     * @return $this
     */
    public function setNetworkTags($var)
    {
        $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
        $this->network_tags = $arr;

        return $this;
    }

    /**
     * Customer-managed encryption key spec for the notebook runtime.
     *
     * Generated from protobuf field <code>.google.cloud.aiplatform.v1.EncryptionSpec encryption_spec = 23;</code>
     * @return \Google\Cloud\AIPlatform\V1\EncryptionSpec|null
     */
    public function getEncryptionSpec()
    {
        return $this->encryption_spec;
    }

    public function hasEncryptionSpec()
    {
        return isset($this->encryption_spec);
    }

    public function clearEncryptionSpec()
    {
        unset($this->encryption_spec);
    }

    /**
     * Customer-managed encryption key spec for the notebook runtime.
     *
     * Generated from protobuf field <code>.google.cloud.aiplatform.v1.EncryptionSpec encryption_spec = 23;</code>
     * @param \Google\Cloud\AIPlatform\V1\EncryptionSpec $var
     * @return $this
     */
    public function setEncryptionSpec($var)
    {
        GPBUtil::checkMessage($var, \Google\Cloud\AIPlatform\V1\EncryptionSpec::class);
        $this->encryption_spec = $var;

        return $this;
    }

    /**
     * Optional. The notebook software configuration of the notebook runtime.
     *
     * Generated from protobuf field <code>.google.cloud.aiplatform.v1.NotebookSoftwareConfig software_config = 24 [(.google.api.field_behavior) = OPTIONAL];</code>
     * @return \Google\Cloud\AIPlatform\V1\NotebookSoftwareConfig|null
     */
    public function getSoftwareConfig()
    {
        return $this->software_config;
    }

    public function hasSoftwareConfig()
    {
        return isset($this->software_config);
    }

    public function clearSoftwareConfig()
    {
        unset($this->software_config);
    }

    /**
     * Optional. The notebook software configuration of the notebook runtime.
     *
     * Generated from protobuf field <code>.google.cloud.aiplatform.v1.NotebookSoftwareConfig software_config = 24 [(.google.api.field_behavior) = OPTIONAL];</code>
     * @param \Google\Cloud\AIPlatform\V1\NotebookSoftwareConfig $var
     * @return $this
     */
    public function setSoftwareConfig($var)
    {
        GPBUtil::checkMessage($var, \Google\Cloud\AIPlatform\V1\NotebookSoftwareConfig::class);
        $this->software_config = $var;

        return $this;
    }

}

