'Requires `profileid` and `action` params.
Action must be either "Cancel", "Suspend", or "Reactivate".'

def manangeRecurringPaymentsProfileStatus(self, params, fail_silently=False):

    defaults = {'method': 'ManageRecurringPaymentsProfileStatus'}
    required = ['profileid', 'action']
    nvp_obj = self._fetch(params, required, defaults)
    if ((not nvp_obj.flag) or (fail_silently and (nvp_obj.flag_info == 'Invalid    profile    status    for    cancel    action;    profile    should    be    active    or    suspended'))):
        if (params['action'] == 'Cancel'):
            recurring_cancel.send(sender=nvp_obj)
        elif (params['action'] == 'Suspend'):
            recurring_suspend.send(sender=nvp_obj)
        elif (params['action'] == 'Reactivate'):
            recurring_reactivate.send(sender=nvp_obj)
    else:
        raise PayPalFailure(nvp_obj.flag_info)
    return nvp_obj
