Microsoft Azure Subscription Management Client Library for Python
npx @tessl/cli install tessl/pypi-azure-mgmt-subscription@3.1.0A comprehensive Python client library for managing Azure subscriptions through the Azure Resource Manager API. This package enables developers to programmatically create, modify, and manage Azure subscriptions, tenant operations, and billing account interactions.
pip install azure-mgmt-subscriptionfrom azure.mgmt.subscription import SubscriptionClientFor asynchronous operations:
from azure.mgmt.subscription.aio import SubscriptionClientImport specific models and enums as needed:
from azure.mgmt.subscription.models import (
Subscription,
SubscriptionName,
AcceptOwnershipRequest,
PutAliasRequest,
SubscriptionState,
Workload
)from azure.identity import DefaultAzureCredential
from azure.mgmt.subscription import SubscriptionClient
# Create credential and client
credential = DefaultAzureCredential()
client = SubscriptionClient(credential)
# List all accessible subscriptions
subscriptions = list(client.subscriptions.list())
for subscription in subscriptions:
print(f"Subscription: {subscription.display_name} ({subscription.subscription_id})")
# Get details about a specific subscription
subscription_id = "your-subscription-id"
subscription = client.subscriptions.get(subscription_id)
print(f"State: {subscription.state}")
print(f"Location: {subscription.subscription_policies.location_placement_id}")
# List available regions for a subscription
locations = list(client.subscriptions.list_locations(subscription_id))
for location in locations:
print(f"Region: {location.name} - {location.display_name}")
# Always close the client when done
client.close()The azure-mgmt-subscription client provides access to seven distinct operations groups, each handling specific aspects of Azure subscription management:
Core subscription operations including listing, retrieving details, and managing subscription lifecycle (cancel, rename, enable). These operations form the foundation of subscription management workflows.
# List all subscriptions
def list(**kwargs) -> Iterable[Subscription]: ...
# Get subscription details
def get(subscription_id: str, **kwargs) -> Subscription: ...
# List available locations for a subscription
def list_locations(subscription_id: str, **kwargs) -> Iterable[Location]: ...Tenant discovery and management operations that allow applications to identify and work with Azure Active Directory tenants accessible to the authenticated user.
# List accessible tenants
def list(**kwargs) -> Iterable[TenantIdDescription]: ...Individual subscription lifecycle management including cancellation, renaming, enabling, and ownership transfer operations with support for long-running operations.
# Cancel a subscription
def cancel(subscription_id: str, **kwargs) -> CanceledSubscriptionId: ...
# Rename a subscription
def rename(subscription_id: str, body: Union[SubscriptionName, IO], **kwargs) -> RenamedSubscriptionId: ...
# Enable a disabled subscription
def enable(subscription_id: str, **kwargs) -> EnabledSubscriptionId: ...
# Accept ownership transfer (Long Running Operation)
def begin_accept_ownership(subscription_id: str, body: Union[AcceptOwnershipRequest, IO], **kwargs) -> LROPoller[None]: ...Subscription creation and alias management operations that enable programmatic subscription provisioning through Azure's alias system with long-running operation support.
# Create subscription via alias (Long Running Operation)
def begin_create(alias_name: str, body: Union[PutAliasRequest, IO], **kwargs) -> LROPoller[SubscriptionAliasResponse]: ...
# Get alias information
def get(alias_name: str, **kwargs) -> SubscriptionAliasResponse: ...
# Delete an alias
def delete(alias_name: str, **kwargs) -> None: ...
# List all aliases
def list(**kwargs) -> SubscriptionAliasListResult: ...Subscription policy management at tenant and billing account levels, including policy creation, updates, and retrieval for governance and compliance scenarios.
# Add or update tenant policy
def add_update_policy_for_tenant(body: Union[PutTenantPolicyRequestProperties, IO], **kwargs) -> GetTenantPolicyResponse: ...
# Get tenant policy
def get_policy_for_tenant(**kwargs) -> GetTenantPolicyResponse: ...
# Get billing account policy
def get_policy(billing_account_id: str, **kwargs) -> BillingAccountPoliciesResponse: ...Service metadata and discovery operations that provide information about available API operations and service capabilities.
# List available API operations
def list(**kwargs) -> Iterable[Operation]: ...All operations can raise Azure-specific exceptions with structured error information:
from azure.core.exceptions import HttpResponseError
try:
subscription = client.subscriptions.get("invalid-subscription-id")
except HttpResponseError as e:
print(f"Error: {e.status_code} - {e.message}")The client requires Azure credentials for authentication. Use Azure Identity library for best practices:
from azure.identity import DefaultAzureCredential, ClientSecretCredential
# Recommended: Use DefaultAzureCredential
credential = DefaultAzureCredential()
# Or use specific credential types
credential = ClientSecretCredential(
tenant_id="your-tenant-id",
client_id="your-client-id",
client_secret="your-client-secret"
)
client = SubscriptionClient(credential)Complete async support is available for non-blocking operations:
import asyncio
from azure.identity.aio import DefaultAzureCredential
from azure.mgmt.subscription.aio import SubscriptionClient
async def list_subscriptions():
credential = DefaultAzureCredential()
async with SubscriptionClient(credential) as client:
subscriptions = []
async for subscription in client.subscriptions.list():
subscriptions.append(subscription)
return subscriptions
# Run async operation
subscriptions = asyncio.run(list_subscriptions())class SubscriptionClient:
"""The main subscription client."""
def __init__(self, credential: TokenCredential, base_url: str = "https://management.azure.com", **kwargs): ...
def close(self) -> None: ...
def __enter__(self): ...
def __exit__(self, *exc_details): ...
class Subscription:
"""Azure subscription information."""
id: str # The fully qualified ID for the subscription
subscription_id: str # The subscription ID
display_name: str # The subscription display name
state: Union[str, SubscriptionState] # Current subscription state
subscription_policies: SubscriptionPolicies # Associated policies
authorization_source: str # Authorization method used
class Location:
"""Azure geographic location."""
id: str # The fully qualified ID of the location
subscription_id: str # The subscription ID
name: str # The location name
display_name: str # The display name of the location
latitude: str # The latitude of the location
longitude: str # The longitude of the location
class TenantIdDescription:
"""Azure Active Directory tenant information."""
id: str
tenant_id: str
tenant_category: str
display_name: str
default_domain: str