Skip to content

Azure SDK guideline alignment

This SDK follows the Azure SDK Design Guidelines for Python where they fit the managed connector execution model. The table records intentional Phase 2 decisions so future changes preserve the public contract.

Area Decision Status
Synchronous APIs Provide async-only clients, aligned with the .NET connector SDK. Do not add a synchronous mirror. Intentional deviation
Method names Use unsuffixed async operation names. Follow
Credentials Accept caller-owned AsyncTokenCredential or AzureKeyCredential. Follow
Transports Accept Azure Core AsyncHttpTransport implementations. Follow
Paging Return AsyncItemPaged and support by_page(continuation_token=...). Follow
Models Define wire models in each root connector module. Project convention
Imports Export clients lazily from package roots while retaining direct per-connector imports. Follow
Errors Derive connector service errors from Azure Core HttpResponseError. Follow
Request options Expose keyword-only timeout, headers, client_request_id, and response_hook. Follow
Long-running operations Return AsyncLROPoller for retained operations with an HTTP 202 Location contract. Follow
API versions Use each generated operation's managed-connector Swagger version; do not expose a client-level api_version override. Intentional deviation
Return values Return connector payloads directly rather than Azure Core Response[T] wrappers. Intentional deviation

Namespace shape

# Async client and models
from azure.connectors.office365 import Office365Client, SendEmailInput

# Clients are also available as lazy package-root exports
from azure.connectors import Office365Client

Clients, models, type aliases, enums, and TRIGGER_OPERATIONS live in the same root connector module. There is no separate aio client catalog.

Location-backed operations use awaited begin_* calls. Azure status-document protocols, poller continuation tokens, and cancellation are not part of the current contract.

Managed connectors can route operations to different service API versions within one client. Generated operations therefore retain their Swagger-declared internal version defaults instead of accepting one constructor-level api_version that could override unrelated routes.

Compatibility policy

Async-only does not restore the old preview API. Operations no longer use _async suffixes, optional parameters and request controls remain keyword-only, and Azure Core credentials, errors, pagers, and pollers remain. Package-root exports are lazy so importing azure.connectors does not load every generated module. See the migration guide for mechanical changes.