diff --git a/arcade/arcade/core/auth.py b/arcade/arcade/core/auth.py index 354a3c9a..07656876 100644 --- a/arcade/arcade/core/auth.py +++ b/arcade/arcade/core/auth.py @@ -87,6 +87,15 @@ class LinkedIn(OAuth2): super().__init__(id=id, scopes=scopes) +class Microsoft(OAuth2): + """Marks a tool as requiring Microsoft authorization.""" + + provider_id: str = "microsoft" + + def __init__(self, *, id: Optional[str] = None, scopes: Optional[list[str]] = None): # noqa: A002 + super().__init__(id=id, scopes=scopes) + + class Notion(OAuth2): """Marks a tool as requiring Notion authorization.""" diff --git a/arcade/arcade/sdk/auth/__init__.py b/arcade/arcade/sdk/auth/__init__.py index 0c61297f..4c92a5c7 100644 --- a/arcade/arcade/sdk/auth/__init__.py +++ b/arcade/arcade/sdk/auth/__init__.py @@ -5,6 +5,7 @@ from arcade.core.auth import ( GitHub, Google, LinkedIn, + Microsoft, Notion, OAuth2, Reddit, @@ -23,6 +24,7 @@ __all__ = [ "GitHub", "Google", "LinkedIn", + "Microsoft", "Notion", "OAuth2", "Reddit",