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

namespace Google\Cloud\OracleDatabase\V1;

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

/**
 * Various properties and settings associated with Exadata VM cluster.
 *
 * Generated from protobuf message <code>google.cloud.oracledatabase.v1.CloudVmClusterProperties</code>
 */
class CloudVmClusterProperties extends \Google\Protobuf\Internal\Message
{
    /**
     * Output only. Oracle Cloud Infrastructure ID of VM Cluster.
     *
     * Generated from protobuf field <code>string ocid = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     */
    protected $ocid = '';
    /**
     * Required. License type of VM Cluster.
     *
     * Generated from protobuf field <code>.google.cloud.oracledatabase.v1.CloudVmClusterProperties.LicenseType license_type = 2 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    protected $license_type = 0;
    /**
     * Optional. Grid Infrastructure Version.
     *
     * Generated from protobuf field <code>string gi_version = 3 [(.google.api.field_behavior) = OPTIONAL];</code>
     */
    protected $gi_version = '';
    /**
     * Optional. Time zone of VM Cluster to set. Defaults to UTC if not specified.
     *
     * Generated from protobuf field <code>.google.type.TimeZone time_zone = 4 [(.google.api.field_behavior) = OPTIONAL];</code>
     */
    protected $time_zone = null;
    /**
     * Optional. SSH public keys to be stored with cluster.
     *
     * Generated from protobuf field <code>repeated string ssh_public_keys = 5 [(.google.api.field_behavior) = OPTIONAL];</code>
     */
    private $ssh_public_keys;
    /**
     * Optional. Number of database servers.
     *
     * Generated from protobuf field <code>int32 node_count = 6 [(.google.api.field_behavior) = OPTIONAL];</code>
     */
    protected $node_count = 0;
    /**
     * Output only. Shape of VM Cluster.
     *
     * Generated from protobuf field <code>string shape = 7 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     */
    protected $shape = '';
    /**
     * Optional. OCPU count per VM. Minimum is 0.1.
     *
     * Generated from protobuf field <code>float ocpu_count = 8 [(.google.api.field_behavior) = OPTIONAL];</code>
     */
    protected $ocpu_count = 0.0;
    /**
     * Optional. Memory allocated in GBs.
     *
     * Generated from protobuf field <code>int32 memory_size_gb = 9 [(.google.api.field_behavior) = OPTIONAL];</code>
     */
    protected $memory_size_gb = 0;
    /**
     * Optional. Local storage per VM.
     *
     * Generated from protobuf field <code>int32 db_node_storage_size_gb = 10 [(.google.api.field_behavior) = OPTIONAL];</code>
     */
    protected $db_node_storage_size_gb = 0;
    /**
     * Output only. The storage allocation for the disk group, in gigabytes (GB).
     *
     * Generated from protobuf field <code>int32 storage_size_gb = 11 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     */
    protected $storage_size_gb = 0;
    /**
     * Optional. The data disk group size to be allocated in TBs.
     *
     * Generated from protobuf field <code>double data_storage_size_tb = 12 [(.google.api.field_behavior) = OPTIONAL];</code>
     */
    protected $data_storage_size_tb = 0.0;
    /**
     * Optional. The type of redundancy.
     *
     * Generated from protobuf field <code>.google.cloud.oracledatabase.v1.CloudVmClusterProperties.DiskRedundancy disk_redundancy = 13 [(.google.api.field_behavior) = OPTIONAL];</code>
     */
    protected $disk_redundancy = 0;
    /**
     * Optional. Use exadata sparse snapshots.
     *
     * Generated from protobuf field <code>bool sparse_diskgroup_enabled = 14 [(.google.api.field_behavior) = OPTIONAL];</code>
     */
    protected $sparse_diskgroup_enabled = false;
    /**
     * Optional. Use local backup.
     *
     * Generated from protobuf field <code>bool local_backup_enabled = 15 [(.google.api.field_behavior) = OPTIONAL];</code>
     */
    protected $local_backup_enabled = false;
    /**
     * Optional. Prefix for VM cluster host names.
     *
     * Generated from protobuf field <code>string hostname_prefix = 16 [(.google.api.field_behavior) = OPTIONAL];</code>
     */
    protected $hostname_prefix = '';
    /**
     * Optional. Data collection options for diagnostics.
     *
     * Generated from protobuf field <code>.google.cloud.oracledatabase.v1.DataCollectionOptions diagnostics_data_collection_options = 19 [(.google.api.field_behavior) = OPTIONAL];</code>
     */
    protected $diagnostics_data_collection_options = null;
    /**
     * Output only. State of the cluster.
     *
     * Generated from protobuf field <code>.google.cloud.oracledatabase.v1.CloudVmClusterProperties.State state = 20 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     */
    protected $state = 0;
    /**
     * Output only. SCAN listener port - TCP
     *
     * Generated from protobuf field <code>int32 scan_listener_port_tcp = 21 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     */
    protected $scan_listener_port_tcp = 0;
    /**
     * Output only. SCAN listener port - TLS
     *
     * Generated from protobuf field <code>int32 scan_listener_port_tcp_ssl = 22 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     */
    protected $scan_listener_port_tcp_ssl = 0;
    /**
     * Output only. Parent DNS domain where SCAN DNS and hosts names are
     * qualified. ex: ocispdelegated.ocisp10jvnet.oraclevcn.com
     *
     * Generated from protobuf field <code>string domain = 23 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     */
    protected $domain = '';
    /**
     * Output only. SCAN DNS name.
     * ex: sp2-yi0xq-scan.ocispdelegated.ocisp10jvnet.oraclevcn.com
     *
     * Generated from protobuf field <code>string scan_dns = 24 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     */
    protected $scan_dns = '';
    /**
     * Output only. host name without domain.
     * format: "<hostname_prefix>-" with some suffix.
     * ex: sp2-yi0xq where "sp2" is the hostname_prefix.
     *
     * Generated from protobuf field <code>string hostname = 25 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     */
    protected $hostname = '';
    /**
     * Required. Number of enabled CPU cores.
     *
     * Generated from protobuf field <code>int32 cpu_core_count = 26 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    protected $cpu_core_count = 0;
    /**
     * Optional. Operating system version of the image.
     *
     * Generated from protobuf field <code>string system_version = 27 [(.google.api.field_behavior) = OPTIONAL];</code>
     */
    protected $system_version = '';
    /**
     * Output only. OCIDs of scan IPs.
     *
     * Generated from protobuf field <code>repeated string scan_ip_ids = 28 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     */
    private $scan_ip_ids;
    /**
     * Output only. OCID of scan DNS record.
     *
     * Generated from protobuf field <code>string scan_dns_record_id = 29 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     */
    protected $scan_dns_record_id = '';
    /**
     * Output only. Deep link to the OCI console to view this resource.
     *
     * Generated from protobuf field <code>string oci_url = 30 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     */
    protected $oci_url = '';
    /**
     * Optional. OCID of database servers.
     *
     * Generated from protobuf field <code>repeated string db_server_ocids = 31 [(.google.api.field_behavior) = OPTIONAL];</code>
     */
    private $db_server_ocids;
    /**
     * Output only. Compartment ID of cluster.
     *
     * Generated from protobuf field <code>string compartment_id = 32 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     */
    protected $compartment_id = '';
    /**
     * Output only. DNS listener IP.
     *
     * Generated from protobuf field <code>string dns_listener_ip = 35 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     */
    protected $dns_listener_ip = '';
    /**
     * Optional. OCI Cluster name.
     *
     * Generated from protobuf field <code>string cluster_name = 36 [(.google.api.field_behavior) = OPTIONAL];</code>
     */
    protected $cluster_name = '';

    /**
     * Constructor.
     *
     * @param array $data {
     *     Optional. Data for populating the Message object.
     *
     *     @type string $ocid
     *           Output only. Oracle Cloud Infrastructure ID of VM Cluster.
     *     @type int $license_type
     *           Required. License type of VM Cluster.
     *     @type string $gi_version
     *           Optional. Grid Infrastructure Version.
     *     @type \Google\Type\TimeZone $time_zone
     *           Optional. Time zone of VM Cluster to set. Defaults to UTC if not specified.
     *     @type array<string>|\Google\Protobuf\Internal\RepeatedField $ssh_public_keys
     *           Optional. SSH public keys to be stored with cluster.
     *     @type int $node_count
     *           Optional. Number of database servers.
     *     @type string $shape
     *           Output only. Shape of VM Cluster.
     *     @type float $ocpu_count
     *           Optional. OCPU count per VM. Minimum is 0.1.
     *     @type int $memory_size_gb
     *           Optional. Memory allocated in GBs.
     *     @type int $db_node_storage_size_gb
     *           Optional. Local storage per VM.
     *     @type int $storage_size_gb
     *           Output only. The storage allocation for the disk group, in gigabytes (GB).
     *     @type float $data_storage_size_tb
     *           Optional. The data disk group size to be allocated in TBs.
     *     @type int $disk_redundancy
     *           Optional. The type of redundancy.
     *     @type bool $sparse_diskgroup_enabled
     *           Optional. Use exadata sparse snapshots.
     *     @type bool $local_backup_enabled
     *           Optional. Use local backup.
     *     @type string $hostname_prefix
     *           Optional. Prefix for VM cluster host names.
     *     @type \Google\Cloud\OracleDatabase\V1\DataCollectionOptions $diagnostics_data_collection_options
     *           Optional. Data collection options for diagnostics.
     *     @type int $state
     *           Output only. State of the cluster.
     *     @type int $scan_listener_port_tcp
     *           Output only. SCAN listener port - TCP
     *     @type int $scan_listener_port_tcp_ssl
     *           Output only. SCAN listener port - TLS
     *     @type string $domain
     *           Output only. Parent DNS domain where SCAN DNS and hosts names are
     *           qualified. ex: ocispdelegated.ocisp10jvnet.oraclevcn.com
     *     @type string $scan_dns
     *           Output only. SCAN DNS name.
     *           ex: sp2-yi0xq-scan.ocispdelegated.ocisp10jvnet.oraclevcn.com
     *     @type string $hostname
     *           Output only. host name without domain.
     *           format: "<hostname_prefix>-" with some suffix.
     *           ex: sp2-yi0xq where "sp2" is the hostname_prefix.
     *     @type int $cpu_core_count
     *           Required. Number of enabled CPU cores.
     *     @type string $system_version
     *           Optional. Operating system version of the image.
     *     @type array<string>|\Google\Protobuf\Internal\RepeatedField $scan_ip_ids
     *           Output only. OCIDs of scan IPs.
     *     @type string $scan_dns_record_id
     *           Output only. OCID of scan DNS record.
     *     @type string $oci_url
     *           Output only. Deep link to the OCI console to view this resource.
     *     @type array<string>|\Google\Protobuf\Internal\RepeatedField $db_server_ocids
     *           Optional. OCID of database servers.
     *     @type string $compartment_id
     *           Output only. Compartment ID of cluster.
     *     @type string $dns_listener_ip
     *           Output only. DNS listener IP.
     *     @type string $cluster_name
     *           Optional. OCI Cluster name.
     * }
     */
    public function __construct($data = NULL) {
        \GPBMetadata\Google\Cloud\Oracledatabase\V1\VmCluster::initOnce();
        parent::__construct($data);
    }

    /**
     * Output only. Oracle Cloud Infrastructure ID of VM Cluster.
     *
     * 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. Oracle Cloud Infrastructure ID of VM Cluster.
     *
     * 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;
    }

    /**
     * Required. License type of VM Cluster.
     *
     * Generated from protobuf field <code>.google.cloud.oracledatabase.v1.CloudVmClusterProperties.LicenseType license_type = 2 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return int
     */
    public function getLicenseType()
    {
        return $this->license_type;
    }

    /**
     * Required. License type of VM Cluster.
     *
     * Generated from protobuf field <code>.google.cloud.oracledatabase.v1.CloudVmClusterProperties.LicenseType license_type = 2 [(.google.api.field_behavior) = REQUIRED];</code>
     * @param int $var
     * @return $this
     */
    public function setLicenseType($var)
    {
        GPBUtil::checkEnum($var, \Google\Cloud\OracleDatabase\V1\CloudVmClusterProperties\LicenseType::class);
        $this->license_type = $var;

        return $this;
    }

    /**
     * Optional. Grid Infrastructure Version.
     *
     * Generated from protobuf field <code>string gi_version = 3 [(.google.api.field_behavior) = OPTIONAL];</code>
     * @return string
     */
    public function getGiVersion()
    {
        return $this->gi_version;
    }

    /**
     * Optional. Grid Infrastructure Version.
     *
     * Generated from protobuf field <code>string gi_version = 3 [(.google.api.field_behavior) = OPTIONAL];</code>
     * @param string $var
     * @return $this
     */
    public function setGiVersion($var)
    {
        GPBUtil::checkString($var, True);
        $this->gi_version = $var;

        return $this;
    }

    /**
     * Optional. Time zone of VM Cluster to set. Defaults to UTC if not specified.
     *
     * Generated from protobuf field <code>.google.type.TimeZone time_zone = 4 [(.google.api.field_behavior) = OPTIONAL];</code>
     * @return \Google\Type\TimeZone|null
     */
    public function getTimeZone()
    {
        return $this->time_zone;
    }

    public function hasTimeZone()
    {
        return isset($this->time_zone);
    }

    public function clearTimeZone()
    {
        unset($this->time_zone);
    }

    /**
     * Optional. Time zone of VM Cluster to set. Defaults to UTC if not specified.
     *
     * Generated from protobuf field <code>.google.type.TimeZone time_zone = 4 [(.google.api.field_behavior) = OPTIONAL];</code>
     * @param \Google\Type\TimeZone $var
     * @return $this
     */
    public function setTimeZone($var)
    {
        GPBUtil::checkMessage($var, \Google\Type\TimeZone::class);
        $this->time_zone = $var;

        return $this;
    }

    /**
     * Optional. SSH public keys to be stored with cluster.
     *
     * Generated from protobuf field <code>repeated string ssh_public_keys = 5 [(.google.api.field_behavior) = OPTIONAL];</code>
     * @return \Google\Protobuf\Internal\RepeatedField
     */
    public function getSshPublicKeys()
    {
        return $this->ssh_public_keys;
    }

    /**
     * Optional. SSH public keys to be stored with cluster.
     *
     * Generated from protobuf field <code>repeated string ssh_public_keys = 5 [(.google.api.field_behavior) = OPTIONAL];</code>
     * @param array<string>|\Google\Protobuf\Internal\RepeatedField $var
     * @return $this
     */
    public function setSshPublicKeys($var)
    {
        $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
        $this->ssh_public_keys = $arr;

        return $this;
    }

    /**
     * Optional. Number of database servers.
     *
     * Generated from protobuf field <code>int32 node_count = 6 [(.google.api.field_behavior) = OPTIONAL];</code>
     * @return int
     */
    public function getNodeCount()
    {
        return $this->node_count;
    }

    /**
     * Optional. Number of database servers.
     *
     * Generated from protobuf field <code>int32 node_count = 6 [(.google.api.field_behavior) = OPTIONAL];</code>
     * @param int $var
     * @return $this
     */
    public function setNodeCount($var)
    {
        GPBUtil::checkInt32($var);
        $this->node_count = $var;

        return $this;
    }

    /**
     * Output only. Shape of VM Cluster.
     *
     * Generated from protobuf field <code>string shape = 7 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @return string
     */
    public function getShape()
    {
        return $this->shape;
    }

    /**
     * Output only. Shape of VM Cluster.
     *
     * Generated from protobuf field <code>string shape = 7 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @param string $var
     * @return $this
     */
    public function setShape($var)
    {
        GPBUtil::checkString($var, True);
        $this->shape = $var;

        return $this;
    }

    /**
     * Optional. OCPU count per VM. Minimum is 0.1.
     *
     * Generated from protobuf field <code>float ocpu_count = 8 [(.google.api.field_behavior) = OPTIONAL];</code>
     * @return float
     */
    public function getOcpuCount()
    {
        return $this->ocpu_count;
    }

    /**
     * Optional. OCPU count per VM. Minimum is 0.1.
     *
     * Generated from protobuf field <code>float ocpu_count = 8 [(.google.api.field_behavior) = OPTIONAL];</code>
     * @param float $var
     * @return $this
     */
    public function setOcpuCount($var)
    {
        GPBUtil::checkFloat($var);
        $this->ocpu_count = $var;

        return $this;
    }

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

    /**
     * Optional. Memory allocated in GBs.
     *
     * Generated from protobuf field <code>int32 memory_size_gb = 9 [(.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;
    }

    /**
     * Optional. Local storage per VM.
     *
     * Generated from protobuf field <code>int32 db_node_storage_size_gb = 10 [(.google.api.field_behavior) = OPTIONAL];</code>
     * @return int
     */
    public function getDbNodeStorageSizeGb()
    {
        return $this->db_node_storage_size_gb;
    }

    /**
     * Optional. Local storage per VM.
     *
     * Generated from protobuf field <code>int32 db_node_storage_size_gb = 10 [(.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 storage allocation for the disk group, in gigabytes (GB).
     *
     * Generated from protobuf field <code>int32 storage_size_gb = 11 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @return int
     */
    public function getStorageSizeGb()
    {
        return $this->storage_size_gb;
    }

    /**
     * Output only. The storage allocation for the disk group, in gigabytes (GB).
     *
     * Generated from protobuf field <code>int32 storage_size_gb = 11 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @param int $var
     * @return $this
     */
    public function setStorageSizeGb($var)
    {
        GPBUtil::checkInt32($var);
        $this->storage_size_gb = $var;

        return $this;
    }

    /**
     * Optional. The data disk group size to be allocated in TBs.
     *
     * Generated from protobuf field <code>double data_storage_size_tb = 12 [(.google.api.field_behavior) = OPTIONAL];</code>
     * @return float
     */
    public function getDataStorageSizeTb()
    {
        return $this->data_storage_size_tb;
    }

    /**
     * Optional. The data disk group size to be allocated in TBs.
     *
     * Generated from protobuf field <code>double data_storage_size_tb = 12 [(.google.api.field_behavior) = OPTIONAL];</code>
     * @param float $var
     * @return $this
     */
    public function setDataStorageSizeTb($var)
    {
        GPBUtil::checkDouble($var);
        $this->data_storage_size_tb = $var;

        return $this;
    }

    /**
     * Optional. The type of redundancy.
     *
     * Generated from protobuf field <code>.google.cloud.oracledatabase.v1.CloudVmClusterProperties.DiskRedundancy disk_redundancy = 13 [(.google.api.field_behavior) = OPTIONAL];</code>
     * @return int
     */
    public function getDiskRedundancy()
    {
        return $this->disk_redundancy;
    }

    /**
     * Optional. The type of redundancy.
     *
     * Generated from protobuf field <code>.google.cloud.oracledatabase.v1.CloudVmClusterProperties.DiskRedundancy disk_redundancy = 13 [(.google.api.field_behavior) = OPTIONAL];</code>
     * @param int $var
     * @return $this
     */
    public function setDiskRedundancy($var)
    {
        GPBUtil::checkEnum($var, \Google\Cloud\OracleDatabase\V1\CloudVmClusterProperties\DiskRedundancy::class);
        $this->disk_redundancy = $var;

        return $this;
    }

    /**
     * Optional. Use exadata sparse snapshots.
     *
     * Generated from protobuf field <code>bool sparse_diskgroup_enabled = 14 [(.google.api.field_behavior) = OPTIONAL];</code>
     * @return bool
     */
    public function getSparseDiskgroupEnabled()
    {
        return $this->sparse_diskgroup_enabled;
    }

    /**
     * Optional. Use exadata sparse snapshots.
     *
     * Generated from protobuf field <code>bool sparse_diskgroup_enabled = 14 [(.google.api.field_behavior) = OPTIONAL];</code>
     * @param bool $var
     * @return $this
     */
    public function setSparseDiskgroupEnabled($var)
    {
        GPBUtil::checkBool($var);
        $this->sparse_diskgroup_enabled = $var;

        return $this;
    }

    /**
     * Optional. Use local backup.
     *
     * Generated from protobuf field <code>bool local_backup_enabled = 15 [(.google.api.field_behavior) = OPTIONAL];</code>
     * @return bool
     */
    public function getLocalBackupEnabled()
    {
        return $this->local_backup_enabled;
    }

    /**
     * Optional. Use local backup.
     *
     * Generated from protobuf field <code>bool local_backup_enabled = 15 [(.google.api.field_behavior) = OPTIONAL];</code>
     * @param bool $var
     * @return $this
     */
    public function setLocalBackupEnabled($var)
    {
        GPBUtil::checkBool($var);
        $this->local_backup_enabled = $var;

        return $this;
    }

    /**
     * Optional. Prefix for VM cluster host names.
     *
     * Generated from protobuf field <code>string hostname_prefix = 16 [(.google.api.field_behavior) = OPTIONAL];</code>
     * @return string
     */
    public function getHostnamePrefix()
    {
        return $this->hostname_prefix;
    }

    /**
     * Optional. Prefix for VM cluster host names.
     *
     * Generated from protobuf field <code>string hostname_prefix = 16 [(.google.api.field_behavior) = OPTIONAL];</code>
     * @param string $var
     * @return $this
     */
    public function setHostnamePrefix($var)
    {
        GPBUtil::checkString($var, True);
        $this->hostname_prefix = $var;

        return $this;
    }

    /**
     * Optional. Data collection options for diagnostics.
     *
     * Generated from protobuf field <code>.google.cloud.oracledatabase.v1.DataCollectionOptions diagnostics_data_collection_options = 19 [(.google.api.field_behavior) = OPTIONAL];</code>
     * @return \Google\Cloud\OracleDatabase\V1\DataCollectionOptions|null
     */
    public function getDiagnosticsDataCollectionOptions()
    {
        return $this->diagnostics_data_collection_options;
    }

    public function hasDiagnosticsDataCollectionOptions()
    {
        return isset($this->diagnostics_data_collection_options);
    }

    public function clearDiagnosticsDataCollectionOptions()
    {
        unset($this->diagnostics_data_collection_options);
    }

    /**
     * Optional. Data collection options for diagnostics.
     *
     * Generated from protobuf field <code>.google.cloud.oracledatabase.v1.DataCollectionOptions diagnostics_data_collection_options = 19 [(.google.api.field_behavior) = OPTIONAL];</code>
     * @param \Google\Cloud\OracleDatabase\V1\DataCollectionOptions $var
     * @return $this
     */
    public function setDiagnosticsDataCollectionOptions($var)
    {
        GPBUtil::checkMessage($var, \Google\Cloud\OracleDatabase\V1\DataCollectionOptions::class);
        $this->diagnostics_data_collection_options = $var;

        return $this;
    }

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

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

        return $this;
    }

    /**
     * Output only. SCAN listener port - TCP
     *
     * Generated from protobuf field <code>int32 scan_listener_port_tcp = 21 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @return int
     */
    public function getScanListenerPortTcp()
    {
        return $this->scan_listener_port_tcp;
    }

    /**
     * Output only. SCAN listener port - TCP
     *
     * Generated from protobuf field <code>int32 scan_listener_port_tcp = 21 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @param int $var
     * @return $this
     */
    public function setScanListenerPortTcp($var)
    {
        GPBUtil::checkInt32($var);
        $this->scan_listener_port_tcp = $var;

        return $this;
    }

    /**
     * Output only. SCAN listener port - TLS
     *
     * Generated from protobuf field <code>int32 scan_listener_port_tcp_ssl = 22 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @return int
     */
    public function getScanListenerPortTcpSsl()
    {
        return $this->scan_listener_port_tcp_ssl;
    }

    /**
     * Output only. SCAN listener port - TLS
     *
     * Generated from protobuf field <code>int32 scan_listener_port_tcp_ssl = 22 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @param int $var
     * @return $this
     */
    public function setScanListenerPortTcpSsl($var)
    {
        GPBUtil::checkInt32($var);
        $this->scan_listener_port_tcp_ssl = $var;

        return $this;
    }

    /**
     * Output only. Parent DNS domain where SCAN DNS and hosts names are
     * qualified. ex: ocispdelegated.ocisp10jvnet.oraclevcn.com
     *
     * Generated from protobuf field <code>string domain = 23 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @return string
     */
    public function getDomain()
    {
        return $this->domain;
    }

    /**
     * Output only. Parent DNS domain where SCAN DNS and hosts names are
     * qualified. ex: ocispdelegated.ocisp10jvnet.oraclevcn.com
     *
     * Generated from protobuf field <code>string domain = 23 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @param string $var
     * @return $this
     */
    public function setDomain($var)
    {
        GPBUtil::checkString($var, True);
        $this->domain = $var;

        return $this;
    }

    /**
     * Output only. SCAN DNS name.
     * ex: sp2-yi0xq-scan.ocispdelegated.ocisp10jvnet.oraclevcn.com
     *
     * Generated from protobuf field <code>string scan_dns = 24 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @return string
     */
    public function getScanDns()
    {
        return $this->scan_dns;
    }

    /**
     * Output only. SCAN DNS name.
     * ex: sp2-yi0xq-scan.ocispdelegated.ocisp10jvnet.oraclevcn.com
     *
     * Generated from protobuf field <code>string scan_dns = 24 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @param string $var
     * @return $this
     */
    public function setScanDns($var)
    {
        GPBUtil::checkString($var, True);
        $this->scan_dns = $var;

        return $this;
    }

    /**
     * Output only. host name without domain.
     * format: "<hostname_prefix>-" with some suffix.
     * ex: sp2-yi0xq where "sp2" is the hostname_prefix.
     *
     * Generated from protobuf field <code>string hostname = 25 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @return string
     */
    public function getHostname()
    {
        return $this->hostname;
    }

    /**
     * Output only. host name without domain.
     * format: "<hostname_prefix>-" with some suffix.
     * ex: sp2-yi0xq where "sp2" is the hostname_prefix.
     *
     * Generated from protobuf field <code>string hostname = 25 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @param string $var
     * @return $this
     */
    public function setHostname($var)
    {
        GPBUtil::checkString($var, True);
        $this->hostname = $var;

        return $this;
    }

    /**
     * Required. Number of enabled CPU cores.
     *
     * Generated from protobuf field <code>int32 cpu_core_count = 26 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return int
     */
    public function getCpuCoreCount()
    {
        return $this->cpu_core_count;
    }

    /**
     * Required. Number of enabled CPU cores.
     *
     * Generated from protobuf field <code>int32 cpu_core_count = 26 [(.google.api.field_behavior) = REQUIRED];</code>
     * @param int $var
     * @return $this
     */
    public function setCpuCoreCount($var)
    {
        GPBUtil::checkInt32($var);
        $this->cpu_core_count = $var;

        return $this;
    }

    /**
     * Optional. Operating system version of the image.
     *
     * Generated from protobuf field <code>string system_version = 27 [(.google.api.field_behavior) = OPTIONAL];</code>
     * @return string
     */
    public function getSystemVersion()
    {
        return $this->system_version;
    }

    /**
     * Optional. Operating system version of the image.
     *
     * Generated from protobuf field <code>string system_version = 27 [(.google.api.field_behavior) = OPTIONAL];</code>
     * @param string $var
     * @return $this
     */
    public function setSystemVersion($var)
    {
        GPBUtil::checkString($var, True);
        $this->system_version = $var;

        return $this;
    }

    /**
     * Output only. OCIDs of scan IPs.
     *
     * Generated from protobuf field <code>repeated string scan_ip_ids = 28 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @return \Google\Protobuf\Internal\RepeatedField
     */
    public function getScanIpIds()
    {
        return $this->scan_ip_ids;
    }

    /**
     * Output only. OCIDs of scan IPs.
     *
     * Generated from protobuf field <code>repeated string scan_ip_ids = 28 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @param array<string>|\Google\Protobuf\Internal\RepeatedField $var
     * @return $this
     */
    public function setScanIpIds($var)
    {
        $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
        $this->scan_ip_ids = $arr;

        return $this;
    }

    /**
     * Output only. OCID of scan DNS record.
     *
     * Generated from protobuf field <code>string scan_dns_record_id = 29 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @return string
     */
    public function getScanDnsRecordId()
    {
        return $this->scan_dns_record_id;
    }

    /**
     * Output only. OCID of scan DNS record.
     *
     * Generated from protobuf field <code>string scan_dns_record_id = 29 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @param string $var
     * @return $this
     */
    public function setScanDnsRecordId($var)
    {
        GPBUtil::checkString($var, True);
        $this->scan_dns_record_id = $var;

        return $this;
    }

    /**
     * Output only. Deep link to the OCI console to view this resource.
     *
     * Generated from protobuf field <code>string oci_url = 30 [(.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 = 30 [(.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. OCID of database servers.
     *
     * Generated from protobuf field <code>repeated string db_server_ocids = 31 [(.google.api.field_behavior) = OPTIONAL];</code>
     * @return \Google\Protobuf\Internal\RepeatedField
     */
    public function getDbServerOcids()
    {
        return $this->db_server_ocids;
    }

    /**
     * Optional. OCID of database servers.
     *
     * Generated from protobuf field <code>repeated string db_server_ocids = 31 [(.google.api.field_behavior) = OPTIONAL];</code>
     * @param array<string>|\Google\Protobuf\Internal\RepeatedField $var
     * @return $this
     */
    public function setDbServerOcids($var)
    {
        $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
        $this->db_server_ocids = $arr;

        return $this;
    }

    /**
     * Output only. Compartment ID of cluster.
     *
     * Generated from protobuf field <code>string compartment_id = 32 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @return string
     */
    public function getCompartmentId()
    {
        return $this->compartment_id;
    }

    /**
     * Output only. Compartment ID of cluster.
     *
     * Generated from protobuf field <code>string compartment_id = 32 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @param string $var
     * @return $this
     */
    public function setCompartmentId($var)
    {
        GPBUtil::checkString($var, True);
        $this->compartment_id = $var;

        return $this;
    }

    /**
     * Output only. DNS listener IP.
     *
     * Generated from protobuf field <code>string dns_listener_ip = 35 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @return string
     */
    public function getDnsListenerIp()
    {
        return $this->dns_listener_ip;
    }

    /**
     * Output only. DNS listener IP.
     *
     * Generated from protobuf field <code>string dns_listener_ip = 35 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @param string $var
     * @return $this
     */
    public function setDnsListenerIp($var)
    {
        GPBUtil::checkString($var, True);
        $this->dns_listener_ip = $var;

        return $this;
    }

    /**
     * Optional. OCI Cluster name.
     *
     * Generated from protobuf field <code>string cluster_name = 36 [(.google.api.field_behavior) = OPTIONAL];</code>
     * @return string
     */
    public function getClusterName()
    {
        return $this->cluster_name;
    }

    /**
     * Optional. OCI Cluster name.
     *
     * Generated from protobuf field <code>string cluster_name = 36 [(.google.api.field_behavior) = OPTIONAL];</code>
     * @param string $var
     * @return $this
     */
    public function setClusterName($var)
    {
        GPBUtil::checkString($var, True);
        $this->cluster_name = $var;

        return $this;
    }

}

