# coding: utf-8

"""
    Metal API

    This is the API for Equinix Metal. The API allows you to programmatically interact with all of your Equinix Metal resources, including devices, networks, addresses, organizations, projects, and your user account.  The official API docs are hosted at <https://metal.equinix.com/developers/api>.   # noqa: E501

    The version of the OpenAPI document: 1.0.0
    Contact: <EMAIL>
    Generated by: https://openapi-generator.tech
"""


try:
    from inspect import getfullargspec
except ImportError:
    from inspect import getargspec as getfullargspec
import pprint
import re  # noqa: F401
import six

from metal.configuration import Configuration


class HardwareReservation(object):
    """NOTE: This class is auto generated by OpenAPI Generator.
    Ref: https://openapi-generator.tech

    Do not edit the class manually.
    """

    """
    Attributes:
      openapi_types (dict): The key is attribute name
                            and the value is attribute type.
      attribute_map (dict): The key is attribute name
                            and the value is json key in definition.
    """
    openapi_types = {
        'id': 'str',
        'short_id': 'str',
        'facility': 'Facility',
        'plan': 'Plan',
        'href': 'str',
        'project': 'Project',
        'device': 'Device',
        'created_at': 'datetime',
        'spare': 'bool',
        'need_of_service': 'bool',
        'provisionable': 'bool',
        'custom_rate': 'float',
        'switch_uuid': 'str'
    }

    attribute_map = {
        'id': 'id',
        'short_id': 'short_id',
        'facility': 'facility',
        'plan': 'plan',
        'href': 'href',
        'project': 'project',
        'device': 'device',
        'created_at': 'created_at',
        'spare': 'spare',
        'need_of_service': 'need_of_service',
        'provisionable': 'provisionable',
        'custom_rate': 'custom_rate',
        'switch_uuid': 'switch_uuid'
    }

    def __init__(self, id=None, short_id=None, facility=None, plan=None, href=None, project=None, device=None, created_at=None, spare=None, need_of_service=None, provisionable=None, custom_rate=None, switch_uuid=None, local_vars_configuration=None):  # noqa: E501
        """HardwareReservation - a model defined in OpenAPI"""  # noqa: E501
        if local_vars_configuration is None:
            local_vars_configuration = Configuration.get_default_copy()
        self.local_vars_configuration = local_vars_configuration

        self._id = None
        self._short_id = None
        self._facility = None
        self._plan = None
        self._href = None
        self._project = None
        self._device = None
        self._created_at = None
        self._spare = None
        self._need_of_service = None
        self._provisionable = None
        self._custom_rate = None
        self._switch_uuid = None
        self.discriminator = None

        if id is not None:
            self.id = id
        if short_id is not None:
            self.short_id = short_id
        if facility is not None:
            self.facility = facility
        if plan is not None:
            self.plan = plan
        if href is not None:
            self.href = href
        if project is not None:
            self.project = project
        if device is not None:
            self.device = device
        if created_at is not None:
            self.created_at = created_at
        if spare is not None:
            self.spare = spare
        if need_of_service is not None:
            self.need_of_service = need_of_service
        if provisionable is not None:
            self.provisionable = provisionable
        if custom_rate is not None:
            self.custom_rate = custom_rate
        if switch_uuid is not None:
            self.switch_uuid = switch_uuid

    @property
    def id(self):
        """Gets the id of this HardwareReservation.  # noqa: E501


        :return: The id of this HardwareReservation.  # noqa: E501
        :rtype: str
        """
        return self._id

    @id.setter
    def id(self, id):
        """Sets the id of this HardwareReservation.


        :param id: The id of this HardwareReservation.  # noqa: E501
        :type id: str
        """

        self._id = id

    @property
    def short_id(self):
        """Gets the short_id of this HardwareReservation.  # noqa: E501

        Short version of the ID.  # noqa: E501

        :return: The short_id of this HardwareReservation.  # noqa: E501
        :rtype: str
        """
        return self._short_id

    @short_id.setter
    def short_id(self, short_id):
        """Sets the short_id of this HardwareReservation.

        Short version of the ID.  # noqa: E501

        :param short_id: The short_id of this HardwareReservation.  # noqa: E501
        :type short_id: str
        """

        self._short_id = short_id

    @property
    def facility(self):
        """Gets the facility of this HardwareReservation.  # noqa: E501


        :return: The facility of this HardwareReservation.  # noqa: E501
        :rtype: Facility
        """
        return self._facility

    @facility.setter
    def facility(self, facility):
        """Sets the facility of this HardwareReservation.


        :param facility: The facility of this HardwareReservation.  # noqa: E501
        :type facility: Facility
        """

        self._facility = facility

    @property
    def plan(self):
        """Gets the plan of this HardwareReservation.  # noqa: E501


        :return: The plan of this HardwareReservation.  # noqa: E501
        :rtype: Plan
        """
        return self._plan

    @plan.setter
    def plan(self, plan):
        """Sets the plan of this HardwareReservation.


        :param plan: The plan of this HardwareReservation.  # noqa: E501
        :type plan: Plan
        """

        self._plan = plan

    @property
    def href(self):
        """Gets the href of this HardwareReservation.  # noqa: E501


        :return: The href of this HardwareReservation.  # noqa: E501
        :rtype: str
        """
        return self._href

    @href.setter
    def href(self, href):
        """Sets the href of this HardwareReservation.


        :param href: The href of this HardwareReservation.  # noqa: E501
        :type href: str
        """

        self._href = href

    @property
    def project(self):
        """Gets the project of this HardwareReservation.  # noqa: E501


        :return: The project of this HardwareReservation.  # noqa: E501
        :rtype: Project
        """
        return self._project

    @project.setter
    def project(self, project):
        """Sets the project of this HardwareReservation.


        :param project: The project of this HardwareReservation.  # noqa: E501
        :type project: Project
        """

        self._project = project

    @property
    def device(self):
        """Gets the device of this HardwareReservation.  # noqa: E501


        :return: The device of this HardwareReservation.  # noqa: E501
        :rtype: Device
        """
        return self._device

    @device.setter
    def device(self, device):
        """Sets the device of this HardwareReservation.


        :param device: The device of this HardwareReservation.  # noqa: E501
        :type device: Device
        """

        self._device = device

    @property
    def created_at(self):
        """Gets the created_at of this HardwareReservation.  # noqa: E501


        :return: The created_at of this HardwareReservation.  # noqa: E501
        :rtype: datetime
        """
        return self._created_at

    @created_at.setter
    def created_at(self, created_at):
        """Sets the created_at of this HardwareReservation.


        :param created_at: The created_at of this HardwareReservation.  # noqa: E501
        :type created_at: datetime
        """

        self._created_at = created_at

    @property
    def spare(self):
        """Gets the spare of this HardwareReservation.  # noqa: E501

        Whether the Hardware Reservation is a spare. Spare Hardware Reservations are used when a Hardware Reservations requires service from Metal Equinix  # noqa: E501

        :return: The spare of this HardwareReservation.  # noqa: E501
        :rtype: bool
        """
        return self._spare

    @spare.setter
    def spare(self, spare):
        """Sets the spare of this HardwareReservation.

        Whether the Hardware Reservation is a spare. Spare Hardware Reservations are used when a Hardware Reservations requires service from Metal Equinix  # noqa: E501

        :param spare: The spare of this HardwareReservation.  # noqa: E501
        :type spare: bool
        """

        self._spare = spare

    @property
    def need_of_service(self):
        """Gets the need_of_service of this HardwareReservation.  # noqa: E501

        Whether this Device requires assistance from Metal Equinix.  # noqa: E501

        :return: The need_of_service of this HardwareReservation.  # noqa: E501
        :rtype: bool
        """
        return self._need_of_service

    @need_of_service.setter
    def need_of_service(self, need_of_service):
        """Sets the need_of_service of this HardwareReservation.

        Whether this Device requires assistance from Metal Equinix.  # noqa: E501

        :param need_of_service: The need_of_service of this HardwareReservation.  # noqa: E501
        :type need_of_service: bool
        """

        self._need_of_service = need_of_service

    @property
    def provisionable(self):
        """Gets the provisionable of this HardwareReservation.  # noqa: E501

        Whether the reserved server is provisionable or not. Spare devices can't be provisioned unless they are activated first.  # noqa: E501

        :return: The provisionable of this HardwareReservation.  # noqa: E501
        :rtype: bool
        """
        return self._provisionable

    @provisionable.setter
    def provisionable(self, provisionable):
        """Sets the provisionable of this HardwareReservation.

        Whether the reserved server is provisionable or not. Spare devices can't be provisioned unless they are activated first.  # noqa: E501

        :param provisionable: The provisionable of this HardwareReservation.  # noqa: E501
        :type provisionable: bool
        """

        self._provisionable = provisionable

    @property
    def custom_rate(self):
        """Gets the custom_rate of this HardwareReservation.  # noqa: E501

        Amount that will be charged for every billing_cycle.  # noqa: E501

        :return: The custom_rate of this HardwareReservation.  # noqa: E501
        :rtype: float
        """
        return self._custom_rate

    @custom_rate.setter
    def custom_rate(self, custom_rate):
        """Sets the custom_rate of this HardwareReservation.

        Amount that will be charged for every billing_cycle.  # noqa: E501

        :param custom_rate: The custom_rate of this HardwareReservation.  # noqa: E501
        :type custom_rate: float
        """

        self._custom_rate = custom_rate

    @property
    def switch_uuid(self):
        """Gets the switch_uuid of this HardwareReservation.  # noqa: E501

        Switch short id. This can be used to determine if two devices are connected to the same switch, for example.  # noqa: E501

        :return: The switch_uuid of this HardwareReservation.  # noqa: E501
        :rtype: str
        """
        return self._switch_uuid

    @switch_uuid.setter
    def switch_uuid(self, switch_uuid):
        """Sets the switch_uuid of this HardwareReservation.

        Switch short id. This can be used to determine if two devices are connected to the same switch, for example.  # noqa: E501

        :param switch_uuid: The switch_uuid of this HardwareReservation.  # noqa: E501
        :type switch_uuid: str
        """

        self._switch_uuid = switch_uuid

    def to_dict(self, serialize=False):
        """Returns the model properties as a dict"""
        result = {}

        def convert(x):
            if hasattr(x, "to_dict"):
                args = getfullargspec(x.to_dict).args
                if len(args) == 1:
                    return x.to_dict()
                else:
                    return x.to_dict(serialize)
            else:
                return x

        for attr, _ in six.iteritems(self.openapi_types):
            value = getattr(self, attr)
            attr = self.attribute_map.get(attr, attr) if serialize else attr
            if isinstance(value, list):
                result[attr] = list(map(
                    lambda x: convert(x),
                    value
                ))
            elif isinstance(value, dict):
                result[attr] = dict(map(
                    lambda item: (item[0], convert(item[1])),
                    value.items()
                ))
            else:
                result[attr] = convert(value)

        return result

    def to_str(self):
        """Returns the string representation of the model"""
        return pprint.pformat(self.to_dict())

    def __repr__(self):
        """For `print` and `pprint`"""
        return self.to_str()

    def __eq__(self, other):
        """Returns true if both objects are equal"""
        if not isinstance(other, HardwareReservation):
            return False

        return self.to_dict() == other.to_dict()

    def __ne__(self, other):
        """Returns true if both objects are not equal"""
        if not isinstance(other, HardwareReservation):
            return True

        return self.to_dict() != other.to_dict()

# coding: utf-8

"""
    Metal API

    This is the API for Equinix Metal. The API allows you to programmatically interact with all of your Equinix Metal resources, including devices, networks, addresses, organizations, projects, and your user account.  The official API docs are hosted at <https://metal.equinix.com/developers/api>.   # noqa: E501

    The version of the OpenAPI document: 1.0.0
    Contact: <EMAIL>
    Generated by: https://openapi-generator.tech
"""


try:
    from inspect import getfullargspec
except ImportError:
    from inspect import getargspec as getfullargspec
import pprint
import re  # noqa: F401
import six

from metal.configuration import Configuration


class HardwareReservation(object):
    """NOTE: This class is auto generated by OpenAPI Generator.
    Ref: https://openapi-generator.tech

    Do not edit the class manually.
    """

    """
    Attributes:
      openapi_types (dict): The key is attribute name
                            and the value is attribute type.
      attribute_map (dict): The key is attribute name
                            and the value is json key in definition.
    """
    openapi_types = {
        'id': 'str',
        'short_id': 'str',
        'facility': 'Facility',
        'plan': 'Plan',
        'href': 'str',
        'project': 'Project',
        'device': 'Device',
        'created_at': 'datetime',
        'spare': 'bool',
        'need_of_service': 'bool',
        'provisionable': 'bool',
        'custom_rate': 'float',
        'switch_uuid': 'str'
    }

    attribute_map = {
        'id': 'id',
        'short_id': 'short_id',
        'facility': 'facility',
        'plan': 'plan',
        'href': 'href',
        'project': 'project',
        'device': 'device',
        'created_at': 'created_at',
        'spare': 'spare',
        'need_of_service': 'need_of_service',
        'provisionable': 'provisionable',
        'custom_rate': 'custom_rate',
        'switch_uuid': 'switch_uuid'
    }

    def __init__(self, id=None, short_id=None, facility=None, plan=None, href=None, project=None, device=None, created_at=None, spare=None, need_of_service=None, provisionable=None, custom_rate=None, switch_uuid=None, local_vars_configuration=None):  # noqa: E501
        """HardwareReservation - a model defined in OpenAPI"""  # noqa: E501
        if local_vars_configuration is None:
            local_vars_configuration = Configuration.get_default_copy()
        self.local_vars_configuration = local_vars_configuration

        self._id = None
        self._short_id = None
        self._facility = None
        self._plan = None
        self._href = None
        self._project = None
        self._device = None
        self._created_at = None
        self._spare = None
        self._need_of_service = None
        self._provisionable = None
        self._custom_rate = None
        self._switch_uuid = None
        self.discriminator = None

        if id is not None:
            self.id = id
        if short_id is not None:
            self.short_id = short_id
        if facility is not None:
            self.facility = facility
        if plan is not None:
            self.plan = plan
        if href is not None:
            self.href = href
        if project is not None:
            self.project = project
        if device is not None:
            self.device = device
        if created_at is not None:
            self.created_at = created_at
        if spare is not None:
            self.spare = spare
        if need_of_service is not None:
            self.need_of_service = need_of_service
        if provisionable is not None:
            self.provisionable = provisionable
        if custom_rate is not None:
            self.custom_rate = custom_rate
        if switch_uuid is not None:
            self.switch_uuid = switch_uuid

    @property
    def id(self):
        """Gets the id of this HardwareReservation.  # noqa: E501


        :return: The id of this HardwareReservation.  # noqa: E501
        :rtype: str
        """
        return self._id

    @id.setter
    def id(self, id):
        """Sets the id of this HardwareReservation.


        :param id: The id of this HardwareReservation.  # noqa: E501
        :type id: str
        """

        self._id = id

    @property
    def short_id(self):
        """Gets the short_id of this HardwareReservation.  # noqa: E501

        Short version of the ID.  # noqa: E501

        :return: The short_id of this HardwareReservation.  # noqa: E501
        :rtype: str
        """
        return self._short_id

    @short_id.setter
    def short_id(self, short_id):
        """Sets the short_id of this HardwareReservation.

        Short version of the ID.  # noqa: E501

        :param short_id: The short_id of this HardwareReservation.  # noqa: E501
        :type short_id: str
        """

        self._short_id = short_id

    @property
    def facility(self):
        """Gets the facility of this HardwareReservation.  # noqa: E501


        :return: The facility of this HardwareReservation.  # noqa: E501
        :rtype: Facility
        """
        return self._facility

    @facility.setter
    def facility(self, facility):
        """Sets the facility of this HardwareReservation.


        :param facility: The facility of this HardwareReservation.  # noqa: E501
        :type facility: Facility
        """

        self._facility = facility

    @property
    def plan(self):
        """Gets the plan of this HardwareReservation.  # noqa: E501


        :return: The plan of this HardwareReservation.  # noqa: E501
        :rtype: Plan
        """
        return self._plan

    @plan.setter
    def plan(self, plan):
        """Sets the plan of this HardwareReservation.


        :param plan: The plan of this HardwareReservation.  # noqa: E501
        :type plan: Plan
        """

        self._plan = plan

    @property
    def href(self):
        """Gets the href of this HardwareReservation.  # noqa: E501


        :return: The href of this HardwareReservation.  # noqa: E501
        :rtype: str
        """
        return self._href

    @href.setter
    def href(self, href):
        """Sets the href of this HardwareReservation.


        :param href: The href of this HardwareReservation.  # noqa: E501
        :type href: str
        """

        self._href = href

    @property
    def project(self):
        """Gets the project of this HardwareReservation.  # noqa: E501


        :return: The project of this HardwareReservation.  # noqa: E501
        :rtype: Project
        """
        return self._project

    @project.setter
    def project(self, project):
        """Sets the project of this HardwareReservation.


        :param project: The project of this HardwareReservation.  # noqa: E501
        :type project: Project
        """

        self._project = project

    @property
    def device(self):
        """Gets the device of this HardwareReservation.  # noqa: E501


        :return: The device of this HardwareReservation.  # noqa: E501
        :rtype: Device
        """
        return self._device

    @device.setter
    def device(self, device):
        """Sets the device of this HardwareReservation.


        :param device: The device of this HardwareReservation.  # noqa: E501
        :type device: Device
        """

        self._device = device

    @property
    def created_at(self):
        """Gets the created_at of this HardwareReservation.  # noqa: E501


        :return: The created_at of this HardwareReservation.  # noqa: E501
        :rtype: datetime
        """
        return self._created_at

    @created_at.setter
    def created_at(self, created_at):
        """Sets the created_at of this HardwareReservation.


        :param created_at: The created_at of this HardwareReservation.  # noqa: E501
        :type created_at: datetime
        """

        self._created_at = created_at

    @property
    def spare(self):
        """Gets the spare of this HardwareReservation.  # noqa: E501

        Whether the Hardware Reservation is a spare. Spare Hardware Reservations are used when a Hardware Reservations requires service from Metal Equinix  # noqa: E501

        :return: The spare of this HardwareReservation.  # noqa: E501
        :rtype: bool
        """
        return self._spare

    @spare.setter
    def spare(self, spare):
        """Sets the spare of this HardwareReservation.

        Whether the Hardware Reservation is a spare. Spare Hardware Reservations are used when a Hardware Reservations requires service from Metal Equinix  # noqa: E501

        :param spare: The spare of this HardwareReservation.  # noqa: E501
        :type spare: bool
        """

        self._spare = spare

    @property
    def need_of_service(self):
        """Gets the need_of_service of this HardwareReservation.  # noqa: E501

        Whether this Device requires assistance from Metal Equinix.  # noqa: E501

        :return: The need_of_service of this HardwareReservation.  # noqa: E501
        :rtype: bool
        """
        return self._need_of_service

    @need_of_service.setter
    def need_of_service(self, need_of_service):
        """Sets the need_of_service of this HardwareReservation.

        Whether this Device requires assistance from Metal Equinix.  # noqa: E501

        :param need_of_service: The need_of_service of this HardwareReservation.  # noqa: E501
        :type need_of_service: bool
        """

        self._need_of_service = need_of_service

    @property
    def provisionable(self):
        """Gets the provisionable of this HardwareReservation.  # noqa: E501

        Whether the reserved server is provisionable or not. Spare devices can't be provisioned unless they are activated first.  # noqa: E501

        :return: The provisionable of this HardwareReservation.  # noqa: E501
        :rtype: bool
        """
        return self._provisionable

    @provisionable.setter
    def provisionable(self, provisionable):
        """Sets the provisionable of this HardwareReservation.

        Whether the reserved server is provisionable or not. Spare devices can't be provisioned unless they are activated first.  # noqa: E501

        :param provisionable: The provisionable of this HardwareReservation.  # noqa: E501
        :type provisionable: bool
        """

        self._provisionable = provisionable

    @property
    def custom_rate(self):
        """Gets the custom_rate of this HardwareReservation.  # noqa: E501

        Amount that will be charged for every billing_cycle.  # noqa: E501

        :return: The custom_rate of this HardwareReservation.  # noqa: E501
        :rtype: float
        """
        return self._custom_rate

    @custom_rate.setter
    def custom_rate(self, custom_rate):
        """Sets the custom_rate of this HardwareReservation.

        Amount that will be charged for every billing_cycle.  # noqa: E501

        :param custom_rate: The custom_rate of this HardwareReservation.  # noqa: E501
        :type custom_rate: float
        """

        self._custom_rate = custom_rate

    @property
    def switch_uuid(self):
        """Gets the switch_uuid of this HardwareReservation.  # noqa: E501

        Switch short id. This can be used to determine if two devices are connected to the same switch, for example.  # noqa: E501

        :return: The switch_uuid of this HardwareReservation.  # noqa: E501
        :rtype: str
        """
        return self._switch_uuid

    @switch_uuid.setter
    def switch_uuid(self, switch_uuid):
        """Sets the switch_uuid of this HardwareReservation.

        Switch short id. This can be used to determine if two devices are connected to the same switch, for example.  # noqa: E501

        :param switch_uuid: The switch_uuid of this HardwareReservation.  # noqa: E501
        :type switch_uuid: str
        """

        self._switch_uuid = switch_uuid

    def to_dict(self, serialize=False):
        """Returns the model properties as a dict"""
        result = {}

        def convert(x):
            if hasattr(x, "to_dict"):
                args = getfullargspec(x.to_dict).args
                if len(args) == 1:
                    return x.to_dict()
                else:
                    return x.to_dict(serialize)
            else:
                return x

        for attr, _ in six.iteritems(self.openapi_types):
            value = getattr(self, attr)
            attr = self.attribute_map.get(attr, attr) if serialize else attr
            if isinstance(value, list):
                result[attr] = list(map(
                    lambda x: convert(x),
                    value
                ))
            elif isinstance(value, dict):
                result[attr] = dict(map(
                    lambda item: (item[0], convert(item[1])),
                    value.items()
                ))
            else:
                result[attr] = convert(value)

        return result

    def to_str(self):
        """Returns the string representation of the model"""
        return pprint.pformat(self.to_dict())

    def __repr__(self):
        """For `print` and `pprint`"""
        return self.to_str()

    def __eq__(self, other):
        """Returns true if both objects are equal"""
        if not isinstance(other, HardwareReservation):
            return False

        return self.to_dict() == other.to_dict()

    def __ne__(self, other):
        """Returns true if both objects are not equal"""
        if not isinstance(other, HardwareReservation):
            return True

        return self.to_dict() != other.to_dict()

# coding: utf-8 Metal API      This is the API for Equinix Metal. The API allows you to programmatically interact with all of your Equinix Metal resources, including devices, networks, addresses, organizations, projects, and your user account.  The official API docs are hosted at <https://metal.equinix.com/developers/api>.   # noqa: E501      The version of the OpenAPI document: 1.0.0     Contact: <EMAIL>     Generated by: https://openapi-generator.tech # noqa: F401 NOTE: This class is auto generated by OpenAPI Generator.     Ref: https://openapi-generator.tech      Do not edit the class manually. Attributes:       openapi_types (dict): The key is attribute name                             and the value is attribute type.       attribute_map (dict): The key is attribute name                             and the value is json key in definition. # noqa: E501 HardwareReservation - a model defined in OpenAPI # noqa: E501 Gets the id of this HardwareReservation.  # noqa: E501           :return: The id of this HardwareReservation.  # noqa: E501         :rtype: str Sets the id of this HardwareReservation.           :param id: The id of this HardwareReservation.  # noqa: E501         :type id: str Gets the short_id of this HardwareReservation.  # noqa: E501          Short version of the ID.  # noqa: E501          :return: The short_id of this HardwareReservation.  # noqa: E501         :rtype: str Sets the short_id of this HardwareReservation.          Short version of the ID.  # noqa: E501          :param short_id: The short_id of this HardwareReservation.  # noqa: E501         :type short_id: str Gets the facility of this HardwareReservation.  # noqa: E501           :return: The facility of this HardwareReservation.  # noqa: E501         :rtype: Facility Sets the facility of this HardwareReservation.           :param facility: The facility of this HardwareReservation.  # noqa: E501         :type facility: Facility Gets the plan of this HardwareReservation.  # noqa: E501           :return: The plan of this HardwareReservation.  # noqa: E501         :rtype: Plan Sets the plan of this HardwareReservation.           :param plan: The plan of this HardwareReservation.  # noqa: E501         :type plan: Plan Gets the href of this HardwareReservation.  # noqa: E501           :return: The href of this HardwareReservation.  # noqa: E501         :rtype: str Sets the href of this HardwareReservation.           :param href: The href of this HardwareReservation.  # noqa: E501         :type href: str Gets the project of this HardwareReservation.  # noqa: E501           :return: The project of this HardwareReservation.  # noqa: E501         :rtype: Project Sets the project of this HardwareReservation.           :param project: The project of this HardwareReservation.  # noqa: E501         :type project: Project Gets the device of this HardwareReservation.  # noqa: E501           :return: The device of this HardwareReservation.  # noqa: E501         :rtype: Device Sets the device of this HardwareReservation.           :param device: The device of this HardwareReservation.  # noqa: E501         :type device: Device Gets the created_at of this HardwareReservation.  # noqa: E501           :return: The created_at of this HardwareReservation.  # noqa: E501         :rtype: datetime Sets the created_at of this HardwareReservation.           :param created_at: The created_at of this HardwareReservation.  # noqa: E501         :type created_at: datetime Gets the spare of this HardwareReservation.  # noqa: E501          Whether the Hardware Reservation is a spare. Spare Hardware Reservations are used when a Hardware Reservations requires service from Metal Equinix  # noqa: E501          :return: The spare of this HardwareReservation.  # noqa: E501         :rtype: bool Sets the spare of this HardwareReservation.          Whether the Hardware Reservation is a spare. Spare Hardware Reservations are used when a Hardware Reservations requires service from Metal Equinix  # noqa: E501          :param spare: The spare of this HardwareReservation.  # noqa: E501         :type spare: bool Gets the need_of_service of this HardwareReservation.  # noqa: E501          Whether this Device requires assistance from Metal Equinix.  # noqa: E501          :return: The need_of_service of this HardwareReservation.  # noqa: E501         :rtype: bool Sets the need_of_service of this HardwareReservation.          Whether this Device requires assistance from Metal Equinix.  # noqa: E501          :param need_of_service: The need_of_service of this HardwareReservation.  # noqa: E501         :type need_of_service: bool Gets the provisionable of this HardwareReservation.  # noqa: E501          Whether the reserved server is provisionable or not. Spare devices can't be provisioned unless they are activated first.  # noqa: E501          :return: The provisionable of this HardwareReservation.  # noqa: E501         :rtype: bool Sets the provisionable of this HardwareReservation.          Whether the reserved server is provisionable or not. Spare devices can't be provisioned unless they are activated first.  # noqa: E501          :param provisionable: The provisionable of this HardwareReservation.  # noqa: E501         :type provisionable: bool Gets the custom_rate of this HardwareReservation.  # noqa: E501          Amount that will be charged for every billing_cycle.  # noqa: E501          :return: The custom_rate of this HardwareReservation.  # noqa: E501         :rtype: float Sets the custom_rate of this HardwareReservation.          Amount that will be charged for every billing_cycle.  # noqa: E501          :param custom_rate: The custom_rate of this HardwareReservation.  # noqa: E501         :type custom_rate: float Gets the switch_uuid of this HardwareReservation.  # noqa: E501          Switch short id. This can be used to determine if two devices are connected to the same switch, for example.  # noqa: E501          :return: The switch_uuid of this HardwareReservation.  # noqa: E501         :rtype: str Sets the switch_uuid of this HardwareReservation.          Switch short id. This can be used to determine if two devices are connected to the same switch, for example.  # noqa: E501          :param switch_uuid: The switch_uuid of this HardwareReservation.  # noqa: E501         :type switch_uuid: str Returns the model properties as a dict Returns the string representation of the model For `print` and `pprint` Returns true if both objects are equal Returns true if both objects are not equal