<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def get_medium_attachment(self, name, controller_port, device):
 """Returns a medium attachment which corresponds to the controller with the given name, on the given port and device slot. in name of type str in controller_port of type int in device of type int return attachment of type :class:`IMediumAttachment` raises :class:`VBoxErrorObjectNotFound` No attachment exists for the given controller/port/device combination. """

        if not isinstance(name, basestring):
            raise TypeError("name can only be an instance of type basestring")
        if not isinstance(controller_port, baseinteger):
            raise TypeError("controller_port can only be an instance of type baseinteger")
        if not isinstance(device, baseinteger):
            raise TypeError("device can only be an instance of type baseinteger")
        attachment = self._call("getMediumAttachment",
                     in_p=[name, controller_port, device])
        attachment = IMediumAttachment(attachment)
        return attachment