def METHOD_NAME(self):
    if self.auth and self.auth.is_valid():
        return self.auth
    creds = self.config.credentials()
    res = requests.post(
        self.routes.auth(),
        data={
            'username': creds.qualified_username(),
            'password': creds.passwd(),
            'client_id': creds.client_id(),
            'client_secret': creds.client_secret(),
            'scope': creds.scope(),
            'grant_type': 'password',
        },
    )
    res = cxmodel.AuthResponse(**res.json())
    res.expires_at = datetime.datetime.fromtimestamp(
        datetime.datetime.now().timestamp() + res.expires_in - 10
    )
    self.auth = res
    return res