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

namespace Google\Cloud\OracleDatabase\V1;

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

/**
 * Various properties of Exadata Infrastructure.
 *
 * Generated from protobuf message <code>google.cloud.oracledatabase.v1.CloudExadataInfrastructureProperties</code>
 */
class CloudExadataInfrastructureProperties extends \Google\Protobuf\Internal\Message
{
    /**
     * Output only. OCID of created infra.
     * https://docs.oracle.com/en-us/iaas/Content/General/Concepts/identifiers.htm#Oracle
     *
     * Generated from protobuf field <code>string ocid = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     */
    protected $ocid = '';
    /**
     * Optional. The number of compute servers for the Exadata Infrastructure.
     *
     * Generated from protobuf field <code>int32 compute_count = 2 [(.google.api.field_behavior) = OPTIONAL];</code>
     */
    protected $compute_count = 0;
    /**
     * Optional. The number of Cloud Exadata storage servers for the Exadata
     * Infrastructure.
     *
     * Generated from protobuf field <code>int32 storage_count = 3 [(.google.api.field_behavior) = OPTIONAL];</code>
     */
    protected $storage_count = 0;
    /**
     * Optional. The total storage allocated to the Exadata Infrastructure
     * resource, in gigabytes (GB).
     *
     * Generated from protobuf field <code>int32 total_storage_size_gb = 4 [(.google.api.field_behavior) = OPTIONAL];</code>
     */
    protected $total_storage_size_gb = 0;
    /**
     * Output only. The available storage can be allocated to the Exadata
     * Infrastructure resource, in gigabytes (GB).
     *
     * Generated from protobuf field <code>int32 available_storage_size_gb = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     */
    protected $available_storage_size_gb = 0;
    /**
     * Optional. Maintenance window for repair.
     *
     * Generated from protobuf field <code>.google.cloud.oracledatabase.v1.MaintenanceWindow maintenance_window = 6 [(.google.api.field_behavior) = OPTIONAL];</code>
     */
    protected $maintenance_window = null;
    /**
     * Output only. The current lifecycle state of the Exadata Infrastructure.
     *
     * Generated from protobuf field <code>.google.cloud.oracledatabase.v1.CloudExadataInfrastructureProperties.State state = 7 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     */
    protected $state = 0;
    /**
     * Required. The shape of the Exadata Infrastructure. The shape determines the
     * amount of CPU, storage, and memory resources allocated to the instance.
     *
     * Generated from protobuf field <code>string shape = 8 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    protected $shape = '';
    /**
     * Output only. Deep link to the OCI console to view this resource.
     *
     * Generated from protobuf field <code>string oci_url = 9 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     */
    protected $oci_url = '';
    /**
     * Optional. The number of enabled CPU cores.
     *
     * Generated from protobuf field <code>int32 cpu_count = 10 [(.google.api.field_behavior) = OPTIONAL];</code>
     */
    protected $cpu_count = 0;
    /**
     * Output only. The total number of CPU cores available.
     *
     * Generated from protobuf field <code>int32 max_cpu_count = 11 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     */
    protected $max_cpu_count = 0;
    /**
     * Optional. The memory allocated in GBs.
     *
     * Generated from protobuf field <code>int32 memory_size_gb = 12 [(.google.api.field_behavior) = OPTIONAL];</code>
     */
    protected $memory_size_gb = 0;
    /**
     * Output only. The total memory available in GBs.
     *
     * Generated from protobuf field <code>int32 max_memory_gb = 13 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     */
    protected $max_memory_gb = 0;
    /**
     * Optional. The local node storage allocated in GBs.
     *
     * Generated from protobuf field <code>int32 db_node_storage_size_gb = 14 [(.google.api.field_behavior) = OPTIONAL];</code>
     */
    protected $db_node_storage_size_gb = 0;
    /**
     * Output only. The total local node storage available in GBs.
     *
     * Generated from protobuf field <code>int32 max_db_node_storage_size_gb = 15 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     */
    protected $max_db_node_storage_size_gb = 0;
    /**
     * Output only. Size, in terabytes, of the DATA disk group.
     *
     * Generated from protobuf field <code>double data_storage_size_tb = 16 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     */
    protected $data_storage_size_tb = 0.0;
    /**
     * Output only. The total available DATA disk group size.
     *
     * Generated from protobuf field <code>double max_data_storage_tb = 17 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     */
    protected $max_data_storage_tb = 0.0;
    /**
     * Output only. The requested number of additional storage servers activated
     * for the Exadata Infrastructure.
     *
     * Generated from protobuf field <code>int32 activated_storage_count = 18 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     */
    protected $activated_storage_count = 0;
    /**
     * Output only. The requested number of additional storage servers for the
     * Exadata Infrastructure.
     *
     * Generated from protobuf field <code>int32 additional_storage_count = 19 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     */
    protected $additional_storage_count = 0;
    /**
     * Output only. The software version of the database servers (dom0) in the
     * Exadata Infrastructure.
     *
     * Generated from protobuf field <code>string db_server_version = 20 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     */
    protected $db_server_version = '';
    /**
     * Output only. The software version of the storage servers (cells) in the
     * Exadata Infrastructure.
     *
     * Generated from protobuf field <code>string storage_server_version = 21 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     */
    protected $storage_server_version = '';
    /**
     * Output only. The OCID of the next maintenance run.
     *
     * Generated from protobuf field <code>string next_maintenance_run_id = 22 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     */
    protected $next_maintenance_run_id = '';
    /**
     * Output only. The time when the next maintenance run will occur.
     *
     * Generated from protobuf field <code>.google.protobuf.Timestamp next_maintenance_run_time = 23 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     */
    protected $next_maintenance_run_time = null;
    /**
     * Output only. The time when the next security maintenance run will occur.
     *
     * Generated from protobuf field <code>.google.protobuf.Timestamp next_security_maintenance_run_time = 24 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     */
    protected $next_security_maintenance_run_time = null;
    /**
     * Optional. The list of customer contacts.
     *
     * Generated from protobuf field <code>repeated .google.cloud.oracledatabase.v1.CustomerContact customer_contacts = 25 [(.google.api.field_behavior) = OPTIONAL];</code>
     */
    private $customer_contacts;
    /**
     * Output only. The monthly software version of the storage servers (cells)
     * in the Exadata Infrastructure. Example: 20.1.15
     *
     * Generated from protobuf field <code>string monthly_storage_server_version = 26 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     */
    protected $monthly_storage_server_version = '';
    /**
     * Output only. The monthly software version of the database servers (dom0)
     * in the Exadata Infrastructure. Example: 20.1.15
     *
     * Generated from protobuf field <code>string monthly_db_server_version = 27 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     */
    protected $monthly_db_server_version = '';

    /**
     * Constructor.
     *
     * @param array $data {
     *     Optional. Data for populating the Message object.
     *
     *     @type string $ocid
     *           Output only. OCID of created infra.
     *           https://docs.oracle.com/en-us/iaas/Content/General/Concepts/identifiers.htm#Oracle
     *     @type int $compute_count
     *           Optional. The number of compute servers for the Exadata Infrastructure.
     *     @type int $storage_count
     *           Optional. The number of Cloud Exadata storage servers for the Exadata
     *           Infrastructure.
     *     @type int $total_storage_size_gb
     *           Optional. The total storage allocated to the Exadata Infrastructure
     *           resource, in gigabytes (GB).
     *     @type int $available_storage_size_gb
     *           Output only. The available storage can be allocated to the Exadata
     *           Infrastructure resource, in gigabytes (GB).
     *     @type \Google\Cloud\OracleDatabase\V1\MaintenanceWindow $maintenance_window
     *           Optional. Maintenance window for repair.
     *     @type int $state
     *           Output only. The current lifecycle state of the Exadata Infrastructure.
     *     @type string $shape
     *           Required. The shape of the Exadata Infrastructure. The shape determines the
     *           amount of CPU, storage, and memory resources allocated to the instance.
     *     @type string $oci_url
     *           Output only. Deep link to the OCI console to view this resource.
     *     @type int $cpu_count
     *           Optional. The number of enabled CPU cores.
     *     @type int $max_cpu_count
     *           Output only. The total number of CPU cores available.
     *     @type int $memory_size_gb
     *           Optional. The memory allocated in GBs.
     *     @type int $max_memory_gb
     *           Output only. The total memory available in GBs.
     *     @type int $db_node_storage_size_gb
     *           Optional. The local node storage allocated in GBs.
     *     @type int $max_db_node_storage_size_gb
     *           Output only. The total local node storage available in GBs.
     *     @type float $data_storage_size_tb
     *           Output only. Size, in terabytes, of the DATA disk group.
     *     @type float $max_data_storage_tb
     *           Output only. The total available DATA disk group size.
     *     @type int $activated_storage_count
     *           Output only. The requested number of additional storage servers activated
     *           for the Exadata Infrastructure.
     *     @type int $additional_storage_count
     *           Output only. The requested number of additional storage servers for the
     *           Exadata Infrastructure.
     *     @type string $db_server_version
     *           Output only. The software version of the database servers (dom0) in the
     *           Exadata Infrastructure.
     *     @type string $storage_server_version
     *           Output only. The software version of the storage servers (cells) in the
     *           Exadata Infrastructure.
     *     @type string $next_maintenance_run_id
     *           Output only. The OCID of the next maintenance run.
     *     @type \Google\Protobuf\Timestamp $next_maintenance_run_time
     *           Output only. The time when the next maintenance run will occur.
     *     @type \Google\Protobuf\Timestamp $next_security_maintenance_run_time
     *           Output only. The time when the next security maintenance run will occur.
     *     @type array<\Google\Cloud\OracleDatabase\V1\CustomerContact>|\Google\Protobuf\Internal\RepeatedField $customer_contacts
     *           Optional. The list of customer contacts.
     *     @type string $monthly_storage_server_version
     *           Output only. The monthly software version of the storage servers (cells)
     *           in the Exadata Infrastructure. Example: 20.1.15
     *     @type string $monthly_db_server_version
     *           Output only. The monthly software version of the database servers (dom0)
     *           in the Exadata Infrastructure. Example: 20.1.15
     * }
     */
    public function __construct($data = NULL) {
        \GPBMetadata\Google\Cloud\Oracledatabase\V1\ExadataInfra::initOnce();
        parent::__construct($data);
    }

    /**
     * Output only. OCID of created infra.
     * https://docs.oracle.com/en-us/iaas/Content/General/Concepts/identifiers.htm#Oracle
     *
     * Generated from protobuf field <code>string ocid = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @return string
     */
    public function getOcid()
    {
        return $this->ocid;
    }

    /**
     * Output only. OCID of created infra.
     * https://docs.oracle.com/en-us/iaas/Content/General/Concepts/identifiers.htm#Oracle
     *
     * Generated from protobuf field <code>string ocid = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @param string $var
     * @return $this
     */
    public function setOcid($var)
    {
        GPBUtil::checkString($var, True);
        $this->ocid = $var;

        return $this;
    }

    /**
     * Optional. The number of compute servers for the Exadata Infrastructure.
     *
     * Generated from protobuf field <code>int32 compute_count = 2 [(.google.api.field_behavior) = OPTIONAL];</code>
     * @return int
     */
    public function getComputeCount()
    {
        return $this->compute_count;
    }

    /**
     * Optional. The number of compute servers for the Exadata Infrastructure.
     *
     * Generated from protobuf field <code>int32 compute_count = 2 [(.google.api.field_behavior) = OPTIONAL];</code>
     * @param int $var
     * @return $this
     */
    public function setComputeCount($var)
    {
        GPBUtil::checkInt32($var);
        $this->compute_count = $var;

        return $this;
    }

    /**
     * Optional. The number of Cloud Exadata storage servers for the Exadata
     * Infrastructure.
     *
     * Generated from protobuf field <code>int32 storage_count = 3 [(.google.api.field_behavior) = OPTIONAL];</code>
     * @return int
     */
    public function getStorageCount()
    {
        return $this->storage_count;
    }

    /**
     * Optional. The number of Cloud Exadata storage servers for the Exadata
     * Infrastructure.
     *
     * Generated from protobuf field <code>int32 storage_count = 3 [(.google.api.field_behavior) = OPTIONAL];</code>
     * @param int $var
     * @return $this
     */
    public function setStorageCount($var)
    {
        GPBUtil::checkInt32($var);
        $this->storage_count = $var;

        return $this;
    }

    /**
     * Optional. The total storage allocated to the Exadata Infrastructure
     * resource, in gigabytes (GB).
     *
     * Generated from protobuf field <code>int32 total_storage_size_gb = 4 [(.google.api.field_behavior) = OPTIONAL];</code>
     * @return int
     */
    public function getTotalStorageSizeGb()
    {
        return $this->total_storage_size_gb;
    }

    /**
     * Optional. The total storage allocated to the Exadata Infrastructure
     * resource, in gigabytes (GB).
     *
     * Generated from protobuf field <code>int32 total_storage_size_gb = 4 [(.google.api.field_behavior) = OPTIONAL];</code>
     * @param int $var
     * @return $this
     */
    public function setTotalStorageSizeGb($var)
    {
        GPBUtil::checkInt32($var);
        $this->total_storage_size_gb = $var;

        return $this;
    }

    /**
     * Output only. The available storage can be allocated to the Exadata
     * Infrastructure resource, in gigabytes (GB).
     *
     * Generated from protobuf field <code>int32 available_storage_size_gb = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @return int
     */
    public function getAvailableStorageSizeGb()
    {
        return $this->available_storage_size_gb;
    }

    /**
     * Output only. The available storage can be allocated to the Exadata
     * Infrastructure resource, in gigabytes (GB).
     *
     * Generated from protobuf field <code>int32 available_storage_size_gb = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @param int $var
     * @return $this
     */
    public function setAvailableStorageSizeGb($var)
    {
        GPBUtil::checkInt32($var);
        $this->available_storage_size_gb = $var;

        return $this;
    }

    /**
     * Optional. Maintenance window for repair.
     *
     * Generated from protobuf field <code>.google.cloud.oracledatabase.v1.MaintenanceWindow maintenance_window = 6 [(.google.api.field_behavior) = OPTIONAL];</code>
     * @return \Google\Cloud\OracleDatabase\V1\MaintenanceWindow|null
     */
    public function getMaintenanceWindow()
    {
        return $this->maintenance_window;
    }

    public function hasMaintenanceWindow()
    {
        return isset($this->maintenance_window);
    }

    public function clearMaintenanceWindow()
    {
        unset($this->maintenance_window);
    }

    /**
     * Optional. Maintenance window for repair.
     *
     * Generated from protobuf field <code>.google.cloud.oracledatabase.v1.MaintenanceWindow maintenance_window = 6 [(.google.api.field_behavior) = OPTIONAL];</code>
     * @param \Google\Cloud\OracleDatabase\V1\MaintenanceWindow $var
     * @return $this
     */
    public function setMaintenanceWindow($var)
    {
        GPBUtil::checkMessage($var, \Google\Cloud\OracleDatabase\V1\MaintenanceWindow::class);
        $this->maintenance_window = $var;

        return $this;
    }

    /**
     * Output only. The current lifecycle state of the Exadata Infrastructure.
     *
     * Generated from protobuf field <code>.google.cloud.oracledatabase.v1.CloudExadataInfrastructureProperties.State state = 7 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @return int
     */
    public function getState()
    {
        return $this->state;
    }

    /**
     * Output only. The current lifecycle state of the Exadata Infrastructure.
     *
     * Generated from protobuf field <code>.google.cloud.oracledatabase.v1.CloudExadataInfrastructureProperties.State state = 7 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @param int $var
     * @return $this
     */
    public function setState($var)
    {
        GPBUtil::checkEnum($var, \Google\Cloud\OracleDatabase\V1\CloudExadataInfrastructureProperties\State::class);
        $this->state = $var;

        return $this;
    }

    /**
     * Required. The shape of the Exadata Infrastructure. The shape determines the
     * amount of CPU, storage, and memory resources allocated to the instance.
     *
     * Generated from protobuf field <code>string shape = 8 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return string
     */
    public function getShape()
    {
        return $this->shape;
    }

    /**
     * Required. The shape of the Exadata Infrastructure. The shape determines the
     * amount of CPU, storage, and memory resources allocated to the instance.
     *
     * Generated from protobuf field <code>string shape = 8 [(.google.api.field_behavior) = REQUIRED];</code>
     * @param string $var
     * @return $this
     */
    public function setShape($var)
    {
        GPBUtil::checkString($var, True);
        $this->shape = $var;

        return $this;
    }

    /**
     * Output only. Deep link to the OCI console to view this resource.
     *
     * Generated from protobuf field <code>string oci_url = 9 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @return string
     */
    public function getOciUrl()
    {
        return $this->oci_url;
    }

    /**
     * Output only. Deep link to the OCI console to view this resource.
     *
     * Generated from protobuf field <code>string oci_url = 9 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @param string $var
     * @return $this
     */
    public function setOciUrl($var)
    {
        GPBUtil::checkString($var, True);
        $this->oci_url = $var;

        return $this;
    }

    /**
     * Optional. The number of enabled CPU cores.
     *
     * Generated from protobuf field <code>int32 cpu_count = 10 [(.google.api.field_behavior) = OPTIONAL];</code>
     * @return int
     */
    public function getCpuCount()
    {
        return $this->cpu_count;
    }

    /**
     * Optional. The number of enabled CPU cores.
     *
     * Generated from protobuf field <code>int32 cpu_count = 10 [(.google.api.field_behavior) = OPTIONAL];</code>
     * @param int $var
     * @return $this
     */
    public function setCpuCount($var)
    {
        GPBUtil::checkInt32($var);
        $this->cpu_count = $var;

        return $this;
    }

    /**
     * Output only. The total number of CPU cores available.
     *
     * Generated from protobuf field <code>int32 max_cpu_count = 11 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @return int
     */
    public function getMaxCpuCount()
    {
        return $this->max_cpu_count;
    }

    /**
     * Output only. The total number of CPU cores available.
     *
     * Generated from protobuf field <code>int32 max_cpu_count = 11 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @param int $var
     * @return $this
     */
    public function setMaxCpuCount($var)
    {
        GPBUtil::checkInt32($var);
        $this->max_cpu_count = $var;

        return $this;
    }

    /**
     * Optional. The memory allocated in GBs.
     *
     * Generated from protobuf field <code>int32 memory_size_gb = 12 [(.google.api.field_behavior) = OPTIONAL];</code>
     * @return int
     */
    public function getMemorySizeGb()
    {
        return $this->memory_size_gb;
    }

    /**
     * Optional. The memory allocated in GBs.
     *
     * Generated from protobuf field <code>int32 memory_size_gb = 12 [(.google.api.field_behavior) = OPTIONAL];</code>
     * @param int $var
     * @return $this
     */
    public function setMemorySizeGb($var)
    {
        GPBUtil::checkInt32($var);
        $this->memory_size_gb = $var;

        return $this;
    }

    /**
     * Output only. The total memory available in GBs.
     *
     * Generated from protobuf field <code>int32 max_memory_gb = 13 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @return int
     */
    public function getMaxMemoryGb()
    {
        return $this->max_memory_gb;
    }

    /**
     * Output only. The total memory available in GBs.
     *
     * Generated from protobuf field <code>int32 max_memory_gb = 13 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @param int $var
     * @return $this
     */
    public function setMaxMemoryGb($var)
    {
        GPBUtil::checkInt32($var);
        $this->max_memory_gb = $var;

        return $this;
    }

    /**
     * Optional. The local node storage allocated in GBs.
     *
     * Generated from protobuf field <code>int32 db_node_storage_size_gb = 14 [(.google.api.field_behavior) = OPTIONAL];</code>
     * @return int
     */
    public function getDbNodeStorageSizeGb()
    {
        return $this->db_node_storage_size_gb;
    }

    /**
     * Optional. The local node storage allocated in GBs.
     *
     * Generated from protobuf field <code>int32 db_node_storage_size_gb = 14 [(.google.api.field_behavior) = OPTIONAL];</code>
     * @param int $var
     * @return $this
     */
    public function setDbNodeStorageSizeGb($var)
    {
        GPBUtil::checkInt32($var);
        $this->db_node_storage_size_gb = $var;

        return $this;
    }

    /**
     * Output only. The total local node storage available in GBs.
     *
     * Generated from protobuf field <code>int32 max_db_node_storage_size_gb = 15 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @return int
     */
    public function getMaxDbNodeStorageSizeGb()
    {
        return $this->max_db_node_storage_size_gb;
    }

    /**
     * Output only. The total local node storage available in GBs.
     *
     * Generated from protobuf field <code>int32 max_db_node_storage_size_gb = 15 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @param int $var
     * @return $this
     */
    public function setMaxDbNodeStorageSizeGb($var)
    {
        GPBUtil::checkInt32($var);
        $this->max_db_node_storage_size_gb = $var;

        return $this;
    }

    /**
     * Output only. Size, in terabytes, of the DATA disk group.
     *
     * Generated from protobuf field <code>double data_storage_size_tb = 16 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @return float
     */
    public function getDataStorageSizeTb()
    {
        return $this->data_storage_size_tb;
    }

    /**
     * Output only. Size, in terabytes, of the DATA disk group.
     *
     * Generated from protobuf field <code>double data_storage_size_tb = 16 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @param float $var
     * @return $this
     */
    public function setDataStorageSizeTb($var)
    {
        GPBUtil::checkDouble($var);
        $this->data_storage_size_tb = $var;

        return $this;
    }

    /**
     * Output only. The total available DATA disk group size.
     *
     * Generated from protobuf field <code>double max_data_storage_tb = 17 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @return float
     */
    public function getMaxDataStorageTb()
    {
        return $this->max_data_storage_tb;
    }

    /**
     * Output only. The total available DATA disk group size.
     *
     * Generated from protobuf field <code>double max_data_storage_tb = 17 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @param float $var
     * @return $this
     */
    public function setMaxDataStorageTb($var)
    {
        GPBUtil::checkDouble($var);
        $this->max_data_storage_tb = $var;

        return $this;
    }

    /**
     * Output only. The requested number of additional storage servers activated
     * for the Exadata Infrastructure.
     *
     * Generated from protobuf field <code>int32 activated_storage_count = 18 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @return int
     */
    public function getActivatedStorageCount()
    {
        return $this->activated_storage_count;
    }

    /**
     * Output only. The requested number of additional storage servers activated
     * for the Exadata Infrastructure.
     *
     * Generated from protobuf field <code>int32 activated_storage_count = 18 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @param int $var
     * @return $this
     */
    public function setActivatedStorageCount($var)
    {
        GPBUtil::checkInt32($var);
        $this->activated_storage_count = $var;

        return $this;
    }

    /**
     * Output only. The requested number of additional storage servers for the
     * Exadata Infrastructure.
     *
     * Generated from protobuf field <code>int32 additional_storage_count = 19 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @return int
     */
    public function getAdditionalStorageCount()
    {
        return $this->additional_storage_count;
    }

    /**
     * Output only. The requested number of additional storage servers for the
     * Exadata Infrastructure.
     *
     * Generated from protobuf field <code>int32 additional_storage_count = 19 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @param int $var
     * @return $this
     */
    public function setAdditionalStorageCount($var)
    {
        GPBUtil::checkInt32($var);
        $this->additional_storage_count = $var;

        return $this;
    }

    /**
     * Output only. The software version of the database servers (dom0) in the
     * Exadata Infrastructure.
     *
     * Generated from protobuf field <code>string db_server_version = 20 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @return string
     */
    public function getDbServerVersion()
    {
        return $this->db_server_version;
    }

    /**
     * Output only. The software version of the database servers (dom0) in the
     * Exadata Infrastructure.
     *
     * Generated from protobuf field <code>string db_server_version = 20 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @param string $var
     * @return $this
     */
    public function setDbServerVersion($var)
    {
        GPBUtil::checkString($var, True);
        $this->db_server_version = $var;

        return $this;
    }

    /**
     * Output only. The software version of the storage servers (cells) in the
     * Exadata Infrastructure.
     *
     * Generated from protobuf field <code>string storage_server_version = 21 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @return string
     */
    public function getStorageServerVersion()
    {
        return $this->storage_server_version;
    }

    /**
     * Output only. The software version of the storage servers (cells) in the
     * Exadata Infrastructure.
     *
     * Generated from protobuf field <code>string storage_server_version = 21 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @param string $var
     * @return $this
     */
    public function setStorageServerVersion($var)
    {
        GPBUtil::checkString($var, True);
        $this->storage_server_version = $var;

        return $this;
    }

    /**
     * Output only. The OCID of the next maintenance run.
     *
     * Generated from protobuf field <code>string next_maintenance_run_id = 22 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @return string
     */
    public function getNextMaintenanceRunId()
    {
        return $this->next_maintenance_run_id;
    }

    /**
     * Output only. The OCID of the next maintenance run.
     *
     * Generated from protobuf field <code>string next_maintenance_run_id = 22 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @param string $var
     * @return $this
     */
    public function setNextMaintenanceRunId($var)
    {
        GPBUtil::checkString($var, True);
        $this->next_maintenance_run_id = $var;

        return $this;
    }

    /**
     * Output only. The time when the next maintenance run will occur.
     *
     * Generated from protobuf field <code>.google.protobuf.Timestamp next_maintenance_run_time = 23 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @return \Google\Protobuf\Timestamp|null
     */
    public function getNextMaintenanceRunTime()
    {
        return $this->next_maintenance_run_time;
    }

    public function hasNextMaintenanceRunTime()
    {
        return isset($this->next_maintenance_run_time);
    }

    public function clearNextMaintenanceRunTime()
    {
        unset($this->next_maintenance_run_time);
    }

    /**
     * Output only. The time when the next maintenance run will occur.
     *
     * Generated from protobuf field <code>.google.protobuf.Timestamp next_maintenance_run_time = 23 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @param \Google\Protobuf\Timestamp $var
     * @return $this
     */
    public function setNextMaintenanceRunTime($var)
    {
        GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class);
        $this->next_maintenance_run_time = $var;

        return $this;
    }

    /**
     * Output only. The time when the next security maintenance run will occur.
     *
     * Generated from protobuf field <code>.google.protobuf.Timestamp next_security_maintenance_run_time = 24 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @return \Google\Protobuf\Timestamp|null
     */
    public function getNextSecurityMaintenanceRunTime()
    {
        return $this->next_security_maintenance_run_time;
    }

    public function hasNextSecurityMaintenanceRunTime()
    {
        return isset($this->next_security_maintenance_run_time);
    }

    public function clearNextSecurityMaintenanceRunTime()
    {
        unset($this->next_security_maintenance_run_time);
    }

    /**
     * Output only. The time when the next security maintenance run will occur.
     *
     * Generated from protobuf field <code>.google.protobuf.Timestamp next_security_maintenance_run_time = 24 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @param \Google\Protobuf\Timestamp $var
     * @return $this
     */
    public function setNextSecurityMaintenanceRunTime($var)
    {
        GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class);
        $this->next_security_maintenance_run_time = $var;

        return $this;
    }

    /**
     * Optional. The list of customer contacts.
     *
     * Generated from protobuf field <code>repeated .google.cloud.oracledatabase.v1.CustomerContact customer_contacts = 25 [(.google.api.field_behavior) = OPTIONAL];</code>
     * @return \Google\Protobuf\Internal\RepeatedField
     */
    public function getCustomerContacts()
    {
        return $this->customer_contacts;
    }

    /**
     * Optional. The list of customer contacts.
     *
     * Generated from protobuf field <code>repeated .google.cloud.oracledatabase.v1.CustomerContact customer_contacts = 25 [(.google.api.field_behavior) = OPTIONAL];</code>
     * @param array<\Google\Cloud\OracleDatabase\V1\CustomerContact>|\Google\Protobuf\Internal\RepeatedField $var
     * @return $this
     */
    public function setCustomerContacts($var)
    {
        $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\OracleDatabase\V1\CustomerContact::class);
        $this->customer_contacts = $arr;

        return $this;
    }

    /**
     * Output only. The monthly software version of the storage servers (cells)
     * in the Exadata Infrastructure. Example: 20.1.15
     *
     * Generated from protobuf field <code>string monthly_storage_server_version = 26 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @return string
     */
    public function getMonthlyStorageServerVersion()
    {
        return $this->monthly_storage_server_version;
    }

    /**
     * Output only. The monthly software version of the storage servers (cells)
     * in the Exadata Infrastructure. Example: 20.1.15
     *
     * Generated from protobuf field <code>string monthly_storage_server_version = 26 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @param string $var
     * @return $this
     */
    public function setMonthlyStorageServerVersion($var)
    {
        GPBUtil::checkString($var, True);
        $this->monthly_storage_server_version = $var;

        return $this;
    }

    /**
     * Output only. The monthly software version of the database servers (dom0)
     * in the Exadata Infrastructure. Example: 20.1.15
     *
     * Generated from protobuf field <code>string monthly_db_server_version = 27 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @return string
     */
    public function getMonthlyDbServerVersion()
    {
        return $this->monthly_db_server_version;
    }

    /**
     * Output only. The monthly software version of the database servers (dom0)
     * in the Exadata Infrastructure. Example: 20.1.15
     *
     * Generated from protobuf field <code>string monthly_db_server_version = 27 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @param string $var
     * @return $this
     */
    public function setMonthlyDbServerVersion($var)
    {
        GPBUtil::checkString($var, True);
        $this->monthly_db_server_version = $var;

        return $this;
    }

}

