Airflow Summit 2026 is coming August 31 - September 2 in Austin, TX. Register now to secure your spot!

airflow.providers.microsoft.azure.hooks.msgraph

Attributes

PaginationCallable

Classes

CachedAsyncTokenCredential

Wraps an async Azure credential to prevent kiota from closing it after each token request.

DefaultResponseHandler

DefaultResponseHandler returns JSON payload or content in bytes or response headers.

KiotaRequestAdapterHook

A Microsoft Graph API interaction hook, a Wrapper around KiotaRequestAdapter.

Functions

execute_callable(func, *args, **kwargs)

Dynamically call a function by matching its signature to provided args/kwargs.

Module Contents

airflow.providers.microsoft.azure.hooks.msgraph.PaginationCallable[source]
airflow.providers.microsoft.azure.hooks.msgraph.execute_callable(func, *args, **kwargs)[source]

Dynamically call a function by matching its signature to provided args/kwargs.

class airflow.providers.microsoft.azure.hooks.msgraph.CachedAsyncTokenCredential(credential)[source]

Bases: azure.core.credentials_async.AsyncTokenCredential

Wraps an async Azure credential to prevent kiota from closing it after each token request.

kiota_authentication_azure calls await credential.close() after every successful get_token call (see AzureIdentityAccessTokenProvider.get_authorization_token). That tears down the underlying AioHttpTransport session so the next request fails with “HTTP transport has already been closed”. Suppressing close() keeps the session alive for the lifetime of the cached RequestAdapter.

property closed: bool[source]
async __aenter__()[source]

Return self upon entering the runtime context.

async __aexit__(exc_type=None, exc_value=None, traceback=None)[source]

Raise any exception triggered within the runtime context.

async get_token(*args, **kwargs)[source]

Request an access token for scopes.

Parameters:
  • scopes (str) – The type of access needed.

  • claims (str) – Additional claims required in the token, such as those returned in a resource provider’s claims challenge following an authorization failure.

  • tenant_id (str) – Optional tenant to include in the token request.

  • enable_cae (bool) – Indicates whether to enable Continuous Access Evaluation (CAE) for the requested token. Defaults to False.

Return type:

AccessToken

Returns:

An AccessToken instance containing the token string and its expiration time in Unix time.

async get_token_info(*args, **kwargs)[source]
async close()[source]

Intentionally a no-op — the credential session is closed when the adapter is evicted.

class airflow.providers.microsoft.azure.hooks.msgraph.DefaultResponseHandler[source]

Bases: kiota_abstractions.response_handler.ResponseHandler

DefaultResponseHandler returns JSON payload or content in bytes or response headers.

static get_value(response)[source]
async handle_response_async(response, error_map)[source]

Invoke this callback method when a response is received.

param response: The type of the native response object. param error_map: The error dict to use in case of a failed request.

class airflow.providers.microsoft.azure.hooks.msgraph.KiotaRequestAdapterHook(conn_id=default_conn_name, timeout=None, proxies=None, host=None, scopes=None, api_version=None)[source]

Bases: airflow.providers.common.compat.sdk.BaseHook

A Microsoft Graph API interaction hook, a Wrapper around KiotaRequestAdapter.

https://github.com/microsoftgraph/msgraph-sdk-python-core

Parameters:
  • conn_id (str) – The HTTP Connection ID to run the trigger against.

  • timeout (float | None) – The HTTP timeout being used by the KiotaRequestAdapter (default is None). When no timeout is specified or set to None then no HTTP timeout is applied on each request.

  • proxies (dict | None) – A Dict defining the HTTP proxies to be used (default is None).

  • host (str | None) – The host to be used (default is “https://graph.microsoft.com”).

  • scopes (str | list[str] | None) – The scopes to be used (default is [”https://graph.microsoft.com/.default”]).

  • api_version (msgraph_core.APIVersion | str | None) – The API version of the Microsoft Graph API to be used (default is v1). You can pass an enum named APIVersion which has 2 possible members v1 and beta, or you can pass a string as “v1.0” or “beta”.

DEFAULT_HEADERS[source]
DEFAULT_SCOPE = 'https://graph.microsoft.com/.default'[source]
cached_request_adapters: dict[str, tuple[str, kiota_abstractions.request_adapter.RequestAdapter]][source]
conn_type: str = 'msgraph'[source]
conn_name_attr: str = 'conn_id'[source]
default_conn_name: str = 'msgraph_default'[source]
hook_name: str = 'Microsoft Graph API'[source]
conn_id = 'msgraph_default'[source]
timeout = None[source]
proxies = None[source]
host = None[source]
api_version[source]
allowed_netloc: str | None = None[source]
classmethod get_connection_form_widgets()[source]

Return connection widgets to add to connection form.

classmethod get_ui_field_behaviour()[source]

Return custom field behaviour.

static resolve_api_version_from_value(api_version, default=None)[source]
get_api_version(config)[source]
get_host(connection)[source]
get_base_url(host, api_version, config)[source]
static format_no_proxy_url(url)[source]
classmethod to_httpx_proxies(proxies)[source]
to_msal_proxies(authority, proxies)[source]
static get_allowed_hosts(authority, config)[source]
get_conn()[source]

Initiate a new RequestAdapter connection.

Warning

This method is deprecated. Use get_async_conn() instead.

async get_async_conn()[source]

Initiate a new RequestAdapter connection asynchronously.

get_proxies(config)[source]
get_credentials(login, password, config, authority, verify, proxies)[source]
test_connection()[source]

Test HTTP Connection.

static default_pagination(response, url=None, query_parameters=None, responses=lambda : ...)[source]
async run(url='', response_type=None, path_parameters=None, method='GET', query_parameters=None, headers=None, data=None)[source]
async paginated_run(url='', response_type=None, path_parameters=None, method='GET', query_parameters=None, headers=None, data=None, pagination_function=None)[source]
async send_request(request_info, response_type=None)[source]
request_information(url, response_type=None, path_parameters=None, method='GET', query_parameters=None, headers=None, data=None)[source]
static normalize_url(url)[source]
static encoded_query_parameters(query_parameters)[source]
static error_mapping()[source]

Was this entry helpful?