# coding: utf-8
# Copyright (c) 2016, 2026, Oracle and/or its affiliates.  All rights reserved.
# This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license.

# NOTE: This class is auto generated by OracleSDKGenerator. DO NOT EDIT. API Version: 20220919


from oci.util import formatted_flat_dict, NONE_SENTINEL, value_allowed_none_or_none_sentinel  # noqa: F401
from oci.decorators import init_model_state_from_kwargs


@init_model_state_from_kwargs
class OlvmHost(object):
    """
    Type representing a host.
    """

    #: A constant which can be used with the auto_numa_status property of a OlvmHost.
    #: This constant has a value of "DISABLE"
    AUTO_NUMA_STATUS_DISABLE = "DISABLE"

    #: A constant which can be used with the auto_numa_status property of a OlvmHost.
    #: This constant has a value of "ENABLE"
    AUTO_NUMA_STATUS_ENABLE = "ENABLE"

    #: A constant which can be used with the auto_numa_status property of a OlvmHost.
    #: This constant has a value of "UNKNOWN"
    AUTO_NUMA_STATUS_UNKNOWN = "UNKNOWN"

    #: A constant which can be used with the external_status property of a OlvmHost.
    #: This constant has a value of "ERROR"
    EXTERNAL_STATUS_ERROR = "ERROR"

    #: A constant which can be used with the external_status property of a OlvmHost.
    #: This constant has a value of "FAILURE"
    EXTERNAL_STATUS_FAILURE = "FAILURE"

    #: A constant which can be used with the external_status property of a OlvmHost.
    #: This constant has a value of "INFO"
    EXTERNAL_STATUS_INFO = "INFO"

    #: A constant which can be used with the external_status property of a OlvmHost.
    #: This constant has a value of "OK"
    EXTERNAL_STATUS_OK = "OK"

    #: A constant which can be used with the external_status property of a OlvmHost.
    #: This constant has a value of "WARNING"
    EXTERNAL_STATUS_WARNING = "WARNING"

    #: A constant which can be used with the kdump_status property of a OlvmHost.
    #: This constant has a value of "DISABLED"
    KDUMP_STATUS_DISABLED = "DISABLED"

    #: A constant which can be used with the kdump_status property of a OlvmHost.
    #: This constant has a value of "ENABLED"
    KDUMP_STATUS_ENABLED = "ENABLED"

    #: A constant which can be used with the kdump_status property of a OlvmHost.
    #: This constant has a value of "UNKNOWN"
    KDUMP_STATUS_UNKNOWN = "UNKNOWN"

    #: A constant which can be used with the vgpu_placement property of a OlvmHost.
    #: This constant has a value of "CONSOLIDATED"
    VGPU_PLACEMENT_CONSOLIDATED = "CONSOLIDATED"

    #: A constant which can be used with the vgpu_placement property of a OlvmHost.
    #: This constant has a value of "SEPARATED"
    VGPU_PLACEMENT_SEPARATED = "SEPARATED"

    def __init__(self, **kwargs):
        """
        Initializes a new OlvmHost object with values from keyword arguments.
        The following keyword arguments are supported (corresponding to the getters/setters of this class):

        :param address:
            The value to assign to the address property of this OlvmHost.
        :type address: str

        :param auto_numa_status:
            The value to assign to the auto_numa_status property of this OlvmHost.
            Allowed values for this property are: "DISABLE", "ENABLE", "UNKNOWN"
        :type auto_numa_status: str

        :param certificate:
            The value to assign to the certificate property of this OlvmHost.
        :type certificate: oci.cloud_migrations.models.OlvmCertificate

        :param comment:
            The value to assign to the comment property of this OlvmHost.
        :type comment: str

        :param cpu:
            The value to assign to the cpu property of this OlvmHost.
        :type cpu: oci.cloud_migrations.models.OlvmCpu

        :param description:
            The value to assign to the description property of this OlvmHost.
        :type description: str

        :param is_host_device_passthrough:
            The value to assign to the is_host_device_passthrough property of this OlvmHost.
        :type is_host_device_passthrough: bool

        :param display:
            The value to assign to the display property of this OlvmHost.
        :type display: oci.cloud_migrations.models.OlvmDisplay

        :param external_status:
            The value to assign to the external_status property of this OlvmHost.
            Allowed values for this property are: "ERROR", "FAILURE", "INFO", "OK", "WARNING"
        :type external_status: str

        :param hardware_information:
            The value to assign to the hardware_information property of this OlvmHost.
        :type hardware_information: oci.cloud_migrations.models.OlvmHardwareInformation

        :param hosted_engine:
            The value to assign to the hosted_engine property of this OlvmHost.
        :type hosted_engine: oci.cloud_migrations.models.OlvmHostedEngine

        :param id:
            The value to assign to the id property of this OlvmHost.
        :type id: str

        :param iscsi:
            The value to assign to the iscsi property of this OlvmHost.
        :type iscsi: oci.cloud_migrations.models.OlvmIscsiDetails

        :param kdump_status:
            The value to assign to the kdump_status property of this OlvmHost.
            Allowed values for this property are: "DISABLED", "ENABLED", "UNKNOWN"
        :type kdump_status: str

        :param ksm:
            The value to assign to the ksm property of this OlvmHost.
        :type ksm: oci.cloud_migrations.models.Ksm

        :param libvirt_version:
            The value to assign to the libvirt_version property of this OlvmHost.
        :type libvirt_version: oci.cloud_migrations.models.OlvmVersion

        :param max_scheduling_memory_in_bytes:
            The value to assign to the max_scheduling_memory_in_bytes property of this OlvmHost.
        :type max_scheduling_memory_in_bytes: int

        :param memory_in_bytes:
            The value to assign to the memory_in_bytes property of this OlvmHost.
        :type memory_in_bytes: int

        :param name:
            The value to assign to the name property of this OlvmHost.
        :type name: str

        :param is_network_operation_in_progress:
            The value to assign to the is_network_operation_in_progress property of this OlvmHost.
        :type is_network_operation_in_progress: bool

        :param is_numa_supported:
            The value to assign to the is_numa_supported property of this OlvmHost.
        :type is_numa_supported: bool

        :param os:
            The value to assign to the os property of this OlvmHost.
        :type os: oci.cloud_migrations.models.OlvmOperatingSystem

        :param is_override_ip_tables:
            The value to assign to the is_override_ip_tables property of this OlvmHost.
        :type is_override_ip_tables: bool

        :param is_ovn_configured:
            The value to assign to the is_ovn_configured property of this OlvmHost.
        :type is_ovn_configured: bool

        :param port:
            The value to assign to the port property of this OlvmHost.
        :type port: int

        :param power_management:
            The value to assign to the power_management property of this OlvmHost.
        :type power_management: oci.cloud_migrations.models.OlvmPowerManagement

        :param is_reinstallation_required:
            The value to assign to the is_reinstallation_required property of this OlvmHost.
        :type is_reinstallation_required: bool

        :param se_linux:
            The value to assign to the se_linux property of this OlvmHost.
        :type se_linux: oci.cloud_migrations.models.OlvmSelinux

        :param spm:
            The value to assign to the spm property of this OlvmHost.
        :type spm: oci.cloud_migrations.models.OlvmSpm

        :param host_status:
            The value to assign to the host_status property of this OlvmHost.
        :type host_status: oci.cloud_migrations.models.OlvmHostStatus

        :param status_detail:
            The value to assign to the status_detail property of this OlvmHost.
        :type status_detail: str

        :param summary:
            The value to assign to the summary property of this OlvmHost.
        :type summary: oci.cloud_migrations.models.OlvmVmSummary

        :param is_transparent_huge_pages_enabled:
            The value to assign to the is_transparent_huge_pages_enabled property of this OlvmHost.
        :type is_transparent_huge_pages_enabled: bool

        :param type:
            The value to assign to the type property of this OlvmHost.
        :type type: oci.cloud_migrations.models.OlvmHostType

        :param is_update_available:
            The value to assign to the is_update_available property of this OlvmHost.
        :type is_update_available: bool

        :param version:
            The value to assign to the version property of this OlvmHost.
        :type version: oci.cloud_migrations.models.OlvmVersion

        :param vgpu_placement:
            The value to assign to the vgpu_placement property of this OlvmHost.
            Allowed values for this property are: "CONSOLIDATED", "SEPARATED"
        :type vgpu_placement: str

        """
        self.swagger_types = {
            'address': 'str',
            'auto_numa_status': 'str',
            'certificate': 'OlvmCertificate',
            'comment': 'str',
            'cpu': 'OlvmCpu',
            'description': 'str',
            'is_host_device_passthrough': 'bool',
            'display': 'OlvmDisplay',
            'external_status': 'str',
            'hardware_information': 'OlvmHardwareInformation',
            'hosted_engine': 'OlvmHostedEngine',
            'id': 'str',
            'iscsi': 'OlvmIscsiDetails',
            'kdump_status': 'str',
            'ksm': 'Ksm',
            'libvirt_version': 'OlvmVersion',
            'max_scheduling_memory_in_bytes': 'int',
            'memory_in_bytes': 'int',
            'name': 'str',
            'is_network_operation_in_progress': 'bool',
            'is_numa_supported': 'bool',
            'os': 'OlvmOperatingSystem',
            'is_override_ip_tables': 'bool',
            'is_ovn_configured': 'bool',
            'port': 'int',
            'power_management': 'OlvmPowerManagement',
            'is_reinstallation_required': 'bool',
            'se_linux': 'OlvmSelinux',
            'spm': 'OlvmSpm',
            'host_status': 'OlvmHostStatus',
            'status_detail': 'str',
            'summary': 'OlvmVmSummary',
            'is_transparent_huge_pages_enabled': 'bool',
            'type': 'OlvmHostType',
            'is_update_available': 'bool',
            'version': 'OlvmVersion',
            'vgpu_placement': 'str'
        }
        self.attribute_map = {
            'address': 'address',
            'auto_numa_status': 'autoNumaStatus',
            'certificate': 'certificate',
            'comment': 'comment',
            'cpu': 'cpu',
            'description': 'description',
            'is_host_device_passthrough': 'isHostDevicePassthrough',
            'display': 'display',
            'external_status': 'externalStatus',
            'hardware_information': 'hardwareInformation',
            'hosted_engine': 'hostedEngine',
            'id': 'id',
            'iscsi': 'iscsi',
            'kdump_status': 'kdumpStatus',
            'ksm': 'ksm',
            'libvirt_version': 'libvirtVersion',
            'max_scheduling_memory_in_bytes': 'maxSchedulingMemoryInBytes',
            'memory_in_bytes': 'memoryInBytes',
            'name': 'name',
            'is_network_operation_in_progress': 'isNetworkOperationInProgress',
            'is_numa_supported': 'isNumaSupported',
            'os': 'os',
            'is_override_ip_tables': 'isOverrideIpTables',
            'is_ovn_configured': 'isOvnConfigured',
            'port': 'port',
            'power_management': 'powerManagement',
            'is_reinstallation_required': 'isReinstallationRequired',
            'se_linux': 'seLinux',
            'spm': 'spm',
            'host_status': 'hostStatus',
            'status_detail': 'statusDetail',
            'summary': 'summary',
            'is_transparent_huge_pages_enabled': 'isTransparentHugePagesEnabled',
            'type': 'type',
            'is_update_available': 'isUpdateAvailable',
            'version': 'version',
            'vgpu_placement': 'vgpuPlacement'
        }
        self._address = None
        self._auto_numa_status = None
        self._certificate = None
        self._comment = None
        self._cpu = None
        self._description = None
        self._is_host_device_passthrough = None
        self._display = None
        self._external_status = None
        self._hardware_information = None
        self._hosted_engine = None
        self._id = None
        self._iscsi = None
        self._kdump_status = None
        self._ksm = None
        self._libvirt_version = None
        self._max_scheduling_memory_in_bytes = None
        self._memory_in_bytes = None
        self._name = None
        self._is_network_operation_in_progress = None
        self._is_numa_supported = None
        self._os = None
        self._is_override_ip_tables = None
        self._is_ovn_configured = None
        self._port = None
        self._power_management = None
        self._is_reinstallation_required = None
        self._se_linux = None
        self._spm = None
        self._host_status = None
        self._status_detail = None
        self._summary = None
        self._is_transparent_huge_pages_enabled = None
        self._type = None
        self._is_update_available = None
        self._version = None
        self._vgpu_placement = None

    @property
    def address(self):
        """
        Gets the address of this OlvmHost.
        The host address (FQDN/IP).


        :return: The address of this OlvmHost.
        :rtype: str
        """
        return self._address

    @address.setter
    def address(self, address):
        """
        Sets the address of this OlvmHost.
        The host address (FQDN/IP).


        :param address: The address of this OlvmHost.
        :type: str
        """
        self._address = address

    @property
    def auto_numa_status(self):
        """
        Gets the auto_numa_status of this OlvmHost.
        The host auto non uniform memory access (NUMA) status.

        Allowed values for this property are: "DISABLE", "ENABLE", "UNKNOWN"


        :return: The auto_numa_status of this OlvmHost.
        :rtype: str
        """
        return self._auto_numa_status

    @auto_numa_status.setter
    def auto_numa_status(self, auto_numa_status):
        """
        Sets the auto_numa_status of this OlvmHost.
        The host auto non uniform memory access (NUMA) status.


        :param auto_numa_status: The auto_numa_status of this OlvmHost.
        :type: str
        """
        allowed_values = ["DISABLE", "ENABLE", "UNKNOWN"]
        if not value_allowed_none_or_none_sentinel(auto_numa_status, allowed_values):
            raise ValueError(
                f"Invalid value for `auto_numa_status`, must be None or one of {allowed_values}"
            )
        self._auto_numa_status = auto_numa_status

    @property
    def certificate(self):
        """
        Gets the certificate of this OlvmHost.

        :return: The certificate of this OlvmHost.
        :rtype: oci.cloud_migrations.models.OlvmCertificate
        """
        return self._certificate

    @certificate.setter
    def certificate(self, certificate):
        """
        Sets the certificate of this OlvmHost.

        :param certificate: The certificate of this OlvmHost.
        :type: oci.cloud_migrations.models.OlvmCertificate
        """
        self._certificate = certificate

    @property
    def comment(self):
        """
        Gets the comment of this OlvmHost.
        Free text containing comments about this object.


        :return: The comment of this OlvmHost.
        :rtype: str
        """
        return self._comment

    @comment.setter
    def comment(self, comment):
        """
        Sets the comment of this OlvmHost.
        Free text containing comments about this object.


        :param comment: The comment of this OlvmHost.
        :type: str
        """
        self._comment = comment

    @property
    def cpu(self):
        """
        Gets the cpu of this OlvmHost.

        :return: The cpu of this OlvmHost.
        :rtype: oci.cloud_migrations.models.OlvmCpu
        """
        return self._cpu

    @cpu.setter
    def cpu(self, cpu):
        """
        Sets the cpu of this OlvmHost.

        :param cpu: The cpu of this OlvmHost.
        :type: oci.cloud_migrations.models.OlvmCpu
        """
        self._cpu = cpu

    @property
    def description(self):
        """
        Gets the description of this OlvmHost.
        A human-readable description in plain text.


        :return: The description of this OlvmHost.
        :rtype: str
        """
        return self._description

    @description.setter
    def description(self, description):
        """
        Sets the description of this OlvmHost.
        A human-readable description in plain text.


        :param description: The description of this OlvmHost.
        :type: str
        """
        self._description = description

    @property
    def is_host_device_passthrough(self):
        """
        Gets the is_host_device_passthrough of this OlvmHost.
        Specifies whether host device passthrough is enabled on this host.


        :return: The is_host_device_passthrough of this OlvmHost.
        :rtype: bool
        """
        return self._is_host_device_passthrough

    @is_host_device_passthrough.setter
    def is_host_device_passthrough(self, is_host_device_passthrough):
        """
        Sets the is_host_device_passthrough of this OlvmHost.
        Specifies whether host device passthrough is enabled on this host.


        :param is_host_device_passthrough: The is_host_device_passthrough of this OlvmHost.
        :type: bool
        """
        self._is_host_device_passthrough = is_host_device_passthrough

    @property
    def display(self):
        """
        Gets the display of this OlvmHost.

        :return: The display of this OlvmHost.
        :rtype: oci.cloud_migrations.models.OlvmDisplay
        """
        return self._display

    @display.setter
    def display(self, display):
        """
        Sets the display of this OlvmHost.

        :param display: The display of this OlvmHost.
        :type: oci.cloud_migrations.models.OlvmDisplay
        """
        self._display = display

    @property
    def external_status(self):
        """
        Gets the external_status of this OlvmHost.
        Status of storage domain.

        Allowed values for this property are: "ERROR", "FAILURE", "INFO", "OK", "WARNING"


        :return: The external_status of this OlvmHost.
        :rtype: str
        """
        return self._external_status

    @external_status.setter
    def external_status(self, external_status):
        """
        Sets the external_status of this OlvmHost.
        Status of storage domain.


        :param external_status: The external_status of this OlvmHost.
        :type: str
        """
        allowed_values = ["ERROR", "FAILURE", "INFO", "OK", "WARNING"]
        if not value_allowed_none_or_none_sentinel(external_status, allowed_values):
            raise ValueError(
                f"Invalid value for `external_status`, must be None or one of {allowed_values}"
            )
        self._external_status = external_status

    @property
    def hardware_information(self):
        """
        Gets the hardware_information of this OlvmHost.

        :return: The hardware_information of this OlvmHost.
        :rtype: oci.cloud_migrations.models.OlvmHardwareInformation
        """
        return self._hardware_information

    @hardware_information.setter
    def hardware_information(self, hardware_information):
        """
        Sets the hardware_information of this OlvmHost.

        :param hardware_information: The hardware_information of this OlvmHost.
        :type: oci.cloud_migrations.models.OlvmHardwareInformation
        """
        self._hardware_information = hardware_information

    @property
    def hosted_engine(self):
        """
        Gets the hosted_engine of this OlvmHost.

        :return: The hosted_engine of this OlvmHost.
        :rtype: oci.cloud_migrations.models.OlvmHostedEngine
        """
        return self._hosted_engine

    @hosted_engine.setter
    def hosted_engine(self, hosted_engine):
        """
        Sets the hosted_engine of this OlvmHost.

        :param hosted_engine: The hosted_engine of this OlvmHost.
        :type: oci.cloud_migrations.models.OlvmHostedEngine
        """
        self._hosted_engine = hosted_engine

    @property
    def id(self):
        """
        Gets the id of this OlvmHost.
        A unique identifier.


        :return: The id of this OlvmHost.
        :rtype: str
        """
        return self._id

    @id.setter
    def id(self, id):
        """
        Sets the id of this OlvmHost.
        A unique identifier.


        :param id: The id of this OlvmHost.
        :type: str
        """
        self._id = id

    @property
    def iscsi(self):
        """
        Gets the iscsi of this OlvmHost.

        :return: The iscsi of this OlvmHost.
        :rtype: oci.cloud_migrations.models.OlvmIscsiDetails
        """
        return self._iscsi

    @iscsi.setter
    def iscsi(self, iscsi):
        """
        Sets the iscsi of this OlvmHost.

        :param iscsi: The iscsi of this OlvmHost.
        :type: oci.cloud_migrations.models.OlvmIscsiDetails
        """
        self._iscsi = iscsi

    @property
    def kdump_status(self):
        """
        Gets the kdump_status of this OlvmHost.
        The host KDUMP status.

        Allowed values for this property are: "DISABLED", "ENABLED", "UNKNOWN"


        :return: The kdump_status of this OlvmHost.
        :rtype: str
        """
        return self._kdump_status

    @kdump_status.setter
    def kdump_status(self, kdump_status):
        """
        Sets the kdump_status of this OlvmHost.
        The host KDUMP status.


        :param kdump_status: The kdump_status of this OlvmHost.
        :type: str
        """
        allowed_values = ["DISABLED", "ENABLED", "UNKNOWN"]
        if not value_allowed_none_or_none_sentinel(kdump_status, allowed_values):
            raise ValueError(
                f"Invalid value for `kdump_status`, must be None or one of {allowed_values}"
            )
        self._kdump_status = kdump_status

    @property
    def ksm(self):
        """
        Gets the ksm of this OlvmHost.

        :return: The ksm of this OlvmHost.
        :rtype: oci.cloud_migrations.models.Ksm
        """
        return self._ksm

    @ksm.setter
    def ksm(self, ksm):
        """
        Sets the ksm of this OlvmHost.

        :param ksm: The ksm of this OlvmHost.
        :type: oci.cloud_migrations.models.Ksm
        """
        self._ksm = ksm

    @property
    def libvirt_version(self):
        """
        Gets the libvirt_version of this OlvmHost.

        :return: The libvirt_version of this OlvmHost.
        :rtype: oci.cloud_migrations.models.OlvmVersion
        """
        return self._libvirt_version

    @libvirt_version.setter
    def libvirt_version(self, libvirt_version):
        """
        Sets the libvirt_version of this OlvmHost.

        :param libvirt_version: The libvirt_version of this OlvmHost.
        :type: oci.cloud_migrations.models.OlvmVersion
        """
        self._libvirt_version = libvirt_version

    @property
    def max_scheduling_memory_in_bytes(self):
        """
        Gets the max_scheduling_memory_in_bytes of this OlvmHost.
        The max scheduling memory on this host in bytes.


        :return: The max_scheduling_memory_in_bytes of this OlvmHost.
        :rtype: int
        """
        return self._max_scheduling_memory_in_bytes

    @max_scheduling_memory_in_bytes.setter
    def max_scheduling_memory_in_bytes(self, max_scheduling_memory_in_bytes):
        """
        Sets the max_scheduling_memory_in_bytes of this OlvmHost.
        The max scheduling memory on this host in bytes.


        :param max_scheduling_memory_in_bytes: The max_scheduling_memory_in_bytes of this OlvmHost.
        :type: int
        """
        self._max_scheduling_memory_in_bytes = max_scheduling_memory_in_bytes

    @property
    def memory_in_bytes(self):
        """
        Gets the memory_in_bytes of this OlvmHost.
        The amount of physical memory on this host in bytes.


        :return: The memory_in_bytes of this OlvmHost.
        :rtype: int
        """
        return self._memory_in_bytes

    @memory_in_bytes.setter
    def memory_in_bytes(self, memory_in_bytes):
        """
        Sets the memory_in_bytes of this OlvmHost.
        The amount of physical memory on this host in bytes.


        :param memory_in_bytes: The memory_in_bytes of this OlvmHost.
        :type: int
        """
        self._memory_in_bytes = memory_in_bytes

    @property
    def name(self):
        """
        Gets the name of this OlvmHost.
        Name of the property.


        :return: The name of this OlvmHost.
        :rtype: str
        """
        return self._name

    @name.setter
    def name(self, name):
        """
        Sets the name of this OlvmHost.
        Name of the property.


        :param name: The name of this OlvmHost.
        :type: str
        """
        self._name = name

    @property
    def is_network_operation_in_progress(self):
        """
        Gets the is_network_operation_in_progress of this OlvmHost.
        Specifies whether a network-related operation, such as 'setup networks', 'sync networks', or 'refresh capabilities', is currently being executed on this host.


        :return: The is_network_operation_in_progress of this OlvmHost.
        :rtype: bool
        """
        return self._is_network_operation_in_progress

    @is_network_operation_in_progress.setter
    def is_network_operation_in_progress(self, is_network_operation_in_progress):
        """
        Sets the is_network_operation_in_progress of this OlvmHost.
        Specifies whether a network-related operation, such as 'setup networks', 'sync networks', or 'refresh capabilities', is currently being executed on this host.


        :param is_network_operation_in_progress: The is_network_operation_in_progress of this OlvmHost.
        :type: bool
        """
        self._is_network_operation_in_progress = is_network_operation_in_progress

    @property
    def is_numa_supported(self):
        """
        Gets the is_numa_supported of this OlvmHost.
        Specifies whether non uniform memory access (NUMA) is supported on this host.


        :return: The is_numa_supported of this OlvmHost.
        :rtype: bool
        """
        return self._is_numa_supported

    @is_numa_supported.setter
    def is_numa_supported(self, is_numa_supported):
        """
        Sets the is_numa_supported of this OlvmHost.
        Specifies whether non uniform memory access (NUMA) is supported on this host.


        :param is_numa_supported: The is_numa_supported of this OlvmHost.
        :type: bool
        """
        self._is_numa_supported = is_numa_supported

    @property
    def os(self):
        """
        Gets the os of this OlvmHost.

        :return: The os of this OlvmHost.
        :rtype: oci.cloud_migrations.models.OlvmOperatingSystem
        """
        return self._os

    @os.setter
    def os(self, os):
        """
        Sets the os of this OlvmHost.

        :param os: The os of this OlvmHost.
        :type: oci.cloud_migrations.models.OlvmOperatingSystem
        """
        self._os = os

    @property
    def is_override_ip_tables(self):
        """
        Gets the is_override_ip_tables of this OlvmHost.
        Specifies whether we should override firewall definitions


        :return: The is_override_ip_tables of this OlvmHost.
        :rtype: bool
        """
        return self._is_override_ip_tables

    @is_override_ip_tables.setter
    def is_override_ip_tables(self, is_override_ip_tables):
        """
        Sets the is_override_ip_tables of this OlvmHost.
        Specifies whether we should override firewall definitions


        :param is_override_ip_tables: The is_override_ip_tables of this OlvmHost.
        :type: bool
        """
        self._is_override_ip_tables = is_override_ip_tables

    @property
    def is_ovn_configured(self):
        """
        Gets the is_ovn_configured of this OlvmHost.
        Indicates if the host has correctly configured OVN.


        :return: The is_ovn_configured of this OlvmHost.
        :rtype: bool
        """
        return self._is_ovn_configured

    @is_ovn_configured.setter
    def is_ovn_configured(self, is_ovn_configured):
        """
        Sets the is_ovn_configured of this OlvmHost.
        Indicates if the host has correctly configured OVN.


        :param is_ovn_configured: The is_ovn_configured of this OlvmHost.
        :type: bool
        """
        self._is_ovn_configured = is_ovn_configured

    @property
    def port(self):
        """
        Gets the port of this OlvmHost.
        The host port.


        :return: The port of this OlvmHost.
        :rtype: int
        """
        return self._port

    @port.setter
    def port(self, port):
        """
        Sets the port of this OlvmHost.
        The host port.


        :param port: The port of this OlvmHost.
        :type: int
        """
        self._port = port

    @property
    def power_management(self):
        """
        Gets the power_management of this OlvmHost.

        :return: The power_management of this OlvmHost.
        :rtype: oci.cloud_migrations.models.OlvmPowerManagement
        """
        return self._power_management

    @power_management.setter
    def power_management(self, power_management):
        """
        Sets the power_management of this OlvmHost.

        :param power_management: The power_management of this OlvmHost.
        :type: oci.cloud_migrations.models.OlvmPowerManagement
        """
        self._power_management = power_management

    @property
    def is_reinstallation_required(self):
        """
        Gets the is_reinstallation_required of this OlvmHost.
        Specifies whether the host should be reinstalled.


        :return: The is_reinstallation_required of this OlvmHost.
        :rtype: bool
        """
        return self._is_reinstallation_required

    @is_reinstallation_required.setter
    def is_reinstallation_required(self, is_reinstallation_required):
        """
        Sets the is_reinstallation_required of this OlvmHost.
        Specifies whether the host should be reinstalled.


        :param is_reinstallation_required: The is_reinstallation_required of this OlvmHost.
        :type: bool
        """
        self._is_reinstallation_required = is_reinstallation_required

    @property
    def se_linux(self):
        """
        Gets the se_linux of this OlvmHost.

        :return: The se_linux of this OlvmHost.
        :rtype: oci.cloud_migrations.models.OlvmSelinux
        """
        return self._se_linux

    @se_linux.setter
    def se_linux(self, se_linux):
        """
        Sets the se_linux of this OlvmHost.

        :param se_linux: The se_linux of this OlvmHost.
        :type: oci.cloud_migrations.models.OlvmSelinux
        """
        self._se_linux = se_linux

    @property
    def spm(self):
        """
        Gets the spm of this OlvmHost.

        :return: The spm of this OlvmHost.
        :rtype: oci.cloud_migrations.models.OlvmSpm
        """
        return self._spm

    @spm.setter
    def spm(self, spm):
        """
        Sets the spm of this OlvmHost.

        :param spm: The spm of this OlvmHost.
        :type: oci.cloud_migrations.models.OlvmSpm
        """
        self._spm = spm

    @property
    def host_status(self):
        """
        Gets the host_status of this OlvmHost.

        :return: The host_status of this OlvmHost.
        :rtype: oci.cloud_migrations.models.OlvmHostStatus
        """
        return self._host_status

    @host_status.setter
    def host_status(self, host_status):
        """
        Sets the host_status of this OlvmHost.

        :param host_status: The host_status of this OlvmHost.
        :type: oci.cloud_migrations.models.OlvmHostStatus
        """
        self._host_status = host_status

    @property
    def status_detail(self):
        """
        Gets the status_detail of this OlvmHost.
        The host status details.


        :return: The status_detail of this OlvmHost.
        :rtype: str
        """
        return self._status_detail

    @status_detail.setter
    def status_detail(self, status_detail):
        """
        Sets the status_detail of this OlvmHost.
        The host status details.


        :param status_detail: The status_detail of this OlvmHost.
        :type: str
        """
        self._status_detail = status_detail

    @property
    def summary(self):
        """
        Gets the summary of this OlvmHost.

        :return: The summary of this OlvmHost.
        :rtype: oci.cloud_migrations.models.OlvmVmSummary
        """
        return self._summary

    @summary.setter
    def summary(self, summary):
        """
        Sets the summary of this OlvmHost.

        :param summary: The summary of this OlvmHost.
        :type: oci.cloud_migrations.models.OlvmVmSummary
        """
        self._summary = summary

    @property
    def is_transparent_huge_pages_enabled(self):
        """
        Gets the is_transparent_huge_pages_enabled of this OlvmHost.
        Indicates if transparent huge pages (THP) support is enabled.


        :return: The is_transparent_huge_pages_enabled of this OlvmHost.
        :rtype: bool
        """
        return self._is_transparent_huge_pages_enabled

    @is_transparent_huge_pages_enabled.setter
    def is_transparent_huge_pages_enabled(self, is_transparent_huge_pages_enabled):
        """
        Sets the is_transparent_huge_pages_enabled of this OlvmHost.
        Indicates if transparent huge pages (THP) support is enabled.


        :param is_transparent_huge_pages_enabled: The is_transparent_huge_pages_enabled of this OlvmHost.
        :type: bool
        """
        self._is_transparent_huge_pages_enabled = is_transparent_huge_pages_enabled

    @property
    def type(self):
        """
        Gets the type of this OlvmHost.

        :return: The type of this OlvmHost.
        :rtype: oci.cloud_migrations.models.OlvmHostType
        """
        return self._type

    @type.setter
    def type(self, type):
        """
        Sets the type of this OlvmHost.

        :param type: The type of this OlvmHost.
        :type: oci.cloud_migrations.models.OlvmHostType
        """
        self._type = type

    @property
    def is_update_available(self):
        """
        Gets the is_update_available of this OlvmHost.
        Specified whether there is an oVirt-related update on this host.


        :return: The is_update_available of this OlvmHost.
        :rtype: bool
        """
        return self._is_update_available

    @is_update_available.setter
    def is_update_available(self, is_update_available):
        """
        Sets the is_update_available of this OlvmHost.
        Specified whether there is an oVirt-related update on this host.


        :param is_update_available: The is_update_available of this OlvmHost.
        :type: bool
        """
        self._is_update_available = is_update_available

    @property
    def version(self):
        """
        Gets the version of this OlvmHost.

        :return: The version of this OlvmHost.
        :rtype: oci.cloud_migrations.models.OlvmVersion
        """
        return self._version

    @version.setter
    def version(self, version):
        """
        Sets the version of this OlvmHost.

        :param version: The version of this OlvmHost.
        :type: oci.cloud_migrations.models.OlvmVersion
        """
        self._version = version

    @property
    def vgpu_placement(self):
        """
        Gets the vgpu_placement of this OlvmHost.
        Specifies the vGPU placement strategy.

        Allowed values for this property are: "CONSOLIDATED", "SEPARATED"


        :return: The vgpu_placement of this OlvmHost.
        :rtype: str
        """
        return self._vgpu_placement

    @vgpu_placement.setter
    def vgpu_placement(self, vgpu_placement):
        """
        Sets the vgpu_placement of this OlvmHost.
        Specifies the vGPU placement strategy.


        :param vgpu_placement: The vgpu_placement of this OlvmHost.
        :type: str
        """
        allowed_values = ["CONSOLIDATED", "SEPARATED"]
        if not value_allowed_none_or_none_sentinel(vgpu_placement, allowed_values):
            raise ValueError(
                f"Invalid value for `vgpu_placement`, must be None or one of {allowed_values}"
            )
        self._vgpu_placement = vgpu_placement

    def __repr__(self):
        return formatted_flat_dict(self)

    def __eq__(self, other):
        if other is None:
            return False

        return self.__dict__ == other.__dict__

    def __ne__(self, other):
        return not self == other
