0
# Subscription Management
1
2
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.
3
4
## Capabilities
5
6
### List Subscriptions
7
8
Lists all subscriptions accessible to the authenticated user across all tenants.
9
10
```python { .api }
11
def list(**kwargs) -> Iterable[Subscription]:
12
"""
13
Gets all subscriptions for a tenant.
14
15
Returns:
16
Iterable[Subscription]: Paginated list of accessible subscriptions
17
"""
18
```
19
20
**Usage Example:**
21
22
```python
23
from azure.identity import DefaultAzureCredential
24
from azure.mgmt.subscription import SubscriptionClient
25
26
credential = DefaultAzureCredential()
27
client = SubscriptionClient(credential)
28
29
# List all accessible subscriptions
30
subscriptions = list(client.subscriptions.list())
31
for subscription in subscriptions:
32
print(f"ID: {subscription.subscription_id}")
33
print(f"Name: {subscription.display_name}")
34
print(f"State: {subscription.state}")
35
print(f"ID: {subscription.id}")
36
print("---")
37
```
38
39
**Async Usage Example:**
40
41
```python
42
import asyncio
43
from azure.identity.aio import DefaultAzureCredential
44
from azure.mgmt.subscription.aio import SubscriptionClient
45
46
async def list_subscriptions_async():
47
credential = DefaultAzureCredential()
48
async with SubscriptionClient(credential) as client:
49
subscriptions = []
50
async for subscription in client.subscriptions.list():
51
subscriptions.append(subscription)
52
print(f"ID: {subscription.subscription_id}")
53
print(f"Name: {subscription.display_name}")
54
print(f"State: {subscription.state}")
55
print("---")
56
return subscriptions
57
58
# Run async operation
59
subscriptions = asyncio.run(list_subscriptions_async())
60
```
61
62
### Get Subscription Details
63
64
Retrieves detailed information about a specific subscription by its ID.
65
66
```python { .api }
67
def get(subscription_id: str, **kwargs) -> Subscription:
68
"""
69
Gets details about a specified subscription.
70
71
Args:
72
subscription_id (str): The subscription ID
73
74
Returns:
75
Subscription: Complete subscription details
76
"""
77
```
78
79
**Usage Example:**
80
81
```python
82
subscription_id = "12345678-1234-1234-1234-123456789012"
83
subscription = client.subscriptions.get(subscription_id)
84
85
print(f"Display Name: {subscription.display_name}")
86
print(f"State: {subscription.state}")
87
print(f"Authorization Source: {subscription.authorization_source}")
88
89
# Access subscription policies
90
policies = subscription.subscription_policies
91
if policies:
92
print(f"Location Placement ID: {policies.location_placement_id}")
93
print(f"Quota ID: {policies.quota_id}")
94
print(f"Spending Limit: {policies.spending_limit}")
95
```
96
97
### List Subscription Locations
98
99
Gets all available geo-locations for a specific subscription, showing where resources can be deployed.
100
101
```python { .api }
102
def list_locations(subscription_id: str, **kwargs) -> Iterable[Location]:
103
"""
104
Gets all available geo-locations for a subscription.
105
106
Args:
107
subscription_id (str): The subscription ID
108
109
Returns:
110
Iterable[Location]: Paginated list of available locations
111
"""
112
```
113
114
**Usage Example:**
115
116
```python
117
subscription_id = "12345678-1234-1234-1234-123456789012"
118
locations = list(client.subscriptions.list_locations(subscription_id))
119
120
print(f"Available locations for subscription {subscription_id}:")
121
for location in locations:
122
print(f"Name: {location.name}")
123
print(f"Display Name: {location.display_name}")
124
print(f"Latitude: {location.latitude}")
125
print(f"Longitude: {location.longitude}")
126
print("---")
127
```
128
129
## Error Handling
130
131
Common errors when working with subscription operations:
132
133
```python
134
from azure.core.exceptions import HttpResponseError
135
136
try:
137
subscription = client.subscriptions.get("invalid-subscription-id")
138
except HttpResponseError as e:
139
if e.status_code == 404:
140
print("Subscription not found or not accessible")
141
elif e.status_code == 403:
142
print("Access denied to subscription")
143
else:
144
print(f"Error: {e.status_code} - {e.message}")
145
```
146
147
## Types
148
149
```python { .api }
150
class Subscription:
151
"""Azure subscription information."""
152
id: str # The fully qualified ID for the subscription
153
subscription_id: str # The subscription ID
154
display_name: str # The subscription display name
155
state: Union[str, SubscriptionState] # Current subscription state
156
subscription_policies: SubscriptionPolicies # Associated policies
157
authorization_source: str # Authorization method used
158
159
class Location:
160
"""Azure geographic location/region."""
161
id: str # The fully qualified ID of the location
162
subscription_id: str # The subscription ID
163
name: str # The location name
164
display_name: str # The display name of the location
165
latitude: str # The latitude of the location
166
longitude: str # The longitude of the location
167
168
class SubscriptionPolicies:
169
"""Subscription-level policies and settings."""
170
location_placement_id: str # Default location for resources
171
quota_id: str # Quota profile identifier
172
spending_limit: Union[str, SpendingLimit] # Spending limit status
173
```
174
175
## Enums
176
177
```python { .api }
178
class SubscriptionState(str, Enum):
179
"""The subscription state."""
180
ENABLED = "Enabled"
181
WARNED = "Warned"
182
PAST_DUE = "PastDue"
183
DISABLED = "Disabled"
184
DELETED = "Deleted"
185
186
class SpendingLimit(str, Enum):
187
"""The subscription spending limit."""
188
ON = "On"
189
OFF = "Off"
190
CURRENT_PERIOD_OFF = "CurrentPeriodOff"
191
```