def METHOD_NAME(self) -> Optional[List[PendingPodReason]]:
    event_message = get_unscheduled_message(self.pod)
    if not event_message:
        return None
    # prefer to get message from event if event still exists, it won't exist still for old pods
    failed_scheduling_events = [
        pod_event for pod_event in self.pod_events.items if self.is_scheduler_failed_scheduling_event(pod_event)
    ]
    if failed_scheduling_events:
        newest_failed_event = max(failed_scheduling_events, key=lambda x: get_event_timestamp(x))
        event_message = newest_failed_event.note
    reasons = self.get_reason_from_failed_scheduling_event_message(event_message)
    return reasons  # return object with all reasons and message