from __future__ import annotations
from typing import Any
from ._base import BaseClient, RequestConfig
class MFAService:
def __init__(self, client: BaseClient) -> None:
self._client = client
async def enable_totp(self) -> dict[str, Any]:
return await self._client.make_request("POST", "/mfa/totp/enable")
async def verify_totp_setup(self, code: str) -> dict[str, Any]:
data = {"code": code}
config = RequestConfig(json_data=data)
return await self._client.make_request(
"POST", "/mfa/totp/verify", config=config
)
async def disable_totp(self, password: str) -> dict[str, Any]:
data = {"password": password}
config = RequestConfig(json_data=data)
return await self._client.make_request(
"POST", "/mfa/totp/disable", config=config
)
async def verify_totp(self, code: str) -> dict[str, Any]:
data = {"code": code}
config = RequestConfig(json_data=data)
return await self._client.make_request(
"POST", "/mfa/totp/verify-login", config=config
)
async def enable_sms(self, phone_number: str) -> dict[str, Any]:
data = {"phone_number": phone_number}
config = RequestConfig(json_data=data)
return await self._client.make_request("POST", "/mfa/sms/enable", config=config)
async def verify_sms_setup(self, code: str) -> dict[str, Any]:
data = {"code": code}
config = RequestConfig(json_data=data)
return await self._client.make_request("POST", "/mfa/sms/verify", config=config)
async def disable_sms(self, password: str) -> dict[str, Any]:
data = {"password": password}
config = RequestConfig(json_data=data)
return await self._client.make_request(
"POST", "/mfa/sms/disable", config=config
)
async def send_sms(self) -> dict[str, Any]:
return await self._client.make_request("POST", "/mfa/sms/send")
async def verify_sms(self, code: str) -> dict[str, Any]:
data = {"code": code}
config = RequestConfig(json_data=data)
return await self._client.make_request(
"POST", "/mfa/sms/verify-login", config=config
)
async def enable_email(self) -> dict[str, Any]:
return await self._client.make_request("POST", "/mfa/email/enable")
async def disable_email(self, password: str) -> dict[str, Any]:
data = {"password": password}
config = RequestConfig(json_data=data)
return await self._client.make_request(
"POST", "/mfa/email/disable", config=config
)
async def send_email(self) -> dict[str, Any]:
return await self._client.make_request("POST", "/mfa/email/send")
async def verify_email_mfa(self, code: str) -> dict[str, Any]:
data = {"code": code}
config = RequestConfig(json_data=data)
return await self._client.make_request(
"POST", "/mfa/email/verify-login", config=config
)
async def get_backup_codes(self) -> dict[str, Any]:
return await self._client.make_request("GET", "/mfa/backup-codes")
async def regenerate_backup_codes(self, password: str) -> dict[str, Any]:
data = {"password": password}
config = RequestConfig(json_data=data)
return await self._client.make_request(
"POST", "/mfa/backup-codes/regenerate", config=config
)
async def verify_backup_code(self, code: str) -> dict[str, Any]:
data = {"code": code}
config = RequestConfig(json_data=data)
return await self._client.make_request(
"POST", "/mfa/backup-code/verify", config=config
)