'Retry calling the Cloud decorated function using an exponential backoff.
Kwargs:
retries (int): Number of times to retry a failed request before giving up
default=10
delay (int or float): Initial delay between retries in seconds
default=3
backoff (int or float): backoff multiplier e.g. value of 2 will
double the delay each retry
default=1.1
max_delay (int or None): maximum amount of time to wait between retries.
default=60'

@classmethod
def exponential_backoff(cls, retries=10, delay=3, backoff=2, max_delay=60):

    return cls._backoff(_exponential_backoff(retries=retries, delay=delay, backoff=backoff, max_delay=max_delay))
