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

namespace Google\Cloud\VMMigration\V1;

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

/**
 * AwsVmDetails describes a VM in AWS.
 *
 * Generated from protobuf message <code>google.cloud.vmmigration.v1.AwsVmDetails</code>
 */
class AwsVmDetails extends \Google\Protobuf\Internal\Message
{
    /**
     * The VM ID in AWS.
     *
     * Generated from protobuf field <code>string vm_id = 1;</code>
     */
    private $vm_id = '';
    /**
     * The display name of the VM. Note that this value is not necessarily unique.
     *
     * Generated from protobuf field <code>string display_name = 2;</code>
     */
    private $display_name = '';
    /**
     * The id of the AWS's source this VM is connected to.
     *
     * Generated from protobuf field <code>string source_id = 3;</code>
     */
    private $source_id = '';
    /**
     * The descriptive name of the AWS's source this VM is connected to.
     *
     * Generated from protobuf field <code>string source_description = 4;</code>
     */
    private $source_description = '';
    /**
     * Output only. The power state of the VM at the moment list was taken.
     *
     * Generated from protobuf field <code>.google.cloud.vmmigration.v1.AwsVmDetails.PowerState power_state = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     */
    private $power_state = 0;
    /**
     * The number of cpus the VM has.
     *
     * Generated from protobuf field <code>int32 cpu_count = 6;</code>
     */
    private $cpu_count = 0;
    /**
     * The memory size of the VM in MB.
     *
     * Generated from protobuf field <code>int32 memory_mb = 7;</code>
     */
    private $memory_mb = 0;
    /**
     * The number of disks the VM has.
     *
     * Generated from protobuf field <code>int32 disk_count = 8;</code>
     */
    private $disk_count = 0;
    /**
     * The total size of the storage allocated to the VM in MB.
     *
     * Generated from protobuf field <code>int64 committed_storage_mb = 9;</code>
     */
    private $committed_storage_mb = 0;
    /**
     * The VM's OS.
     *
     * Generated from protobuf field <code>string os_description = 10;</code>
     */
    private $os_description = '';
    /**
     * The VM Boot Option.
     *
     * Generated from protobuf field <code>.google.cloud.vmmigration.v1.AwsVmDetails.BootOption boot_option = 11;</code>
     */
    private $boot_option = 0;
    /**
     * The instance type of the VM.
     *
     * Generated from protobuf field <code>string instance_type = 12;</code>
     */
    private $instance_type = '';
    /**
     * The VPC ID the VM belongs to.
     *
     * Generated from protobuf field <code>string vpc_id = 13;</code>
     */
    private $vpc_id = '';
    /**
     * The security groups the VM belongs to.
     *
     * Generated from protobuf field <code>repeated .google.cloud.vmmigration.v1.AwsSecurityGroup security_groups = 14;</code>
     */
    private $security_groups;
    /**
     * The tags of the VM.
     *
     * Generated from protobuf field <code>map<string, string> tags = 15;</code>
     */
    private $tags;
    /**
     * The AWS zone of the VM.
     *
     * Generated from protobuf field <code>string zone = 16;</code>
     */
    private $zone = '';
    /**
     * The virtualization type.
     *
     * Generated from protobuf field <code>.google.cloud.vmmigration.v1.AwsVmDetails.VmVirtualizationType virtualization_type = 17;</code>
     */
    private $virtualization_type = 0;
    /**
     * The CPU architecture.
     *
     * Generated from protobuf field <code>.google.cloud.vmmigration.v1.AwsVmDetails.VmArchitecture architecture = 18;</code>
     */
    private $architecture = 0;

    /**
     * Constructor.
     *
     * @param array $data {
     *     Optional. Data for populating the Message object.
     *
     *     @type string $vm_id
     *           The VM ID in AWS.
     *     @type string $display_name
     *           The display name of the VM. Note that this value is not necessarily unique.
     *     @type string $source_id
     *           The id of the AWS's source this VM is connected to.
     *     @type string $source_description
     *           The descriptive name of the AWS's source this VM is connected to.
     *     @type int $power_state
     *           Output only. The power state of the VM at the moment list was taken.
     *     @type int $cpu_count
     *           The number of cpus the VM has.
     *     @type int $memory_mb
     *           The memory size of the VM in MB.
     *     @type int $disk_count
     *           The number of disks the VM has.
     *     @type int|string $committed_storage_mb
     *           The total size of the storage allocated to the VM in MB.
     *     @type string $os_description
     *           The VM's OS.
     *     @type int $boot_option
     *           The VM Boot Option.
     *     @type string $instance_type
     *           The instance type of the VM.
     *     @type string $vpc_id
     *           The VPC ID the VM belongs to.
     *     @type array<\Google\Cloud\VMMigration\V1\AwsSecurityGroup>|\Google\Protobuf\Internal\RepeatedField $security_groups
     *           The security groups the VM belongs to.
     *     @type array|\Google\Protobuf\Internal\MapField $tags
     *           The tags of the VM.
     *     @type string $zone
     *           The AWS zone of the VM.
     *     @type int $virtualization_type
     *           The virtualization type.
     *     @type int $architecture
     *           The CPU architecture.
     * }
     */
    public function __construct($data = NULL) {
        \GPBMetadata\Google\Cloud\Vmmigration\V1\Vmmigration::initOnce();
        parent::__construct($data);
    }

    /**
     * The VM ID in AWS.
     *
     * Generated from protobuf field <code>string vm_id = 1;</code>
     * @return string
     */
    public function getVmId()
    {
        return $this->vm_id;
    }

    /**
     * The VM ID in AWS.
     *
     * Generated from protobuf field <code>string vm_id = 1;</code>
     * @param string $var
     * @return $this
     */
    public function setVmId($var)
    {
        GPBUtil::checkString($var, True);
        $this->vm_id = $var;

        return $this;
    }

    /**
     * The display name of the VM. Note that this value is not necessarily unique.
     *
     * Generated from protobuf field <code>string display_name = 2;</code>
     * @return string
     */
    public function getDisplayName()
    {
        return $this->display_name;
    }

    /**
     * The display name of the VM. Note that this value is not necessarily unique.
     *
     * Generated from protobuf field <code>string display_name = 2;</code>
     * @param string $var
     * @return $this
     */
    public function setDisplayName($var)
    {
        GPBUtil::checkString($var, True);
        $this->display_name = $var;

        return $this;
    }

    /**
     * The id of the AWS's source this VM is connected to.
     *
     * Generated from protobuf field <code>string source_id = 3;</code>
     * @return string
     */
    public function getSourceId()
    {
        return $this->source_id;
    }

    /**
     * The id of the AWS's source this VM is connected to.
     *
     * Generated from protobuf field <code>string source_id = 3;</code>
     * @param string $var
     * @return $this
     */
    public function setSourceId($var)
    {
        GPBUtil::checkString($var, True);
        $this->source_id = $var;

        return $this;
    }

    /**
     * The descriptive name of the AWS's source this VM is connected to.
     *
     * Generated from protobuf field <code>string source_description = 4;</code>
     * @return string
     */
    public function getSourceDescription()
    {
        return $this->source_description;
    }

    /**
     * The descriptive name of the AWS's source this VM is connected to.
     *
     * Generated from protobuf field <code>string source_description = 4;</code>
     * @param string $var
     * @return $this
     */
    public function setSourceDescription($var)
    {
        GPBUtil::checkString($var, True);
        $this->source_description = $var;

        return $this;
    }

    /**
     * Output only. The power state of the VM at the moment list was taken.
     *
     * Generated from protobuf field <code>.google.cloud.vmmigration.v1.AwsVmDetails.PowerState power_state = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @return int
     */
    public function getPowerState()
    {
        return $this->power_state;
    }

    /**
     * Output only. The power state of the VM at the moment list was taken.
     *
     * Generated from protobuf field <code>.google.cloud.vmmigration.v1.AwsVmDetails.PowerState power_state = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @param int $var
     * @return $this
     */
    public function setPowerState($var)
    {
        GPBUtil::checkEnum($var, \Google\Cloud\VMMigration\V1\AwsVmDetails\PowerState::class);
        $this->power_state = $var;

        return $this;
    }

    /**
     * The number of cpus the VM has.
     *
     * Generated from protobuf field <code>int32 cpu_count = 6;</code>
     * @return int
     */
    public function getCpuCount()
    {
        return $this->cpu_count;
    }

    /**
     * The number of cpus the VM has.
     *
     * Generated from protobuf field <code>int32 cpu_count = 6;</code>
     * @param int $var
     * @return $this
     */
    public function setCpuCount($var)
    {
        GPBUtil::checkInt32($var);
        $this->cpu_count = $var;

        return $this;
    }

    /**
     * The memory size of the VM in MB.
     *
     * Generated from protobuf field <code>int32 memory_mb = 7;</code>
     * @return int
     */
    public function getMemoryMb()
    {
        return $this->memory_mb;
    }

    /**
     * The memory size of the VM in MB.
     *
     * Generated from protobuf field <code>int32 memory_mb = 7;</code>
     * @param int $var
     * @return $this
     */
    public function setMemoryMb($var)
    {
        GPBUtil::checkInt32($var);
        $this->memory_mb = $var;

        return $this;
    }

    /**
     * The number of disks the VM has.
     *
     * Generated from protobuf field <code>int32 disk_count = 8;</code>
     * @return int
     */
    public function getDiskCount()
    {
        return $this->disk_count;
    }

    /**
     * The number of disks the VM has.
     *
     * Generated from protobuf field <code>int32 disk_count = 8;</code>
     * @param int $var
     * @return $this
     */
    public function setDiskCount($var)
    {
        GPBUtil::checkInt32($var);
        $this->disk_count = $var;

        return $this;
    }

    /**
     * The total size of the storage allocated to the VM in MB.
     *
     * Generated from protobuf field <code>int64 committed_storage_mb = 9;</code>
     * @return int|string
     */
    public function getCommittedStorageMb()
    {
        return $this->committed_storage_mb;
    }

    /**
     * The total size of the storage allocated to the VM in MB.
     *
     * Generated from protobuf field <code>int64 committed_storage_mb = 9;</code>
     * @param int|string $var
     * @return $this
     */
    public function setCommittedStorageMb($var)
    {
        GPBUtil::checkInt64($var);
        $this->committed_storage_mb = $var;

        return $this;
    }

    /**
     * The VM's OS.
     *
     * Generated from protobuf field <code>string os_description = 10;</code>
     * @return string
     */
    public function getOsDescription()
    {
        return $this->os_description;
    }

    /**
     * The VM's OS.
     *
     * Generated from protobuf field <code>string os_description = 10;</code>
     * @param string $var
     * @return $this
     */
    public function setOsDescription($var)
    {
        GPBUtil::checkString($var, True);
        $this->os_description = $var;

        return $this;
    }

    /**
     * The VM Boot Option.
     *
     * Generated from protobuf field <code>.google.cloud.vmmigration.v1.AwsVmDetails.BootOption boot_option = 11;</code>
     * @return int
     */
    public function getBootOption()
    {
        return $this->boot_option;
    }

    /**
     * The VM Boot Option.
     *
     * Generated from protobuf field <code>.google.cloud.vmmigration.v1.AwsVmDetails.BootOption boot_option = 11;</code>
     * @param int $var
     * @return $this
     */
    public function setBootOption($var)
    {
        GPBUtil::checkEnum($var, \Google\Cloud\VMMigration\V1\AwsVmDetails\BootOption::class);
        $this->boot_option = $var;

        return $this;
    }

    /**
     * The instance type of the VM.
     *
     * Generated from protobuf field <code>string instance_type = 12;</code>
     * @return string
     */
    public function getInstanceType()
    {
        return $this->instance_type;
    }

    /**
     * The instance type of the VM.
     *
     * Generated from protobuf field <code>string instance_type = 12;</code>
     * @param string $var
     * @return $this
     */
    public function setInstanceType($var)
    {
        GPBUtil::checkString($var, True);
        $this->instance_type = $var;

        return $this;
    }

    /**
     * The VPC ID the VM belongs to.
     *
     * Generated from protobuf field <code>string vpc_id = 13;</code>
     * @return string
     */
    public function getVpcId()
    {
        return $this->vpc_id;
    }

    /**
     * The VPC ID the VM belongs to.
     *
     * Generated from protobuf field <code>string vpc_id = 13;</code>
     * @param string $var
     * @return $this
     */
    public function setVpcId($var)
    {
        GPBUtil::checkString($var, True);
        $this->vpc_id = $var;

        return $this;
    }

    /**
     * The security groups the VM belongs to.
     *
     * Generated from protobuf field <code>repeated .google.cloud.vmmigration.v1.AwsSecurityGroup security_groups = 14;</code>
     * @return \Google\Protobuf\Internal\RepeatedField
     */
    public function getSecurityGroups()
    {
        return $this->security_groups;
    }

    /**
     * The security groups the VM belongs to.
     *
     * Generated from protobuf field <code>repeated .google.cloud.vmmigration.v1.AwsSecurityGroup security_groups = 14;</code>
     * @param array<\Google\Cloud\VMMigration\V1\AwsSecurityGroup>|\Google\Protobuf\Internal\RepeatedField $var
     * @return $this
     */
    public function setSecurityGroups($var)
    {
        $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\VMMigration\V1\AwsSecurityGroup::class);
        $this->security_groups = $arr;

        return $this;
    }

    /**
     * The tags of the VM.
     *
     * Generated from protobuf field <code>map<string, string> tags = 15;</code>
     * @return \Google\Protobuf\Internal\MapField
     */
    public function getTags()
    {
        return $this->tags;
    }

    /**
     * The tags of the VM.
     *
     * Generated from protobuf field <code>map<string, string> tags = 15;</code>
     * @param array|\Google\Protobuf\Internal\MapField $var
     * @return $this
     */
    public function setTags($var)
    {
        $arr = GPBUtil::checkMapField($var, \Google\Protobuf\Internal\GPBType::STRING, \Google\Protobuf\Internal\GPBType::STRING);
        $this->tags = $arr;

        return $this;
    }

    /**
     * The AWS zone of the VM.
     *
     * Generated from protobuf field <code>string zone = 16;</code>
     * @return string
     */
    public function getZone()
    {
        return $this->zone;
    }

    /**
     * The AWS zone of the VM.
     *
     * Generated from protobuf field <code>string zone = 16;</code>
     * @param string $var
     * @return $this
     */
    public function setZone($var)
    {
        GPBUtil::checkString($var, True);
        $this->zone = $var;

        return $this;
    }

    /**
     * The virtualization type.
     *
     * Generated from protobuf field <code>.google.cloud.vmmigration.v1.AwsVmDetails.VmVirtualizationType virtualization_type = 17;</code>
     * @return int
     */
    public function getVirtualizationType()
    {
        return $this->virtualization_type;
    }

    /**
     * The virtualization type.
     *
     * Generated from protobuf field <code>.google.cloud.vmmigration.v1.AwsVmDetails.VmVirtualizationType virtualization_type = 17;</code>
     * @param int $var
     * @return $this
     */
    public function setVirtualizationType($var)
    {
        GPBUtil::checkEnum($var, \Google\Cloud\VMMigration\V1\AwsVmDetails\VmVirtualizationType::class);
        $this->virtualization_type = $var;

        return $this;
    }

    /**
     * The CPU architecture.
     *
     * Generated from protobuf field <code>.google.cloud.vmmigration.v1.AwsVmDetails.VmArchitecture architecture = 18;</code>
     * @return int
     */
    public function getArchitecture()
    {
        return $this->architecture;
    }

    /**
     * The CPU architecture.
     *
     * Generated from protobuf field <code>.google.cloud.vmmigration.v1.AwsVmDetails.VmArchitecture architecture = 18;</code>
     * @param int $var
     * @return $this
     */
    public function setArchitecture($var)
    {
        GPBUtil::checkEnum($var, \Google\Cloud\VMMigration\V1\AwsVmDetails\VmArchitecture::class);
        $this->architecture = $var;

        return $this;
    }

}

