or run

npx @tessl/cli init
Log in

Version

Tile

Overview

Evals

Files

docs

index.mdpolicy-management.mdservice-operations.mdsubscription-creation.mdsubscription-lifecycle.mdsubscription-management.mdtenant-operations.md
tile.json

tessl/pypi-azure-mgmt-subscription

Microsoft Azure Subscription Management Client Library for Python

Workspace
tessl
Visibility
Public
Created
Last updated
Describes
pypipkg:pypi/azure-mgmt-subscription@3.1.x

To install, run

npx @tessl/cli install tessl/pypi-azure-mgmt-subscription@3.1.0

index.mddocs/

Azure Subscription Management Client Library

A 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.

Package Information

  • Package Name: azure-mgmt-subscription
  • Package Type: Azure Management SDK
  • Language: Python
  • Installation: pip install azure-mgmt-subscription

Core Imports

from azure.mgmt.subscription import SubscriptionClient

For asynchronous operations:

from azure.mgmt.subscription.aio import SubscriptionClient

Import specific models and enums as needed:

from azure.mgmt.subscription.models import (
    Subscription,
    SubscriptionName,
    AcceptOwnershipRequest,
    PutAliasRequest,
    SubscriptionState,
    Workload
)

Basic Usage

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()

Architecture

The azure-mgmt-subscription client provides access to seven distinct operations groups, each handling specific aspects of Azure subscription management:

  • SubscriptionClient: Main client class providing access to all operations
  • Operations Groups: Specialized handlers for subscriptions, tenants, aliases, policies, and billing
  • Models: Rich data structures representing Azure subscription resources
  • Authentication: Integration with Azure Identity for secure API access
  • Async Support: Complete async/await support for non-blocking operations

Capabilities

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]: ...

Subscription Management

Tenant Operations

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]: ...

Tenant Operations

Subscription Lifecycle

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 Lifecycle

Subscription Creation via Aliases

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 Creation

Policy Management

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: ...

Policy Management

Service Operations

Service metadata and discovery operations that provide information about available API operations and service capabilities.

# List available API operations
def list(**kwargs) -> Iterable[Operation]: ...

Service Operations

Error Handling

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}")

Authentication

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)

Async Support

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())

Core Types

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