code: def _share_project(self, destination, project, to_user, force_send, auth_role='', user_message='',
                         share_users=None):
          
          from_user = self.remote_store.get_current_user()
          share_user_ids = None
          if share_users:
              share_user_ids = [share_user.id for share_user in share_users]
          item = D4S2Item(destination=destination,
                          from_user_id=from_user.id,
                          to_user_id=to_user.id,
                          project_id=project.id,
                          project_name=project.name,
                          auth_role=auth_role,
                          user_message=user_message,
                          share_user_ids=share_user_ids)
          item.send(self.api, force_send)
          return to_user.email
docs: Send message to remote service to email/share project with to_user.
          :param destination: str which type of sharing we are doing (SHARE_DESTINATION or DELIVER_DESTINATION)
          :param project: RemoteProject project we are sharing
          :param to_user: RemoteUser user we are sharing with
          :param auth_role: str project role eg 'project_admin' email is customized based on this setting.
          :param user_message: str message to be sent with the share
          :param share_users: [RemoteUser] users to have this project shared with after delivery (delivery only)
          :return: the email the user should receive a message on soon