'Modifies server\'s hardware
:param server_id:
:rtype: ``str``
:param fixed_instance_size_id: Id of the fixed instance size
:rtype: ``str``
:param vcore: Virtual cores count
:rtype: ``int``
:param cores_per_processor: Count of cores per procesor
:rtype: ``int``
:param ram: Amount of ram for the server
:rtype: ``int``
:return:    Instance of class ``Node``
:rtype:     :class: `Node`'

def ex_modify_server_hardware(self, server_id, fixed_instance_size_id=None, vcore=None, cores_per_processor=None, ram=None):

    body = {}
    if (fixed_instance_size_id is not None):
        body['firewall_policy_id'] = fixed_instance_size_id
    if (vcore is not None):
        body['vcore'] = vcore
    if (cores_per_processor is not None):
        body['cores_per_processor'] = cores_per_processor
    if (ram is not None):
        body['ram'] = ram
    response = self.connection.request(action=('servers/%s/hardware' % server_id), data=body, method='PUT')
    return self._to_node(response.object)
