code: def _auth(f):
          
          @wraps(f)
          def method(self, *args, **kwargs):
              if not self._auth_token or datetime.utcnow() >= self._last_auth + timedelta(minutes=10):
                  # Need to get new jwt
                  self.auth_refresh()
  
              return f(self, *args, **kwargs)
          return method
docs: Makes sure the request has a valid authorization jwt before calling the wrapped function.
          It does this by checking the timestamp of the last jwt and if > 10 minutes have elapsed,
          it refreshes it's existing jwt from the server.
          Args:
              f: Function to wrap
  
          Returns:
              Function, f