@abc.abstractmethod<EOL><INDENT>def reassign_agent_to_agency(self, agent_id, from_agency_id, to_agency_id):<DEDENT>
pass<EOL>
Moves an ``Agent`` from one ``Agency`` to another.

        Mappings to other ``Agencies`` are unaffected.

        :param agent_id: the ``Id`` of the ``Agent``
        :type agent_id: ``osid.id.Id``
        :param from_agency_id: the ``Id`` of the current ``Agency``
        :type from_agency_id: ``osid.id.Id``
        :param to_agency_id: the ``Id`` of the destination ``Agency``
        :type to_agency_id: ``osid.id.Id``
        :raise: ``NotFound`` -- ``agent_id, from_agency_id,`` or ``to_agency_id`` not found or ``agent_id`` not mapped to ``from_agency_id``
        :raise: ``NullArgument`` -- ``agent_id, from_agency_id,`` or ``to_agency_id`` is ``null``
        :raise: ``OperationFailed`` -- unable to complete request
        :raise: ``PermissionDenied`` -- authorization failure

        *compliance: mandatory -- This method must be implemented.*