CtrlK
BlogDocsLog inGet started
Tessl Logo

tessl/pypi-azure-mgmt-subscription

Microsoft Azure Subscription Management Client Library for Python

Pending

Quality

Pending

Does it follow best practices?

Impact

Pending

No eval scenarios have been run

Overview
Eval results
Files

subscription-management.mddocs/

Subscription Management

Core subscription operations including listing, retrieving details, and accessing subscription location information. These operations form the foundation of subscription management workflows and provide essential functionality for discovering and working with Azure subscriptions.

Capabilities

List Subscriptions

Lists all subscriptions accessible to the authenticated user across all tenants.

def list(**kwargs) -> Iterable[Subscription]:
    """
    Gets all subscriptions for a tenant.
    
    Returns:
        Iterable[Subscription]: Paginated list of accessible subscriptions
    """

Usage Example:

from azure.identity import DefaultAzureCredential
from azure.mgmt.subscription import SubscriptionClient

credential = DefaultAzureCredential()
client = SubscriptionClient(credential)

# List all accessible subscriptions
subscriptions = list(client.subscriptions.list())
for subscription in subscriptions:
    print(f"ID: {subscription.subscription_id}")
    print(f"Name: {subscription.display_name}")
    print(f"State: {subscription.state}")
    print(f"ID: {subscription.id}")
    print("---")

Async Usage Example:

import asyncio
from azure.identity.aio import DefaultAzureCredential
from azure.mgmt.subscription.aio import SubscriptionClient

async def list_subscriptions_async():
    credential = DefaultAzureCredential()
    async with SubscriptionClient(credential) as client:
        subscriptions = []
        async for subscription in client.subscriptions.list():
            subscriptions.append(subscription)
            print(f"ID: {subscription.subscription_id}")
            print(f"Name: {subscription.display_name}")
            print(f"State: {subscription.state}")
            print("---")
        return subscriptions

# Run async operation
subscriptions = asyncio.run(list_subscriptions_async())

Get Subscription Details

Retrieves detailed information about a specific subscription by its ID.

def get(subscription_id: str, **kwargs) -> Subscription:
    """
    Gets details about a specified subscription.
    
    Args:
        subscription_id (str): The subscription ID
        
    Returns:
        Subscription: Complete subscription details
    """

Usage Example:

subscription_id = "12345678-1234-1234-1234-123456789012"
subscription = client.subscriptions.get(subscription_id)

print(f"Display Name: {subscription.display_name}")
print(f"State: {subscription.state}")
print(f"Authorization Source: {subscription.authorization_source}")

# Access subscription policies
policies = subscription.subscription_policies
if policies:
    print(f"Location Placement ID: {policies.location_placement_id}")
    print(f"Quota ID: {policies.quota_id}")
    print(f"Spending Limit: {policies.spending_limit}")

List Subscription Locations

Gets all available geo-locations for a specific subscription, showing where resources can be deployed.

def list_locations(subscription_id: str, **kwargs) -> Iterable[Location]:
    """
    Gets all available geo-locations for a subscription.
    
    Args:
        subscription_id (str): The subscription ID
        
    Returns:
        Iterable[Location]: Paginated list of available locations
    """

Usage Example:

subscription_id = "12345678-1234-1234-1234-123456789012"
locations = list(client.subscriptions.list_locations(subscription_id))

print(f"Available locations for subscription {subscription_id}:")
for location in locations:
    print(f"Name: {location.name}")
    print(f"Display Name: {location.display_name}")
    print(f"Latitude: {location.latitude}")
    print(f"Longitude: {location.longitude}")
    print("---")

Error Handling

Common errors when working with subscription operations:

from azure.core.exceptions import HttpResponseError

try:
    subscription = client.subscriptions.get("invalid-subscription-id")
except HttpResponseError as e:
    if e.status_code == 404:
        print("Subscription not found or not accessible")
    elif e.status_code == 403:
        print("Access denied to subscription")
    else:
        print(f"Error: {e.status_code} - {e.message}")

Types

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/region."""
    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 SubscriptionPolicies:
    """Subscription-level policies and settings."""
    location_placement_id: str  # Default location for resources
    quota_id: str  # Quota profile identifier
    spending_limit: Union[str, SpendingLimit]  # Spending limit status

Enums

class SubscriptionState(str, Enum):
    """The subscription state."""
    ENABLED = "Enabled"
    WARNED = "Warned"
    PAST_DUE = "PastDue"
    DISABLED = "Disabled"
    DELETED = "Deleted"

class SpendingLimit(str, Enum):
    """The subscription spending limit."""
    ON = "On"
    OFF = "Off"
    CURRENT_PERIOD_OFF = "CurrentPeriodOff"

Install with Tessl CLI

npx tessl i tessl/pypi-azure-mgmt-subscription

docs

index.md

policy-management.md

service-operations.md

subscription-creation.md

subscription-lifecycle.md

subscription-management.md

tenant-operations.md

tile.json