Microsoft Azure Subscription Management Client Library for Python
—
Quality
Pending
Does it follow best practices?
Impact
Pending
No eval scenarios have been run
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.
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())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}")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("---")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}")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 statusclass 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